Python:卡方列联检验(如何解读)

Python: chi-squared contingency test (how to interpret)

我已经练习了如下的卡方应急检验,但我对如何解释结果有疑问。 以下测试的结果表明 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

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