【统计学】Student 双边t检验 Python实现假设检验题目

您所在的位置:网站首页 98g有多重 【统计学】Student 双边t检验 Python实现假设检验题目

【统计学】Student 双边t检验 Python实现假设检验题目

#【统计学】Student 双边t检验 Python实现假设检验题目| 来源: 网络整理| 查看: 265

糖厂用自动打包机打包,每包标准重量是100千克。每天开工后需要检验一次打包机工作是否正常。某日开工后测得9包重量(单位:千克)如下:      99.3  98.7  100.5  101.2  98.3  99.7   99.5  102.1  100.5  已知包重服从正态分布,试检验该日打包机工作是否正常(a=0.05)?

用这题演示python实现双边检验的几种方法

import numpy as np from math import * array = [99.3,98.7,100.5,101.2,98.3,99.7,99.5,102.1,100.5] #需要对比样本与统计总体的平均值 T_mean=100 x_mean=np.mean(array) x_std=np.std(array,ddof=1)

样本量较小,总体标准差未知,因此使用t检验量

t=abs(x_mean-T_mean)/(x_std/sqrt(len(array)))

这里检验统计量t值计算如下

t = (样本均值 - 总体均值)/(样本标准差/sqrt(样本个数))【小样本且总体标准差未知的情况下】

print("x_mean:{:.5} ,x_std:{:.5} ,t:{:.5}".format(x_mean,x_std,t))

这里我得出的结果是

x_mean:99.978 ,x_std:1.2122 ,t:0.054996

接下来可以选择

计算出标准t值进行比较计算出p值直接人工查表标准t 计算标准t值

计算临界值: scipy.stats.t.ppf(level_of_confidence, degree_of_freedom)

计算p值

计算p值: scipy.stats.t.sf(abs(t_score),df) 或scipy.stats.t.cdf(abs(t_score),df)

左尾或右尾的检验分别用上述的sf和cdf方法,双尾检验需需要适时乘个2(如果t大于0那么就是2t.cdf(abs(t_score),df),如果是t小于零就得2t.sf(t_score,df) 除了使用scipy的stats模块,还可以使用matplotlib.pyplot模块(相当于是用原理计算了

import matplotlib.pyplot as plt s2 = np.random.standard_t(10, size=100000) h = plt.hist(s, bins=100, density=True) (np.sum(s2>abs(t))+np.sum(s2p: 0.95745#因为这里调用了random库,所以这里p值算出来不是固定的,会随着数组内容的随机变化而变化

综合1、2就可以有如下代码

print("critical t value:{}\np_value(calculated by function):{}".format(stats.t.ppf(0.95,9),2*stats.t.cdf(t,df=len(array)-1))) >critical t value:1.8331129326536335 p_value(calculated by function):0.9574902045208937

人工查表 t分布临界值表如下:axis=0 level of freedom; axis =1 df t分布临界值表 或者可以使用在线查表工具,查看各种分布的临界值表 value calculator 临界值查表工具 t检验临界值表

参考以及延伸阅读推荐:

分布临界值表如何用python推导

Python假设检验 计算各种临界值和p值的表

Python假设检验 常用函数的介绍讲解

最后可以用这篇里的示例训练一下:假设检验的Python实现



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3