カイ二乗検定について
概要
- 独立な正規分布に従う2つの要素が同一か同一でないかを検定する
表の具体例
イェーツの補正
\[\chi^2 = \frac{N \left(|ad-bc| - \frac{N}{2} \right)^2}{(a+b)(c+d)(a+c)(b+d)}\]pythonで計算する場合
凡例
from scipy.stats import chi2_contingency
chi2, p, dof, ex = chi2_contingency([X0, X1, ..., Xn], [Y0, Y1, ..., Yn])
p
; p値ex
; 期待値
具体例
- 特定の単語の出現確率がラベルと関係があるかどうかを確認する
- ラベルの分布は各クラス
[85, 36]
個ある
from scipy.stats import chi2_contingency
import numpy as np
tmp = []
for term, data in dic.items():
obs = np.array(data.obs).astype(float) # 観測された個数
f_exp = np.array([85, 36]).astype(float) # 期待値
chi2, p, dof, ex = chi2_contingency([obs, f_exp], correction=False) # correctionはイェーツの補正を行うかどうか
w = obs[1]/(obs.sum())/(f_exp[1]/ f_exp.sum())
tmp.append((term, w,p,obs,f_exp))
x = pd.DataFrame(tmp)
x.columns = ["term", "w", "p", "obs", "exp"]
with pd.option_context("display.max_rows", None, "display.max_columns", None):
display(x.sort_values(by=["p"]))