混合モデルを適用するこれらの2つのアプローチが異なる結果をもたらすのはなぜですか?


8

同僚のデータを再分析しています。データとRコードはこちら

これは完全にSs内の2x2x2x2x3設計です。予測変数の1つcueは、2つのレベルの変数で、これを差分スコアに縮小すると、理論に関連する値が反映されます。彼女は以前cueに各被験者および状態内の差異スコアに折りたたみ、ANOVAを計算し、MSEを生成して、各状態の平均差異スコアのゼロに対する計画比較に使用できました。あなたは彼女が釣りをしていなかったこと、そして確かに24のテストすべてを行うための良い理論的根拠があったことを私を信頼する必要があります。

代わりに混合効果モデルを使用してデータを表す場合に違いがあるかどうかを確認したいと思いました。コードに示されているように、私は2つのアプローチを採用しました。

方法1-データを2x2x2x2x3設計としてモデル化し、このモデルから事後標本を取得しcue各サンプル内の各条件の差分スコアを計算し、各条件内のキュー差分スコアの95%予測間隔を計算します。

方法2- cue各被験者と条件内の差異スコアに折りたたみ、データを2x2x2x3設計としてモデル化し、このモデルから事後標本を取得し各条件内の手がかり差異スコアの95%予測間隔を計算します。

方法1は方法2よりも広い予測間隔をもたらすように見えます。その結果、「有意性」の基準としてゼロとのオーバーラップを使用すると、方法1ではキューイングスコアの25%のみが「有意」であり、キューイングスコアの75%になります。方法2で得られた有意性のパターンは、方法1で得られたパターンよりも、元のANOVAベースの結果に類似しています。

ここで何が起こっているのでしょうか?

回答:


3

lmerやlmeとこのような違いがあるのは当然のことです。ランダムな切片(例:(1 | id))を使用した単純なモデルでは、ランダムな効果を完全にキャプチャできない場合があります。これが発生する理由を確認するために、微妙な違いを示すために、あなたのデータセットよりもはるかに単純なデータセットを使用してみましょう。私がここにコピーしたスレッドからのデータ「dat」で:

dat <- structure(list(sex = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("f",
"m"), class = "factor"), prevalence = c(0, 0.375, 0.133333333333333,
0.176470588235294, 0.1875, 0, 0, 1, 1, 0.5, 0.6, 0.333333333333333,
0.5, 0, 0.333333333333333, 0, 0.5, 0, 0.625, 0.333333333333333,
0.5, 0, 0.333333333333333, 0.153846153846154, 0.222222222222222,
0.5, 1, 0.5, 0, 0.277777777777778, 0.125, 0, 0, 0.428571428571429,
0.451612903225806, 0.362068965517241), tripsite = structure(c(1L,
1L, 4L, 4L, 14L, 14L, 5L, 5L, 8L, 8L, 15L, 15L, 6L, 6L, 9L, 9L,
11L, 11L, 16L, 16L, 2L, 2L, 7L, 7L, 10L, 10L, 13L, 13L, 17L,
17L, 3L, 3L, 12L, 12L, 18L, 18L), .Label = c("1.2", "4.2", "5.2",
"1.3", "2.3", "3.3", "4.3", "2.4", "3.4", "4.4", "3.5", "5.5",
"4.6", "1.9", "2.9", "3.9", "4.9", "5.9"), class = "factor")), .Names =
c("sex","prevalence", "tripsite"), row.names = c(1L, 2L, 3L, 4L, 9L,
10L, 11L, 12L, 13L, 14L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L,
27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 38L, 39L, 40L,
41L, 42L, 43L, 45L, 46L), class = "data.frame")

対応のあるt検定(または一方向の被験者内/反復測定ANOVAの特殊なケース)は、方法2のようになります。

t0 <- with(dat,t.test(prevalence[sex=="f"],prevalence[sex=="m"],paired=TRUE,var.equal=TRUE))
(fstat0 <- t0$statistic^2)         #0.789627

方法1に対応するlmeバージョンは次のようになります。

a1 <- anova(lme(prevalence~sex,random=~1|tripsite,data=dat,method="REML"))
(fstat1 <- a1[["F-value"]][2])   # 0.8056624

lmerの対応物についても同様です。

a2 <- anova(lmer(prevalence~sex+(1|tripsite), data=dat))
(fstat2 <- a2[["F value"]][2])  # 0.8056624

この単純な例との違いはわずかですが、対応のあるt検定では、因子( "sex")の2つのレベル( "f"と "m")についてはるかに強い仮定があることを示しています。は相関関係にあり、そのような仮定は上記のlme / lmerモデルにはありません。このような仮定の違いは、あなたの場合、2つの方法の間にも存在します。

違いを調整するために、lme / lmerでランダムな勾配(または対称行列または複合対称性)で「dat」のモデリングを続行できます。

a3 <- anova(lme(prevalence~sex,random=~sex-1|tripsite,data=dat,method="REML"))
(fstat3 <- a3[["F-value"]][2]) # 0.789627

a31 <- anova(lme(prevalence~sex,random=list(tripsite=pdCompSymm(~sex-1)),data=dat,method="REML")))
(fstat31 <- a31[["F-value"]][2]) # 0.789627

a4 <- anova(lmer(prevalence~sex+(sex-1|tripsite), data=dat))
(fstat4 <- a4[["F value"]][2]) # 0.789627

ただし、ケースに複数の要素がある場合、不可能ではないにしても、lme / lmerを使用すると、複数のランダム勾配(または他のランダム効果構造の仕様)が扱いにくくなる可能性があります。


よかった。分析の前に差分スコアに合図するために折りたたむことは、参加者ごとに合図効果を変化させることを許可することと同等であることがわかりました。
Mike Lawrence、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.