【发布时间】:2010-10-25 19:25:27
【问题描述】:
我有一个数据集,其中一个字段中有一些空值。当我尝试运行线性回归时,它会将字段中的整数视为类别指标,而不是数字。
例如,对于不包含空值的字段...
summary(lm(rank ~ num_ays, data=a)),
返回:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 10.607597 0.019927 532.317 < 2e-16 ***
num_ays 0.021955 0.007771 2.825 0.00473 **
但是当我在具有空值的字段上运行相同的模型时,我得到:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.225e+01 1.070e+00 11.446 < 2e-16 ***
num_azs0 -1.780e+00 1.071e+00 -1.663 0.09637 .
num_azs1 -1.103e+00 1.071e+00 -1.030 0.30322
num_azs10 -9.297e-01 1.080e+00 -0.861 0.38940
num_azs100 1.750e+00 5.764e+00 0.304 0.76141
num_azs101 -6.250e+00 4.145e+00 -1.508 0.13161
处理此问题的最佳和/或最有效方法是什么,权衡取舍是什么?
【问题讨论】:
-
说空话,你想到了
NA?num_azs是否有可能是factor?看起来我没有清理过数据... -
我不认为这是一个因素。 num_ays 和 num_azs 都来自 MySQL 导出。两者的字段类型都是整数,但 num_azs 可以包含空值。
-
summary(a) 说您的数据列是什么?我猜一个非数值导致转换为因子。解决方案是使用 as.numeric (as.character(foo)) 转换为数字
-
谢谢,Marek 等人——原来它被列为一个因素。我将在另一个问题中寻求答案。