繰り返し測定 (反復測定) がある場合の分散分析とR (オマケ p値の取り出し)

Rで、「繰り返し測定 (反復測定) がある場合の分散分析」を行う際に役に立つ、リンクとメモ、使い方です。

まず、相互作用の図示をするための忘れがちな関数
interaction.plot(factor_A, factor_B, y)
上記の入力順だと、factor_B ごとに線の種類を変え、
factor_A をX軸にとって、y の値を Y軸に折れ線グラフを書いてくれます。

繰り返し測定 (反復測定) がある場合の ANOVA については、まず、 R のチュートリアル SINGLE FACTOR REPEATED MEASURES ANOVA に、記載があります。
上記の interaction plot の例では、

summary(aov( y ~ factor_A + Error(factor_B /factor_A)))
という書式にするようです。p値は、two-way ANOVA の factor_A 部分のと同じものが出るようです。

ノンパラメトリック法の フリードマン検定は、

friedman.test(y~factor_A | factor_B, data=データフレームの名前)
とするようです。"data= " で、データフレームを指定する書法でないと動かないようです。

もう少し高級な、繰り返し測定 (反復測定) がある場合の ANOVA については、下記の拡張  "rep.aov" を使うのが良いようです。
反復測定分散分析 (Repeated measured ANOVA)

書式は、

rep.aov (y ~ I(x) + S(subject), data名)
と書きます。フリードマンと同じく、"data= " で、データフレームを指定する書法で、data$y みたいな書式では動かないようです。

☆ 上手くできないとき
上記の rep.aov のためには、MASS パッケージを呼び出すことが必要なのかもしれません。library(MASS) で呼び出せます。

なお、attach(), detach( ) をすると MASS と競合するようです。

オマケ p 値の取り出し

実は、t test のように p 値を返してくれる関数はデフォルトではないようです。
Error(factor_B /factor_A) の書式では、取り出せず、仕方がないので、tow-way ANOVA から取り出します。
anova(lm( y ~ Factor_A + Factor_B )[1,5]
が、一番シンプルな書式でしょう。
B! LINE