1要因-CRデザイン(各水準の観測数が等しい場合)
---ここから--- #使用ファイルはタブ区切りにして下さい。以下は水準数4,観測数8の場合です。 9 6 10 9 7 5 13 11 8 6 8 13 8 3 13 14 12 6 12 16 11 7 14 12 8 10 14 15 13 9 16 14 ---ここまで---
Perlプログラムの実行方法はこちら
#ファイルの読み込み $pathname="C://Perl/datafile/anovaCR.dat"; open MYFILE, "$pathname"; while (<MYFILE>) { chomp; @{"dat$."} = split /\t/; } $rows=$.; close MYFILE; $cols=@dat1; for($i=0;$i<$cols;$i++){ for($j=1;$j<=$rows;$j++){ $A[$i]+=@{"dat$j"}[$i]; $AS+=@{"dat$j"}[$i]**2; } $G+=$A[$i]; } for($i=0;$i<$cols;$i++){ $sum+=$A[$i]**2/$rows; } $SSa=sprintf("%.2f",$sum-$G**2/($rows*$cols)); $SSwc=sprintf("%.2f",$AS-$sum); $SSt=sprintf("%.2f",$AS-$G**2/($rows*$cols)); $MSa=sprintf("%.2f",$SSa/($cols-1)); $MSwc=sprintf("%.2f",$SSwc/($cols*($rows-1))); $F=sprintf("%.4f",$MSa/$MSwc); $df1=$cols-1; $df2=$cols*($rows-1); $df3=$cols*$rows-1; use Statistics::Distributions; $a=sprintf("%.4f",Statistics::Distributions::fprob($df1,$df2,$F)); print " \t SS \t\t DF \t MS \t F \n"; print "SSB \t $SSa \t $df1 \t $MSa \t $F(p=$a) \n"; print "SSW \t $SSwc \t $df2 \t $MSwc \n"; print "T \t $SSt \t $df3 \n";
参考文献
森・吉田「心理学のためのデータ解析テクニカルブック」北大路書房