R lmerTestと複数のランダム効果のテスト


8

RのlmerTestパッケージ、具体的には「rand」関数がランダム効果のテストをどのように処理するかについて知りたいです。組み込みの「ニンジン」データセットを使用するCRAN のlmerTest pdfの例を考えてみます。

#import lme4 package and lmerTest package
  library(lmerTest)
#lmer model with correlation between intercept and slopes
#in the random part
  m <- lmer(Preference ~ sens2+Homesize+(1+sens2|Consumer), data=carrots)
# table with p-values for the random effects
  rand(m)

モデルは、2つのランダムな分散(切片と「sens2」)を指定します。どちらも「コンシューマー」にネストされており、切片と「sens2」の間の共分散です。lmer実行からのランダムコンポーネントの出力(pdfには含まれていません)は次のとおりです。

Random effects:
Groups   Name        Variance Std.Dev. Corr
Consumer (Intercept) 0.195168 0.44178      
         sens2       0.002779 0.05271  0.18
Residual             1.070441 1.03462      
Number of obs: 1233, groups:  Consumer, 103

これは、モデルの仕様を考えると予想されます。rand関数からの出力は次のとおりです。

Analysis of Random effects Table:
                 Chi.sq Chi.DF p.value  
sens2:Consumer   6.99      2    0.03 *
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

変量効果の表を考えると、lmerTestは "sens2"のランダム勾配を評価していると思いますが、勾配と切片の間の共分散である可能性もあります。ランダムインターセプトのテストは含まれていません。ランダムな切片のみ(ランダムな勾配または共分散なし)で別のモデルを推定し、 "rand"ステートメントから次の結果を得ました。

Analysis of Random effects Table:
           Chi.sq Chi.DF p.value    
Consumer   79.6      1  <2e-16 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

切片に関連するランダムな分散の検定は、ここで提供されます。それで、最初のモデルからのランダムな分散コンポーネントのテストが何をテストしているのか誰かが知っていますか?ランダムなコンポーネントの3つすべてをテストするためにドキュメントから見ることができない方法はありますか?inside-R.orgのrandテストのページには、次のようなわかりにくい説明があります(CRANのPDFにはありません)。

Values
Produces a data frame with tests for the random terms being non-significant.

Note
If the effect has random slopes, then first the correlations between itercept [sic] and slopes are checked for significance

「値」の説明に逆の意味があり、重大な影響のみが報告される可能性はありますか?私は「ステップ」手順を実行しましたが、3つのランダムな分散コンポーネントすべてが実行で考慮されたかどうかは明確ではありませんでした。

この問題についての洞察は大歓迎です。

ジョー

編集:プロットは少し厚くなります。以下を使用して(この優れた投稿に基づく)、「対角線」の共分散構造(ランダムな切片と勾配の間に共分散がない)をチェックすることに私は気づきました。

m2 <- lmer(Preference ~ sens2+Homesize+(1|Consumer)+(0+sens2|Consumer), data=carrots)

VarCorrを使用したランダム分散のlmer出力は次のとおりです。

Groups     Name        Std.Dev.
Consumer   (Intercept) 0.441807
Consumer.1 sens2       0.052719
Residual               1.034618

これは、ランダムな勾配と切片の間の共分散(相関)を正しく省略します。lmerTestから「rand」関数を実行すると、次の出力が生成されます。

Analysis of Random effects Table:
                 Chi.sq Chi.DF p.value    
Consumer         84.4      1  <2e-16 ***
sens2:Consumer    6.3      1    0.01 *  
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

したがって、このモデルの2つの分散コンポーネントをテストします。しかし、ランダムな共分散の最初のモデルに関する問題は残っています。lmerTestテストとは何ですか?

回答:


2

lmerTest::rand()関数に関するドキュメントは間違いなく簡潔です。

(1 | Consumer) H0σα2=0αj[]Nμασα2j=1J


elimRandEffsαj[]α

rand0<rqrand


したがって、「lmerTestが 'sens2'のランダム勾配を評価している[そして]も勾配と切片間の共分散である可能性がある」というあなたの直観はrand、ランダム効果の分散がゼロと大きく異なるかどうかのテストで正しいです。

しかし、「ランダムインターセプトのテストは含まれていません」と言うのは誤りです。最初の仕様のRE:

 (1 + sens2 | Consumer) 

切片と勾配の間の相関がゼロでないと仮定します。つまり、それらは一緒に変化するためrand()、REなしのモデルに対してその仕様をテストします(つまり、従来の回帰に還元します)。

2番目の仕様

 (1  | Consumer) + (0 + sens2 | Consumer) 

変量効果は加法的に分離可能であるため、2行の出力が得られます。ここrandでは、(1番目の出力行で)仕様に対してランダムな勾配を持つ切片をプール/固定したモデルをテストします。2行目のテストは、ランダムな切片を使用してプールされた勾配に対して行われます。したがって、step関数と同様に、rand独立したREを1つずつテストします。

Inside-R.orgのノートにまだ戸惑っています。

  Note
  If the effect has random slopes, then first the correlations between itercept [sic] and slopes are checked for significance

それはパッケージのドキュメントにはないので、どこから来たのか、そのようなテストが出力のどこにあるのかはわかりません。

編集

最初の仕様のように、相関勾配/切片モデルのnullモデルについては間違っていると思います。stepドキュメントは言います:

勾配と切片の間に相関がある場合、ランダムな部分では、簡略化されたモデルには切片のみが含まれます。つまり、初期モデルのランダムな部分が(1 + c | f)の場合、このモデルはLRTを使用して(1 | f)と比較されます。

同じ原理がで機能していると思いrandます。


1

lmerTestドキュメントでは説明しrand()得て

「...カイ二乗統計のベクトルと尤度比検定の対応するp値。」

したがって、私はそれが尤度比検定であると信じています。つまり、単純に、ランダム効果のないモデルとランダム効果のないモデルの比較です。

例に関して、は、Consumer内のrand()ランダムな勾配sens2を持つモデルと、Consumerのランダムな切片を持つモデルを比較します。

2つのモデルを計算します。

m <- lmer(Preference ~ sens2+Homesize+(1+sens2|Consumer), data=carrots, REML = FALSE)
m2 <- lmer(Preference ~ sens2+Homesize+(1|Consumer), data=carrots, REML = FALSE)

の出力を調べますrand(m)

rand(m)
Analysis of Random effects Table:
           Chi.sq Chi.DF p.value  
sens2:Consumer   6.99      2    0.03 *

モデルmとモデルm2を比較する尤度比検定を実行します。

anova(m, m2, test = "Chi")
   Df  AIC    BIC    logLik  deviance  Chisq   Chi Df Pr(>Chisq)  
m   5 3751.4 3777.0 -1870.7   3741.4                           
m2  7 3748.7 3784.5 -1867.4   3734.7   6.6989    2     0.0351 *

実際、anova() Chisqはの値よりもわずかに小さくなりますがrand(m)、それ以外の場合、出力は基本的に同じです。多分私の解釈は不正確ですが、私はいつもこれがrand()関数がその出力を生成した方法だと思っていました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.