为什么 poly(x,2) 中的一阶自变量不会在多元回归中生成其估计值?

Why does 1st degree independent variable in poly(x,2) does not generate its estimate in the multiple regression?

我的回归模型有两种多项式项,但其中一个一阶变量(此处为 age)无法生成其估计值,而 experexper^2 项则不会失败。我想知道为什么。

我的代码是:

library(wooldridge)
data('card')

fit1_ols <- lm(lwage~educ + poly(exper, 2) + black + smsa + south + poly(age, 2),  data = card)
fit2_ols <- lm(lwage~educ + poly(exper, 2) + black + smsa + south + poly(age, 2) + motheduc + fatheduc, data = card)

summ(fit1_ols)
summ(fit2_ols)

结果分别是:

----------------------------------------------------
                         Est.   S.E.   t val.      p
--------------------- ------- ------ -------- ------
(Intercept)              5.26   0.05   107.40   0.00
educ                     0.07   0.00    21.10   0.00
poly(exper, 2)1          8.93   0.49    18.05   0.00
poly(exper, 2)2         -2.71   0.41    -6.66   0.00
black                   -0.19   0.02   -10.75   0.00
smsa                     0.16   0.02    10.36   0.00
south                   -0.12   0.02    -8.23   0.00
poly(age, 2)1            ???                           
poly(age, 2)2            0.17   0.41     0.41   0.68
----------------------------------------------------

----------------------------------------------------
                         Est.   S.E.   t val.      p
--------------------- ------- ------ -------- ------
(Intercept)              5.18   0.06    87.10   0.00
educ                     0.07   0.00    16.99   0.00
poly(exper, 2)1          9.45   0.60    15.65   0.00
poly(exper, 2)2         -2.89   0.51    -5.67   0.00
black                   -0.16   0.02    -6.69   0.00
smsa                     0.16   0.02     8.74   0.00
south                   -0.11   0.02    -6.22   0.00
poly(age, 2)1            ???                           
poly(age, 2)2            0.20   0.49     0.41   0.69
motheduc                 0.01   0.00     2.24   0.03
fatheduc                -0.00   0.00    -0.25   0.80
----------------------------------------------------

如果您使用正常的 summary 而不是 summ(为此您加载了相应的库),R 会告诉您问题所在:

library(wooldridge)
data('card')

fit1_ols <- lm(lwage~educ + poly(exper, 2) + black + smsa + south + poly(age, 2),  data = card)
fit2_ols <- lm(lwage~educ + poly(exper, 2) + black + smsa + south + poly(age, 2) + motheduc + fatheduc, data = card)

summary(fit1_ols)
summary(fit2_ols)

如您所见,错误消息指示“由于奇点而未定义”。这里是关于如何处理这个问题的helpful post。基本上,缺失的变量可能与其他变量共线,这表明您需要更改模型的规格。