qnqn雑記

個人の学習ログの域は超えておりませんので間違っている可能性があり確かな情報を求められる場合は専門書等々に当たってください。体系的な情報については管理者ホームページへ(https://qnqn1927.github.io/)

pythonでやる独立性の検定

前提

グラフの描画はseabornを使います

pythonスクリプト

import pandas as pd
import scipy.stats as st
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(columns=['value1','value2'])
df.loc['A'] = [500,301]
df.loc['B'] = [502,234]
df

f:id:qnqn1927:20200227060142p:plain

result = st.chi2_contingency(df)
df2 = pd.DataFrame([result], columns=['chi_square','p値','dof','expected'])
df2

f:id:qnqn1927:20200227060159p:plain

plt.figure(figsize=(14,5))
r = st.chi2.rvs(df2['dof'], size=10000)
ax = sns.distplot(r)
ax.axvline(df2['chi_square'].array, color='red')

f:id:qnqn1927:20200227060223p:plain

データの読み取り

カイ二乗分布は発生しにくい値は数値が大きくなる特徴を持つことにより棄却域は右側におき、片側検定となる。 なので赤いラインより右側の面積がp値となる。