クロスランダム効果とネストランダム効果:lme4でどのように違い、どのように正しく指定されていますか?


88

ネストされたランダム効果とクロスされたランダム効果を理解した方法は次のとおりです。

ネストされたランダム効果は、下位レベルの要因が上位レベルの要因の特定のレベル内にのみ現れる場合に発生します。

  • たとえば、ある時点でのクラス内の生徒。
  • ではlme4、私たちは2つの等価のいずれかの方法で、ネストされたデータのランダム効果を表すことを考えました:

    (1|class/pupil)  # or  
    (1|class) + (1|class:pupil)
    

交差ランダム効果とは、特定の因子が上位レベル因子の複数のレベルに現れることを意味します。

  • たとえば、数年にわたって測定されたクラス内に生徒がいます。
  • ではlme4、次のように記述します。

    (1|class) + (1|pupil)

ただし、特定のネストされたデータセットを見ると、両方のモデル式で同じ結果が得られていることに気付きました(以下のコードと出力)。ただし、2つの式が異なる結果を生成する他のデータセットを見てきました。ここで何が起こっているのでしょうか?

mydata <- read.csv("https://web.archive.org/web/20160624172041if_/http://www-personal.umich.edu/~bwest/classroom.csv")
# (the data is no longer at `http://www-personal.umich.edu/~bwest/classroom.csv`
# hence the link to web.archive.org)
# Crossed version: 
Linear mixed model fit by REML ['lmerMod']
Formula: mathgain ~ (1 | schoolid) + (1 | classid)
   Data: mydata

REML criterion at convergence: 11768.8

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.6441 -0.5984 -0.0336  0.5334  5.6335 

Random effects:
 Groups   Name        Variance Std.Dev.
 classid  (Intercept)   99.23   9.961  
 schoolid (Intercept)   77.49   8.803  
 Residual             1028.23  32.066  
Number of obs: 1190, groups:  classid, 312; schoolid, 107


# Nested version:
Formula: mathgain ~ (1 | schoolid/classid)

REML criterion at convergence: 11768.8

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.6441 -0.5984 -0.0336  0.5334  5.6335 

Random effects:
 Groups           Name        Variance Std.Dev.
 classid:schoolid (Intercept)   99.23   9.961  
 schoolid         (Intercept)   77.49   8.803  
 Residual                     1028.23  32.066  
Number of obs: 1190, groups:  classid:schoolid, 312; schoolid, 107

回答:


148

(これはかなり長い答えです。最後に要約があります)

説明したシナリオで、入れ子になったランダム効果と交差したランダム効果が何であるかを理解するのは間違っていません。ただし、交差ランダム効果の定義は少し狭いです。交差したランダム効果のより一般的な定義は、ネストされていないことです。これについては、この回答の最後で説明しますが、回答の大部分は、学校内の教室について、あなたが提示したシナリオに焦点を当てます。

最初の注意事項:

ネスティングはデータの特性であり、モデルではなく実験設計です。

また、

ネストされたデータは、少なくとも2つの異なる方法でエンコードできます。これは、発見した問題の核心です。

あなたの例のデータセットはかなり大きいので、インターネットからの別の学校の例を使用して問題を説明します。ただし、最初に、次の過度に単純化された例を検討してください。

ここに画像の説明を入力してください

ここでは、学校でネストされたクラスがあります。これはよく知られたシナリオです。ここで重要な点は、各学校間では、クラスがネストされている場合は区別されますが、同じ識別子を持っているということですClass1で表示されSchool1School2School3。ただし、データがネストされている場合、Class1in School1はin およびと同じ測定単位ではありません。それらが同じであれば、次のような状況になります。Class1School2School3

ここに画像の説明を入力してください

つまり、すべてのクラスはすべての学校に属します。前者はネストされたデザインで、後者は交差デザイン(複数のメンバーシップと呼ばれることもあります)であり、以下をlme4使用してこれらを定式化します。

(1|School/Class) または同等に (1|School) + (1|Class:School)

そして

(1|School) + (1|Class)

それぞれ。以下に示すように、ランダム効果の入れ子または交差があるかどうかはあいまいであるため、これらのモデルは異なる結果を生成するため、モデルを正しく指定することが非常に重要です。さらに、データを調べるだけでは、ランダム効果が入れ子になっているか交差しているかを知ることはできません。これは、データ実験計画の知識がなければ決定できません。

