R returns 逻辑回归中比预期更多的系数
R returns more coefficients than expected in logistic regression
我正在使用来自网站的数据集来检查逻辑回归。 Rreturns变量的三个系数"age" 下面是数据集。年龄变量有四个级别:<25、25-29、30-39、40-49。
数据集具有三个预测变量(即年龄、教育程度、想要更多)。第四列和第五列是响应变量,对应"No"(第四列)和"Yes"(第五列)。
当我使用这个数据集执行逻辑回归时,我得到了更多年龄变量的系数。
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
正如@Dason 在评论中提到的,您将获得 k-1
系数 k
分类变量中的排名数,age
。
这是因为在内部,R 创建了 dummy variables 以处理分类变量。在回归模型中,将数值系数值与 "age less than 25" 的 "category" 相乘没有意义。
因此使用虚拟变量以某种方式对它们进行编码,以便您可以执行此系数乘法。有关更多讨论,请参阅 here。
对于您的模型,年龄的最后一个 "missing" 变量是与所有其他年龄进行比较的基线变量,即 <25
的 age
。因此,根据您的模型,age
为 25-29
的个体相对于 <25
的基线,会改变您的响应变量(notUsing
和 using
) 通过 0.3893816
.
有关具有类别变量(他们的是 rank
)以及如何解释它的深入教程,请参阅 here。
我正在使用来自网站的数据集来检查逻辑回归。 Rreturns变量的三个系数"age" 下面是数据集。年龄变量有四个级别:<25、25-29、30-39、40-49。
数据集具有三个预测变量(即年龄、教育程度、想要更多)。第四列和第五列是响应变量,对应"No"(第四列)和"Yes"(第五列)。
当我使用这个数据集执行逻辑回归时,我得到了更多年龄变量的系数。
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
正如@Dason 在评论中提到的,您将获得 k-1
系数 k
分类变量中的排名数,age
。
这是因为在内部,R 创建了 dummy variables 以处理分类变量。在回归模型中,将数值系数值与 "age less than 25" 的 "category" 相乘没有意义。
因此使用虚拟变量以某种方式对它们进行编码,以便您可以执行此系数乘法。有关更多讨论,请参阅 here。
对于您的模型,年龄的最后一个 "missing" 变量是与所有其他年龄进行比较的基线变量,即 <25
的 age
。因此,根据您的模型,age
为 25-29
的个体相对于 <25
的基线,会改变您的响应变量(notUsing
和 using
) 通过 0.3893816
.
有关具有类别变量(他们的是 rank
)以及如何解释它的深入教程,请参阅 here。