クロス集計後にモザイクグラフやオッズ比を算出する。

カテゴリーデータの集計や疫学的なクロスを扱う場合、モザイク図、オッズ比などが使えると便利です。

モザイク図

クロス集計したデータをみる場合、構成比をわかりやすくするために、モザイク図を使いたいことがあります。statsmodelsにまんまの名前で存在しています。

import numpy as np

d = np.array([[80,20],[20,80]])
#クロス集計で作る場合
#crossed = pd.crosstab(data.A, data.B)

from statsmodels.graphics.mosaicplot import mosaic
mosaic(d)

f:id:esu-ko:20200824223029p:plain

オッズ比など

データの収集の過程の問題で、比率が意味を持たない時などにオッズ比で比をみたい場合があります。 statsmodelsにはオッズ比やリスク比を算出してくれる機能があります。

import statsmodels.api as sm

table = sm.stats.Table2x2(d)
table.summary(method='normal')
 Estimate    SE  LCB UCB p-value
Odds ratio  16.000      8.002   31.994  0.000
Log odds ratio  2.773   0.354   2.080   3.466   0.000
Risk ratio  4.000       2.670   5.992   0.000
Log risk ratio  1.386   0.206   0.982   1.790   0.000

また、クロスで使用するカイ二乗検定はこちら。