python scipy.stats计算双独立样本假设检验(2 sample independent test)
时间:2022-07-23
本文章向大家介绍python scipy.stats计算双独立样本假设检验(2 sample independent test),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
完全独立随机设计的两样本均数的比较,其目的是检验两样本所来自总体的均数是否相等。例如两个不同版本的测试程序对产品温度控制是否一样;两种不同的加工方法加工出的工件长度是否一样等。
#_*_coding:utf-8_*_
#本节内容学习用python统计包scipy自动计算双独立假设检验:
'''
双独立(independent)样本检验(ttest_ind)'''
import numpy as np
import pandas as pd
from scipy import stats
import matplotlib.pyplot as plt
import seaborn as sns
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 雅黑字体
plt.rcParams['axes.unicode_minus']=False
#T检验是假设检验的一种,又叫student t检验(Student’s t test),主要用于样本含量较小(例如n<30),总体标准差σ未知的正态分布资料。A=[1.629,1.628,1.63,1.632,1.633,1.634,1.635,1.635,1.6335,1.6351,1.636,1.6362,1.637,1.638,1.639,1.72,1.721,1.731]
B=[1.628,1.6289,1.631,1.63,1.634,1.634,1.635,1.635,1.6335,1.6351,1.636,1.6362,1.637,1.637,1.636,1.73]
dataA=np.array(A)
dataB=np.array(B)
A_mean=dataA.mean()B_mean=dataB.mean()
print('A版本的平均值=',A_mean)
print('B版本的平均值=',B_mean)'''
这里要区别:数据集的标准差,和样本标准差
数据集的标准差公式除以的是n,样本标准差公式除以的是n-1。
样本标准差,用途是用样本标准差估计出总体标准差pandas计算的标准差,默认除以的是n-1,也就是计算出的是样本标准差''''''#样本标准差a_std=dataA.std()
b_std=dataB.std()print('A版本样本标准差=',a_std)
print('B版本样本标准差=',b_std)
#零假设:A版本和B版本没有差别,也就是A版平均值=B版本平均值
#备选假设:A版本和B版本有差别,也就是A版本平均值不等于B版本平均值
#因为有2组样本,是不同的人,选择双独立样本检验.两样本均值比较,双尾检验.sns.distplot(dataA)
plt.title('A版本数据集分布')
plt.show()
sns.distplot(dataB)
plt.title('B版本数据集分布')
plt.show()
'''
Scipy的双独立样本t检验不能返回自由度,对于后面计算置信区间不方便。所以我们使用另一个统计包(statsmodels)
'''
'''
ttest_ind:独立检验双样本t检验,usevar='unequal'两个总体方差不一样
返回的第1个值t是假设检验计算出的t值,
第2个p_two是双尾检验的p值
第3个DF是独立双样本的自由度'''import statsmodels.stats.weightstats as stt,p_two,df=st.ttest_ind(dataA,dataB, usevar='unequal')print('t=',t,'p_twotail=',p_two,'df=',df)
#判断标准(显著水平)使用alpha=0.05
alpha=0.05
#做出结论
if (p_two<alpha/2):
print('拒绝零假设,A和B版本有差异')
else:
print('接受零假设,A和B没有差别')
程序运行结果为:
A版本的平均值= 1.6490444444444445
B版本的平均值= 1.63979375
A版本样本标准差= 0.03370152027929608
B版本样本标准差= 0.023452384440339966
t= 0.9093861632613868 p_twotail= 0.37029967620807425 df= 30.402183227443754
接受零假设,A和B没有差别
由于P>0.05; A版本和B版本没有区别。
- Hadoop源码系列(一)FairScheduler申请和分配container的过程
- MOTS攻击之TCP攻击
- iOS学习——获取当前最顶层的ViewController
- 中国深圳一家厂商的智能摄像头曝出漏洞:至少 17.5 万设备可被远程攻击
- iOS学习——Xcode9上传项目到GitHub
- 手把手教你编写一个简单的PHP模块形态的后门
- 如何将简单的Shell转换成为完全交互式的TTY
- 如何使用HackRF做一个简单的IMSI捕获器
- 联想Z470黑化之路:硬件升级还能刷苹果Mac系统!
- 渗透测试TIPS之删除、伪造Linux系统登录日志
- 1分钟懂awk-技不在深,够用就行
- RChain节点通信机制
- Spark源码系列(一)spark-submit提交作业过程
- Android安全几道入门题目
- 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 数组属性和方法
- hexo搭建个人网站博客完全教程
- 快速入门 Python 数据库操作
- Shell脚本管道符与重定向
- 偿还技术债(3)-ARouter源码详解
- 偿还技术债(4)-ARouter自己实现一个?
- 偿还技术债(5)-LeakCanary源码详解
- 数据库PostrageSQL-服务器配置(查询规划)
- 别在折腾开发环境了,一劳永逸的 Python 环境搭建方法
- 快速入门Python文件操作
- 使用PyTorch构建的“感知器”网络
- Python 经典面试题 一
- Python 经典面试题 二
- Linux磁盘管理之LVM快速入门配置
- 你熟悉Python的代码规范吗?如何一键实现代码排版
- Deepin安装与基础使用