*質的変数の連関分析 2017-12-28 [#e15bb83a]

**分割表 [#c288df51]
分割表(contingency table)とは、2つ以上の質的変数(特に名義尺度〜量的大小が無い場合も含めて)の間の関係を記録し分析するための表。

例: Rで得られるTitanic遭難データから、Class=2nd、Age=Adultのデータを抽出した。
|     |   生存|  死亡|
| 男性|  154.0|  14.0|
| 女性|   13.0|  80.0|

この例は2x2の表であるが、一般的にmxnの表が可能。

抽出のプログラムは
 import pandas as pd
 from rpy2.robjects import pandas2ri
 pandas2ri.activate()
 
 from rpy2.robjects import r
 # RのTitanicのデータを使いたい。
 # https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/Titanic.html
 #4次元の配列で、内容は
 # No    Name    Levels
 # 1     Class   1st, 2nd, 3rd, Crew
 # 2     Sex     Male, Female
 # 3     Age     Child, Adult
 # 4     Survived        No, Yes
 
 #データそのものは、
 #   Class    Sex   Age Survived Freq
 #1    1st   Male Child       No    0
 #2    2nd   Male Child       No    0
 #3    3rd   Male Child       No   35
 #4   Crew   Male Child       No    0
 #5    1st Female Child       No    0
 #6    2nd Female Child       No    0
 #7    3rd Female Child       No   17
 #8   Crew Female Child       No    0
 #9    1st   Male Adult       No  118
 #10   2nd   Male Adult       No  154
 #11   3rd   Male Adult       No  387
 #12  Crew   Male Adult       No  670
 #13   1st Female Adult       No    4
 #14   2nd Female Adult       No   13
 #15   3rd Female Adult       No   89
 #16  Crew Female Adult       No    3
 #17   1st   Male Child      Yes    5
 #18   2nd   Male Child      Yes   11
 #19   3rd   Male Child      Yes   13
 #20  Crew   Male Child      Yes    0
 #21   1st Female Child      Yes    1
 #22   2nd Female Child      Yes   13
 #23   3rd Female Child      Yes   14
 #24  Crew Female Child      Yes    0
 #25   1st   Male Adult      Yes   57
 #26   2nd   Male Adult      Yes   14
 #27   3rd   Male Adult      Yes   75
 #28  Crew   Male Adult      Yes  192
 #29   1st Female Adult      Yes  140
 #30   2nd Female Adult      Yes   80
 #32  Crew Female Adult      Yes   20
 
 #データはnumpyのndarrayで返ってくる
 # titanic = r["Titanic"]
 
 #pandasのDataFrameに移したいが4次元なのでいきなりは無理(DFは2次元)。
 #適当な2つの次元で切り出す。
 #たとえば、Class=2nd、Age=Adultに固定して、SexとSurvived/Noを切り出す。
 Sex_2nd_Adult=pd.DataFrame(r["Titanic"][1,:,1,:])
 print(Sex_2nd_Adult)
 #結果は、
 #        0     1
 # 0  154.0  14.0
 # 1   13.0  80.0
 
 #pandasで列名、行名を変更するには
 # df.index = [1, 2, 3]
 # df.columns = ['a', 'b', 'c']
 Sex_2nd_Adult.index = ['男性', '女性']
 Sex_2nd_Adult.columns = ['生存', '死亡']
 
 print(Sex_2nd_Adult)

このような(カテゴリカル)データに対して、相関(連関と呼ぶ)つまり男女と生存・死亡に
関連があるかを調べたい。

**連関分析の方法・係数 [#l946cc29]
|| | |
||a|b|
||c|d|

***ユールのQ [#cc77351a]
$Q=\frac{ad-bc}{ad+bc}$

***ファイ係数($\phi$係数) [#u638a60f]
2$\times$2の分割表の連関を示す係数。2つの導入がありそれぞれ同値。

(1) それぞれの軸の値を0/1として(連続値と同じ)ピアソンの積算相関係数を計算する方法

$Cor = \sum_i (X_i – \mu_x)(Y_i – \mu_y) / ( N\times SD_x \times SD_y )$

(2) 計算式 $P = \frac{(ad - bc)}{\sqrt{(a + b)(c + d)(a + b)(c + d)}}$

これが(1)と等しいことは、東京大学 上田博人先生の言語データ分析の授業資料『言語研究のための数値データ分析法』の[[第6章 関係[PDF]:https://lecture.ecc.u-tokyo.ac.jp/~cueda/gengo/4-numeros/doc/n6-kankei.pdf]]の17ページにある式変形で証明される。

***オッズ比 [#w90e8826]
オッズ比 = a/bのオッズ $\frac{a}{b}$ と c/dのオッズ $\frac{c}{d}$ の比率~
$\frac{a/b}{c/d}$ = $\frac{ad}{bc}$


***ピアソンの$\chi^2$ と クラメールの連関係数$V$ [#f6ea988d]

観測値を$O$、理論値(期待値)を$E$とするとき、カイ二乗は~
  $\chi^2 = \sum \frac{(O-E)^2}{E}$
である。これを分割表で適合度検定・独立性検定に用いる。

適合度検定は、観測された度数分布が理論分布と同じかどうかを検定する。例題として100人の標本中の男女の人数の観測度数を、理論値(男女が等しい)に対して比較する。男女が等しいとする帰無仮説を有意水準$\alpha$に対して検定する。

観測値が、男性40、女性60であったとすると、~
  $\chi^2=\sum \frac{(v_i-np_i)^2}{np_i} = \frac{(40-50)^2}{50}+\frac{(60-50)^2}{50} = 4$
この場合の自由度は1であるので、自由度1の$\chi^2$分布表から$\alpha =0.05$のパーセント点を求めると3.84であり、$\chi^2$値が越えてしまうので帰無仮説「男女は等しい」は棄却され、等しいと言えないという結論になる。またもし、男性45、女性55であれば、$\chi^2=1$になるので、仮説は棄却されない(等しいか等しくないか言えない)。

なお、$\chi^2$分布で近似できるのは、期待度数が$np_i>=10$をすべての属性に対して満たすときとされている。

独立性の検定は、2x2の分割表で示される2つの変数が互いに独立かどうかを検定する。 

| |1|2| ... |c|計|
|1|n11|n12| ... |n1c|n1*|
|2|n21|n22| ... |n2c|n2*|
| |   |   | ... |   |   |
|r|nr1|nr2| ... |nrc|nr*|
|計|n*1|n*2| ... |n*c|N|

この時の期待度数Eは次のように計算する。[[独立性の検定 期待度数の最尤推定量の導出:https://to-kei.net/hypothesis-testing/maximam-likehood-estimate-of-degree-of-freedom/]]~
  $E_{ij} = \frac{n_{i*} \cdot  n_{*j}}{N}$~
自由度は、
  $自由度 = (r-1)(c-1)$~
これを用いて、$\chi^2$を求める。

2x2の表の場合、Titanicの例では、
|    | 生存 | 死亡 |  計 |
|男性|  154 |   14 | 168 |
|女性|   13 |   80 |  93 |
|計  |  167 |   94 | 261 |
であり、期待度数はそれぞれ
|    | 生存 | 死亡 |  計 |
|男性| 168x167/281=107.5 | 168x94/281=56.2 | 168 |
|女性|  93x167/281=55.3  |  93x94/281=31.1 |  93 |
|計  |  167              |         94      | 261 |
検定統計量は
|    | 生存 | 死亡 |
|男性| (154-107.5)^2/107.5=20.1 | (14-56.2)^2/56.2=31.7 |
|女性| (13-55.3)^2/55.3=32.4    | (80-31.1)^2/31.1=76.9 |
検定統計量はこの4者の和なので、161.1となる。

自由度=(2-)(2-1)=1のカイ二乗分布に従うので、有意水準$\alpha=0.05$の値を見ると3.84であり、帰無仮説は棄却され、独立ではないと結論できる。

なお、2x2の場合、
||B1|B2|
|A1|a|b|
|A2|c|d|
式を整理すると、
$\chi^2=\frac{N(ad-bc)^2}{(a+b)(c+d)(a+c)(b+d)}$
となる。

クラメールの連関係数は、$\chi^2$をピアソンのカイ二乗検定で得られる値、$N$をデータの総数、$k$を行数・列数の少ない方とすると~
$V=\sqrt{\frac{\chi^2}{N(k-1)}}$ ~

2$\times$2の分割表の場合、$k=2$となるので、~
$V=\sqrt{\frac{\chi^2}{N}}$ ~

但し、$\chi^2$検定による独立性の検定は、すべてのセルの期待値が10未満程度であると正しくない。フィッシャーの正確検定はセルの値が小さい場合にも検定できる。

なお、2$\times$2の分割表の場合に限り、クラメールの連関係数$V$とファイ係数$\phi$の絶対値は一致する。~
  (南風原朝和「心理統計学の基礎」(有斐閣アルマ)p188、[[カテゴリカルデータ分析入門:http://www1.tcue.ac.jp/home1/ymiyatagbt/chisquare_test.pdf]] p8)

つまり、$V=\sqrt{\frac{\chi^2}{N}}=|\phi|$ である。


**スピアマンの順位相関係数 [#b9789da8]
連続変数に対するピアソンの(積率)相関係数の算出法を、順序尺度の場合に適用したもの。順位を数値としてピアソンの相関係数を計算する。

$\rho = 1-\frac{6\sum_i{d_i}^2}{n(n^2-1)}$ ~
但し$n$はデータの個数、$d_i$は順位の差。同順位は存在しないとする。

この式は、ピアソンの相関係数の定義から単純に式変形で導出される。([[スピアマンの順位相関係数:http://www.tamagaki.com/math/Statistics609.html]])~
$r_{xy} = \frac{s_{xy}}{s_x\cdot s_y}$~
  $= \frac{(1/n)\sum (x_i-\overline{x})(y_i-\overline{y})}{\sqrt{(1/n)\sum (x_i-\overline{x})^2\times (1/n)\sum (y_i-\overline{y})^2}} $ ~
  $= \frac{\sum x_i\cdot y_i - n\overline{x}\cdot \overline{y}}{\sqrt{\sum ({x_i}^2-n\overline{x}^2) \times \sum ({y_i}^2 - n\overline{y}^2) }} $

ここで、$x$の個数=$y$の個数=$n$で同順位がないとすると、~
$\sum x_i=\sum y_i = n(n+1)/2$~
$\sum {x_i}^2=\sum {y_i}^2 = n(n+1)(2n+1)/6 $~
$\overline{x}=(n+1)/2$、 $\overline{y} = (n+1)/2$ ~
であるので、~
$r_{xy}=\frac{\sum x_i y_i -n((n+1)^2/4)}{n(n+1)(n-1)/12}$ ~
  $=\frac{12\cdot \sum x_i y_i -3n\cdot (n^2+2n+1)}{n(n+1)(n-1)}$ ~
  $=1 - \frac{-12\cdot \sum x_i y_i +3n\cdot (n^2+2n+1) + n(n+1)(n-1)}{n(n+1)(n-1)}$ 
  $=1 - \frac{1}{n(n+1)(n-1)} \cdot (-12\cdot \sum x_i y_i +3n\cdot (n+1)^2 + n(n+1)(n-1))$~
  $=1 - \frac{6}{n(n+1)(n-1)} \cdot (-2\cdot \sum x_i y_i + (1/6)n(n+1)(3(n+1)+(n-1)))$~
  $=1 - \frac{6}{n(n+1)(n-1)}\cdot (-2\cdot \sum x_i y_i + (1/6)n(n+1)(2n+1))$~
  $=1 - \frac{6}{n(n+1)(n-1)}\cdot (-2\cdot \sum x_i y_i +2\frac{n(n+1)(2n+1)}{6}))$~
  $=1 - \frac{6}{n(n+1)(n-1)}\cdot (-2\cdot \sum x_i y_i + \sum {x_i}^2 + \sum {y_i}^2))$~
  $=1 - \frac{6}{n(n+1)(n-1)}\cdot (\sum {x_i}^2 + \sum {y_i}^2) + -2\sum x_i y_i)$~
  $=1 - \frac{6}{n(n^2-1)}\cdot \sum(x_i-y_i)^2 $



***脱線 (ピアソンの)相関係数の推定と検定 [#k7fa5aa0]
-[[島根大学生物資源科学部 小林和広先生:http://www.ipc.shimane-u.ac.jp/food/kobayasi/]] の [[相関分析:http://www.ipc.shimane-u.ac.jp/food/kobayasi/biometry12_2010.html]]
-[[筑波大学生命環境系 山中勤先生:http://www.geoenv.tsukuba.ac.jp/~tyam/]] の [[相関係数の t 検定:http://www.geoenv.tsukuba.ac.jp/~tyam/lab/tips/CorrCoeff_t-test.pdf]]

標本から求めた相関係数$r$から、母集団の相関係数(母相関係数)$\rho$ を区間推定したい。 そのとき、母相関係数$\rho$が与えられた時の標本相関係数$r$の分布は、$\rho$の値によって著しく異なる。(図は[[相関分析:http://www.ipc.shimane-u.ac.jp/food/kobayasi/biometry12_2010.html]]にある。)

一般に相関の対象となる2つの変数が2変量正規分布(bivariate normal distribution)であるとき、標本相関係数$r$の分布は、~
  $\rho=0$のとき、統計量 $t=\frac{r\sqrt{n-2}}{\sqrt{1-r^2}}$ は自由度$n-2$の$t$分布に従う~
  $\rho\neq 0$のとき、統計量 $Z=\frac{1}{2}\ln \frac{1+r}{1-r}$ は近似的に $N(\frac{1}{2}\ln \frac{1+\rho}{1-\rho}, \frac{1}{n-3})$ に従う~
ことが分かっている。

この関係を使って、母相関係数を区間推定できる。~
  点推定の場合: $\rho$の推定値 $\hat\rho = r$~
  区間推定の場合: 正規分布で推定

また、相関の検定は、通常は無相関の検定(母集団に相関が無い$\rho=0$という帰無仮説を検定)として行われる。従って、帰無仮説$\rho=0$が成り立つとして、統計量$t$~
  $t=\frac{r\sqrt{n-2}}{\sqrt{1-r^2}}$~
が自由度$n-2$の$t$分布に従うことを用いて、$t$検定する。


相関係数の検定に関わるとき、ピアソンの積率相関係数の検定は対象となる2変数が(2変量)正規分布を仮定するが([[「なぜか」へのMatt Williamsの返答:https://www.researchgate.net/post/Why_should_data_be_normally_distributed_and_continuous_in_order_to_apply_Pearson_correlation]])、スピアマンの順序相関係数は仮定しない。




**フィッシャーの正確検定 [#yb47afbb]
フィッシャーの正確検定は、$\chi^2$を用いた独立性の検定が各要素の値が10未満程度の場合には向いていないが、この場合でも適用できる。考え方は、縦計a+c, b+dと横計a+b, c+dを固定したときに上記の分割表を得られる確率$p$は、すべての組合せの計算から、

$\p = \frac{(a+b)!(c+d)!(a+c)!(b+d)!}{n!a!b!c!s!}$
$p = \frac{(a+b)!(c+d)!(a+c)!(b+d)!}{n!a!b!c!s!}$

となる。この値はいわゆる$p$値であり、$p$が小さいとこのような組み合わせの表が生じる確率は$p$程度に少ないということになる。

**無相関検定 [#ze6ee121]

---------------------
-[[NECラーニング・相関分析:https://www.neclearning.jp/sample_text/DB101-1.pdf]]
-[[高校数学/統計:http://www.geisya.or.jp/~mwm48961/koukou/index_m.htm#statistics_math]] にある [[相関分析:http://www.geisya.or.jp/~mwm48961/statistics/correl2.htm]]
-[[ウィキペディア 分割表:https://ja.wikipedia.org/wiki/%E5%88%86%E5%89%B2%E8%A1%A8]]
-[[東大 上田博人先生:https://lecture.ecc.u-tokyo.ac.jp/~cueda/gengo/index.html]]
-[[環境と品質のためのデータサイエンス(杉原哲朗):http://heartland.geocities.jp/ecodata222/index.html]] にある [[質的なデータの相関性:http://heartland.geocities.jp/ecodata222/ed/edj1-3-2-1.html]]
-[[関西学院大学 清水裕士先生:http://norimune.net/]] の [[カテゴリカルデータの相関係数:http://norimune.net/673]]
-[[高崎経済大学 宮田庸一先生:http://www1.tcue.ac.jp/home1/ymiyatagbt/]] の [[カテゴリカルデータ分析入門:http://www1.tcue.ac.jp/home1/ymiyatagbt/chisquare_test.pdf]]
-[[生活の中の統計技術(龍谷大学 樋口三郎先生):https://www.a.math.ryukoku.ac.jp/~hig/course/stat_2013/]] の [[2つの質的変数の相関:https://www.a.math.ryukoku.ac.jp/~hig/course/stat_2013/w14.pdf]]
-[[株式会社アイスタット:https://istat.co.jp/]] の [[カイ2乗検定・クラメール連関係数:https://istat.co.jp/sk_commentary/kai2_test]]
-[[SPSSを用いた質的変数の分析:https://csi.rikkyo.ac.jp/seminar/lecture_resource/%E7%B5%B1%E8%A8%88%E5%88%86%E6%9E%90%E3%82%BB%E3%83%9F%E3%83%8A%E3%83%BC%E7%AC%AC2%E5%9B%9E%E8%B3%87%E6%96%99.pdf]]


また、
-[[確率統計学B(2017年度, Python版):http://lang.sist.chukyo-u.ac.jp/Classes/PythonProbStat/]] は [[中京大学 白井英俊先生:http://lang.sist.chukyo-u.ac.jp/]]のPythonによる統計学の講義資料

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS