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

統計学備忘録 since2016

Rを使って統計学を勉強するブログです

独立性の検定

投稿日2016.11.4
更新日2017.7.14

  f:id:yoshida931:20170712205203p:plain
この分割表において独立とは  Ai ∩ Bj の各確率に対して
全ての i j(どの i j でも)に対して  P( Ai ∩ Bj )=P( Ai ) * P( Bj )  となる

AとBが完全に独立な場合の例
  A1 : A2 : A3  がどのBでも  1 : 3 : 6 
  B1 : B2 : B3  がどのAでも  1 : 3 : 5

        f:id:yoshida931:20170714143721p:plain

 

帰無仮説の表現いろいろ

  • 事象Ai とBjは独立である 
  • A1 , A2 , ... , Ak の起こり方はどのBjに対しても共通である
  • 全ての i jに対して  P( Ai ∩ Bj ) = P( Ai ) * P( Bj ) 

 

期待度数(理論度数)
Ai の出現確率の推定値は  P( Ai ) = 行の周辺度数 / 総度数 = ni・ / n
Bj の出現確率の推定値は  P( Bj ) = 列の周辺度数 / 総度数 = nj・ / n
したがって セルOij の期待度数Ei
Ei  =  n * P( Ai ∩ Bj )  = n * P( Ai ) * P( Bj )  =  n * ( ni・ / n ) * ( nj・ / n )

カイ2乗値
=  ∑∑ ( ( ( 観測度数 - 期待度数 )^2 ) / 期待度数 )
=  sum ( ( Oij - Eij )^2 / Eij )

2つの異なる属性A,Bについて度数を集計する.
Aのカテゴリ A1 , A2 , ... , Ak  (例:名義尺度P1、P2、P3 )
Bのカテゴリ B1 , B2 , ... , Bm (例:名義尺度A、B、C )

rn <- c ( "P1" , "P2" , "P3" )
A <- c ( 12, 10, 13 )
B <- c ( 20, 12, 16 )
C <- c ( 20, 15, 19 )
y <-  data.frame (A,B,C)
rownames ( y ) <- paste0 ( rn )

        f:id:yoshida931:20170706181448p:plain

カイ2乗値 を算出してみます
rowSums( y )     #データフレームの行の合計
 P1 P2 P3
52 37 48

f:id:yoshida931:20170714182224p:plain

期待度数はそれぞれ 52 / sum( y ) ,  37 / sum( y ) ,  48 / sum( y ) 

 

E1A<-sum(A)* 52 / sum( y )      # ( A , P1 ) の期待値
E1B<-sum(B)* 52 / sum( y )      # ( B , P1 ) の期待値
E1C<-sum(C)* 52 / sum( y )   ( C , P1 ) の期待値

E2A<-sum(A)* 37 / sum( y )      # ( A , P2 ) の期待値
E2B<-sum(B)* 37 / sum( y )      # ( B , P2 ) の期待値
E2C<-sum(C)* 37 / sum( y )   ( C , P2 ) の期待値

E3A<-sum(A)* 48 / sum( y )      # ( A , P3 ) の期待値
E3B<-sum(B)* 48 / sum( y )      # ( B , P3 ) の期待値
E3C<-sum(C)* 48 / sum( y )   ( C , P3 ) の期待値


カイ2乗値
  自由度 = ( 3-1 ) * ( 3-1 ) = 4
( 12 - E1A )^2 / E1A +
   ( 20 - E1B )^2 / E1B +
   ( 20 - E1C )^2 / E1C +
   ( 10 - E2A )^2 / E2A +
   ( 12 - E2B )^2 / E2B +
   ( 15 - E2C )^2 / E2C +
   ( 13 - E3A )^2 / E3A +
   ( 16 - E3B )^2 / E3B +
   ( 19 - E3C )^2 / E3C
=0.5099473


P値      
1 - pchisq ( 0.5099473 , 4 )  
     # 累積分布 pchisq ( カイ二乗値 , 自由度 ) 
=0.9725254

Rの関数で確認します

chisq.test ( y , correct=F )

Pearson's Chi-squared test

data: y
X-squared = 0.50995, df = 4, p-value = 0.9725

 

 

Yates(イェ-ツ)補正
chisq.test(x)
2行×2列のクロス集計表のデータに対して行われる補正分割表から得られる.分割表から得られるカイ二乗値は跳び跳びの値しかとらないがχ2 分布は連続分布である。 このため,2×2 分割表の場合には連続性の補正をしたほうがよい。検出力は低下するが、より正確な検定が可能になる。

フィッシャーの正確確率検定

fisher.test(x)
分割表において,期待値が 5 以下の桝目が全体の桝目の 20% 以上あるか,期待値が 1 以下の桝目が 1 つでもある場合には,χ2 分布を利用する「独立性の検定」は不適当である。そのような場合に実施する検定。

http://aoki2.si.gunma-u.ac.jp/lecture/Cross/Fisher.html