python 实现方差检验

前面介绍的 z z z检验和 t t t检验主要用于对总体的均值进行假设检验,下面主要介绍对总体方差进行假设检验的方法。

一. 单个总体方差检验

设总体 X ∼ N ( μ , δ 2 ) X\sim N(\mu, \delta^2) XN(μ,δ2) μ , δ 2 \mu,\delta^2 μ,δ2均未知, X 1 , X 2 . . . , X n X_1,X_2...,X_n X1,X2...,Xn是来自 X X X的样本,则
( n − 1 ) S 2 δ 2 ∼ χ 2 ( n − 1 ) \frac{(n- 1)S^2}{\delta^2} \sim \chi^2(n - 1) δ2(n1)S2χ2(n1)

其中S为样本标准差, δ \delta δ为总体标准差,n为样本容量

根据以上的统计量,可以对单个总体的方差 δ \delta δ进行假设检验。

原假设 H 0 H_0 H0备则假设 H 0 H_0 H0拒绝域
δ 2 = δ 0 2 \delta^2 = \delta_0^2 δ2=δ02 δ 2 ≠ δ 0 2 \delta^2 \neq \delta_0^2 δ2=δ02 χ 2 > χ α / 2 2 ( n − 1 ) \chi^2 > \chi_{\alpha/2}^2(n - 1) χ2>χα/22(n1) χ 2 < χ 1 − α / 2 2 ( n − 1 ) \chi^2 < \chi_{1- \alpha/2}^2(n - 1) χ2<χ1α/22(n1)
δ 2 ≤ δ 0 2 \delta^2 \leq \delta_0^2 δ2δ02 δ 2 > δ 0 2 \delta^2 > \delta_0^2 δ2>δ02 χ 2 > χ α 2 ( n − 1 ) \chi^2 > \chi_{\alpha}^2(n - 1) χ2>χα2(n1)
δ 2 ≥ δ 0 2 \delta^2 \geq \delta_0^2 δ2δ02 δ 2 < δ 0 2 \delta^2 < \delta_0^2 δ2<δ02 χ 2 < χ 1 − α 2 ( n − 1 ) \chi^2 < \chi_{1 - \alpha}^2(n - 1) χ2<χ1α2(n1)

某厂生产某种型号的电池,其寿命长期以来服从方差 δ 2 = 5000 \delta^2 = 5000 δ2=5000的正太分布,现有一批这种电池,从它的生产情况看,寿命的波动性有所改变。现随机抽26只电池,测出其寿命的样本方差 S 2 = 9200 S^2 = 9200 S2=9200,请问根据这一数据能否推断这批电池寿命的波动性较以前有显著的改变?

1. 双侧检验

α = 0.05 \alpha = 0.05 α=0.05的水平下做出如下假设:
H 0 : δ 2 = 5000 H 1 : δ 2 ≠ 5000 H_0: \delta^2 = 5000 \space\space H_1: \delta^2 \neq 5000 H0:δ2=5000  H1:δ2=5000

从备则假设可知,该假设检验是一个双边检验。

代码实现:

from scipy.stats import chi2if __name__ == '__main__':alpha = 0.05n = 26# 总体方差var = 5000# 样本方差sample_var = 10000# 卡方统计量chi2stats = (n - 1) * var / sample_varrv = chi2(df=n - 1)chi2left = rv.ppf(alpha / 2)chi2right = rv.ppf(1 - alpha / 2)print("chi2left: {}, chi2right: {}".format(round(chi2left, 3), round(chi2right, 3)))print("chi2stats: ", round(chi2stats, 3))# 计算p值if chi2stats > chi2right:pval = 2 * (1 - rv.cdf(chi2stats))else:pval = 2 * (rv.cdf(chi2stats))if chi2stats > chi2right or chi2stats < chi2left:print("reject null hypothesis, pval: ", round(pval, 3))else:print("not reject null hypothesis, pval: ", round(pval, 3))

运行结果:

chi2left: 13.12, chi2right: 40.646
chi2stats:  12.5
reject null hypothesis, pval:  0.036
2. 单侧检验

保持 α = 0.05 \alpha = 0.05 α=0.05不变,修改原假设和备则假设 H 0 : δ 2 ≥ 5000 H 1 : δ 2 < 5000 H_0:\delta^2 \geq 5000 \space H_1: \delta^2 <5000 H0:δ25000 H1:δ2<5000,此时就变成了一个左侧检验。

代码实现:

from scipy.stats import chi2if __name__ == '__main__':alpha = 0.05n = 26# 总体方差var = 5000# 样本方差sample_var = 10000# 卡方统计量chi2stats = (n - 1) * var / sample_varrv = chi2(df=n - 1)chi2left = rv.ppf(alpha)print("chi2left: {}".format(round(chi2left, 3)))print("chi2stats: ", round(chi2stats, 3))# 计算p值pval = rv.cdf(chi2stats)if chi2stats < chi2left:print("reject null hypothesis, pval: ", round(pval, 3))else:print("not reject null hypothesis, pval: ", round(pval, 3))

