在参数检验中都是假设总体服从正态分布,那么如何才能知道总体在理论上服从一个什么分布呢?卡方拟合优度检验就是用来检验总体是否服从某个指定分布。从而可以进行:

  1. 检测观察数与理论数之间的一致性;
  2. 通过检测观察数与理论数之间的一致性来判定事物之间的独立性。

1. 卡方拟合优度检验的原理

1.1. 假设检验的形式

H0:总体服从某个分布H1:总体不服从某个分布H_0: 总体服从某个分布 \quad H_1: 总体不服从某个分布H0​:总体服从某个分布H1​:总体不服从某个分布

1.2. 进行假设检验的步骤

  1. 在H0H_0H0​下,总体X取值的全体分成k个两两不相交的子集A1,....AkA_1,....A_kA1​,....Ak​;
  2. 以Oi(i=1,...,k)O_i(i=1,...,k)Oi​(i=1,...,k)记录样本观察值x1,...,xnx_1,...,x_nx1​,...,xn​中落在AiA_iAi​的个数(观察频数
  3. 当H0H_0H0​为真且分布完全已知时,计算事件AiA_iAi​发生的概率pi=P(Ai),i=1,...,kp_i=P(A_i), i =1, ..., kpi​=P(Ai​),i=1,...,k; 如果假设的分布还有r个未知参数时,要先利用参数估计这r个未知参数,然后求得pip_ipi​的估计p^i\hat p_ip^​i​;
  4. 计算理论频数Ti=npi(np^i)T_i=np_i(n\hat p_i)Ti​=npi​(np^​i​)
  5. 构造检验统计量,道理上来说就是要检测Oi与TiO_i与T_iOi​与Ti​差异的显著性,构造如下检验统计量:
    χ2=∑i=1k(Oi−Ti)2Ti\chi^2=\sum_{i=1}^k\frac{(O_i-T_i)^2}{T_i}χ2=i=1∑k​Ti​(Oi​−Ti​)2​
    当假设分布不含有任何未知数时,服从自由度为k−1k-1k−1的卡方分布;当假设分布含有rrr个未知参数时,该统计量服从自由度为k−r−1k-r-1k−r−1的卡方分布。

1.3. 实例


解:由于泊松分布含有一个未知参数λ\lambdaλ, 所以首先使用极大似然估计知道其估计为样本均值,λ^=1749/330=5.3\hat \lambda=1749/330=5.3λ^=1749/330=5.3
使用python计算如下:

import numpy as np
import pandas as pd
from scipy import statsd = {'order_counts': list(range(14))+[16], 'o_days':[3,6,21,46,48,61,52,42,27,11,6,4,1,1,1]}
df = pd.DataFrame(d)

此时,使用基本数据构建的数据框输出如下:

因为每天订单数大于11的天数很少,所以将其合并,也就是每天不少于11个订单的天数为7, python处理如下:

df.iloc[11,1]=7
df=df[:12]

此时,数据如下:

接下来根据原假设成立,计算理论频率:

Poiss=stats.poisson(mu=5.3)
df['prop']=Poiss.pmf(df['order_counts'])
# 修正订单数大于11对应的概率
df.iloc[11, 2]=1-Poiss.cdf(10)

此时的输入如下:

接下来计算理论频数:

df['t_days']=330*df['prop']

得到的数据如下:

在卡方拟合优度检验中,一般要求n>50,npi>5n\gt 50, np_i\gt 5n>50,npi​>5. 所以要对理论频数不满足要求的行累计的后面的行。但是还有一种情况,就是末尾的数据通过计算后,不满足理论频数的要求,要与前面的行合并。处理如下:

df1=pd.DataFrame(df)
n=None
for i in range(len(df1)):if df1.iloc[i,3] < 5:n =idf1.iloc[i+1,:] = df1.iloc[i+1,:] + df1.iloc[i,:]else:break
if n is not None:df1 = df1.iloc[n+1:,:]

上面的代码可以自动完成从前往后遍历数据框,遇到理论频数不满足要求的情况进行处理。因为本例题后面行的数据没有出现理论频数不满足要求的情况,所以没有编写处理的代码。进过上面的处理,目前数据如下:

至此,我们就可以使用scipy模块的函数chisquare进行验证,代码如下:

stats.chisquare(df1['o_days'], df1['t_days'], ddof=1)
# 输出结果
Power_divergenceResult(statistic=3.9705897417232916, pvalue=0.9133375422858901)

因为pvalue>α=0.05pvalue \gt \alpha=0.05pvalue>α=0.05,所以我们接受原假设,即认为这些数据来自一个泊松分布的总体。

例2: 某箱子中盛有10种球,现在从中有返回地随机抽取200个,其中第iii种球共取得viv_ivi​个,数据记录如下。

问箱子中这10种球的比例是否一样?(α=0.05\alpha=0.05α=0.05)
解:H0:10种球比例一样H_0: 10种球比例一样H0​:10种球比例一样
python计算如下:

import numpy as np
import pandas as pd
from scipy import stats
d={'o_vals':[35,16,15,17,17,19,11,16,30,14]}
df = pd.DataFrame(d)
df['t_vals']=[200*1/10]*len(df)

这样我们就得到了为进行卡方拟合优度检验所需的数据,如下:

继续使用python做出分析:

stats.chisquare(df['o_vals'], df['t_vals'])
# 结果:
Power_divergenceResult(statistic=24.900000000000002, pvalue=0.0030838136870983547)

因为pvalue=0.0030838136870983547<α=0.05pvalue=0.0030838136870983547\lt \alpha=0.05pvalue=0.0030838136870983547<α=0.05,所以拒绝原假设,认为箱子中10种球的比例是不一样的。

十、非参数检验:使用python进行卡方拟合优度检验相关推荐

  1. UA MATH566 统计理论 推导卡方拟合优度检验

    UA MATH566 统计理论 推导卡方拟合优度检验 卡方拟合优度检验主要是检验categorical data的,假设一共有ddd种category,每一种理论比例为pip_ipi​,满足 ∑i=1 ...

  2. python卡方拟合优度检验_如何使用Python中的科学库执行卡方拟合优度检验?

    假设我有一些我凭经验得到的数据: from scipy import stats size = 10000 x = 10 * stats.expon.rvs(size=size) + 0.2 * np ...

  3. 卡方 python_Python卡方拟合优度检验得到最优分布

    给定一组数据值,我试图得到描述数据的最佳理论分布.经过几天的研究,我想出了下面的python代码.在import numpy as np import csv import pandas as pd ...

  4. python实现卡方(Chi-Squared Test)相关性检验

    python实现卡方(Chi-Squared Test)相关性检验 独立性检验是统计学的一种检验方式,与适合性检验同属于X2检验,即卡方检验(英文名:chi square test),它是根据次数资料 ...

  5. python 特征选择卡方_特征选择

    2020-01-10 皮尔逊相关系数 image.png 衡量线性相关性,检查数据集里目标和数值特征之间皮尔逊相关系数的绝对值.根据这个准则保留前n个特征.def cor_selector(X, y, ...

  6. 利用python实现非参数方法(拟合优度检验)

    简介 数据不符合正态分布时,无法直接用t分布和F分布及正态分布来检验数据的显著性.如果检验对于数据分布没有要求,这类检验统称为非参数检验.本文将介绍其中的一种拟合优度检验. 拟合优度检验-期望频数相等 ...

  7. 2×3卡方检验prism_抽样分布之卡方分布02 – 分布拟合优度检验

    前一篇说了卡方分布的定义和来由,以及卡方统计量,这次介绍下如何像卡尔·皮尔逊(Karl·Pearson)一样通过卡方统计量来做分布拟合优度检验Goodness-of-fit Test for Dist ...

  8. 卡方分布和卡方验证的关系理解,以及Python实现

    卡方分布 定义:设 X1-Xn是服从标准正态分布的随机变量,则称统计量 服从自由度为n的卡方分布,自由度为n时,他的期望是n,方差为2n 他是标准正态分布变量的平方和,网上找了一张概率密度图: 然后我 ...

  9. cif t t操作流程图_Danish:STATA 操作正态检验、卡方检验和T检验

    STATA 操作正态检验.卡方检验和T检验 图示和基本概念 Coef. :回归分析系数.在回归方程中表示自变量x 对因变量y 影响大小的参数.回归系数越大表示x 对y 影响越大. Std. Err.  ...

  10. t分布, 卡方x分布,F分布

    T分布:温良宽厚 本文由"医学统计分析精粹"小编"Hiu"原创完成,文章采用知识共享Attribution-NonCommercial-NoDerivative ...

最新文章

  1. 转:android实时语音问题分析
  2. Leetcode 739. 每日温度 (每日一题 20211014)
  3. 男人的快乐可以多简单?
  4. mybatis insert 动态生成插入的列及插入的值
  5. SpringBoot应用场景启动器
  6. mysql CASE WHEN的基础和多种用法
  7. Spark部署模式入门
  8. AgileEAS.NET 4.0 重构裁剪后的程序集说明
  9. php自我介绍50字,【自我介绍50字左右】自我介绍50字
  10. 无人驾驶5: 贝叶斯公式
  11. 使用cryptsetup加密硬盘
  12. 旧金山第二天: OOW 开始
  13. 合并两个列表zip()函数
  14. c语言编程植物信息查询系统,C:\WINDOWS\Desktop\导航库\植物\xzjs\hzc.htm
  15. 虽然Orbit被砍掉了,还是可以窥见一斑
  16. JDK8下载及安装教程之windows版、linux版
  17. 条件分歧 java_FORTRAN-95程序设计学习笔记-资源下载人人文库网
  18. Web实现:各种不同的CSS样式示例
  19. java11月好找工作吗_JAVA程序员根据亲身经历整理的近期(2020年10,11月)面试高频题目,千万不要错过了...
  20. 三态输出门实验报告注意事项_广东KGPS电源使用注意事项

热门文章

  1. 简谈PCB设计软件对比
  2. 微信小程序 editor富文本编辑器组件封装
  3. spyder下载python3.5_spyder python下载
  4. 我的AI之路(51)--用自己的UCF101数据集训练3D识别模型video-caffe
  5. 系列3—BabeLua常用技巧
  6. DFMEA步骤二:结构分析
  7. marlab中主成分得分怎么求_考试后,学生怎么做试卷分析?
  8. Neo4j下载(linux系统)
  9. diabetes影响因子2017_【重磅】2017 年内分泌领域 SCI 期刊影响因子出炉
  10. USB 转 RS-485 / 422 接口转换器