Chapter 22伴走Rmdファイル

作者

小杉考司

分散分析用の関数を読み込もう

source("https://riseki.cloudfree.jp/?plugin=attach&refer=ANOVA%E5%90%9B&openfile=anovakun_489.txt")

Betweenデザインの分析

データフレームを組み上げる

Example1 <- data.frame(
  id = rep(1:4, 3),
  condition = rep(1:3, each = 4),
  value = c(6, 6, 5, 5, 7, 4, 7, 6, 4, 3, 4, 6)
)

Factor型にする

Example1$condition <- factor(Example1$condition,
  labels = c("control", "exp1", "exp2")
)

データの中身を確認しておきましょう。

Example1
   id condition value
1   1   control     6
2   2   control     6
3   3   control     5
4   4   control     5
5   1      exp1     7
6   2      exp1     4
7   3      exp1     7
8   4      exp1     6
9   1      exp2     4
10  2      exp2     3
11  3      exp2     4
12  4      exp2     6

線形モデルとして分析する

result.lm1 <- lm(value ~ condition, data = Example1)
summary(result.lm1)

Call:
lm(formula = value ~ condition, data = Example1)

Residuals:
   Min     1Q Median     3Q    Max 
-2.000 -0.500 -0.125  0.625  1.750 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)     5.5000     0.5713   9.627 4.91e-06 ***
conditionexp1   0.5000     0.8079   0.619    0.551    
conditionexp2  -1.2500     0.8079  -1.547    0.156    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.143 on 9 degrees of freedom
Multiple R-squared:  0.3562,    Adjusted R-squared:  0.2131 
F-statistic: 2.489 on 2 and 9 DF,  p-value: 0.1379

図を見ると明らかです。

library(ggplot2)
ggplot(Example1) +
  aes(x = condition, y = value, fill = condition) +
  stat_summary(geom = "bar", fun = "mean")

デフォルトの関数でもこういう結果が出せますよ

anova(result.lm1)
Analysis of Variance Table

Response: value
          Df Sum Sq Mean Sq F value Pr(>F)
condition  2   6.50  3.2500  2.4894 0.1379
Residuals  9  11.75  1.3056               

Anovakunは親切設計

anovakun(Example1[, 2:3], "As", 3, eps = T)

[ As-Type Design ]

This output was generated by anovakun 4.8.9 under R version 4.6.1.
It was executed on Thu Jul  9 12:42:38 2026.

 
<< DESCRIPTIVE STATISTICS >>

--------------------------
  A   n    Mean    S.D. 
--------------------------
 a1   4  5.5000  0.5774 
 a2   4  6.0000  1.4142 
 a3   4  4.2500  1.2583 
--------------------------


<< ANOVA TABLE >>

--------------------------------------------------------------
 Source      SS  df     MS  F-ratio  p-value      epsilon^2 
--------------------------------------------------------------
      A  6.5000   2 3.2500   2.4894   0.1379 ns      0.2131 
  Error 11.7500   9 1.3056                                  
--------------------------------------------------------------
  Total 18.2500  11 1.6591                                  
                  +p < .10, *p < .05, **p < .01, ***p < .001


output is over --------------------///

二要因デザイン(Between)の場合

データの準備

ファクター型にして出力するところまでです。

Example2 <- data.frame(
  id = 1:12,
  num = rep(1:3, 4),
  temp = rep(1:2, each = 6),
  maker = rep(rep(1:2, each = 3), 2),
  value = c(13, 11, 12, 7, 6, 8, 9, 9, 9, 13, 11, 9)
)
Example2$temp <- factor(Example2$temp,
  labels = c("Hot", "Cold")
)
Example2$maker <- factor(Example2$maker,
  label = c("A", "B")
)

Example2
   id num temp maker value
1   1   1  Hot     A    13
2   2   2  Hot     A    11
3   3   3  Hot     A    12
4   4   1  Hot     B     7
5   5   2  Hot     B     6
6   6   3  Hot     B     8
7   7   1 Cold     A     9
8   8   2 Cold     A     9
9   9   3 Cold     A     9
10 10   1 Cold     B    13
11 11   2 Cold     B    11
12 12   3 Cold     B     9

線形モデルとしての出力

result.lm2 <- lm(value ~ temp * maker, data = Example2)
summary(result.lm2)

Call:
lm(formula = value ~ temp * maker, data = Example2)

Residuals:
   Min     1Q Median     3Q    Max 
 -2.00  -0.25   0.00   0.25   2.00 

Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
(Intercept)      12.0000     0.7071   16.97 1.48e-07 ***
tempCold         -3.0000     1.0000   -3.00  0.01707 *  
makerB           -5.0000     1.0000   -5.00  0.00105 ** 
tempCold:makerB   7.0000     1.4142    4.95  0.00112 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.225 on 8 degrees of freedom
Multiple R-squared:  0.7867,    Adjusted R-squared:  0.7067 
F-statistic: 9.833 on 3 and 8 DF,  p-value: 0.004641

デフォルトの関数での出力

anova(result.lm2)
Analysis of Variance Table

Response: value
           Df Sum Sq Mean Sq F value   Pr(>F)   
