(2023-12-14 初稿 - )
はじめに
仕事で3元配置の分散分析を行う必要ができて、Webで調べたら以下のページが見つかった。
上記サイトには、いつも助けて頂いている。多謝。
このページは、物忘れがひどい筆者が忘れないよう3元配置をRスクリプトにしたメモ。
サンプルデータ
要因A(facA)と要因B(facB)、要因C(facC)があるとして、それぞれの値を入力。
Rスクリプト
さっそくRスクリプトを作成する。
### 3f-test.R
# ver0.01 2023-12-14 start cp t-test.R 3f-test.R
# 3 dimension f-test
#[Usage]
# $ Rscript 3f-test.R data-file.csv
args <- commandArgs(trailingOnly=T)
data <- read.table(args[1], sep=",", header=T)
#attach(data)
res <- aov(value ~ facA + facB + facC +
facA*facB + facA*facC + facB*facC +
facA*facB*facC, data)
summary(res)
データの読込に関しては、これまでと同様。面倒なのは、各要因間の交互作用。
facA*facB、facA*facC、facB*facCの3つの交互作用と全要因の交互作用がある。
実際に以下のように実行する。
$ Rscript 3f-test.R data-file.csv
以下のような結果がでれば成功。
hide@rna:~/R$ Rscript f3-test.R f3-test.csv Df Sum Sq Mean Sq F value Pr(>F) facA 1 0.006500 0.006500 25.888 0.000944 *** facB 1 0.013871 0.013871 55.242 7.39e-05 *** facC 1 0.026496 0.026496 105.521 6.94e-06 *** facA:facB 1 0.000587 0.000587 2.337 0.164842 facA:facC 1 0.013093 0.013093 52.144 9.06e-05 *** facB:facC 1 0.001890 0.001890 7.527 0.025308 * facA:facB:facC 1 0.000307 0.000307 1.223 0.300889 Residuals 8 0.002009 0.000251 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
各行末の記号の意味は、有意差の水準だよ。