一、快速理解

我开始学习假设检验时遇到了几个问题:

  1. 什么是假设检验?
  2. 为什么要假设检验?

什么是假设:对总体参数(均值,比例等)的具体数值所作的陈述。(因为一般来说总体的属性具体值我们是测不出来的,也只是靠不停的测试逼近具体值,所以只能假设总体的某一个属性的具体值为xxx)而假设检验就是先对总体的参数提出某种假设,然后利用样本的信息判断假设是否成立的过程

样本值是变化的,通过样本值计算出来的样本参数不一定每次都一样,我们不知道测出来的参数与总体参数是样本的随机性还是一些其他的原因导致的(例如测量过程出现错误,或者样本变异了变成不能代表总体的样本)。如果A、B两种产品的尺寸比较接近,我们想了解这种差异是因为一些不可避免的误差(也就是可以接受的差异)还是因为机器出故障了、或者两者就不是同一种尺寸的产品(是你不能接受他们相同的原因,不可接受的差异,也就是具有显著性、统计显著性、具有显著性差异,可以理解两者差异不足够微小,而是太明显、太显著了,以至于不能认为两者是相同的)。

要判断是否具有统计学上的显著性,也就必须借助统计学工具来判断。通常就是用样本参数计算检验统计量(一些参数,比如说t_value,p_value,z_value),判断检验统计量是否符合一定的条件。而用样本参数计算前我们还需要提出相应的假设(因为计算检验统计量就是对比两个参数的区别,在样本参数与总体参数比较时,我们只计算出样本参数,总体参数不知道因此必须假定为某一个值(就是假定为题目给出的值)),判断是否符合条件以后从而得出假设是否成立。

我在假设的建立、理解p值等问题上也遇到了不少困难,后来写了这篇文章梳理了一下,感觉能讲清楚了,欢迎大家看看~ : 假设检验:建立原假设的原则、方法

二、选择检验统计量的方法

三、Python实现办法

  1. 【小样本 总体方差未知】某厂生产的电子元件的寿命X(单位:h)服从正态分布,按标准规定:一批的平均寿命不得小于250h。现从该批中随机抽取16个元件,测得寿命如下:
    159,280,101,212,224,379,179,264,222,362,168,250,149,260,485,170
    是否有理由认为原件的平均寿命显著地大于225小时?

Null hypothesis: array_mean<=225
Alternative hypothesis: array_mean>225

#1
import numpy as np
from scipy.stats import t
from scipy  import stats
from math import *
array = [159,280,101,212,224,379,179,264,222,362,168,250,149,260,485,170]
amean= np.mean(array)
num = len(array)
Tlong = 225
t_std = np.std(array,ddof = 1)
#小样本 总体方差未知 Student t
t_value,p_value=stats.ttest_1samp(array,Tlong)
t_tra =(amean - Tlong)/(t_std1/sqrt(num))
print("critical t_value:{:.5},\tp_value:{:.5},\tt_value_by_function:{:.5},\tt_value_by_formula".format(stats.t.ppf(0.95,15),p_value,t_value),t_tra)
if(abs(t_value)<stats.t.ppf(0.95,15)):print("t_value < critical value:\tno clear evidence to reject the null hypothesis.")
else:print("t_value > critical value:\treject the null hypothesis, we hold evidence to think that these elements' longevity r longer than 225 hours")

结果如下:

>critical t_value:1.7531, p_value:0.51396,    t_value_by_function:0.66852,    t_value_by_formula 0.11023885084349423
>t_value < critical value:    no clear evidence to reject the null hypothesis.

因此,没有充分的理由拒绝原假设,没有足够的理由能认为原件的平均寿命显著大于225小时

  1. 【大样本 两个总体参数检验】A, B两厂生产同样的材料。已知其抗压强度服从正态分布,且A组方差 =632 ,b组材料方差=572。从A厂生产的材料中随机抽取81个样品,测得a组抗压强度平均值=1070kg/cm2;从B厂生产的材料中随机抽取64个样品,测得b组抗压强度平均值 = 1020kg/cm2。根据以上调查结果,能否认为A,B两厂生产的材料平均抗压强度相同(a=0.05)?

NUll hypothesis: amean == bmean or ab_difference_value ==0
Alternative hypothesis: amean != bmean or ab_diffrence_value != 0