しかし、まず、クラス変数が学校全体で一意にコーディングされている場合を考えてみましょう。

ここに画像の説明を入力してください

ネストまたはクロスに関する曖昧さはなくなりました。ネストは明示的です。私たちは今、私たちは6校(ラベル持っているR、の例でこれを見てみましょうI- VI)と(ラベルされた各学校内の4つのクラスaにはd):

> dt <- read.table("http://bayes.acs.unt.edu:8083/BayesContent/class/Jon/R_SC/Module9/lmm.data.txt",
                   header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)
> # data was previously publicly available from
> # http://researchsupport.unt.edu/class/Jon/R_SC/Module9/lmm.data.txt
> # but the link is now broken
> xtabs(~ school + class, dt)

        class
school  a  b  c  d
   I   50 50 50 50
   II  50 50 50 50
   III 50 50 50 50
   IV  50 50 50 50
   V   50 50 50 50
   VI  50 50 50 50

このクロス集計から、すべてのクラスIDがすべての学校に表示され、クロスランダム効果の定義を満たすことがわかります(この場合、すべてのクラスがすべての学校で発生するため、部分的にクロスランダム効果ではなく、完全にあります)。したがって、これは上の最初の図で見たのと同じ状況です。ただし、データが実際にネストされており、交差していない場合は、明示的に伝える必要があります。lme4

> m0 <- lmer(extro ~ open + agree + social + (1 | school/class), data = dt)
> summary(m0)

Random effects:
 Groups       Name        Variance Std.Dev.
 class:school (Intercept)  8.2043  2.8643  
 school       (Intercept) 93.8421  9.6872  
 Residual                  0.9684  0.9841  
Number of obs: 1200, groups:  class:school, 24; school, 6

Fixed effects:
              Estimate Std. Error t value
(Intercept) 60.2378227  4.0117909  15.015
open         0.0061065  0.0049636   1.230
agree       -0.0076659  0.0056986  -1.345
social       0.0005404  0.0018524   0.292

> m1 <- lmer(extro ~ open + agree + social + (1 | school) + (1 |class), data = dt)
summary(m1)

Random effects:
 Groups   Name        Variance Std.Dev.
 school   (Intercept) 95.887   9.792   
 class    (Intercept)  5.790   2.406   
 Residual              2.787   1.669   
Number of obs: 1200, groups:  school, 6; class, 4

Fixed effects:
             Estimate Std. Error t value
(Intercept) 60.198841   4.212974  14.289
open         0.010834   0.008349   1.298
agree       -0.005420   0.009605  -0.564
social      -0.001762   0.003107  -0.567

予想どおり、m0ネストされたモデルであるのに対してm1交差モデルであるため、結果は異なります。

さて、クラス識別子に新しい変数を導入すると:

> dt$classID <- paste(dt$school, dt$class, sep=".")
> xtabs(~ school + classID, dt)

      classID
school I.a I.b I.c I.d II.a II.b II.c II.d III.a III.b III.c III.d IV.a IV.b
   I    50  50  50  50    0    0    0    0     0     0     0     0    0    0
   II    0   0   0   0   50   50   50   50     0     0     0     0    0    0
   III   0   0   0   0    0    0    0    0    50    50    50    50    0    0
   IV    0   0   0   0    0    0    0    0     0     0     0     0   50   50
   V     0   0   0   0    0    0    0    0     0     0     0     0    0    0
   VI    0   0   0   0    0    0    0    0     0     0     0     0    0    0

      classID
school IV.c IV.d V.a V.b V.c V.d VI.a VI.b VI.c VI.d
   I      0    0   0   0   0   0    0    0    0    0
   II     0    0   0   0   0   0    0    0    0    0
   III    0    0   0   0   0   0    0    0    0    0
   IV    50   50   0   0   0   0    0    0    0    0
   V      0    0  50  50  50  50    0    0    0    0
   VI     0    0   0   0   0   0   50   50   50   50

クロス集計は、ネストの定義に従って、クラスの各レベルが学校の1つのレベルでのみ発生することを示しています。これはデータにも当てはまりますが、データが非常にまばらであるため、データでそれを示すことは困難です。両方のモデル定式化により、同じ出力(m0上記のネストされたモデルの出力)が生成されます。

> m2 <- lmer(extro ~ open + agree + social + (1 | school/classID), data = dt)
> summary(m2)

