Python:大型数据集中分类值的卡方

Python: Chi Squared for categorical values in large dataset

我没有使用 Python 的经验,我正在尝试使用它对非常大的数据集(1000 万个案例)进行统计分析,因为其他选项(SPSS 和 R)无法处理授权硬件上的数据集。

在此数据集中,有许多分类变量(Diagnosis1、Diagnosis2...Diagnosis30)和一个事件变量(因变量)。
个案列为行。

像这样

Diagnosis1       Diagnosis2         Diagnosis3   Event
1                0                  0            1
0                1                  0            0 
0                1                  0            0 

.....等等

我可以加载数据并用它查看 -

    import pandas as pd
    import numpy as np
    NRD_Data = pd.read_csv('NRD_DL.csv')
    NRD_Data.head()

但我对如何构建 2x2 表格并在表格上执行卡方检验感到困惑。

            Diagnosis1=1   Diagnosis1=0
Event=1     100            12
Event=0     80             45

类似于 运行 在 SPSS 上使用交叉表来比较分类值是所需的结果。

使用pd.crosstab得到你需要的矩阵,然后你就可以做你的卡方检验了

l=['Diagnosis1',  'Diagnosis2',  'Diagnosis3']
d=[]
for i in l:
    d.append(pd.crosstab(df['Event'],df[i]))
d[0]
Out[569]: 
Diagnosis1  0  1
Event           
0           2  0
1           0  1