2015-11-03 236 views
1

想象我有一個像多元線性迴歸

df <- data.frame(y=c(11:16), x1=c(23,NA,27,20,20,21), x2=c(NA,9,2,9,7,8))

df 
    y x1 x2 
1 11 23 NA 
2 12 NA 9 
3 13 27 2 
4 14 20 9 
5 15 20 7 
6 16 21 8 

的數據集。如果我進行多元線性迴歸,我得到

m <- lm(y~x1+x2, data=df) 
summary(m) 

Call: 
lm(formula = y ~ x1 + x2, data = df) 

Residuals: 
     3   4   5   6 
-1.744e-01 -1.047e+00 -4.233e-16 1.221e+00 

Coefficients: 
      Estimate Std. Error t value Pr(>|t|) 
(Intercept) 19.72093 27.06244 0.729 0.599 
x1   -0.24419 0.93927 -0.260 0.838 
x2   0.02326 1.01703 0.023 0.985 

Residual standard error: 1.617 on 1 degrees of freedom 
    (2 observations deleted due to missingness) 
Multiple R-squared: 0.4767, Adjusted R-squared: -0.5698 
F-statistic: 0.4556 on 2 and 1 DF, p-value: 0.7234 

在這裏,我們有2個觀測( 1和2)由於缺失而被刪除。

爲了減少缺失數據的影響,計算2個不同的簡單線性迴歸是否明智?

I.e.

m1 <- lm(y~x1, data=df) 
m2 <- lm(y~x2, data=df) 

在這種情況下,對於每個模型,我們將只有1個觀察因缺失而被刪除。

回答

1

不,這可能不是明智的。 因爲您遇到了omitted variables bias的問題。 你可以看到這將如何影響你的估計,例如用於x1,其被充氣:

summary(lm(y~x1, data=df)) 
Call: 
lm(formula = y ~ x1, data = df) 

Residuals: 
     1  3  4  5  6 
-2.5287 0.8276 -0.5460 0.4540 1.7931 

Coefficients: 
      Estimate Std. Error t value Pr(>|t|) 
(Intercept) 21.3276  7.1901 2.966 0.0592 . 
x1   -0.3391  0.3216 -1.054 0.3692 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 1.897 on 3 degrees of freedom 
    (1 observation deleted due to missingness) 
Multiple R-squared: 0.2703, Adjusted R-squared: 0.02713 
F-statistic: 1.112 on 1 and 3 DF, p-value: 0.3692 

請注意,你的利益關係是y~x1+x2,所以x1y的影響佔的效果x2,反之亦然。 當然,這與分別估計y~x1y~x2的情況不同,您忽略了其他解釋變量的影響。

現在有處理缺失值的策略。 一種選擇是估計貝葉斯模型,例如使用JAGS,您可以在其中對缺失值進行建模。一個例子是,例如下面,我在那裏取均值和各變量的標準偏差缺失值模式:

model{ 
    for(i in 1:N){ 
    y[i] ~ dnorm(yhat[i], tau) 
    yhat[i] <- a+ b1*x1[i] + b2*x2[i] 

    # Accounting for missing data 
    x1[i]~dnorm(22,3) 
    x2[i]~dnorm(7,1.3) 
    } 
    # Priors 
    b1~dnorm(0, .01)  
    b2~dnorm(0, .01)  

    # Hyperpriors 
    tau <- pow(sd, -2) 
    sd ~ dunif(0, 20) 
} 

這只是從我的頭頂。 欲瞭解更多更有見地的建議如何處理缺失值,我會建議支付訪問stats.stackexchange