我有一个关于苗圃中生长的植物的数据。我有一个植物健康的变量和几个因素。
我想测试是否有任何因素影响植物健康,所以我认为最好的方法是使用卡方检验。
我的方法如下所示,但是在交叉选项卡之后我会卡住
# Example Data
df = pd.DataFrame({'plant_health': ['a','b','c','a','b','b'],
'factor_1': ['yes','no','no','no','yes','yes'],
'factor_2': ['yes','yes','no','no','yes','yes'],
'factor_3': ['yes','no','no','yes','yes','yes'],
'factor_4': ['yes','yes','no','no','yes','yes'],
'factor_5': ['yes','no','yes','no','yes','yes'],
'factor_6': ['yes','no','no','no','yes','yes'],
'factor_7': ['yes','yes','no','yes','yes','yes'],
'factor_8': ['yes','no','yes','no','yes','yes'],
'factor_9': ['yes','yes','yes','yes','yes','yes'],
})
# Melt dataframe
df = df.melt(id_vars='plant_health',
value_vars=['factor_1', 'factor_2', 'factor_3', 'factor_4', 'factor_5',
'factor_6', 'factor_7', 'factor_8', 'factor_9'])
# Create cross tab
pd.crosstab(df.plant_health, columns=[df.variable, df.value])
我可以用一个因子做测试,但不知道如何扩展到所有因子。
from scipy.stats import chisquare
from scipy import stats
from scipy.stats import chi2_contingency
# Example with only the first factor
tab_data = [[1,1], [1,2],[1,0]]
chi2_contingency(tab_data)
1条答案
按热度按时间vuktfyat1#
请尝试这个,让我知道如果它是你所期望的:
产出
编辑
您可以使用以下函数执行单个卡方检验:
型
产出