python卡方检验可视化
时间: 2023-09-20 12:11:24 浏览: 156
你可以使用Python中的`scipy.stats`库来进行卡方检验,并使用`matplotlib`库来可视化结果。下面是一个简单的示例代码:
```python
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
# 创建两个分类变量的观察值
observed = np.array([[10, 15, 25],
[30, 40, 15]])
# 执行卡方检验
chi2, p, dof, expected = stats.chi2_contingency(observed)
# 可视化卡方检验结果
labels = ['Category 1', 'Category 2', 'Category 3']
x = np.arange(len(labels))
width = 0.35
fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, observed[0], width, label='Observed 1')
rects2 = ax.bar(x + width/2, observed[1], width, label='Observed 2')
ax.set_ylabel('Frequency')
ax.set_title('Observed Frequencies by Category')
ax.set_xticks(x)
ax.set_xticklabels(labels)
ax.legend()
fig.tight_layout()
plt.show()
```
这段代码中,我们首先创建了一个包含两个分类变量的观察值的数组`observed`。然后,我们使用`scipy.stats`库中的`chi2_contingency()`函数执行卡方检验,得到卡方值`chi2`、p值`p`、自由度`dof`和期望频率`expected`。
接下来,我们使用`matplotlib.pyplot`库绘制了一个柱状图,分别展示了两个分类变量的观察频率。横轴表示不同的分类,纵轴表示观察频率。其中,`rects1`表示第一个分类变量的观察频率,`rects2`表示第二个分类变量的观察频率。
最后,我们通过调用`plt.show()`函数显示出可视化结果。
希望这个示例对你有所帮助!如果有任何疑问,请随时提问。
阅读全文