定性预测变量未出现在回归汇总输出R中

时间:2013-03-12 21:22:30

标签: r linear-regression

我有一个大数据集,用于运行带有一些定性预测变量的线性回归模型。我称数据集为WN,定性变量为OState和DState(美国各州)。在这里,您将看到WN中有62个OState和DState的唯一值:

> unique(WN$OState)
[1] NY MA PA DE DC VA MD WV NC RI SC NH GA FL AL TN MS ME KY OH IN MI VT IA WI MN SD ND MT CT IL MO KS NE NJ LA AR OK TX CO WY ID UT AZ NM NV CA OR WA
62 Levels: AA AE AK AL AP AR AS AZ CA CO CT DC DE FL FM GA GU HI IA ID IL IN KS KY LA MA MD ME MH MI MN MO MP MS MT NC ND NE NH NJ NM NV NY OH OK OR PA PR PW RI SC SD TN TX UT VA VI VT WA ... WY
> unique(WN$DState)
[1] MA RI NH ME VT CT NY NJ PA DE DC VA MD WV NC SC GA FL AL TN MS KY OH IN MI IA WI MN SD ND MT IL MO KS NE LA AR OK TX CO WY ID UT AZ NM NV CA OR WA
62 Levels: AA AE AK AL AP AR AS AZ CA CO CT DC DE FL FM GA GU HI IA ID IL IN KS KY LA MA MD ME MH MI MN MO MP MS MT NC ND NE NH NJ NM NV NY OH OK OR PA PR PW RI SC SD TN TX UT VA VI VT WA ... WY

现在我运行回归模型来预测Rate with Distance,OState和DState,如下所示:

> WN.LR = lm(WN$Rate~WN$Distance+WN$OState+WN$DState) 

当我检查回归摘要时,我看到只填充了48个OState和DState预测变量,剩下的14个缺失。摘要输出的一小部分如下。例如,您将看到输出中缺少OStateAL:

> summary(WN.LR)

Call:
lm(formula = WN$Rate ~ WN$Distance + WN$OState + WN$DState)

Residuals:
    Min      1Q  Median      3Q     Max 
-2370.3  -218.4   -18.9   170.8  9105.7 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.208e+03  6.632e+00 182.171  < 2e-16 ***
WN$Distance  1.626e+00  3.111e-03 522.722  < 2e-16 ***
WN$OStateAR  2.000e+02  7.294e+00  27.419  < 2e-16 ***
WN$OStateAZ  1.981e+02  8.372e+00  23.667  < 2e-16 ***
WN$OStateCA  1.056e+02  7.919e+00  13.340  < 2e-16 ***
WN$OStateCO  1.323e+02  7.332e+00  18.043  < 2e-16 ***
WN$OStateCT -2.019e+02  1.827e+01 -11.048  < 2e-16 ***
WN$OStateDC  5.711e+02  2.178e+01  26.223  < 2e-16 ***

另一方面,当我检查OState =“AL”的实体时,我看到有超过6000行:

> WNnew<-subset(WN,OState=="AL")
> nrow(WNnew)
[1] 6213

对此有何解释?

2 个答案:

答案 0 :(得分:2)

这可能是因为别名(即您的模型被过度识别)。例如,马萨诸塞州是DStateOState变量的一个级别,因此我认为它在两种处理中的效果都无法分开。

答案 1 :(得分:1)

在构建模型时,您没有读取警告,即系数列表中的所有NA。运行时将列出别名术语:

WN.LR  # always look at the output of `lm` as well as that of `summary.lm`

...而你刚刚看不到输出。您可能会考虑创建一个&#34;相同的&#34;等级为OState,其中DState与OState相同,然后允许捕获所有没有差异的状态。