scipy计算卡方检验

2021-06-15  本文已影响0人  一路向后

1.问题描述

某市自开办有奖储蓄以来,13期兑奖号码中各数码的频数汇总为,0: 21, 1: 28, 2: 37, 3: 36, 4: 31, 5: 45, 6: 30, 7: 37, 8: 33, 9: 52,总数为350。试检验器械或操作方法是否有问题(\alpha=0.05)。

2.解题思路

设抽取的数码为X,如果检验器械或操作方法没有问题,则0~9的出现是等可能的,提出检验假设H_0: p_i= 0.1, i=0,1,2,..,9

3.源码实现

import numpy as np
from scipy import stats

observation = np.array([21, 28, 37, 36, 31, 45, 30, 37, 33, 52])

expectation = np.array([350, 350, 350, 350, 350, 350, 350, 350, 350, 350]) / 10

chi_value = np.sum(np.divide(np.square(observation-expectation), expectation))
p_value = 1 - stats.chi2.cdf(chi_value, len(observation)-1)

print(chi_value, p_value)

4.运行及其结果

$ python3 example.py
19.6571428571 0.0201502907691

5.结果解析

因为P=0.02015 < \alpha=0.05,所以拒绝H_0,即认为机械或操作方法有问题。

上一篇 下一篇

猜你喜欢

热点阅读