線性模型的 BLUE(OLS 解決方案)以外的其他無偏估計量
對於線性模型,OLS 解決方案為參數提供了最佳的線性無偏估計器。
當然,我們可以用偏差換取較低的方差,例如嶺回歸。但我的問題是關於沒有偏見。是否還有其他一些比較常用的估計量,它們是無偏但比 OLS 估計參數具有更高方差的?
如果我有一個龐大的數據集,我當然可以對其進行二次抽樣並用更少的數據估計參數,並增加方差。我認為這可能是有用的。
這更像是一個修辭問題,因為當我閱讀了 BLUE 估計器時,沒有提供更糟糕的選擇。我想提供更差的替代方案也可以幫助人們更好地理解 BLUE 估計器的力量。
想到的一個例子是一些 GLS 估計器,它對觀察結果進行不同的加權,儘管在滿足高斯-馬爾可夫假設時這不是必需的(統計學家可能不知道這種情況,因此仍然適用 GLS)。
考慮回歸的情況 $ y_i $ , $ i=1,\ldots,n $ 用於說明的常數(很容易推廣到一般 GLS 估計器)。這裡, $ {y_i} $ 假定為來自具有均值的總體的隨機樣本 $ \mu $ 和方差 $ \sigma^2 $ .
那麼,我們知道OLS就是 $ \hat\beta=\bar y $ ,樣本均值。強調每個觀察值都用權重加權的點 $ 1/n $ , 寫成 $$ \hat\beta=\sum_{i=1}^n\frac{1}{n}y_i. $$ 眾所周知, $ Var(\hat\beta)=\sigma^2/n $ .
現在,考慮另一個可以寫成的估計量 $$ \tilde\beta=\sum_{i=1}^nw_iy_i, $$ 其中權重是這樣的 $ \sum_iw_i=1 $ . 這確保了估計量是無偏的,因為 $$ E\left(\sum_{i=1}^nw_iy_i\right)=\sum_{i=1}^nw_iE(y_i)=\sum_{i=1}^nw_i\mu=\mu. $$ 它的方差將超過 OLS,除非 $ w_i=1/n $ 對所有人 $ i $ (在這種情況下,它當然會簡化為 OLS),例如可以通過拉格朗日表示:
$$ \begin{align*} L&=V(\tilde\beta)-\lambda\left(\sum_iw_i-1\right)\ &=\sum_iw_i^2\sigma^2-\lambda\left(\sum_iw_i-1\right), \end{align*} $$ 帶偏導數 $ w_i $ 設置為零等於 $ 2\sigma^2w_i-\lambda=0 $ 對所有人 $ i $ , 和 $ \partial L/\partial\lambda=0 $ 等於 $ \sum_iw_i-1=0 $ . 求解第一組導數 $ \lambda $ 並將它們等同起來產生 $ w_i=w_j $ ,這意味著 $ w_i=1/n $ 通過要求權重總和為 1 來最小化方差。
這是一個小模擬的圖形說明,使用以下代碼創建:
編輯:響應@kjetilbhalvorsen 和@RichardHardy 的建議,我還包括 $ y_i $ ,位置參數 pf at(4) 分佈的 MLE(我收到警告說
In log(s) : NaNs produced
我沒有進一步檢查)和圖中的 Huber 估計量。我們觀察到所有估計器似乎都是無偏的。然而,使用權重的估計器 $ w_i=(1\pm\epsilon)/n $ 因為樣本的任何一半的權重變化更大,中位數、t 分佈的 MLE 和 Huber 的估計量(後者只是稍微如此,另見此處)。
BLUE 屬性並沒有立即暗示後三個 OLS 解決方案的表現優於(至少對我而言不是),因為它們是否是線性估計器並不明顯(我也不知道 MLE 和 Huber 是否無偏)。
library(MASS) n <- 100 reps <- 1e6 epsilon <- 0.5 w <- c(rep((1+epsilon)/n,n/2),rep((1-epsilon)/n,n/2)) ols <- weightedestimator <- lad <- mle.t4 <- huberest <- rep(NA,reps) for (i in 1:reps) { y <- rnorm(n) ols[i] <- mean(y) weightedestimator[i] <- crossprod(w,y) lad[i] <- median(y) mle.t4[i] <- fitdistr(y, "t", df=4)$estimate[1] huberest[i] <- huber(y)$mu } plot(density(ols), col="purple", lwd=3, main="Kernel-estimate of density of OLS and other estimators",xlab="") lines(density(weightedestimator), col="lightblue2", lwd=3) lines(density(lad), col="salmon", lwd=3) lines(density(mle.t4), col="green", lwd=3) lines(density(huberest), col="#949413", lwd=3) abline(v=0,lty=2) legend('topright', c("OLS","weighted","median", "MLE t, 4 df", "Huber"), col=c("purple","lightblue","salmon","green", "#949413"), lwd=3)