我的问题是关于不必要的预测变量,也就是那些不提供任何新的线性信息或者是其他预测变量的线性组合。正如你所见,swiss
数据集有六个变量。
library(swiss)
names(swiss)
# "Fertility" "Agriculture" "Examination" "Education"
# "Catholic" "Infant.Mortality"
现在我介绍一个新变量
ec
。它是Examination
和Education
的线性组合。ec <- swiss$Examination + swiss$Catholic
当我们运行不必要变量的线性回归时,R会删除线性组合其他项的项,并将其系数返回为
NA
。下面的命令完美地说明了这一点。lm(Fertility ~ . + ec, swiss)
Coefficients:
(Intercept) Agriculture Examination Education
66.9152 -0.1721 -0.2580 -0.8709
Catholic Infant.Mortality ec
0.1041 1.0770 NA
然而,当我们按照下面所示的方法先回归ec
,然后再回归所有的自变量时,
lm(Fertility ~ ec + ., swiss)
Coefficients:
(Intercept) ec Agriculture Examination
66.9152 0.1041 -0.1721 -0.3621
Education Catholic Infant.Mortality
-0.8709 NA 1.0770
我希望两个系数Catholic和Examination都应该是NA。变量ec是它们的线性组合,但最终Examination的系数不是NA,而Catholic的系数是NA。
有人可以解释一下原因吗?
A
,B
,A+B
(其中A
和B
本身不共线),则可以估计任意两个变量的参数。 - Ben Bolker