这么建立原假设和备择假设的原因:假设检验是在原假设的基础上计算的,如果原假设不是两者相同我们在计算统计量时就不知道两个组的总体参数,也就无法计算,无法用Z检验

#8.9 大样本 两个总体参数检验 Z检验
#8.9 大样本 两个总体参数检验 Z检验
from math import *
from scipy.stats import norm
amean =1070
bmean =1020
astd_squ = 63
bstd_squ = 57
anum = 81
bnum = 64
z_by_formula = (amean - bmean)/sqrt((pow(astd_squ,2)/anum)+(pow(bstd_squ,2)/bnum))
critical_z = norm.ppf(0.95)
p = 2 * norm.sf(abs(z_by_formula))
print("z_value = {:.5}\tcritical_z_value = {:.5}\tp_value = {}".format(z_by_formula,critical_z,p))
if(z_by_formula<critical_z and p>0.05):print("z value < critical value:\tno clear evidence to reject the null hypothesis.")
elif(z_by_formula>critical_z and p<0.05):print("z value > critical value:\treject the null hypothesis, we hold evidence to think that A is different to B")

显示结果如下:

z_value = 5.0059    critical_z_value = 1.6449  p_value = 5.561036869412281e-07
z value > critical value:    reject the null hypothesis, we hold evidence to think that A is different to B

由于p值小于显著性水平且z统计量大于临界值z,所以认为有充分证据说明应当拒绝原假设,并认为A、B组之间抗压强平均水平不同。

通常大样本时可以直接使用statsmodels 包中的 ztest 函数,而不需要手动计算,用ztest函数非常方便。
可以参考这篇文章:用 python 做 z 检验,t 检验

  1. 【大样本 两个总体参数的检验 csv数据的假设检验】
    数据分析一般输入数据的时候是任务比较多的。如果假设检验时碰到的数据较多,但是能够保存好了我们也有能力分析好。下面的例子需要检验甲、乙两种方法表现是否有显著差异,事先保存进了loading_methods.csv中
#8.15
import pandas as pd
import statsmodels.stats.weightstats as sw
file = pd.read_csv("C:\\Users\\45133\\Desktop\\loading_methods.csv", encoding="GBk")
file

结果如下

result1 = sw.ztest(file["甲方法"], file["乙方法"], value=0)
result2 = sw.ztest(file["甲方法"].values, file["乙方法"].values, value=0)
print("result1:{}\tresult2:{}".format(result1,result2))

也就是不转换成array向ztest函数参数放入dataframe的列应该也是可以的,结果相同

result1:(3.512351043171136, 0.00044416090513358) result2:(3.512351043171136, 0.00044416090513358)
p1,p2 =result1[1],result2[1]
critical_z = norm.ppf(0.95)
z = result1[0]
if(z <critical_z and p1>0.05):print("z value < critical value:\tno clear evidence to reject the null hypothesis.")
elif(z >critical_z and p1<0.05):print("z value > critical value:\treject the null hypothesis")

最终结果为:

z value > critical value: reject the null hypothesis

