1要因-RBデザイン
---ここから--- #使用ファイルはタブ区切りにして下さい。 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/anovaRB.dat"; open MYFILE, "$pathname"; @dat = map {chomp;[split /\t/]} <MYFILE>; close MYFILE; $rows=@dat; $cols=@{$dat[0]}; for($i=0;$i<$cols;$i++){ for($j=0;$j<$rows;$j++){ $G+=$dat[$j][$i]; $AS+=$dat[$j][$i]**2; $sum+=$dat[$j][$i]; } $rows_sum[$i]=$sum; $sum=0; $A+=$rows_sum[$i]**2/$rows; } for($i=0;$i<$rows;$i++){ for($j=0;$j<$cols;$j++){ $sum2+=$dat[$i][$j]; } $cols_sum[$i]=$sum2; $sum2=0; $S+=$cols_sum[$i]**2/$cols; } $SSs=$S-$G**2/($rows*$cols); $SSa=$A-$G**2/($rows*$cols); $SSres=$AS-$A-$S+($G**2/($rows*$cols)); $SSt=$AS-$G**2/($rows*$cols); $df1=$cols-1; $df2=$rows-1; $df3=$df1*$df2; $df4=$rows*$cols-1; $MSa=$SSa/$df1; $MSs=$SSs/$df2; $MSres=$SSres/$df3; $F1=$MSa/$MSres; $F2=$MSs/$MSres; use Statistics::Distributions; $pvalue1=Statistics::Distributions::fprob($df1,$df3,$F1); $pvalue2=Statistics::Distributions::fprob($df2,$df3,$F2); @result=( [" ","SS","DF","MS","F","p-value"], ["A",$SSa,$df1,$MSa,$F1,$pvalue1], ["S",$SSs,$df2,$MSs,$F2,$pvalue2], ["RES",$SSres,$df3,$MSres,"",""], ["T",$SSt,$df4]); for($i=0;$i<5;$i++){ for($j=0;$j<5;$j++){ print $result[$i][$j]; print "\t"; }print "\n"; }
参考文献
森・吉田「心理学のためのデータ解析テクニカルブック」北大路書房