运行结果:

chi2left: 14.611
chi2stats:  12.5
reject null hypothesis, pval:  0.018
二. 两个总体方差检验

X 1 , X 2 . . . , X n X_1,X_2...,X_n X1,X2...,Xn是来自总体 N ( μ 1 , δ 1 2 ) N(\mu_1,\delta_1^2) N(μ1,δ12)的样本, Y 1 , Y 2 . . . , Y n Y_1,Y_2...,Y_n Y1,Y2...,Yn是来自总体 N ( μ 2 , δ 2 2 ) N(\mu_2,\delta_2^2) N(μ2,δ22)的样本,且两样本独立,其样本方差分别为 S 1 2 , S 2 2 S_1^2,S_2^2 S12,S22,且 μ 1 , μ 2 , δ 1 2 , δ 2 2 \mu_1,\mu_2,\delta_1^2, \delta_2^2 μ1,μ2,δ12,δ22均未知,则
S 1 2 / S 2 2 δ 1 2 / δ 2 2 ∼ F ( n 1 − 1 , n 2 − 1 ) \frac{S_1^2/S_2^2}{\delta_1^2/\delta_2^2} \sim F(n_1 - 1, n_2 - 1) δ12/δ22S12/S22F(n11,n21)

δ 1 , δ 2 , \delta_1, \delta_2, δ1,δ2,为两个总体的标准差, n 1 , n 2 n_1,n_2 n1,n2为两个样本的容量

根据以上的统计量,可以对两个总体的方差之间的大小关系 δ 1 2 / δ 2 2 \delta_1^2/\delta_2^2 δ12/δ22进行假设检验。

原假设 H 0 H_0 H0备则假设 H 0 H_0 H0拒绝域
δ 1 2 = δ 2 2 \delta_1^2 = \delta_2^2 δ12=δ22 δ 1 2 ≠ δ 2 2 \delta_1^2 \neq \delta_2^2 δ12=δ22 F > F α / 2 ( n 1 − 1 , n 2 − 1 ) F > F_{\alpha/2}(n_1 - 1, n_2 - 1) F>Fα/2(n11,n21) F < F 1 − α / 2 ( n 1 − 1 , n 2 − 1 ) F < F_{1 - \alpha/2}(n_1 - 1, n_2 - 1) F<F1α/2(n11,n21)
δ 1 2 ≤ δ 2 2 \delta_1^2 \leq \delta_2^2 δ12δ22 δ 1 2 > δ 2 2 \delta_1^2 > \delta_2^2 δ12>δ22 F > F α ( n 1 − 1 , n 2 − 1 ) F > F_{\alpha}(n_1 - 1, n_2 - 1) F>Fα(n11,n21)
δ 1 2 ≥ δ 2 2 \delta_1^2 \geq \delta_2^2 δ12δ22 δ 1 2 < δ 2 2 \delta_1^2 < \delta_2^2 δ12<δ22 F < F 1 − α ( n 1 − 1 , n 2 − 1 ) F <F_{1 - \alpha}(n_1 - 1, n_2 - 1) F<F1α(n11,n21)

两工厂生产同一份零件且零件尺寸服从正态分布,A生产的16个零件中,均值 μ A \mu_A μA为3.1,样本方差 δ A 2 \delta_A^2 δA2为0.04;B生产的25个零件中,均值 μ B \mu_B μB为3.08,样本方差 δ B 2 \delta_B^2 δB2为0.09。问能否在 α = 0.05 \alpha = 0.05 α=0.05的显著性水平下认为两工厂生产零件的方差相同?

1. 双边检验

α = 0.05 \alpha = 0.05 α=0.05的水平下做出如下假设:
H 0 : δ A 2 = δ B 2 H 1 : δ A 2 ≠ δ B 2 H_0: \delta_A^2 = \delta_B^2 \space\space H_1: \delta_A^2 \neq \delta_B^2 H0:δA2=δB2  H1:δA2=δB2
从备则假设可知,该假设检验是一个双边检验。

代码实现:

from scipy.stats import fif __name__ == '__main__':# 两样本的方差与样本数量var1, var2 = 0.04, 0.09df1, df2 = 16, 25alpha = 0.05rv = f(dfn= df1 - 1, dfd= df2 - 1)# 计算拒绝域fleft = rv.ppf(alpha / 2)fright = rv.ppf(1 - alpha / 2)# 计算统计量fstats = var1 / var2print("fleft: {}, fright: {}".format(round(fleft, 3), round(fright, 3)))print("fstats: ", round(fstats, 3))pval = rv.sf(fstats)if fstats > fright:pval = 2 * rv.sf(fstats)else:pval = 2 * rv.cdf(fstats)if fstats > fright or fstats < fleft:print("reject null hypothesis, pval is ", round(pval, 3))else:print("not reject null hypothesis, pval is ", round(pval, 3))

