<<目次へ


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";
}



参考文献

森・吉田「心理学のためのデータ解析テクニカルブック」北大路書房