lm
およびglm
モデルでは、目的を達成するために関数coef
およびconfint
を使用します。
m = lm(resp ~ 0 + var1 + var1:var2) # var1 categorical, var2 continuous
coef(m)
confint(m)
次に、モデルにランダム効果を追加しました-lme4パッケージのlmer
関数を使用して混合効果モデルを使用しました。しかし、その後、関数coef
とconfint
はもう機能しません!
> 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)。 。 どう思いますか?
古き良きlme(nlmeパッケージ)を使用することをお勧めします。これには制約があり、コントラストの制約が必要な場合は、一連の選択肢があります(gmodelsで推定可能、コントラストのコントラスト、multcompのglht)。
L-merにp値とconfintが存在しない理由: http://finzi.psych.upenn.edu/R/Rhelp02a/archive/76742.html を参照してください。
固定効果の通常の近似を仮定すると(これは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
追加された時期はわかりませんが、confint()はlme4に実装されています。たとえば、次の例は機能します。
library(lme4)
m = lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
confint(m)
係数を見つけるには、単に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)