R

lmer 模型使用哪種多重比較方法:lsmeans 還是 glht?

  • March 31, 2016

我正在使用混合效應模型分析數據集,該模型具有一個固定效應(條件)和兩個隨機效應(參與者由於內部設計和配對)。該模型是使用lme4包生成的:exp.model<-lmer(outcome~condition+(1|participant)+(1|pair),data=exp).

接下來,我對沒有固定效應(條件)的模型進行了該模型的似然比檢驗,並有顯著差異。我的數據集中有 3 個條件,所以我想進行多重比較,但我不確定使用哪種方法。我在 CrossValidated 和其他論壇上發現了許多類似的問題,但我仍然很困惑。

據我所見,人們建議使用

**1.**包lsmeans-lsmeans(exp.model,pairwise~condition)它給了我以下輸出:

condition     lsmean         SE    df  lower.CL  upper.CL
Condition1 0.6538060 0.03272705 47.98 0.5880030 0.7196089
Condition2 0.7027413 0.03272705 47.98 0.6369384 0.7685443
Condition3 0.7580522 0.03272705 47.98 0.6922493 0.8238552

Confidence level used: 0.95 

$contrasts
contrast                   estimate         SE    df t.ratio p.value
Condition1 - Condition2 -0.04893538 0.03813262 62.07  -1.283  0.4099
Condition1 - Condition3 -0.10424628 0.03813262 62.07  -2.734  0.0219
Condition2 - Condition3 -0.05531090 0.03813262 62.07  -1.450  0.3217

P value adjustment: tukey method for comparing a family of 3 estimates 

**2.**包的multcomp兩種不同方式——使用mcp glht(exp.model,mcp(condition="Tukey"))導致

    Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Tukey Contrasts


Fit: lmer(formula = outcome ~ condition + (1 | participant) + (1 | pair), 
   data = exp, REML = FALSE)

Linear Hypotheses:
                            Estimate Std. Error z value Pr(>|z|)  
Condition2 - Condition1 == 0  0.04894    0.03749   1.305    0.392  
Condition3 - Condition1 == 0  0.10425    0.03749   2.781    0.015 *
Condition3 - Condition2 == 0  0.05531    0.03749   1.475    0.303  
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)

並使用lsm glht(exp.model,lsm(pairwise~condition))導致

Note: df set to 62

    Simultaneous Tests for General Linear Hypotheses

Fit: lmer(formula = outcome ~ condition + (1 | participant) + (1 | pair), 
   data = exp, REML = FALSE)

Linear Hypotheses:
                            Estimate Std. Error t value Pr(>|t|)  
Condition1 - Condition2 == 0 -0.04894    0.03749  -1.305   0.3977  
Condition1 - Condition3 == 0 -0.10425    0.03749  -2.781   0.0195 *
Condition2 - Condition3 == 0 -0.05531    0.03749  -1.475   0.3098  
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)

如您所見,這些方法給出了不同的結果。這是我第一次使用 R 和 stats,所以可能出了點問題,但我不知道在哪裡。我的問題是:

提出的方法之間有什麼區別?我在一個相關問題的答案中讀到它是關於自由度(lsmeansvs. glht)的。 是否有一些規則或建議何時使用哪一種,即方法 1 適合這種類型的數據集/模型等? **我應該報告哪個結果?**在不知道更好的情況下,我可能只是去報告我得到的最高 p 值以確保安全,但如果有更好的理由會很好。謝謝

不是一個完整的答案…

與其他兩種方法的區別在於glht(myfit, mcp(myfactor="Tukey")),這種方法使用“z”統計量(正態分佈),而其他方法使用“t”統計量(學生分佈)。“z”統計量與具有無限自由度的“t”統計量相同。這種方法是一種漸近方法,它提供的 p 值和置信區間比其他方法更小。如果數據集很小,p 值可能太小,置信區間可能太短。

當我運行時lsmeans(myfit, pairwise~myfactor)出現以下消息:

Loading required namespace: pbkrtest

這意味著lsmeans(對於lmer模型)使用pbkrtest實現 Kenward & Rogers 方法的包來獲取“t”統計量的自由度。這種方法旨在提供比漸近方法更好的 p 值和置信區間(自由度很大時沒有區別)。

現在,關於 和 之間的區別lsmeans(myfit, pairwise~myfactor)$contrastsglht(myfit, lsm(pairwise~factor)我剛剛做了一些測試,我的觀察結果如下:

  • lsmlsmeans包和multcomp包之間的接口(參見?lsm
  • 對於平衡的設計,結果之間沒有區別
  • 對於不平衡的設計,我觀察到結果之間的微小差異(標準誤差和 t 比率)

不幸的是,我不知道這些差異的原因是什麼。看起來lsm調用lsmeans只是為了得到線性假設矩陣和自由度,但lsmeans使用不同的方法來計算標準誤差。

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

comments powered by Disqus