top of page

#2要因の分散分析(2要因とも被験者間要因)

data.ex=read.csv("Table821.csv",header=T)
data.ex

attach(data.ex)

#要因(独立変数)として指定
fm <- factor(method)
fa <- factor(anxiety)

#関数 aov(従属変数~要因1*要因2,データ)

aov.ex=aov(score~fm*fa,data.ex)
summary(aov.ex)

#要因の組み合わせの各平均値とSDを求めるtapply(score,list(fm,fa),mean)

tapply(score,list(fm,fa),sd)

#図示 算出しておいた平均値を使う

 

data <- cbind(
   m1=c(28.2,47.0),
   m2=c(33.6,36.6),
   m3=c(34.2,28.2)
)

#棒グラフを並べる
barplot(data,beside=TRUE)

#効果量の計算  分散分析の結果を利用

            Df  Sum Sq Mean Sq F value   Pr(>F)     

fm          2      208.1      104.0       6.557  0.00535 **  

fa           1      208.0      208.0     13.111  0.00136 **  

fm:fa       2     788.1      394.0     24.834 1.43e-06 *** 

Residuals  24  380.8    15.9  

#教授法fm  eta2

208.1/(208.1+208.0+788.1+380.0)

#不安 fa  eta2

208.0/(208.1+208.0+788.1+380.0)

#交互作用 fm *fa    eta2

788.1/(208.1+208.0+788.1+380.0)

#-交互作用が有意な場合の単純効果 -----

#教授法(fm)の効果を、不安(fa)の水準ごとに分散分析

#不安(fa)の効果を、教授法(fm)の水準ごとに分散分析

# 高不安群のみ取り出して検定(一要因分散分析)

# data.ex から 変数anxietyの値が"H"の行のみ取り出す

#行のみの指定 [変数=="条件の値",]    最後の ,を忘れずに

#新たなデータ dataHを作る

dataH <- data.ex[data.ex$anxiety=="H",]

#独立変数を、改めて新しいデータセットの中で指定する

aovH=aov(score~factor(dataH$method),dataH)

summary(aovH)

#F値の計算

#:誤差(Residuals)のMSに、元の分散分析のMS=15.9を使う 

54.6/15.9 

#p値 自由度(2,24)  

# 1-pf(F値,分子の自由度,分母の自由度) 

1-pf(54.6/15.9,2,24) 

#次に低不安群で検定

dataL <- data.ex[data.ex$anxiety=="L",]

dataL

aovL=aov(score~factor(dataL$method),dataL)

summary(aovL)

#F値の計算

#:誤差(Residuals)のMSに、元の分散分析のMS=15.9を使う

443.5/15.9 

#p値 

1-pf(443.5/15.9,2,24) 

#低不安群の多重比較

# Holmの方法による多重比較の場合

pairwise.t.test(score,method,data=dataL,p.adj = "holm")
 

#教授法1における不安の単純効果​

data1 <- data.ex[data.ex$method=="1",]
aov1=aov(score~factor(data1$anxiety),data1)
summary(aov1)

#:誤差(Residuals)のMSに、元の分散分析のMS=15.9を使う

883.6/15.9

1-pf(883.6/15.9,1,24) 

#効果量
883.6/(208.1+208.0+788.1+380.0)

#教授法2における不安の単純効果​

data2 <- data.ex[data.ex$method=="2",]

aov2=aov(score~factor(data2$anxiety),data2)

summary(aov2)

#:誤差(Residuals)のMSに、元の分散分析のMS=15.9を使う

22.50/15.9

1-pf(22.5/15.9,1,24) 

#効果量
22.5/(208.1+208.0+788.1+380.0)

#教授法3における不安の単純効果​

data3 <- data.ex[data.ex$method=="3",]

aov3=aov(score~factor(data3$anxiety),data3)

summary(aov3)

#:誤差(Residuals)のMSに、元の分散分析のMS=15.9を使う

90.0/15.9

1-pf(90.0/15.9,1,24) 

#効果量
90.0/(208.1+208.0+788.1+380.0)

​#-----作図 応用 -----

#標準誤差を使ってエラーバーをつける準備

datase <- cbind(
   m1se=c(3.35/sqrt(5),4.64/sqrt(5)),
   m2se=c(5.18/sqrt(5),2.70/sqrt(5)),
   m3se=c(4.76/sqrt(5),2.39/sqrt(5))
)

 

barx <- barplot(data,beside=TRUE)

 

#軸のラベルなどを追加
barplot(
     data,
     names.arg=c("1","2", "3"),
     ylim=c(0, 50),xlab="Teaching Method",      ylab="Score",legend.text=paste(c("High","Low")),
     beside=TRUE)

#エラーバーをつける ±SE
arrows(barx,data,barx,data+datase,angle=90, length=0.1)
arrows(barx,data,barx,data-datase,angle=90, length=0.1)

© 2018-2024 HIDEYUKI UNUMA

All visitors since 14 Apr. 2018

  • Twitter
  • Instagram
  • Facebook
bottom of page