R

為什麼隨機效應的估計方差不等於其 BLUP 估計的方差?[複製]

  • April 24, 2017

我正在從這裡學習混合效果模型。

我建立了一個簡化模型並嘗試提取來自線性混合效應模型的向量

然後計算方差. (這是一個玩具模型,我們對截距只有隨機影響,所以是向量而不是矩陣)

為什麼它不等於模型summary?(模型摘要顯示 DID 截距方差為,但方差為是)。我在這裡缺少什麼?

> library(lme4)
> dat <-read.csv("http://stats.idre.ucla.edu/stat/data/hdp.csv")
> dat=dat[1:100,c("Age","Sex", "DID","mobility")]
> m <- lmer(mobility ~ 1 + Age + Sex +  (1 | DID), data = dat)
> summary(m)

Linear mixed model fit by REML ['lmerMod']
Formula: mobility ~ 1 + Age + Sex + (1 | DID)
  Data: dat

REML criterion at convergence: 228.5

Scaled residuals: 
   Min      1Q  Median      3Q     Max 
-3.3152 -0.4710 -0.0252  0.9330  1.7854 

Random effects:
Groups   Name        Variance Std.Dev.
DID      (Intercept) 1.1480   1.0714  
Residual             0.4532   0.6732  
Number of obs: 100, groups:  DID, 5

Fixed effects:
           Estimate Std. Error t value
(Intercept)  3.28826    0.76484   4.299
Age          0.01235    0.01178   1.048
Sexmale     -0.09126    0.14836  -0.615

Correlation of Fixed Effects:
       (Intr) Age   
Age     -0.766       
Sexmale -0.097  0.030

> var(as.numeric(getME(m, "b")))
[1] 1.102682

您檢查的var(as.numeric(getME(m, "b")))是隨機效應的條件模式的方差。條件模式是隨機效應的最佳線性無偏預測因子 (BLUP),計算為隨機效應的相對協方差因子的乘積和在異形偏差優化過程中使用的球形隨機效應變量的條件模式。(即 all.equal( var( as.numeric(getME(m, "b"))), var( as.numeric( crossprod(getME(m, "Lambdat"), getME(m, "u"))) ) ) # TRUE 1.10...);見這裡_ 10.

這裡要記住的關鍵是優化。那是因為在優化期間我們針對 () 是剩餘偏差(有關此問題的詳細信息,請參閱此優秀線程)與 REML/ML 隨機效應偏差的比率;正式將隨機效應的相對 Cholesky 因子放入. 因此,如果我們將估計的誤差標準差相乘和我們將得到方差(即。all.equal( (sigma(m) * m@theta)^2, summary(m)$varcor$DID[1] ) #TRUE 1.14...這就是不平等是如何實現的。但是為什麼這些不一樣呢?

這又回到了 BLUP 和 REML 估計的問題;它們不能保證是相同的(貓王的回答也解釋了這一點 - 是的,如果你還沒有投票,請投票;gung 的回答非常相關)。還要注意,正是因為我們在標準差平面上工作,所以在檢查方差時這些差異會被放大。

引用自:https://stats.stackexchange.com/questions/275620

comments powered by Disqus