我正在使用网站上的数据集来检查逻辑回归。 R返回变量“ age”的三个系数。下面是数据集。年龄变量具有四个级别:<25、25-29、30-39、40-49。
数据集具有三个预测变量(即年龄,教育程度,wantsMore)。第四和第五列是响应变量,分别对应“否”(第四列)和“是”(第五列)。
使用此数据集进行逻辑回归时,我会获得更多年龄变量的系数。
cuse = read.table("https://data.princeton.edu/wws509/datasets/cuse.dat", header = TRUE)
cuse$age=factor(cuse$age)
lrfit = glm( cbind(using, notUsing) ~ age + education + wantsMore,
data = cuse, family = binomial)
lrfit$coefficients
系数如下所示。 R为年龄变量产生三个系数。我该如何解决?
> lrfit$coefficients
(Intercept) age25-29 age30-39 age40-49 educationlow wantsMoreyes
-0.8082200 0.3893816 0.9086135 1.1892389 -0.3249947 -0.8329548
答案 0 :(得分:4)
如@Dason在评论中所述,您将在分类变量k-1
中获得k
个系数age
。
这是因为R在内部创建dummy variables是为了处理分类变量。在回归模型中,将数字系数值与“年龄小于25岁”的“类别”相乘是没有意义的。
因此,使用伪变量以某种方式对其进行编码,以便您可以进行系数乘法。有关更多讨论,请参见here。
对于您的模型,年龄的最后一个“缺失”变量是与其他所有年龄进行比较的基准变量,即age
为<25
。因此,根据您的建模,age
为25-29
而不是基线为<25
的个人会更改您的响应变量(notUsing
和{{ 1}})由using
。
请参阅here,以获取具有类别变量(其为0.3893816
)的深入教程以及如何对其进行解释。