temp        1   0.75    0.75     0.5 0.499576   
maker       1   6.75    6.75     4.5 0.066688 . 
temp:maker  1  36.75   36.75    24.5 0.001121 **
Residuals   8  12.00    1.50                    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Anovakunでの出力

anovakun(Example2[, 3:5], "ABs", 2, 2, eps = T)

[ ABs-Type Design ]

This output was generated by anovakun 4.8.9 under R version 4.6.1.
It was executed on Thu Jul  9 12:42:38 2026.

 
<< DESCRIPTIVE STATISTICS >>

-------------------------------
  A   B   n     Mean    S.D. 
-------------------------------
 a1  b1   3  12.0000  1.0000 
 a1  b2   3   7.0000  1.0000 
 a2  b1   3   9.0000  0.0000 
 a2  b2   3  11.0000  2.0000 
-------------------------------


<< ANOVA TABLE >>

---------------------------------------------------------------
 Source      SS  df      MS  F-ratio  p-value      epsilon^2 
---------------------------------------------------------------
      A  0.7500   1  0.7500   0.5000   0.4996 ns     -0.0133 
      B  6.7500   1  6.7500   4.5000   0.0667 +       0.0933 
  A x B 36.7500   1 36.7500  24.5000   0.0011 **      0.6267 
  Error 12.0000   8  1.5000                                  
---------------------------------------------------------------
  Total 56.2500  11  5.1136                                  
                   +p < .10, *p < .05, **p < .01, ***p < .001


<< POST ANALYSES >>

< SIMPLE EFFECTS for "A x B" INTERACTION >

---------------------------------------------------------------
 Source      SS  df      MS  F-ratio  p-value      epsilon^2 
---------------------------------------------------------------
A at b1 13.5000   1 13.5000   9.0000   0.0171 *       0.2133 
A at b2 24.0000   1 24.0000  16.0000   0.0039 **      0.4000 
B at a1 37.5000   1 37.5000  25.0000   0.0011 **      0.6400 
B at a2  6.0000   1  6.0000   4.0000   0.0805 +       0.0800 
  Error 12.0000   8  1.5000                                  
---------------------------------------------------------------
                   +p < .10, *p < .05, **p < .01, ***p < .001

output is over --------------------///

Withinデザインの場合

データを作ります。できたものを確認しておきましょう。

Example3 <- data.frame(
  ID = 1:4,
  Time1 = c(10, 9, 4, 7),
  Time2 = c(5, 4, 2, 3),
  Time3 = c(9, 5, 3, 5)
)

Example3
  ID Time1 Time2 Time3
1  1    10     5     9
2  2     9     4     5
3  3     4     2     3
4  4     7     3     5

Anovakunで分析

結果の読み取り方が複雑ですから,授業をよく聞いておいてね。

anovakun(Example3[, 2:4], "sA", 3, eps = T)

[ sA-Type Design ]

This output was generated by anovakun 4.8.9 under R version 4.6.1.
It was executed on Thu Jul  9 12:42:38 2026.

 
<< DESCRIPTIVE STATISTICS >>

--------------------------
  A   n    Mean    S.D. 
--------------------------
 a1   4  7.5000  2.6458 
 a2   4  3.5000  1.2910 
 a3   4  5.5000  2.5166 
--------------------------


<< SPHERICITY INDICES >>

== Mendoza's Multisample Sphericity Test and Epsilons ==

-------------------------------------------------------------------------
 Effect  Lambda  approx.Chi  df      p         LB     GG     HF     CM 
-------------------------------------------------------------------------
      A  1.0000     -0.0000   2 1.0000 ns  0.5000 1.0000 3.0000 0.5000 
-------------------------------------------------------------------------
                              LB = lower.bound, GG = Greenhouse-Geisser
                             HF = Huynh-Feldt-Lecoutre, CM = Chi-Muller


<< ANOVA TABLE >>

---------------------------------------------------------------
 Source      SS  df      MS  F-ratio  p-value      epsilon^2 
---------------------------------------------------------------
      s 39.0000   3 13.0000                                  
---------------------------------------------------------------
      A 32.0000   2 16.0000  16.0000   0.0039 **      0.3896 
  s x A  6.0000   6  1.0000                                  
---------------------------------------------------------------
  Total 77.0000  11  7.0000                                  
                   +p < .10, *p < .05, **p < .01, ***p < .001


<< POST ANALYSES >>

< MULTIPLE COMPARISON for "A" >

== Shaffer's Modified Sequentially Rejective Bonferroni Procedure ==
== The factor < A > is analysed as dependent means. == 
== Alpha level is 0.05. == 
 
--------------------------
  A   n    Mean    S.D. 
--------------------------
 a1   4  7.5000  2.6458 
 a2   4  3.5000  1.2910 
 a3   4  5.5000  2.5166 
--------------------------

----------------------------------------------------------
  Pair     Diff  t-value  df       p   adj.p            
----------------------------------------------------------
 a1-a2   4.0000   5.6569   3  0.0109  0.0328  a1 > a2 * 
 a1-a3   2.0000   2.8284   3  0.0663  0.0663  a1 = a3   
 a2-a3  -2.0000   2.8284   3  0.0663  0.0663  a2 = a3   
----------------------------------------------------------


output is over --------------------///