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

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

統計学備忘録 since2016

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

独立性の検定

赤文字のみRで実行

=======================================
次のクロス表を検定してみます
問)男性と女性で、yesの解答者数とnoの解答者数の比率に違いはあるか?

   Yes   N0
男性   n1   n2
女性   n3   n4
================================================================

#帰無仮説「男性と女性では解答者数の比率に違いがない」
#観測度数を行列で作成して解いてみます
例)仮想データ

n1<-15
n2<-11
n3<-4
n4<-16


(x<-matrix(c(n1,n2,n3,n4),nrow=2,ncol=2, byrow=T))
nrowで行数,ncolで列数
byrow=T:行列を作成する場合,要素を上の行から順に (左から右へ) 埋める


カイ2乗値=Σ( ( (観測度数-期待度数)^2)/期待度数)
期待度数=(セルの行の周辺度数×セルの列の周辺度数)/総度数

各行列の和
sum(x[1,]) #1行目の和
sum(x[2,]) #2行目の和
sum(x[,1]) #1列目の和
sum(x[,2]) #2列目の和
総和
rowSums(x) #行の総和
colSums(x) #列の総和
n<-n1+n2+n3+n4

期待度数を行列で作成します
(y<-matrix(c(
sum(x[1,])*sum(x[,1])/sum(x),
sum(x[1,])*sum(x[,2])/sum(x),
sum(x[2,])*sum(x[,1])/sum(x),
sum(x[2,])*sum(x[,2])/sum(x)),
nrow=2,ncol=2, byrow=T))

  [,1] [,2]
[1,] 10.73913 15.26087
[2,] 8.26087 11.73913

期待値
EXP1<-sum(x[1,])*sum(x[,1])/sum(x)
EXP2<-sum(x[1,])*sum(x[,2])/sum(x)
EXP3<-sum(x[2,])*sum(x[,1])/sum(x)
EXP4<-sum(x[2,])*sum(x[,2])/sum(x)

残差=実測値—期待値
RES1<-n1-EXP1
RES2<-n2-EXP2
RES3<-n3-EXP3
RES4<-n4-EXP4

調整済残差=残差/√{期待値*(1-行和/n)*(1-列和/n)}
aRES1<-RES1/sqrt(EXP1*(1-sum(x[1,])/n)*(1-sum(x[,1])/n))
aRES2<-RES2/sqrt(EXP2*(1-sum(x[1,])/n)*(1-sum(x[,2])/n))
aRES3<-RES3/sqrt(EXP3*(1-sum(x[2,])/n)*(1-sum(x[,1])/n))
aRES4<-RES4/sqrt(EXP4*(1-sum(x[2,])/n)*(1-sum(x[,2])/n))

調整済残差のP値
1-pnorm(aRES1,lower=F)
pnorm(aRES2,lower=F)
pnorm(aRES3,lower=F)
1-pnorm(aRES4,lower=F)

カイ2乗値
(カイ2乗値<-sum( (x-y)^2/y))
6.624441

P値 自由度(行数-1)×(列数-1))
(p値<-pchisq(カイ2乗値,(2-1)*(2-1),lower.tail=FALSE))
0.01005887

連関係数:ファイ係数
φ<-(n1*n4-n2*n3)/sqrt(sum(x[1,])*sum(x[2,]) *sum(x[,1])*sum(x[,2]))
0.379486
補足:2×2以外の分割表ではクラメールの連関係数(V係数)を使用する
V<-sqrt(カイ2乗値/n)

連関係数<|0.2| 連関はほとんどない
|0.2|≦連関係数<|0.4| やや連関がある
|0.4|≦連関係数<|0.7| 強い連関がある
|0.7|≦連関係数 かなり強い連関がある
   対馬栄輝; よくわかる医療統計 -「なぜ?」にこたえる道しるべ, 東京図書, 2015

 

結果
帰無仮説は有意水準5%で棄却される。「男女間での解答の比率に明確な違いがない」とは言えない結果となった。また連関係数より男性はYES、女性はNOと解答するという正の連関にあることがわかった。