Random effects:
 Groups         Name        Variance Std.Dev.
 classID:school (Intercept)  8.2043  2.8643  
 school         (Intercept) 93.8419  9.6872  
 Residual                    0.9684  0.9841  
Number of obs: 1200, groups:  classID:school, 24; school, 6

Fixed effects:
              Estimate Std. Error t value
(Intercept) 60.2378227  4.0117882  15.015
open         0.0061065  0.0049636   1.230
agree       -0.0076659  0.0056986  -1.345
social       0.0005404  0.0018524   0.292

> m3 <- lmer(extro ~ open + agree + social + (1 | school) + (1 |classID), data = dt)
> summary(m3)

Random effects:
 Groups   Name        Variance Std.Dev.
 classID  (Intercept)  8.2043  2.8643  
 school   (Intercept) 93.8419  9.6872  
 Residual              0.9684  0.9841  
Number of obs: 1200, groups:  classID, 24; school, 6

Fixed effects:
              Estimate Std. Error t value
(Intercept) 60.2378227  4.0117882  15.015
open         0.0061065  0.0049636   1.230
agree       -0.0076659  0.0056986  -1.345
social       0.0005404  0.0018524   0.292

交差したランダム効果は同じ要因内で発生する必要はないことに注意する価値があります。上記では、交差は完全に学校内で行われました。しかし、これはそうである必要はなく、非常に頻繁にそうではありません。たとえば、学校のシナリオに固執すると、学校内のクラスの代わりに学校内に生徒がおり、生徒が登録されている医師にも興味がある場合、医師内に生徒のネストもあります。医師内に学校がネストすることはありません。その逆もまた同様です。これは交差したランダム効果の例でもあり、学校と医師が交差していると言います。交差したランダム効果が発生する同様のシナリオは、個々の観測値が2つの要因に同時に入れ子になっている場合です。これは、いわゆる反復測定で一般的に発生します件名データ。通常、各被験者は異なるアイテムで/上で複数回測定/テストされ、これらの同じアイテムは異なる被験者によって測定/テストされます。したがって、観測はサブジェクト内およびアイテム内にクラスター化されますが、アイテムはサブジェクト内またはその逆にネストされません。繰り返しますが、主題とアイテムが交差していると言います。

要約:TL; DR

交差するランダム効果と入れ子になったランダム効果の違いは、ある因子(グループ化変数)が別の因子(グループ化変数)の特定のレベル内にのみ現れる場合に、ネストされたランダム効果が発生することです。これはで指定されますlme4

(1|group1/group2)

どこgroup2にネストされていますgroup1

交差ランダム効果は単純です:ネストされていません。これは、1つの因子が他の因子の両方で別々にネストされている3つ以上のグループ化変数(因子)、または2つの因子内で個々の観測が別々にネストされている2つ以上の因子で発生します。これらはで指定されますlme4

(1|group1) + (1|group2)


16
+6、これは本当にいい答えです。数日中に通知してください。賞金をお支払いします。
グング

2
素晴らしい説明。2つの要因(ネストされている可能性があります)に固有のレベルを作成する、おそらく3番目のタイプの実験デザインの名前はありますか?単一レベルの要因を作成しましたinteraction(city, dealer)か?
AdamO 16

2
+6、これは非常に優れた回答であり、@ gungの報奨金を別の報奨金で補うことができると感じました。ところで、私はおそらく非常に基本的な混乱(ここに私のQです)に苦労しており、あなたの助けに非常に感謝します。
アメーバ

1
@RobertLong分割プロット(反復測定)設計は、あなたの答えに従って実際にはネストされていない場合でも、「ネスト」と呼ばれることが多いようです。この用語の不一致は、おそらくリンクされた質問での混乱の原因となっています。ここかそこかのいずれかでそれを明確にできれば素晴らしいでしょう。私は、分割プロットにネストされているものについて、別の(R指向ではない)用語の質問を投稿すべきかどうかも考えています。
アメーバ

2
以前のコメントに更新します。実験デザインに関する2つの古く権威ある本をチェックしました:Maxwell and Delaney、1990、Designing Experiments and Analyzing DataとMontgomery、1976、Design and Analysis of Experiments。どちらもネストされた設計について話し、両方ともスプリットプロットとも呼ばれる反復測定について話します。どちらも、使用しているという意味でのみ「ネスト」という単語を使用し、繰り返しメジャーをネストとして参照することはありません。結局、用語の違いはないと思います。
アメーバ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.