用于确定在每个类别中投票的人的卡方
Chi-squared for determining people voting in each category
我的数据集包含以下列:
Voted? Political Category
1 Right
0 Left
1 Center
1 Right
1 Right
1 Right
我需要查看哪个类别与投票的人最相关。为此,我需要计算卡方。
我想要按投票分组吗?和政治类别,以便有这样的东西:
(1, Right) : 1500 people
(0, Right) : 202 people
(1, Left): 826 people
(0, Left): 652 people
(1, Center): 431 people
(0, Center): 542 people
在 R 中,我会这样做:
yes = c(1500, 826, 431)
no = c(212, 652, 542)
TBL = rbind(yes, no); TBL
[,1] [,2] [,3]
yes 1500 826 431
no 212 652 542
并申请
chisq.test(TBL, cor=F)
与:
X-squared = 630.08, df = 2, p-value < 2.2e-16
如果我使用 prop.test 就更好了,因为它会给出每个政治类别的投票人数比例。
prop 1 prop 2 prop 3
0.8761682 0.5588633 0.4429599
我想在 Python 中获得相同或相似的结果。
您的数据采用 contingency table. SciPy has the function scipy.stats.chi2_contingency
形式,用于将 chi-squared 测试应用于意外事件 table。
例如,
In [48]: import numpy as np
In [49]: from scipy.stats import chi2_contingency
In [50]: tbl = np.array([[1500, 826, 431], [212, 652, 542]])
In [51]: stat, p, df, expected = chi2_contingency(tbl)
In [52]: stat
Out[52]: 630.0807418107023
In [53]: p
Out[53]: 1.5125346728116583e-137
In [54]: df
Out[54]: 2
In [55]: expected
Out[55]:
array([[1133.79389863, 978.82440548, 644.38169589],
[ 578.20610137, 499.17559452, 328.61830411]])
我的数据集包含以下列:
Voted? Political Category
1 Right
0 Left
1 Center
1 Right
1 Right
1 Right
我需要查看哪个类别与投票的人最相关。为此,我需要计算卡方。 我想要按投票分组吗?和政治类别,以便有这样的东西:
(1, Right) : 1500 people
(0, Right) : 202 people
(1, Left): 826 people
(0, Left): 652 people
(1, Center): 431 people
(0, Center): 542 people
在 R 中,我会这样做:
yes = c(1500, 826, 431)
no = c(212, 652, 542)
TBL = rbind(yes, no); TBL
[,1] [,2] [,3]
yes 1500 826 431
no 212 652 542
并申请
chisq.test(TBL, cor=F)
与:
X-squared = 630.08, df = 2, p-value < 2.2e-16
如果我使用 prop.test 就更好了,因为它会给出每个政治类别的投票人数比例。
prop 1 prop 2 prop 3
0.8761682 0.5588633 0.4429599
我想在 Python 中获得相同或相似的结果。
您的数据采用 contingency table. SciPy has the function scipy.stats.chi2_contingency
形式,用于将 chi-squared 测试应用于意外事件 table。
例如,
In [48]: import numpy as np
In [49]: from scipy.stats import chi2_contingency
In [50]: tbl = np.array([[1500, 826, 431], [212, 652, 542]])
In [51]: stat, p, df, expected = chi2_contingency(tbl)
In [52]: stat
Out[52]: 630.0807418107023
In [53]: p
Out[53]: 1.5125346728116583e-137
In [54]: df
Out[54]: 2
In [55]: expected
Out[55]:
array([[1133.79389863, 978.82440548, 644.38169589],
[ 578.20610137, 499.17559452, 328.61830411]])