我有一个大数据集,用于运行带有一些定性预测变量的线性回归模型。我称数据集为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
对此有何解释?
答案 0 :(得分:2)
这可能是因为别名(即您的模型被过度识别)。例如,马萨诸塞州是DState
和OState
变量的一个级别,因此我认为它在两种处理中的效果都无法分开。
答案 1 :(得分:1)
在构建模型时,您没有读取警告,即系数列表中的所有NA。运行时将列出别名术语:
WN.LR # always look at the output of `lm` as well as that of `summary.lm`
...而你刚刚看不到输出。您可能会考虑创建一个&#34;相同的&#34;等级为OState,其中DState与OState相同,然后允许捕获所有没有差异的状态。