ユーザ用ツール

サイト用ツール


メモ:分散分析:1要因分散分析対応なし

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
メモ:分散分析:1要因分散分析対応なし [2015/12/25 19:48] – 作成 Wiki Editorメモ:分散分析:1要因分散分析対応なし [2015/12/25 21:12] (現在) Wiki Editor
行 1: 行 1:
 ====== 1要因の分散分析 対応なし ====== ====== 1要因の分散分析 対応なし ======
 +まずは、単純な群間比較。
 +
 +データの準備
 +^A組 ^B組 ^C組 ^D組 ^
 +|8|5|12|11|
 +|7|6|10|10|
 +|9|6|9|15|
 +|12|7|14|12|
 +|10|3|14|13|
 +
 +このままSPSSのように入力するとうまくいかないので、クラスを分ける変数を作成し以下のようなデータを作成する。IDは特に必要ないが、一応。
 +^ID ^クラス ^スコア ^
 +|1 |A組|8|
 +|2 |A組|7|
 +|...|||
 +|12|C組|10|
 +|...|||
 +
 +  > id <- 1:20;
 +  > class <- c("A","A","A","A","A","B","B","B","B","B","C","C","C","C","C","D","D","D","D","D");
 +  > score <- c(8,7,9,12,10,5,6,6,7,3,12,10,9,14,14,11,10,15,12,13);
 +  > df <- data.frame(ID=id, CLASS=class, SCORE=score);
 +
 +各列のベクトルを作成し、データフレームにまとめる。CSVファイルから読む込む方が面倒はないが、ちょっと練習。
 +
 +lm()関数で推定。CLASS変数はfactorなので、自動的にダミー変数に展開される。
 +  > res.anova <- lm(SCORE ~ CLASS, df);
 +  > summary(res.anova);
 +  
 +  Call:
 +  lm(formula = SCORE ~ CLASS, data = df)
 +  
 +  Residuals:
 +     Min     1Q Median     3Q    Max
 +   -2.80  -1.35   0.00   1.00   2.80
 +  
 +  Coefficients:
 +              Estimate Std. Error t value Pr(>|t|)
 +  (Intercept)   9.2000     0.8631  10.659 1.12e-08 ***
 +  CLASSB       -3.8000     1.2207  -3.113  0.00669 **
 +  CLASSC        2.6000     1.2207   2.130  0.04904 *
 +  CLASSD        3.0000     1.2207   2.458  0.02577 *
 +  ---
 +  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 +  
 +  Residual standard error: 1.93 on 16 degrees of freedom
 +  Multiple R-squared:  0.7115,    Adjusted R-squared:  0.6573
 +  F-statistic: 13.15 on 3 and 16 DF,  p-value: 0.0001383
 +
 +回帰係数表を、記述統計出力に代用。Estimateに平均値が出力される。各郡の平均は、(Intercept)に各郡の推定値を加える。標準誤差はやや数値が異なる。一般線形モデルの場合と従来型の分散分析とは計算方法が異なるので、ここではあまり気にしない。
 +
 +次に分散分析表
 +  > anova(res.anova);
 +  Analysis of Variance Table
 +  
 +  Response: SCORE
 +            Df Sum Sq Mean Sq F value    Pr(>F)
 +  CLASS      3 146.95  48.983   13.15 0.0001383 ***
 +  Residuals 16  59.60   3.725
 +
 +平方和の合計は出力されないが、足し算すれば良いだけ。単純な分散分析は、簡単。
 +
 +続いて、Tukey HSDによる多重比較。
 +  > res.aov <- aov(SCORE ~ CLASS, df);
 +  > TukeyHSD(res.aov);
 +    Tukey multiple comparisons of means
 +      95% family-wise confidence level
 +  
 +  Fit: aov(formula = SCORE ~ CLASS, data = df)
 +  
 +  $CLASS
 +      diff        lwr        upr     p adj
 +  B-A -3.8 -7.2923198 -0.3076802 0.0306239
 +  C-A  2.6 -0.8923198  6.0923198 0.1857885
 +  D-A  3.0 -0.4923198  6.4923198 0.1057960
 +  C-B  6.4  2.9076802  9.8923198 0.0004223
 +  D-B  6.8  3.3076802 10.2923198 0.0002236
 +  D-C  0.4 -3.0923198  3.8923198 0.9873918
 +
 +lm()関数が返すオブジェクトではダメなので、aov()関数の結果をTukeyHSD関数に渡す。
  
メモ/分散分析/1要因分散分析対応なし.1451040507.txt.bz2 · 最終更新: 2015/12/25 19:48 by Wiki Editor

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki