对变量进行分类会将其从无关紧要变为重要


Answers:


25

一种可能的解释是结果与预测变量之间的非线性关系。

[-1个1个]X-1个X1个X0

> set.seed(1)
> nn <- 1e3
> xx <- runif(nn,-1,1)
> yy <- runif(nn)<1/(1+exp(-xx^2))
> 
> library(lmtest)
> 
> model_0 <- glm(yy~1,family="binomial")
> model_1 <- glm(yy~xx,family="binomial")
> lrtest(model_1,model_0)
Likelihood ratio test

Model 1: yy ~ xx
Model 2: yy ~ 1
  #Df  LogLik Df  Chisq Pr(>Chisq)
1   2 -676.72                     
2   1 -677.22 -1 0.9914     0.3194
> 
> xx_cut <- cut(xx,c(-1,-0.3,0.3,1))
> model_2 <- glm(yy~xx_cut,family="binomial")
> lrtest(model_2,model_0)
Likelihood ratio test

Model 1: yy ~ xx_cut
Model 2: yy ~ 1
  #Df  LogLik Df  Chisq Pr(>Chisq)  
1   3 -673.65                       
2   1 -677.22 -2 7.1362    0.02821 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

但是,这并不意味着离散化预测变量是最好的方法。(几乎从来没有。)使用或类似方法对非线性建模要好得多。


在某些例子中,离散化可能是明智的吗?例如,如果您有特定的阈值(例如18岁),则在该阈值处会发生二进制转换。18岁以上的数字年龄可能不重要,但18岁以上的二进制年龄可能重要吗?
ajrwhite

3
@ajrwhite:这取决于字段。在法律上将阈值编入标准的任何地方,都可能有意义。例如,如果您对投票行为进行建模,那么检查某人在18岁时是否真正有资格投票是有意义的。类似地,在德国,您的车辆税取决于您的发动机排量,并跳到1700、1800、1900,... ccm ,因此几乎所有汽车的排量均为1699、1799,... ccm(有点自离散)。在生物学,医学,心理学等自然科学中,我努力寻找一个使离散化有意义的例子。
S. Kolassa-恢复莫妮卡

7

一种可能的方式是关系是否明显是非线性的。鉴于缺乏细节,不可能说出这是否真的解释了正在发生的事情。

您可以自己检查。首先,您可以为变量本身添加一个变量图,也可以在模型的因子版本中绘制拟合的效果。如果解释正确,那么两者都应该看到明显的非线性模式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.