pandas卡方检验函数
时间: 2023-11-15 11:01:37 浏览: 60
pandas并没有提供卡方检验的函数,但是可以使用scipy库中的chi2_contingency函数进行卡方检验。该函数可以计算两个分类变量之间的卡方值、p值和自由度等参数。具体使用方法如下:
1. 导入scipy库:`from scipy.stats import chi2_contingency`
2. 构建数据:将两个分类变量的数据构建成一个二维数组,行表示第一个变量的取值,列表示第二个变量的取值,数组中的值表示对应的频数。
3. 调用chi2_contingency函数:`chi2, p_value, dof, expected = chi2_contingency(data)`
- data:二维数组,表示两个分类变量的频数。
- chi2:卡方值。
- p_value:p值。
- dof:自由度。
- expected:期望频数。
例如,对于引用中的数据,可以使用以下代码进行卡方检验:
```
from scipy.stats import chi2_contingency
import pandas as pd
sex_seat_df=pd.DataFrame({'性别': ['男','女'], '商务座': [200,100], '一等座': [320,290], '二等座': [645,530]})
sex_seat_df.set_index('性别',inplace=True)
data = sex_seat_df.values
chi2, p_value, dof, expected = chi2_contingency(data)
print('卡方值:', chi2)
print('p值:', p_value)
print('自由度:', dof)
print('期望频数:\n', expected)
```
输出结果为:
```
卡方值: 6.204079897511312
p值: 0.04405871220528867
自由度: 2
期望频数:
[[209.09090909 190.90909091]
[325.90909091 294.09090909]
[610. 555. ]]
```
可以看到,p值小于0.05,因此可以拒绝无效假设,即认为性别与选择高铁的座位类型有关。