运行结果:

fleft: 0.37, fright: 2.437
fstats:  0.444
not reject null hypothesis, pval is  0.107
2. 单边检验

保持 α = 0.05 \alpha = 0.05 α=0.05不变,修改原假设和备则假设 H 0 : δ A 2 ≥ δ B 2 H 1 : δ A 2 < δ B 2 H_0:\delta_A^2 \geq \delta_B^2 \space H_1: \delta_A^2 < \delta_B^2 H0:δA2δB2 H1:δA2<δB2,此时就变成了一个左侧检验。

代码实现:

from scipy.stats import fif __name__ == '__main__':# 两样本的方差与样本数量var1, var2 = 0.04, 0.09df1, df2 = 16, 25alpha = 0.05rv = f(dfn=df1 - 1, dfd=df2 - 1)# 计算拒绝域fleft = rv.ppf(alpha)# 计算统计量fstats = var1 / var2print("fleft: {}".format(round(fleft, 3)))print("fstats: ", round(fstats, 3))pval = rv.cdf(fstats)if fstats < fleft:print("reject null hypothesis, pval is ", round(pval, 3))else:print("not reject null hypothesis, pval is ", round(pval, 3))

运行结果:

fleft: 0.437
fstats:  0.444
not reject null hypothesis, pval is  0.053

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/818726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mid_360建图和定位

录制数据 roslaunch livox_ros_driver2 msg_MID360.launch使用fast-lio 建图 https://github.com/hku-mars/FAST_LIO.git 建图效果 使用python做显示 https://gitee.com/linjiey11/mid360/blob/master/show_pcd.py 使用 point_lio建图 https://github.com/hku-mars/Point…

【数据结构】【C++】AVL树的模拟实现(插入、判断、旋转)

文章目录 1 概念2 实现2.1 AVL树结点的定义2.2 AVL树的插入2.2.1 AVL树的插入规则2.2.2 旋转2.2.2.1 左单旋2.2.2.2 右单旋2.2.2.3 左右双旋2.2.2.4 右左双旋 2.2.3 总结 3 平衡判断4 删除5 源码 1 概念 二叉搜索树虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二…

找不到api-ms-win-crt-runtime-l1-1-0.dll文件5种解决方法

在日常使用计算机的过程中&#xff0c;我们时常会遭遇各类意想不到的问题&#xff0c;其中之一就是“api-ms-win-crt-runtime-l1-1-0.dll丢失”。这个错误通常发生在Windows操作系统中&#xff0c;它表示一个动态链接库文件丢失或损坏。这个问题可能会导致某些应用程序无法正常…

【LeetCode热题100】【矩阵】搜索二维矩阵 II

题目链接&#xff1a;240. 搜索二维矩阵 II - 力扣&#xff08;LeetCode&#xff09; 从右上角开始搜索&#xff0c;如果当前元素比目标小&#xff0c;那么说明目标只能存在下面矩阵&#xff0c;搜索范围往下压扁&#xff0c;如果当前元素比目标大&#xff0c;说明目标只能存在…

Linux命令、代码【无标题】

$ tar zxf file.tar.gz linux tar 解压缩相关 解压.gz文件&#xff1a; tar zxf save.tar.gz其中&#xff0c;“z”表示使用 gzip 解压缩&#xff0c;“x”表示解包.gz解压命令 linux&#xff0c;“f”表示指定要解包的文件名。 tar –xvf file.tar # 在当前目录解压 tar包 t…

1Panel官方出品丨MaxKB:基于LLM大模型的知识库问答系统

1Panel&#xff08;github.com/1Panel-dev/1Panel&#xff09;是一款现代化、开源的Linux服务器运维管理面板&#xff0c;它致力于通过开源的方式&#xff0c;帮助用户简化建站与运维管理流程。为了方便广大用户快捷安装部署相关软件应用&#xff0c;1Panel特别开通应用商店&am…

TensorFlow 1.x的学习

.为什么还有很多人都选择使用TensorFlow 1.x 兼容性问题: TensorFlow 1.x在一些旧项目中已经得到了广泛应用&#xff0c;这些项目可能依赖于1.x版本的特定API或行为。升级到2.x可能需要大量的代码修改和测试工作&#xff0c;对于一些已经稳定运行的项目&#xff0c;维护者可能…

实现iOS App代码混淆

简介 在开发iOS应用程序时&#xff0c;保护代码安全是至关重要的。代码混淆是一种常用的技术&#xff0c;可以增加逆向工程的难度&#xff0c;防止他人对代码的篡改和盗用。本文将介绍如何实现iOS App代码混淆的步骤和操作方法。 整体流程 下面是实现iOS App代码混淆的整体流…

