主な質問
被験者間因子を持たないデータセットに対して、R で一方向反復測定 MANOVA を設定するためのヘルプを探しています。
バックグラウンド
被験者間因子を使用して RM MANOVA を設定するための優れたガイドはたくさんありますが、完全に被験者内のデザインを使用している場合、私はまだ見つけることができませんでした. この問題はかなり単純明快なように思えますが、私は MANOVA を初めて使用するので、問題に正しく取り組んでいるかどうかはわかりません。私は主car
に R でパッケージを使用してきましたが、これを別の方法で行う方法についての提案は受け付けています。
この問題を説明するために、OBrienKaiser データ セットのサブセットを使用し、Hours
被験者内因子の各レベルが異なる従属変数の測定値を表すと仮定します。次に、pre
andpost
条件を、単一の被験者内独立変数の 2 つのレベルとします。簡潔にするために、 の最初の 3 つのレベルだけを見ていきますHours
。
したがって、私のデータ セットには、3 つの異なる従属変数 ( 、、および) で 2 つの異なる条件 (pre
および) で測定された 16 人の被験者がいます。post
1
2
3
data <- subset(OBrienKaiser,select=c(pre.1,pre.2,pre.3,post.1,post.2,post.3))
私の目標は、3 つの異なる従属変数の組み合わせの違いpre
を探すことです。post
私はこのガイドに大きく依存してきました...
http://socserv.mcmaster.ca/jfox/Books/Companion/appendix/Appendix-Multivariate-Linear-Models.pdf
...しかし、そこで使用されているケースはまったく同じではなく、私が持っていない被験者間の条件が含まれています。これまでのところ、次のアプローチで潜在的に正しい結果を生成することができましたが、私の問題は、問題を正しく設定したかどうか完全に確信が持てないことです。一般に、私のアプローチは上記の手順に従うことでしたが、被験者間の条件は単純に省略しました。
私のアプローチ
まず、条件と従属変数を 2 つの異なる被験者内因子として扱うことによりidata
、関数呼び出しの行列を設計します。Anova()
Condition <- factor(rep(c('Pre','Post'),each=3),levels=c('Pre','Post'))
Measure <- factor(rep(c('M1','M2','M3'),2),levels=c('M1','M2','M3'))
idata <- data.frame(Condition,Measure)
次に、被験者間の要因を無視して、データセットで多変量線形モデルを構築します。
mod.mlm <- lm(cbind(pre.1,pre.2,pre.3,post.1,post.2,post.3)~1,data=data)
次に、以前に定義した を使用しAnova()
て線形モデル オブジェクトを呼び出し、被験者内計画を に設定します。mod.mlm
idata
~Condition
av.out <- Anova(mod.mlm,idata=idata,idesign=~Condition,type=3)
これにより、次の出力が得られます...
Type III Repeated Measures MANOVA Tests: Pillai test statistic
Df test stat approx F num Df den Df Pr(>F)
(Intercept) 1 0.91438 160.189 1 15 2.08e-09 ***
Condition 1 0.37062 8.833 1 15 0.009498 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
私には、このプロセスとこの結果は合理的に思えます。私を一時停止させるものは2つあります。
線形モデルを設定するとき、予測変数がないのは奇妙に思えますが、
Anova()
withの呼び出しで定義されることになると思いますidesign
。それがAnovaを設定する方法である場合car
、素晴らしいです。明示的に関心のある予測変数があるときに、予測変数なしで線形モデルを構築するのは奇妙に思えます。出来上がっ
summary(an.out)
たモデルをよく見てみると、デザインのコントラストが見えてきます。上記のアプローチ コードpre
で生成されるコントラストは 1 およびpost
-1 です。これが私がやろうとしていることの適切な対比であると信じていますが、完全には確信が持てません。imatrix
またはcontrasts
の呼び出しでカスタム コントラストを渡すことができるので、テストしようとしているもの (つまり、3 つの従属変数間の差) が実際にテストAnova()
しているものであることを確認したいと思います。pre
post
このコンテキストで一般的に反復測定MANOVAを理解する方法に関するヘルプおよび/またはアドバイス、およびRでこれを実装する方法に関する具体的なアドバイスをいただければ幸いです。
ボーナス
私はMatlabでも同じことをしたいので、誰かがそれについて具体的なアドバイスを持っているなら、それをいただければ幸いです(ただし、これには独自の質問が必要になる場合があります)。