问题描述
我已经完成了如下卡方应变测试的练习,但我在如何解释结果方面遇到了问题。 下面的测试结果表明 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
每一行都与其他行非常不同,所以是的,城市似乎不同,即从不同的人群中抽样。