📅  最后修改于: 2023-12-03 15:27:36.919000             🧑  作者: Mango
统计-卡方表,也称为列联表,是一种用于数据统计和分析的表格。它可以用来展示两个或以上的变量之间的关系。统计-卡方表通常用于描述和分析分类数据。
在Python中,我们可以使用 pandas
和 scipy
来生成统计-卡方表。
首先,我们导入两个库:
import pandas as pd
from scipy.stats import chi2_contingency
接着,我们可以使用 pandas
中的 crosstab()
函数创建统计-卡方表。
例如,我们有一个关于性别和职业的数据集,我们可以使用以下代码来创建统计-卡方表:
df = pd.read_csv('data.csv')
table = pd.crosstab(index=df['Gender'], columns=df['Occupation'])
print(table)
输出的结果应该类似于这样:
| Occupation | Lawyer | Programmer | Scientist | Teacher |
|------------|--------|------------|-----------|---------|
| Female | 5 | 10 | 20 | 25 |
| Male | 15 | 20 | 30 | 20 |
这个表明了性别和职业之间的关系。例如,我们可以看到,在所有职业中,科学家的比例最高,而在男性中,程序员的比例最高。
接着,我们可以使用 scipy
中的 chi2_contingency()
函数计算卡方值、p值和自由度。
chi2, p, dof, expected = chi2_contingency(table)
print(f"Chi-square: {chi2}")
print(f"P-value: {p}")
print(f"Degrees of freedom: {dof}")
print("Expected values:")
print(expected)
输出的结果应该类似于:
Chi-square: 2.7067011258200467
P-value: 0.4384753747153943
Degrees of freedom: 3
Expected values:
[[ 5.88235294 10.29411765 19.60784314 24.21568627]
[14.11764706 19.70588235 37.39215686 46.78431373]]
这个结果告诉我们,卡方值为2.70,p值为0.44,这意味着我们不能拒绝两个变量之间是否相互独立的原假设。
使用 pandas
和 scipy
,生成统计-卡方表并计算相关统计值是相对容易的。它可以帮助我们了解哪些变量之间存在关系并可以帮助我们做出更好的决策。