【统计学】假设检验 z检验t检验 Python实现相关推荐

  1. 统计学—假设检验之Z检验,T检验

    假设检验 假设检验的定义 假设检验的步骤 假设方法 Z检验 Z检验的适用条件 Z检验的类型 T检验 T检验的适用条件 三种类型的T检验 假设检验的定义 判断样本与样本.样本与总体的差异是由抽样误差引起 ...

  2. 假设检验/T检验/F检验/Z检验/卡方检验

    ****显著性水平: 一个概率值,原假设为真时,拒绝原假设的概率,表示为 alpha 常用取值为0.01, 0.05, 0.10 ****什么是P值? p值是当原假设为真时样本观察结果及更极端结果出现 ...

  3. 假设检验——Z检验、t检验

    假设检验,也称为显著性检验,通过样本的统计量来判断与总体参数之间是否存在差异(差异是否显著).即我们对总体参数进行一定的假设,然后通过收集到的数据,来验证我们之前作出的假设(总体参数)是否合理.在假设 ...

  4. python 样本均值t检验_假设检验与单样本T检验(上)

    假设检验与单样本T检验(上)假设检验与单样本T检验(上)假设检验与单样本T检验(上) 响应输出 大多数情况,我们不需要关注Response对象本身,只需要在控制器的操作方法中返回数据即可. 最简单的响 ...

  5. Python笔记-假设检验之单样本T检验

    概念 假设某个数据的均值为u,实际抽样时离u越近说明假设的这个均值越合理,越远,就说明越不合理. 这里又有个p-value的概念,代表实际抽样的结果与假设的差异程度.值越大意味着越无差异.实际中我们会 ...

  6. 5个步骤,掌握单样本z检验 / t检验

    提出问题:想知道北京大学所有男生的平均身高是否等于1.8米. 1.抽样(比如抽取100人作为样本). 2.做出假设,假设北京大学男生总体的平均身高等于1.8米.(零假设,null hypothesis ...

  7. 医学统计学 第八章( t 检验)

    第一节 单样本 t 检验(样本均数与总体均数的比较) 总体标准差 σ 未知且样本含量较小,要求样本来自正态分布总体. 常用于样本均数 μ 和已知总体均数 μ0 的比较. 例题 然后还需要根据自由度 v ...

  8. python生成白噪声与纯随机检验——Ljung-Box检验

    生成白噪声 生成白噪声的代码请参考:https://blog.csdn.net/sinat_24259567/article/details/93889547 import numpy as npde ...

  9. R语言: 单个正态总体的假设检验(单样本t检验)

    单个正态总体的假设检验(单样本t检验) 数据文件li12.1.txt 1.读数据(读取txt文本文件数据) 2.检验过程:t.test() 数据文件li12.1.txt 检验H0:mu=500 1.读 ...

  10. TASK03|GitModel 假设检验3|分类数据检验

    目录 分类数据的检验 4.1 分类数据的常用检验 4.1.1 卡方检验和Fisher检验 卡方检验的适用范围(注意绝对频数与理论频数是否**过低**) Fisher检验的适用范围(2x2) 4.2 单 ...

最新文章

  1. SAP MIGO对工单做101收货,报错 - Check table TFBEFU_CR entry 10 does not exist – 对策
  2. 一句话总结贝叶斯分类器
  3. Angular (SPA) WebPack模块化打包、按需加载解决方案完整实现
  4. 马上开始写 react ES6 --- 基于gulp 和 Babel 的脚手架
  5. 启明云端分享| ESP32-S3 + 480*480分辨率的2.1寸圆屏旋钮方案
  6. python读取nc文件并转换成csv_Python提取netCDF数据并转换为csv文件
  7. svg配合css3动画_带有Adobe Illustrator,HTML和CSS的任何网站的SVG动画
  8. spring boot配置dubbo注意事项
  9. 揭秘阿里中台!一文看懂阿里推荐业务的两项利器 | 赠书
  10. 从冷战到深度学习,一文看懂机器翻译发展史
  11. Windows下的开发环境
  12. html3d电子相册,3d电子相册制作软件哪个好, 自带翻页电子相册模板,电子相册生成flash等多种格式...
  13. 密码编码学与网络安全 核心理论知识梳理
  14. 参考 Docker 官方文档 Centos安装 Docker
  15. 王者荣耀服务器维护中有什么漏洞,王者荣耀:玩家发现新漏洞,趁天美没修复,快试试...
  16. html内容页上一页下一页,帝国CMS内容页增加内容分页上一页标签功能!
  17. 揭秘手机游戏厂商怎么赚钱的。
  18. 查看表之间的关系 需要在eas中的商业分析-扩展报表中心-报表平台下的语义层方案管理...
  19. java中的三目运算
  20. word标题段前断后设置都为6磅,标题段前无效

热门文章

  1. HFSS仿真平行线定向耦合器学习笔记
  2. Matlab实现自适应动态规划多层神经网络的算例汇总
  3. margin取负值详解
  4. 创业与投资的思维博弈均衡,是创投长期成功之道
  5. 计算机网络创业实训,网上创业实训报告.docx
  6. 电子邮件订阅:英语词汇学习
  7. dede中list标签php,dedecms标签:list标签使用大全
  8. 一个Java工程师的自我修养_程序员自我修养
  9. E-R方法进行数据库概念设计
  10. RecBole小白入门系列博客(二) ——General类模型运行流程