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";
}
参考文献
森・吉田「心理学のためのデータ解析テクニカルブック」北大路書房