Last updated: March 2014 -October 2008. Kajiyama                    [ 目次に戻る ]

2変数のクロス表(分割表)のデータ解析


  1. 2変数XYの関係の表現

    (1) 質的変数(カテゴリーデータ)Yと質的変数(カテゴリーデータ)Xの関係を「関連」といい,連関係数で表す.

       ファイ係数φとクラメールの連関係数 Vがある.

    (2) 量的変数(数値)Yと量的変数(数値)Xの関係を「相関」といい,相関係数rで表す.積率相関係数と順位相関係数がある.

      ・量的変数(数値)Yと質的変数(カテゴリーデータ)Xの関係を「相関」といい,相関係数でなく相関比ηで表す.


  2. 統計的仮説検定の復習はここをクリックする.


  3. 「独立性の検定」と「一様性の検討」

    分割表のデータ解析の目的には次の二つがある.

    注意 Rの統計解析に使用するクロス表は合計欄を含まない.

    (1) 独立性の検定は,クロス表1の2変数A・Bのカテゴリの関連の有無を検定する場合である.

    (2) 適合度の検定(一様性の検討)は,クロス表2の2つの変数A・Bの片方Aがグループ(実験群と対照群)を示し,

    他方のB変数のカテゴリの分布に,グループ間で差があるか否かを検討する場合である.

    クロス表の数値から見ると2つの変数のカテゴリ間の関連を検討するものであるから,2つの検定方法は同じになる.


    表1  [変数Aのカテゴリ] と [変数Bのカテゴリ] の3x3クロス表

      変数Bのカテゴリ.あ 変数Bのカテゴリ.い 変数Bのカテゴリ.う
    変数Aのカテゴリ.山 3 0 0
    変数Aのカテゴリ.川 0 3 0
    変数Aのカテゴリ.里 0 0 3


    表2  [グループのカテゴリ] と [変数Bのカテゴリ] の3x3クロス表

      変数Bのカテゴリ.あ 変数Bのカテゴリ.い 変数Bのカテゴリ.う
    グループのカテゴリ.実験群01 3 0 0
    グループのカテゴリ.実験群02 0 3 0
    グループのカテゴリ.対照群 0 0 3


  4. 2変数のクロス表の検定手法は「カイ二乗検定(χ2)検定」と「フィッシャーの直接確率」

    2変数のクロス表により,2変数が独立であるかを検定する方法は次の二つがある.いずれも rxc クロス表の検定ができる.

    (1) カイ二乗検定(χ2)検定(Pearson's Chi-squared test)は,検定統計量が漸近的にχ2分布に従うことを利用する.

      ・クロス表のサンプルの総数が50以上で,マス目に0の度数がない場合は,ピアソンのカイ二乗検定を使用する.

       chisq.test(x, correct = FALSE) #     と記述し検定を行う. xはデータファイル名.

      ・クロス表のサンプルの総数が50以下の場合は,イェーツの連続性補正をしたカイ二乗検定を使用する.

       chisq.test(x, correct = TRUE) #     と記述し検定を行う.

    (2) フィッシャーの直接確率(Fisher's Exact Test)は,正確な確率計算に基づく検定法である

      ・クロス表に[1や0のマス目]がある.あるいは[5以下のマス目がいくつかある]場合は,フィッシャーの直接確率を使用する.

       fisher.test(x) #     と記述し検定を行う.


    ・文献 "質的データの解析 カイ二乗検定とその展開", B. S. Everitt,山内光哉訳,弓野憲一訳,菱谷晋介訳,新曜社,1980.


  5. データフレームの読み込みと確認

    (1) データフレームの読み込み

    ここでは,「Web上の表シート」あるいは「エクセルの表計算シート」からクリップボード経由で読み込む操作を行う.

    表3 たばこ好き?  2x2クロス表

     
    1.煙草1日20本未満
    2.煙草1日20本以上
    50歳未満 50歳以上
    50 15
    10 25

    表3 「たばこ好き? のデータフレーム」の緑の部分をマウスで選択し,これをコピーする.

    次に,Rの「コンソール」画面に,

    x <- read.table("clipboard", header=TRUE) # header=TRUE は第1行が列の変数名

    と記述し,コピーした[clipboard]データファイルを,Rの内部のデータフレーム,ファイル名 x に直接読み込む.


    (2) 読み込んだデータフレームの確認

    x #     と記述し,Rの内部に作成したデータフレーム x を,表示し確認する.

    ・Rが読めないコードの日本語文字を使用した場合に次のようなエラーメッセージが出る. まずは,使用した変数名の日本語を書き直す.

    以下にエラー scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
    '2' 行目には,2 個の要素がありません


    > x <- read.table("clipboard", header=TRUE)
    > x

     50歳未満 50歳以上
    1    50    15
    2    10    25


    (3) データフレームの構造確認

    str (x) #     と記述し,Rの内部のデータフレーム x の変数の内容を表示確認する.

    > str (x)

    'data.frame':  2 obs. of 2 variables:
     $ 50歳未満: int 50 10
     $ 50歳以上: int 15 25

    ・変数名とカテゴリ名はRが理解した名前を使用する.


  6. カイ二乗検定(χ2)

    1. クロス表の標本総数や期待度により使用するカイ二乗検定のタイプが異なる

      (1) 分割表の期待度数が小さい場合,近似度が悪くなる.

        クロス表に[1や0のマス目]がある.あるいは[5以下のマス目がいくつかある]場合は,フィッシャーの直接確率を使用する.

      (2) 標本サイズが小さい場合は近似度が悪くなる.

        クロス表のサンプルの総数が50以下の場合は,イェーツの連続性補正をしたカイ二乗検定を使用する.

      (3) クロス表のサンプルの総数が50以上で,マス目に0の度数がない場合は,ピアソンのカイ二乗検定を使用する.

      ・文献 "質的データの解析 カイ二乗検定とその展開", B. S. Everitt,山内光哉訳,弓野憲一訳,菱谷晋介訳,新曜社,1980.


    2. ピアソンのカイ二乗検定(χ2) (Pearson's Chi-squared test)

      (1) Rの「コンソール」画面に,

      chisq.test(x, correct = FALSE) #     と記述し検定を行う. xはデータファイル名.

      > chisq.test(x, correct = FALSE)

          Pearson's Chi-squared test カイ二乗検定(χ2)値

      data: x
      X-squared = 22.1612, df = 1, p-value = 2.507e-06

      (2) 結果の読み方

      ・年齢とタバコの本数は独立である.年齢とタバコの本数は関連がないという帰無仮説を立てる.

      ・統計量であるカイ二乗値を求めると,χ2=X-squared = 22.1612である.

      [a]有意水準は5%とする.自由度=df = 1である.

       χ2値が自由度1のχ2分布に従うことを利用し,有意水準5%の値を教科書の巻末にある数表から求めると3.841になる.

       5%の棄却域はχ2≧3.841である.

       統計量χ2=22.1612は3.841より大きく棄却域にはいるため,帰無仮説を棄却する.


      [b]さらに,有意水準は0.1%とし検討する.自由度=df = 1である.

       χ2値が自由度1のχ2分布に従うことを利用し,有意水準0.1%の値を教科書の巻末にある数表から求めると10.828になる.

       0.1%の棄却域はχ2≧10.828である.

       統計量χ2=22.1612は10.828より大きく棄却域にはいるため,帰無仮説を棄却する.


      [c] p値(p-value )が直接求まるので,有意水準は0.1%で検討すると,p値=0.000002507<0.001.有意水準0.1%で有意である.


       対立仮説が選択され,年齢とタバコの本数は独立でなく,関連があることになる.

      ・論文では,「カイ二乗検定を行うと,χ2=22.16, P<.001であり,タバコの本数と年齢は関連があるといえる」と表記する.

      ・ヘビースモーカの一日20本以上の喫煙率,50歳未満は10/35=29%で50歳以上は25/35=71%である.


    3. イェーツの連続性補正をしたカイ二乗検定(χ2) (Pearson's Chi-squared test with Yates' continuity correction)

      (1) Rの「コンソール」画面に,

      chisq.test(x, correct = TRUE) #     と記述し検定を行う.xはデータファイル名.

      chisq.test(x) #     と記述しても同じ.

      > chisq.test(x)

          Pearson's Chi-squared test with Yates' continuity correction イェーツの連続性補正χ2

      data: x
      X-squared = 20.1923, df = 1, p-value = 7.003e-06

      (2) 結果の読み方

      ・年齢とタバコの本数は独立である.年齢とタバコの本数は関連がないという帰無仮説を立てる.

      ・統計量であるカイ二乗値を求めると,χ2=X-squared = 20.19である.

      ・有意水準は1%とする.自由度=df = 1である.

       χ2値が自由度1のχ2分布に従うことを利用し,有意水準1%の値を教科書の巻末にある数表から求めると6.635になる.

       5%の棄却域はχ2≧6.635である.

      ・統計量χ2=20.19は6.635より大きく棄却域にはいるため,帰無仮説を棄却する.

       したがって,対立仮説が選択され,年齢とタバコの本数は独立でなく,関連があることになる.

      ・論文では,「カイ二乗検定を行うと,χ2=20.19, P<.01であり,タバコの本数と年齢は関連があるといえる」と表記する.

      ・ヘビースモーカの一日20本以上の喫煙率,50歳未満は10/35=29%で50歳以上は25/35=71%である.


      (3) chisq.testの警告メッセージが出た場合

      警告メッセージ:
      chisq.test(ファイル名, correct = TRUE) で: カイ自乗近似は不正確かもしれません


      クロス表のセルの期待値が5より小さい場合、カイ2乗検定は不適とみなされる.この時はフィッシャーの直接確率を使う


    4. フィッシャーの直接確率(Fisher's Exact Test フィッシャーの正確確率検定・直接確率検定) ロナルド・フィッシャー

      Rのフィッシャーの直接確率 fisher.test(x)関数は2x2クロス表だけでなく2x2以上のクロス表も正確に検定できる.

      (1) Rの「コンソール」画面に,

      fisher.test(x) #     と記述し検定を行う. fisher.test( データファイル名 )

      > fisher.test(x)

         Fisher's Exact Test for Count Data

      data: x
      p-value = 4.114e-06
      alternative hypothesis: true odds ratio is not equal to 1
      95 percent confidence interval:
       2.99815 23.71661
      sample estimates:
      odds ratio
       8.120371

      (2) 結果の読み方

      ・年齢とタバコの本数は独立である.年齢とタバコの本数は関連がないという帰無仮説を立てる.

      ・表のパタ−ンになる確率を求めると p値=p-value = 4.114e-06=0.000004114である.

      ・有意水準を5%に設定すると p値<.05より小さいので棄却される.

       有意水準を1%に設定すると p値<.01より小さいので棄却される.

      ・ p<0.01 (1%) p値が1%以下であるので,タバコの本数と年齢は独立であるとの帰無仮説は棄却され成り立たない..

        したがって,対立仮説が選択され,タバコの本数と年齢は関連があるといえる.

      ・論文では,「フィッシャーの直接確率を行うと,P=0.000004,P<.001であり,タバコの本数と年齢は関連があるといえる」と表記する.

      ・ヘビースモーカの一日20本以上の喫煙率,50歳未満は10/35=29%で50歳以上は25/35=71%である.

      (3)  fisher.testの警告メッセージが出た場合

      fisher.test(ファイル名) でエラー: FEXACT error 6.
      LDKEY is too small for this problem.
      Try increasing the size of the workspace

      ・2X2のクロス表より大きくなると,workspaceを大きく取らないとエラーになる場合がある.

      ・Rプログラムのメモリ容量workspaceの値を増やすと解決できる.

      fisher.test(ファイル名,workspace=1e+08 ) #と書き換えて,再度実行



  7. 連関係数

    ・p値はサンプル・サイズ(標本数)の影響を受けやすく,サンプル数が大きくなるとp値は低くなり有意であると判断しやすくなる.

    ・サンプルサイズに影響されない関連の大きさ(効果の大きさ)を示す指標が連関係数である.

     2×2クロス集計表はファイ係数(φ(=W))を使用し,

     2×2以上のクロス集計表は,クラメールの連関係数(Cramer's V)を指標に使用する.

     これらの指標は0〜1の範囲をとり,1に近いほど関係性が強いと判断できる.

    ・このほかの指標として,人間を扱う医学や心理学の分野で,効果量(effect size)が用いられる.


  8. 効果量(effect size)と95%信頼区間の計算

    効果量の計算ができる統計パッケージを利用して既に求めた統計量のカイ二乗値とサンプル総数を用いて効果量を求める.

    Cohenは表に示すように検定の種類により異なる効果量の大きさの目安を提案した.

    表 Cohenの効果量の大きさの目安
    検定の種類 効果量小 small 効果量中 medium効果量大 large
    カイ二乗検定0.10.30.5
    相関係数の検定0.10.30.5


    (1) 効果量の計算パッケージcompute.esのインストールとパッケージをRの内部に読み込む.

    ・復習: 統計パッケージcompute.esをコンピュータに追加インストールする方法. このままではRで使用できない.

    (2) Rの「コンソール」画面に,

    library (compute.es) # 使いたければ,R内部に読み込む.次に効果量計算のchies関数を使用する.

    chies ( chi.sq, n, level = 95, cer = 0.2, dig = 4, verbose = TRUE, id=NULL, data=NULL)

    help(chies) #  χ2検定での効果量を計算するためのchies関数の使い方を調べる.

    chi.sqは上記のイエーツの連続性補正をしたカイ二乗値を使用すれば,chi.sq=X-squared = 20.1923,

    nはサンプルの総数=100.これらの値を上記のchies関数に入れる.

     >library (compute.es) # R内部にインストール
    
    > help(chies)
    
    > chies(20.1923, 100, level = 95, cer = 0.2, dig = 4, verbose = TRUE, id=NULL, data=NULL)
    
    Mean Differences ES: 平均値の差の大きさの効果量指標
    
     d [ 95 %CI] = 1.001 [ 0.554 , 1.447 ]  
      var(d) = 0.051 
      p-value(d) = 0 
      U3(d) = 84.158 % 
      CLES(d) = 76.046 % 
      Cliff's Delta = 0.521 
     
     g [ 95 %CI] = 0.993 [ 0.55 , 1.436 ] 
      var(g) = 0.05 
      p-value(g) = 0 
      U3(g) = 83.971 % 
      CLES(g) = 75.877 % 
     
     Correlation ES: 関連の大きさの効果量指標
     
     r [ 95 %CI] = 0.449 [ 0.275 , 0.595 ]    : 95%信頼区間(信頼水準95%で効果量を含む区間)
      var(r) = 0.006 
      p-value(r) = 0 
     
     z [ 95 %CI] = 0.484 [ 0.282 , 0.685 ] 
      var(z) = 0.01 
      p-value(z) = 0 

    (3)結果の読み方

    ・カイ二乗検定(χ2)検定では,関連の大きさの指標である効果量Correlation ESのrを見る.

     効果量r=0.45でrの95%信頼区間は,[ 0.28 , 0.6 ]

    ・効果量r=0.45の値はCohenの表から効果の大きさが中程度といえる.

     ヘビースモーカの一日20本以上の喫煙率,50歳未満の29%と50歳以上の71%は中程度の差であることが確認できる.

    表 Cohenの効果量の大きさの目安
    検定の種類 効果量小 small 効果量中 medium効果量大 large
    カイ二乗検定0.10.30.5
    相関係数の検定0.10.30.5

[ 目次に戻る ]