2つの被験者内因子について、Rのlme / lmerを使用した反復測定ANOVA


19

パッケージから使用lmeして、反復測定ANOVAのnlme結果を複製しようとしていますaov。これは、単一因子の反復測定実験と、被験者間因子と被験者内因子を1つずつ含む2因子実験で行いましたが、2因子を含む2因子実験ではうまくいきません。 -対象因子。

以下に例を示します。AおよびBは固定効果因子でsubjectあり、変量効果因子です。

set.seed(1)
d <- data.frame(
    Y = rnorm(48),
    subject = factor(rep(1:12, 4)),
    A = factor(rep(1:2, each=24)),
    B = factor(rep(rep(1:2, each=12), 2)))

summary(aov(Y ~ A*B + Error(subject/(A*B)), data=d))  # Standard repeated measures ANOVA

library(nlme)
# Attempts:
anova(lme(Y ~ A*B, data=d, random = ~ 1 | subject))  # not same as above
anova(lme(Y ~ A*B, data=d, random = ~ 1 | subject/(A+B)))  # gives error

Pinheiro and Batesの本ではこの説明を見ることができませんでしたが、見落としていたかもしれません。

回答:


15

あなたは何でフィッティングしているaovストリッププロットと呼ばれ、それがで収まるようにトリッキーだlmeためsubject:Asubject:Bランダム効果が交差しています。

最初の試行はに相当しますがaov(Y ~ A*B + Error(subject), data=d)、これにはすべてのランダム効果が含まれていません。2回目の試みは正しい考えですが、lmeを使用した交差ランダム効果の構文は非常に注意が必要です。

パッケージlmeから使用nlmeすると、コードは次のようになります

lme(Y ~ A*B, random=list(subject=pdBlocked(list(~1, pdIdent(~A-1), pdIdent(~B-1)))), data=d)

パッケージlmerから使用lme4すると、コードは次のようになります

lmer(Y ~ A*B + (1|subject) + (1|A:subject) + (1|B:subject), data=d)    

R-helpのこれらのスレッドは役に立つかもしれません(そして、信用を与えるために、そこnlmeからコードを入手しました)。

http://www.biostat.wustl.edu/archives/html/s-news/2005-01/msg00091.html

http://permalink.gmane.org/gmane.comp.lang.r.lme4.devel/3328

http://www.mail-archive.com/r-help@stat.math.ethz.ch/msg10843.html

この最後のリンクは、Pinheiro / Batesのp.165を参照しています。それも役立つかもしれません。

編集:また、お持ちのデータセットでは、分散成分の一部が負であり、lmeでのランダム効果の使用が許可されていないため、結果が異なることに注意してください。8のシードを使用して、すべての正の分散成分を含むデータセットを作成できます。結果は一致します。詳細については、この回答を参照してください。

また、注目すべきことlmeからは、nlme正確に自由の分母度を計算していないので、F-統計はp値同意なく、そしてlmerからlme4、それはアンバランス交差ランダム効果の存在下で非常にトリッキーなので、あまりにもしようとしない、とないかもしれないん賢明なことでも しかし、それは私がここに入りたい以上のものです。


アーロン、あなたのlmerコードが正しいとは思わない。OP aov呼び出しは、標準の反復測定設計であり、lmerを使用して分析しlmer(Y~A*B+(1|subject))ます。(ただし、Ss全体の効果の分散と相関の推定を可能にするより複雑なモデルについては、この回答も参照してください:stats.stackexchange.com/questions/13166/rs-lmer-cheat-sheet/…
Mike Lawrence

4
OPのaov呼び出しには、3つのランダムな効果があります。lmer上記のコードでそれを複製するのは正しいです。あなたのlmerコードは、唯一のランダムな効果があります。どちらが正しいかは、コンテキストによって異なります。
アーロン-モニカの復活

また、リンクした回答には、交差したランダム効果の例が含まれていないことに注意してください。
アーロン-モニカーの復活

6

それがあなたがしようとしているすべてである場合、あなたの最初の試みは正しい答えです。nlme()はコンポーネント間およびコンポーネント内で動作するため、それらを指定する必要はありません。

直面している問題は、モデルの指定方法がわからないためではなく、反復測定ANOVAと混合効果は同じものではないからです。ANOVAと混合効果モデルの結果が一致する場合があります。これは、ANOVAの場合のようにデータを集計し、そこから両方を計算する場合に特に当てはまります。しかし、一般に、正しく行われた場合、結論は似ているかもしれませんが、結果はほとんど同じではありません。サンプルデータは、S内で各メジャーの複製を頻繁に行う実際の反復メジャーとは異なります。ANOVAを実行する場合、通常、それらのレプリケーション全体で集計して、各被験者の効果の推定値を取得します。混合効果のモデリングでは、そのようなことはしません。生データを使用します。あなたがそれをするとき、あなたは

[余談ですが、lme()の代わりにlmer()(lme4パッケージから)を使用すると、例の効果のANOVAと完全に一致するSS値とMS値が得られ、Fが異なるだけです]


1
すべてが均衡している場合、混合モデルを使用した結果(つまり、MLまたはREMLを使用した推定値の取得)とANOVAを使用した結果(つまり、モーメントを使用した推定値の取得)はほぼ同じになると思います。この場合の問題は、両方の方法を使用して同じモデルの近似を取得する構文です。
アーロン-復活モニカ

あなたが何を達成しようとしているのか分かりません。関係をよりよく理解するために、結果を複製する方法を学習しようとしているように見えました。あなたがしたいことはnlmeではできません。私はlmerを調べただけで、そこにはあり得ません(少なくとも、ANOVAと同じように効果のMSを報告しますが)。ANOVAの結果が必要な場合は、ANOVAを実行してください。正しく行われた実際のデータでは、この2つはほとんど同じではありません。
ジョン

1
また、最初の試みは交差したランダム効果を適切に説明していないため、正しくないことに注意してください。
アーロン-復帰モニカ

1
ジョン、答えてくれてありがとう。これを行う理由は、このサイトのどこかで、ANOVAの繰り返し測定は一般に推奨されておらず、混合効果モデルが推奨されていることを読んだことです。何らかの理由で、2つの方法はバランスのとれた設計に対して同じ結果をもたらすという印象を受け、私はこれを確認しようとしていました。
mark999

アーロン、私はそれをおおよそ同等と考えられるものに対する正しい答えとして受け止めました。通常、反復測定を複製する最初のステップとして推奨されるものです。完全一致のような「正しい」ものはありません。ランダム効果を追加しても問題は解決しません。参照する回答の1つが、作成したソリューションを推奨していることに注意してください。ただし、これは、ANOVAの結果(モデルは異なりますが、ANOVAではありません)が、私が正しいと言ったこととまったく違いはありません。著者は、OPが求めていたものと一致させようとしているのではないかと思うが、それは賢明なモデルではない。
ジョン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.