Python:卡方应变测试如何解读

问题描述

我已经完成了如下卡方应变测试的练习,但我在如何解释结果方面遇到了问题。 下面的测试结果表明 p-val = 0。 那么这是否意味着两个变量不是独立的? 由于它是一个小数据,我认为很确定变量是独立的。 p-val 为 0 似乎很奇怪。 我做错了吗??

import pandas as pd
df = pd.DataFrame({
    "~60m2" : [54,577,143,782],"60~85m2" : [2,735,1437,1],"85m2~" : [0,142,44,0],})
df.index = ["A","B","C","D"]
df.columns.names = ["size"]
df.index.names = ["city"]

from scipy import stats
stats.chi2_contingency(df)

输出

(2064.576731417199,0.0,6,array([[ 22.24559612,31.09522594,2.65917794],[577.59101353,807.36533061,69.04365586],[645.12228746,901.76155221,77.11616033],[311.04110288,434.77789124,37.18100587]]))

解决方法

我觉得是对的。你们的城市很不一样。只需尝试按行标准化:

(df.T / df.sum(axis=1)).T                                             

size     ~60m2   60~85m2     85m2~
city                              
A     0.964286  0.035714  0.000000
B     0.396836  0.505502  0.097662
C     0.088054  0.884852  0.027094
D     0.998723  0.001277  0.000000

每一行都与其他行非常不同,所以是的,城市似乎不同,即从不同的人群中抽样。