创维:在博鳌论坛 叩响世界之门

出走半生&#xff0c;归来仍是少年。 2024年4月8日&#xff0c;一个离开海南近半个世纪的“少年”回到琼海博鳌&#xff0c;“下一站&#xff0c;1000亿&#xff01;”&#xff0c;他的承诺掷地有声。“1000亿”&#xff0c;意指创维集团在2025年前冲击千亿营收&#xff0c;这…

【JavaWeb】Day45.Mybatis——入门程序

什么是MyBatis? MyBatis是一款优秀的持久层框架&#xff0c;用于简化JDBC的开发。 &#xff08;持久层&#xff1a;指的是就是数据访问层(dao)&#xff0c;是用来操作数据库的。&#xff09; &#xff08;框架&#xff1a;是一个半成品软件&#xff0c;是一套可重用的、通用…

如何定义系统无故障运行维度的能力(高可用、高可靠、高稳定、高容错),及对应衡量指标

1、哪些概念能定义系统无故障运行维度的能力 高可用性、高可靠性、高稳定性和高容错性 这 4 个概念经常用于定义系统无故障运行维度的能力。 它们之间存在区别。具体如下&#xff1a; 高可用性&#xff1a;指的是系统或服务能够保持长时间运行&#xff0c;即使遇到故障也能迅…

vue2动画

vue2动画 在Vue.js 2中&#xff0c;动画和过渡是通过<transition>和<transition-group>组件来实现的 <transition> 组件 <transition> 组件包裹单个元素或组件&#xff0c;并在它们渲染、更新或从DOM中移除时触发过渡效果。这个组件不会渲染为任何额…

【企业动态】瑞芯微高级业务总监来访东胜物联,共探新能源汽车市场合作

近日&#xff0c;瑞芯微高级业务总监阙金珍一行来访东胜物联参观交流&#xff0c;并就深化合作进行讨论。 东胜物联与瑞芯微建有长期稳固的合作关系&#xff0c;基于RK3588、RK3399、RK3568等处理器&#xff0c;推出了多款嵌入式核心硬件产品&#xff0c;包括核心板、网关等&a…

添加usb function <一>

1、usb描述信息 struct usb_interface_descriptor {__u8 bLength;__u8 bDescriptorType;__u8 bInterfaceNumber;__u8 bAlternateSetting;__u8 bNumEndpoints;__u8 bInterfaceClass;__u8 bInterfaceSubClass;__u8 bInterfaceProtocol;__u8 iInterface; }/* 接口描述信…

工业物联网网关

在数字化浪潮席卷全球的今天&#xff0c;工业物联网&#xff08;IIoT&#xff09;作为连接物理世界与数字世界的桥梁&#xff0c;正在逐渐改变传统工业的面貌。而作为IIoT的核心枢纽&#xff0c;工业物联网网关发挥着至关重要的作用。今天&#xff0c;我们就来深入了解一下工业…

使用webpack5+TypeScript+npm发布组件库

一、前言 作为一只前端攻城狮&#xff0c;没有一个属于自己的组件库&#xff0c;那岂不是狮子没有了牙齿&#xff0c;士兵没有了武器&#xff0c;姑娘没有了大宝SOD蜜&#xff0c;你没有了我.... 言归正传&#xff0c;下面将给大家介绍如何通过webpack5编译一个TS组件发布到NPM…

【c 语言】声明了一个指针,会给指针分配内存吗?

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;C语言 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&…

租用境外服务器,越南服务器的优势有哪些

自从中国加入世界贸易组织之后&#xff0c;国内经济增加速度非常快&#xff0c;同时越来越多的人选择去东南亚国家发展&#xff0c;因为当地的中国人很多&#xff0c;所以中国企业在当地面临着更小的文化差异。东南亚地区也是最新的经济体&#xff0c;互联网正处于蓬勃发展的阶…

Git 实用技巧1——从 Git 中停止追踪「被追踪的文件」 | 修改远程仓库地址

1. 从 Git 中停止追踪「被追踪的文件」 若误将 .idea, .vscode 中的本地配置文件添加到 git 中&#xff0c;会导致每次编译时&#xff0c;IDE 会提示 git 修改。为了减少/消除提示&#xff0c;需要将该文件取消追踪&#xff0c;但不能将其从本地删除&#xff0c;以取消对 work…

http、https、json编程

文章目录 1、http编程2、https编程3、json编程 1、http编程 HTTP 编程 http&#xff0c;归属于应用层的超文本传输协议 状态码&#xff1a;2xx(没问题) 3xx(重定向问题) 4xx(客户端问题) 5xx(服务端问题) 请求格式&#xff1a; 请求行 举例&#xff1a;GET /index.html HTTP/1…