lmerから自由度を取得する


11

lmerモデルを次のように適合させました(ただし、出力は構成されています)。

Random effects:
 Groups        Name        Std.Dev.
 day:sample (Intercept)    0.09
 sample        (Intercept) 0.42
 Residual                  0.023 

次の式を使用して、各効果の信頼区間を作成したいと思います。

(n1)s2χα/2,n12,(n1)s2χ1α/2,n12

自由度を便利に取得する方法はありますか?


1
lmerTestをチェックしたいと思います。固定効果の混合効果モデル(例:Satterthwaite、Kenward-Rogerなど)でdfを近似するためのいくつかの近似があります。あなたの場合、あなたはあなたの人生を過度に複雑にしているようです。各効果はガウスであると想定します。標準偏差を使用して、選択した信頼区間を取得します。
usεr11852

3
@usεr11852混合効果モデルでは、各効果はガウス分布であると想定しますが、パラメーターは平均ではなくガウス分布の分散です。したがって、その推定量の分布は非常に歪んでおり、通常の±〜2標準偏差の信頼区間は適切ではありません。
Karl Ove Hufthammer 2015

1
@KarlOveHufthammer:これを指摘するのは正しいことです。あなた(そしておそらくOP)の意味がわかります。彼が自由度について述べたとき、彼は変量効果の平均および/または実現について心配していると思いました。
usεr11852

混合モデルの自由度は「問題あり」です。stat.ethz.ch / pipermail / r
Tim

回答:


17

代わりに、プロファイルの尤度信頼区間を作成します。これらは信頼性が高く、「lme4」パッケージを使用して非常に簡単に計算できます。例:

> library(lme4)
> fm = lmer(Reaction ~ Days + (Days | Subject),
            data=sleepstudy)
> summary(fm)
[]
Random effects:
 Groups   Name        Variance Std.Dev. Corr
 Subject  (Intercept) 612.09   24.740       
          Days         35.07    5.922   0.07
 Residual             654.94   25.592       

これで、次のconfint()関数を使用してプロファイル尤度信頼区間を計算できます。

> confint(fm, oldNames=FALSE)
Computing profile confidence intervals ...
                               2.5 %  97.5 %
sd_(Intercept)|Subject        14.381  37.716
cor_Days.(Intercept)|Subject  -0.482   0.685
sd_Days|Subject                3.801   8.753
sigma                         22.898  28.858
(Intercept)                  237.681 265.130
Days                           7.359  13.576

パラメトリックブートストラップを使用して信頼区間を計算することもできます。R構文は次のとおりです(parm引数を使用して、信頼区間が必要なパラメーターを制限します)。

> confint(fm, method="boot", nsim=1000, parm=1:3)
Computing bootstrap confidence intervals ...
                              2.5 % 97.5 %
sd_(Intercept)|Subject       11.886 35.390
cor_Days.(Intercept)|Subject -0.504  0.929
sd_Days|Subject               3.347  8.283

結果は当然、実行ごとに多少異なります。nsimこの変動を減らすために増やすことができますが、これにより信頼区間の推定にかかる時間も長くなります。


1
良い答え(+1)。この場合、パラメトリックブートストラップからCIを取得できることにも言及します。このスレッドには、この問題に関する非常に興味深い議論が含まれています。
usεr11852

@usεr11852提案をありがとう。これで、パラメトリックブートストラップを使用した例を追加しました。
Karl Ove Hufthammer

6

混合モデルの自由度は「問題あり」です。詳細については、lmer、p値、および Douglas Batesによるすべての投稿を確認してください。また、r-sig-mixed-models FAQは、面倒な理由を要約しています。

  • 一般に、分母の自由度の選択に対して、計算された二乗和の比率のヌル分布が実際にF分布であることは明らかではありません。これは、古典的な実験計画(入れ子、分割プロット、ランダムブロックなど)に対応する特殊なケースには当てはまりますが、より複雑な設計(不均衡、GLMM、時間的または空間的相関など)には明らかに当てはまりません。
  • 提案されている単純な自由度のレシピ(ハットマトリックスのトレースなど)ごとに、レシピがひどく失敗するかなり単純な反例が少なくとも1つあるようです。
  • 提案されている他のdf近似スキーム(Satterthwaite、Kenward-Rogerなど)は、明らかにlme4 / nlmeでの実装がかなり難しい
    (...)
  • lme4の主要な作成者は、近似のnull分布を参照するテストの一般的なアプローチの有用性を確信していないため、および関連機能を(パッチまたは追加として)有効にするためにコードを掘り下げる他の人のオーバーヘッドのため-on)、この状況は将来変更される可能性は低いです。

FAQにはいくつかの選択肢もあります

  • GLMMにはMASS :: glmmPQL(SASの「内部-外部」ルールとほぼ同等の古いnlmeルールを使用)、またはLMMには(n)lmeを使用
  • 標準規則(標準設計の場合)から分母dfを推測し、それらをtまたはF検定に適用する
  • lmeでモデルを実行し(可能な場合)、tまたはFテストに適用される、そこに報告された分母dfを使用します(これは、単純/直交設計の標準的な回答に対応する単純な「内部-外部」規則に従います)。lmeが使用するルールの明示的な仕様については、Pinheiro and Batesの91ページを参照してください。このページはGoogleブックスで利用できます
  • SAS、Genstat(AS-REML)、Stataを使用しますか?
  • グループの数が大きい場合(> 45?大きさが「ほぼ無限」である場合の経験則)は、[AngristとPischkeの場合を含めて、無限分母df(つまり、t / FではなくZ /カイ2乗検定)と仮定されています。 「ほとんど無害な計量経済学」]、42(ダグラス・アダムスに敬意を表して)

しかし、信頼区間に興味がある場合は、たとえばKarl Ove Hufthammerが彼の回答で提案したブートストラップ、またはFAQで提案されたものに基づく、より良いアプローチがあります。


"(標準設計の)標準ルールから分母dfを推測し、それらをtまたはFテストに適用します"; 誰かがそれについて詳しく説明してくれると本当に助かります。たとえば、入れ子になったデザイン(例:患者vsコントロール、被験者ごとにいくつかのサンプル、被験者IDは変量効果)の場合、そのようなデザインの自由度はどのように取得できますか?
Arnaud A
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.