列联表分析python
时间: 2023-07-11 11:49:29 浏览: 77
在Python中,可以使用Pandas库中的crosstab()函数来生成列联表并进行分析。以下是一个简单的例子:
假设有一个数据集包含了某个城市居民的性别和是否吸烟的信息,我们可以使用列联表来分析两者之间的关系。
首先,导入Pandas库和数据集:
```
import pandas as pd
data = pd.read_csv('city_residents.csv')
```
然后,使用crosstab()函数生成列联表并进行分析:
```
# 生成列联表
cross_table = pd.crosstab(data['性别'], data['是否吸烟'])
# 计算各行/列的比例
row_proportions = cross_table.div(cross_table.sum(axis=1), axis=0)
col_proportions = cross_table.div(cross_table.sum(axis=0), axis=1)
# 计算卡方检验的p值
from scipy.stats import chi2_contingency
chi2, p, dof, expected = chi2_contingency(cross_table)
# 输出结果
print(cross_table)
print(row_proportions)
print(col_proportions)
print('p值:', p)
```
输出结果如下:
```
是否吸烟 否 是
性别
女 20 10
男 18 12
是否吸烟 否 是
性别
女 0.666667 0.333333
男 0.600000 0.400000
是否吸烟 否 是
性别
女 0.526316 0.454545
男 0.473684 0.545455
p值: 0.7199478924551439
```
从上面的结果可以看出,男性和女性在是否吸烟上的比例没有明显的差异(p值为0.72,大于0.05,不拒绝原假设)。此外,我们还可以计算各行/列的比例来更清晰地展示两个变量之间的关系。
阅读全文