python scipy.stats计算单样本假设检验(1 sample test)
时间:2022-07-23
本文章向大家介绍python scipy.stats计算单样本假设检验(1 sample test),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
单样本检验:检验单个变量的均值与目标值之间是否存在差异,如果总体均值已知,样本均值与总体均值之间差异的显著性检验属于单样本假设检验。
例如:火箭班学生2019年高考成绩698分,2020年的每个人成已知[*,*,*,*,...........],求2020年的成绩和2019年的高考成绩是否有显著差别。
例如:客户要求工件加工长度小于170mm,现加工一批工件,测出其长度分别为[165.6,166.2,168.5,170.5,168.4,169.4,168.6,167.9,162.7,173.9],求这批工件的均值是否符合客户要求。
#本节内容学习用python统计包scipy自动计算假设检验:
'''
单(lsamp)样本检验(ttest_1samp)
'''import numpy as np
import pandas as pd
from scipy import stats
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 雅黑字体
plt.rcParams['axes.unicode_minus']=False
'''
ttest_1samp:单样本检验:总体方差未知。
返回的第一个值t是假设检验计算出的t值
第二个值是p是双尾检验p值。因为scipcy计算出的是双尾检验的t值和p值,如果要求左尾检验,
根据对称性,双尾检验的的p值对应单尾的2倍。'''
#样本数据集。要求车床加工长度小于170
dataSer=pd.Series([165.6,166.2,168.5,170.5,168.4,169.4,168.6,167.9,162.7,173.9])
#总体平均值
pop_mean=170
#H0原假设:加工等于170;H1备选假设:不等于170;
t,p_twotail=stats.ttest_1samp(dataSer,pop_mean)
print('t值=',t,'双尾检验的p值=',p_twotail)
'''
双尾检验:p>判断标准alpha
'''
#单尾检验p值
p_onetail=p_twotail/2
print('单尾检验p值=',p_onetail)
#判断标准通常是使用显著水平alpha=5%
alpha=0.05
#做出结论
'''
左尾判断条件:t<0 and p<判断标准alpha
右尾判断条件:t>0 and p<判断标准alpha
'''
if t<0 and p_onetail<alpha:
print('拒绝零假设,有统计显著,加工长度小于170cm,满足标准')
else:
print('接受零假设,没有显著水平,加工长度大于等于170cm,不满足标准')
#置信区间
#平均值的置信区间,95% CI=(a,b)
#在报告置信区间时,提供这样几个信息:1)哪种类型的置信区间:单样本中的单个平均值置信区间.但我们在后面要讲到的相关样本检验是平均
#值间差异的置信区间。 2)置信水平和区间上下限。置信水平=CI(a,b)
'''
1)置信区间水平对应的t值(t_ci)
查t表格可以得到,95%的置信水平,自由度n-1对应的t值2)计算上下限
置信区间上限a=样本平均值-t_ci*标准误差
置信区间下限b=样本平均值-t_ci*标准误差'''
'''
查找t表格获取95%的置信区间,自由度df=n-1对应的t值'''
t_ci=2.262
#使用scipy计算标准误差
se=stats.sem(dataSer)
#置信区间上下限
mean=dataSer.mean()
print('平均值为:',mean)
a=mean-t_ci*se #上限
b=mean+t_ci*se #下限
print('单个平均值的置信区间,95置信水平 Confidence_Interval=(%f,%f)'%(a,b))
#做完一个假设检验之后,如果结果具有统计显著性,那么还需要继续计算其效应量:假设检验如果是显著的,那么有必要报告自变量效应量大小。
#效应量判断:结果取绝对值:0.20 小的效应,0.50中等效应,0.80高的效应
#如果结果不具有统计显著性,并且还需要继续进行决策的话,那么需要计算功效。
#效应量(effect size):样本间差异或相关程度的量化指标.
#度量效应量分类:差异度量、相关度量
#差异度量cohen's d =(样本平均值1-样本平均值2)/标准差 样本平均值与总体平均值相差多少
#相关度度量r^2=t^2/(t^2+df)
#效应量:差异指标Cohen's d
std=dataSer.std()
d=(mean-pop_mean)/std
#相关度指标
#样本大小
n=10
#自由度
df=n-1
r2=(t*t)/(t*t+df)
print('d=',d)
print('r^2=',r2)
程序运行结果为:
t值= -1.933 双尾检验的p值= 0.0851
单尾检验p值= 0.04258
拒绝零假设,有统计显著,加工长度小于170cm,满足标准
平均值为:168.17000
单个平均值的置信区间,95置信水平 Confidence_Interval=(166.029370,170.310630)
d= -0.6115
r^2= 0.29353
- 微信公众平台开发
- BZOJ 1115: [POI2009]石子游戏Kam (阶梯nim)
- php性能监测模块XHProf
- BZOJ 1022: [SHOI2008]小约翰的游戏John (Anti-nim)
- 洛谷P2252 取石子游戏(威佐夫博弈)
- HDU 3032 Nim or not Nim?(Multi-Nim)
- POJ 2311 Cutting Game(二维SG+Multi-Nim)
- js去掉html标签和去掉字符串文本的所有的空格
- php操作memcache的使用测试总结
- linux awk命令详解
- php str_split 解决中文
- PHP汉字转拼音函数
- 51NOD 1185 威佐夫游戏 V2(威佐夫博弈)
- HDU 1527 取石子游戏(威佐夫博弈)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- yii2 开发api接口时优雅的处理全局异常的方法
- PHP调用全国天气预报数据接口查询天气示例
- Python使用itcaht库实现微信自动收发消息功能
- Laravel源码解析之路由的使用和示例详解
- PHP实现的用户注册表单验证功能简单示例
- php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
- 微信企业转账之入口类分装php代码
- python输出结果刷新及进度条的实现操作
- PHP实现微信申请退款功能
- python 读取.nii格式图像实例
- PHP实现八皇后算法
- 浅析php如何实现爬取数据原理
- Python 存取npy格式数据实例
- 微信支付之JSAPI公众号支付详解
- 浅谈keras中的batch_dot,dot方法和TensorFlow的matmul