R lm中的缺失数据行为:使用完整案例,即使没有缺失数据的预测值 我的问题是:用“代码> Nav/Cult>S去除预测因子是最有效的方法,并考虑排除该预测器的完整情况?
该问题源于R lm中的缺失数据行为:使用完整案例,即使没有缺失数据的预测值 我的问题是:用“代码> Nav/Cult>S去除预测因子是最有效的方法,并考虑排除该预测器的完整情况?,r,na,lm,R,Na,Lm,该问题源于NAs的以下回归情况,其中Ozone(大部分)和Solar.R中存在缺失值 data(airquality) summary(airquality) # Ozone Solar.R Wind Temp Month # Min. : 1.00 Min. : 7.0 Min. : 1.700 Min. :56.00 Min. :5.000 #
NA
s的以下回归情况,其中Ozone
(大部分)和Solar.R
中存在缺失值
data(airquality)
summary(airquality)
# Ozone Solar.R Wind Temp Month
# Min. : 1.00 Min. : 7.0 Min. : 1.700 Min. :56.00 Min. :5.000
# 1st Qu.: 18.00 1st Qu.:115.8 1st Qu.: 7.400 1st Qu.:72.00 1st Qu.:6.000
# Median : 31.50 Median :205.0 Median : 9.700 Median :79.00 Median :7.000
# Mean : 42.13 Mean :185.9 Mean : 9.958 Mean :77.88 Mean :6.993
# 3rd Qu.: 63.25 3rd Qu.:258.8 3rd Qu.:11.500 3rd Qu.:85.00 3rd Qu.:8.000
# Max. :168.00 Max. :334.0 Max. :20.700 Max. :97.00 Max. :9.000
# NA's :37 NA's :7
# Day
# Min. : 1.0
# 1st Qu.: 8.0
# Median :16.0
# Mean :15.8
# 3rd Qu.:23.0
# Max. :31.0
对剩余变量的风
回归。只考虑完整的案例
summary(lm(Wind ~ ., data = airquality))
#
# Call:
# lm(formula = Wind ~ ., data = airquality)
#
# Residuals:
# Min 1Q Median 3Q Max
# -4.3908 -2.2800 -0.3078 1.4132 9.6501
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 15.519460 2.918393 5.318 5.96e-07 ***
# Ozone -0.060746 0.011798 -5.149 1.23e-06 ***
# Solar.R 0.003791 0.003216 1.179 0.241
# Temp -0.036604 0.044576 -0.821 0.413
# Month -0.159671 0.208082 -0.767 0.445
# Day 0.017353 0.031238 0.556 0.580
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 2.822 on 105 degrees of freedom
# (42 observations deleted due to missingness)
# Multiple R-squared: 0.3994, Adjusted R-squared: 0.3708
# F-statistic: 13.96 on 5 and 105 DF, p-value: 1.857e-10
如果去除了Ozone
,仍然只考虑完整的案例(包括Ozone
)。但这与手动清除臭氧不同
summary(lm(Wind ~ . - Ozone, data = airquality))
#
# Call:
# lm(formula = Wind ~ . - Ozone, data = airquality)
#
# Residuals:
# Min 1Q Median 3Q Max
# -6.012 -2.323 -0.361 1.493 9.605
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 24.3159074 2.6354288 9.227 3.09e-15 ***
# Solar.R 0.0009228 0.0035281 0.262 0.794
# Temp -0.1900820 0.0369159 -5.149 1.21e-06 ***
# Month 0.0313046 0.2280600 0.137 0.891
# Day 0.0008969 0.0346116 0.026 0.979
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 3.143 on 106 degrees of freedom
# (42 observations deleted due to missingness)
# Multiple R-squared: 0.2477, Adjusted R-squared: 0.2193
# F-statistic: 8.727 on 4 and 106 DF, p-value: 3.961e-06
summary(lm(Wind ~ Solar.R + Temp + Wind + Month + Day, data = airquality))
#
# Call:
# lm(formula = Wind ~ Solar.R + Temp + Wind + Month + Day, data = airquality)
#
# Residuals:
# Min 1Q Median 3Q Max
# -8.1779 -2.2063 -0.2757 1.9448 9.3510
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 23.660271 2.416766 9.790 < 2e-16 ***
# Solar.R 0.002980 0.003113 0.957 0.340
# Temp -0.186386 0.032725 -5.695 6.89e-08 ***
# Month 0.074952 0.206334 0.363 0.717
# Day -0.011028 0.030304 -0.364 0.716
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 3.158 on 141 degrees of freedom
# (7 observations deleted due to missingness)
# Multiple R-squared: 0.2125, Adjusted R-squared: 0.1901
# F-statistic: 9.511 on 4 and 141 DF, p-value: 7.761e-07
摘要(lm(风-臭氧,数据=空气质量))
#
#电话:
#lm(公式=风-臭氧,数据=空气质量)
#
#残差:
#最小1季度中值3季度最大值
# -6.012 -2.323 -0.361 1.493 9.605
#
#系数:
#估计标准误差t值Pr(>t)
#(截距)24.3159074 2.6354288 9.227 3.09e-15***
#Solar.R 0.0009228 0.0035281 0.262 0.794
#温度-0.1900820 0.0369159-5.149 1.21e-06***
#月份0.0313046 0.2280600 0.137 0.891
#第0.0008969天0.0346116 0.026 0.979
# ---
#签名。代码:0'***'0.001'***'0.01'*'0.05'.'0.1''1
#
#剩余标准误差:106个自由度上的3.143
#(由于缺失,删除了42项观察结果)
#多重R平方:0.2477,调整后的R平方:0.2193
#F-统计量:4和106 DF上的8.727,p-值:3.961e-06
汇总(lm(风~太阳能.R+温度+风+月+日,数据=空气质量))
#
#电话:
#lm(公式=风能~太阳能.R+温度+风能+月+日,数据=空气质量)
#
#残差:
#最小1季度中值3季度最大值
# -8.1779 -2.2063 -0.2757 1.9448 9.3510
#
#系数:
#估计标准误差t值Pr(>t)
#(截距)23.660271 2.416766 9.790<2e-16***
#Solar.R 0.002980.003113 0.957 0.340
#温度-0.186386 0.032725-5.695 6.89e-08***
#月份0.074952 0.206334 0.363 0.717
#第-0.011028 0.030304-0.364 0.716天
# ---
#签名。代码:0'***'0.001'***'0.01'*'0.05'.'0.1''1
#
#剩余标准误差:141个自由度上的3.158
#(7因缺失而删除的观察结果)
#倍数R平方:0.2125,调整后的R平方:0.1901
#F-统计量:4和141 DF上的9.511,p-值:7.761e-07
风的确令人遗憾和惊讶臭氧在发现完整病例时考虑臭氧;似乎值得讨论r-devel@r-org
邮件列表,如果你想继续。与此同时,你觉得呢
summary(lm(Wind ~ ., data = subset(airquality, select=-Ozone))
?在您的第一种情况下,似乎
臭氧
已从分析中删除,但存在于公式中,因此带有臭氧
Ozone
不是公式,因此完全忽略Ozone
NA
s。如果要删除的变量没有NA
值,则这些方法完全相同。是的,我同意。但是,如何才能以比手动指定要包含的变量更有效的方式去除臭氧呢?我喜欢~。-在公式中,令人惊讶的是它在这种情况下不能正常工作。只需创建另一个没有臭氧的数据集,并将其与y一起使用。
我非常喜欢这个问题。通过stats::model.frame.default
(即完成案例计算的地方)进行调试,我们发现术语(Wind~.-Ozone)
的结果确实在其变量列表中包含Ozone
。这对我来说似乎是错误的,但如此深入人心,以至于我认为它不会被改变……很好的方法,感谢r上的建议-devel@r-org
list。我也要把问题发过去。