【发布时间】:2021-02-20 21:40:45
【问题描述】:
我目前正在尝试在大型数据集上运行线性模型,但遇到了一些特定变量的问题。
pv_model <- lm(SalePrice ~ MSSubClass + LotConfig + GarageArea + LotFrontage, data = train)
summary(pv_model)
这是我的回归代码。 SalePrice、MSSubClass、GarageArea 和 LotFrontage 都是数值字段,而 LotConfig 是因子变量。
这是我的 pv_model 的输出:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 98154.64 17235.51 5.695 1.75e-08 ***
MSSubClass 50.05 58.38 0.857 0.391539
LotConfigCulDSac 69949.50 12740.62 5.490 5.42e-08 ***
LotConfigFR2 19998.34 14592.31 1.370 0.170932
LotConfigFR3 21390.99 34126.44 0.627 0.530962
LotConfigInside 21666.04 5597.33 3.871 0.000118 ***
GarageArea 175.67 10.96 16.035 < 2e-16 ***
LotFrontage101 42571.20 42664.89 0.998 0.318682
LotFrontage102 26051.49 35876.54 0.726 0.467968
LotFrontage103 36528.81 35967.56 1.016 0.310131
LotFrontage104 218129.42 58129.56 3.752 0.000188 ***
LotFrontage105 61737.12 27618.21 2.235 0.025673 *
LotFrontage106 40806.22 58159.42 0.702 0.483120
LotFrontage107 36744.69 29494.94 1.246 0.213211
LotFrontage108 71537.30 42565.91 1.681 0.093234 .
LotFrontage109 -29193.02 42528.98 -0.686 0.492647
LotFrontage110 73589.28 27706.92 2.656 0.008068 **
如您所见,第一个变量运行正常。因式分解和数值型字段都做出适当的响应。也就是说,直到它到达 LotFrontage。无论出于何种原因,该模型都会在每个 LotFrontage 级别上运行回归。
作为参考,LotFrontage 描述了对象前院的平方英尺。我已经正确清理了数据并替换了 NA 值。我真的不知道为什么这个特定的专栏表现得如此不寻常。
非常感谢任何帮助。
【问题讨论】:
-
没有看到您的数据,在我看来,变量 LotFrontage 充当了一个因素,而不是一个协变量。您可以使用
class()进行检查。您需要分享数据集的一小部分样本(例如,使用dput()),以便人们更好地帮助您。 -
LotFrontage存储为factor或character。您可以使用class(train$LotFrontage)来查看此描述,这是此类列的默认行为。您可以使用as.numeric和类似功能来更改此设置。对于您可能希望使用LF <- train$LotFrontage;train$LotFrontage <- as.numeric(levels(LF))[as.integer(LF)]映射到实际平方英尺级别的因素。 (请注意,as.integer(train$LotFrontage)返回一个向量1:Nlevels,因此代码 sn-p 将这些转换为 LotFrontage 中的级别)。对于字符,只需使用as.numeric
标签: r dataset regression linear-regression factoring