理学療法士がまとめたノート

読者です 読者をやめる 読者になる 読者になる

統計学備忘録 since2016

理学療法、医療、福祉、小児

二元配置分散分析 分散分析表の理解

データは仮想です

繰り返し数がすべて等しい場合 (=5)

   

因子B

 

 

B1

B2

B3

因子A

A1

7

9

21

11

11

22

8

10

19

10

9

18

9

11

22

A2

23

12

9

21

16

8

26

16

11

27

17

10

22

15

9

エクセルにペーストして、青文字のみをコピー


Data<-c(x$B1,x$B2,x$B3)x<-read.table("clipboard",header=T)


以下赤文字のみRで実行

inshiA1<-c(rep("A1",5),rep("A2",5))

inshiA<-c(rep(inshiA1,3))

inshiB<-c(rep("B1",10),rep("B2",10),rep("B3",10))

summary ( aov ( Data ~inshiA* inshiB) )

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

inshiA         1   67.5    67.5   21.89 9.40e-05 ***

inshiB         2   73.3    36.6   11.88 0.000259 ***

inshiA:inshiB  2  850.2   425.1  137.87 6.94e-14 ***

Residuals     24   74.0     3.1                    

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 

分散分析表の計算方法を忘れないように記載しておきます!

 

Df

SumSq

MeanSq

Fvalue

inshiA

1

67.5

67.5

21.89

inshiB

2

73.3

36.6

11.88

inshiA:inshiB

2

850.2

425.1

137.87

Residuals

24

74

3.1

 

 

Df:自由度、SumSq:平方和、MeanSq:平均平方(平方和÷自由度)、

Fvalue:F値(…の平均平方÷水準内変動の平均平方)

(平均平方、F値は平方和から算出可能.よって、平方和を調べるべし!)

 

http://yoshida931.hatenablog.com/entry/2017/02/19/144239

 

inshiA:因子Aの水準間の変動を調べる

inshiB:因子Bの水準間の変動を調べる

inshiA:inshiB:因子Aと因子Bの交互作用の変動を調べる

Residuals:水準内の変動を調べる

(変動:各測定値から平均値へのずれ(バラつき)が、「0」にならないように平均値からの変位の二乗和をとったもの.分散分析では平方和.)

 

Df(自由度)

inshiA:a-1

inshiB:b-1

inshiA:inshiB:(a-1)×(b-1)

Residuals:a×b×(n-1)

 

因子Aの水準数a、因子Bの水準数b、繰り返し数n、データ総数a*b*n

総数= length(data)、総平均=mean(data)とします
a=2
b=3
n=5

 

因子Aの水準A1・A2間の変動(平方和)

inshiASumSq=67.5         
A1<-c(Data[1:5],Data[11:15],Data[21:25]) #(A1,B1),(A1,B2),(A1,B3)全てのデータ
mean(A1)
A2<-c(Data[6:10],Data[16:20],Data[26:30])  #(A2,B1),(A2,B2),(A2,B3)全てのデータ
mean(A2)
n*b*( (mean(A1)-mean(Data))^2+(mean(A2)-mean(Data))^2)

 

f:id:yoshida931:20170310132759p:plain

 

因子Bの水準B1・B2・B3間の変動(平方和)
inshiB SumSq73.3
B1<-c(Data[1:10])  #(A1,B1),(A2,B1)全てのデータ
mean(B1)
B2<-c(Data[11:20])  #(A1,B2),(A2,B2)全てのデータ
mean(B2)
B3<-c(Data[21:30])  #(A1,B3),(A2,B3)全てのデータ
mean(B3)
n*a*( (mean(B1)-mean(Data))^2+(mean(B2)-mean(Data))^2+(mean(B3)-mean(Data))^2)

 

交互作用の変動
inshiA:inshiBのSumSq=850.2
水準内平均‐水準A平均-水準B平均+総平均
n*(mean(Data[1:5])-mean(A1)-mean(B1)+mean(Data))^2+
 n*(mean(Data[6:10])-mean(A2)-mean(B1)+mean(Data))^2+
 n*(mean(Data[11:15])-mean(A1)-mean(B2)+mean(Data))^2+
 n*(mean(Data[16:20])-mean(A2)-mean(B2)+mean(Data))^2+
 n*(mean(Data[21:25])-mean(A1)-mean(B3)+mean(Data))^2+
 n*(mean(Data[26:30])-mean(A2)-mean(B3)+mean(Data))^2

f:id:yoshida931:20170310142941p:plain

 

各水準の平均値をプロットしたグラフ
x<- data.frame(A1=c(9,10,20.4),
A2=c(23.8,15.2,9.4))
plot(x$A1,type="o",lty=3,xaxt="n",xlim = c(0.8,3.2),ylim=c(7,25),ylab="",xlab = "",bty = "l")
lines(x$A2,pch=19,type="o")
axis(side=1,at=1:3,labels=c("B1","B2","B3"))
legend(2.7,25, legend = colnames(x) , pch = pchs, lty = ltys)

f:id:yoshida931:20170310172329p:plain

 

水準内の変動
ResidualsSumSq74
sum( (Data[1:5]-mean(Data[1:5]))^2)+
 sum( (Data[6:10]-mean(Data[6:10]))^2)+
 sum( (Data[11:15]-mean(Data[11:15]))^2)+
 sum( (Data[16:20]-mean(Data[16:20]))^2)+
 sum( (Data[21:25]-mean(Data[21:25]))^2)+
 sum( (Data[26:30]-mean(Data[26:30]))^2)

f:id:yoshida931:20170310140533p:plain


注意)水準内変動はいわゆる各水準内のバラつきです.
F値は水準内平均平方を分母にとるため、バラつきが
小さいと交互作用や因子内の水準間差が出やすくなります

例)
交互作用の変動:F=交互作用の変動の平均平方 ÷ 水準内変動の平均平方