R返回的系数比逻辑回归中的期望值要多

时间:2020-05-07 17:25:02

标签: r logistic-regression

我正在使用网站上的数据集来检查逻辑回归。 R返回变量“ age”的三个系数。下面是数据集。年龄变量具有四个级别:<25、25-29、30-39、40-49。

data

数据集具有三个预测变量(即年龄,教育程度,wantsMore)。第四和第五列是响应变量,分别对应“否”(第四列)和“是”(第五列)。

data

使用此数据集进行逻辑回归时,我会获得更多年龄变量的系数。

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 

1 个答案:

答案 0 :(得分:4)

如@Dason在评论中所述,您将在分类变量k-1中获得k个系数age

这是因为R在内部创建dummy variables是为了处理分类变量。在回归模型中,将数字系数值与“年龄小于25岁”的“类别”相乘是没有意义的。

因此,使用伪变量以某种方式对其进行编码,以便您可以进行系数乘法。有关更多讨论,请参见here

对于您的模型,年龄的最后一个“缺失”变量是与其他所有年龄进行比较的基准变量,即age<25。因此,根据您的建模,age25-29而不是基线为<25的个人会更改您的响应变量(notUsing和{{ 1}})由using

请参阅here,以获取具有类别变量(其为0.3893816)的深入教程以及如何对其进行解释。