web-dev-qa-db-ja.com

混合効果モデルで係数とその信頼区間を取得する方法は?

lmおよびglmモデルでは、目的を達成するために関数coefおよびconfintを使用します。

m = lm(resp ~ 0 + var1 + var1:var2) # var1 categorical, var2 continuous
coef(m)
confint(m)

次に、モデルにランダム効果を追加しました-lme4パッケージのlmer関数を使用して混合効果モデルを使用しました。しかし、その後、関数coefconfintはもう機能しません!

> mix1 = lmer(resp ~ 0 + var1 + var1:var2 + (1|var3)) 
                                      # var1, var3 categorical, var2 continuous
> coef(mix1)
Error in coef(mix1) : unable to align random and fixed effects
> confint(mix1)
Error: $ operator not defined for this S4 class

私はグーグルでドキュメントを使用しようとしましたが、結果はありませんでした。私を正しい方向に向けてください。

編集:私はこの質問が https://stats.stackexchange.com/ に適合するかどうかも考えていましたが、統計よりも技術的であると考えているため、ここで最適であると結論付けました(SO)。 。 どう思いますか?

28
TMS

lmerおよびglmer出力の95%信頼限界を計算できる2つの新しいパッケージ lmerTest および lsmeans があります。たぶんあなたはそれらを調べることができますか?そして、 coefplot2 、私もそれができると思うlmerTestおよびlsmeansで使用されるdf近似値...パッケージlsmeans(パッケージeffects()(btwはlmerおよびglmerオブジェクトの95%信頼限界も返しますが、ランダム因子なしでモデルを再フィットすることにより、明らかに正しくありません)。

12
Tom Wenseleers

古き良きlme(nlmeパッケージ)を使用することをお勧めします。これには制約があり、コントラストの制約が必要な場合は、一連の選択肢があります(gmodelsで推定可能、コントラストのコントラスト、multcompのglht)。

L-merにp値とconfintが存在しない理由: http://finzi.psych.upenn.edu/R/Rhelp02a/archive/76742.html を参照してください。

8
Dieter Menne

固定効果の通常の近似を仮定すると(これはconfintも行っていたはずです)、95%の信頼区間を取得できます。

推定+ 1.96 *標準誤差。

以下は、分散成分/変量効果には適用されません。

library("lme4")
mylm <- lmer(Reaction ~ Days + (Days|Subject),  data =sleepstudy)

# standard error of coefficient

days_se <- sqrt(diag(vcov(mylm)))[2]

# estimated coefficient

days_coef <- fixef(mylm)[2]

upperCI <-  days_coef + 1.96*days_se
lowerCI <-  days_coef  - 1.96*days_se
7
julieth

追加された時期はわかりませんが、confint()はlme4に実装されています。たとえば、次の例は機能します。

library(lme4)
m = lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
confint(m)
6
jciloa

係数を見つけるには、単にlme4の要約関数を使用できます

m = lm(resp ~ 0 + var1 + var1:var2) # var1 categorical, var2 continuous
m_summary <- summary(m)

すべての係数を持つには:

m_summary$coefficient

信頼区間が必要な場合は、標準誤差に1.96を掛けます。

CI <- m_summary$coefficient[,"Std. Error"]*1.96
print(CI)
1
denis