做数据分析为何要学统计学(6)——什么问题适合使用t检验?

news2024/9/9 6:16:47

t检验(Student's t test),主要依靠总体正态分布的小样本(例如n < 30)对总体均值水平进行差异性判断。

t检验要求样本不能超过两组,且每组样本总体服从正态分布(对于三组以上样本的,要用方差分析,其他文章详述)。因此使用t检验前需要对所有样本分别进行正态分布检验。如果有不服从正态分布的情况,可以考虑使用MannWhitney检验和Wilcoxon检验,后面单独文章介绍。

需要说明的是t检验还分为单样本t检验、独立双样本t检验配对双样本t检验,适用条件也各有不同,以下分别举例介绍。

1.单样本t检验

用于判断总体是否与既定均值无差异,可以通俗理解为总体均值是否与该既定均值相等。如下例

某产品合格率经10轮检测,保持在如下水平,试问可否认为其合格率为96.5%?

合格率(%):97.6 93.5 98.7 95.4 95.2 97.7 96.1 94.6 96.8 95.7

首先,使用scipy.stats.normaltest对样本进行正态分布检验.

from scipy import stats
import numpy as np
X=np.array([97.6,93.5, 98.7 ,95.4 ,95.2 ,97.7, 96.1 ,94.6 ,96.8 ,95.7])
stats.normaltest(X)
结果:NormaltestResult(statistic=0.07878377023988445, pvalue=0.9613738871946388)。p>0.05,样本通过正态分布检验。

然后,使用sstats.ttest_1samp进行单样本t检验。

stats.ttest_1samp(X,96.5)

结果:Ttest_1sampResult(statistic=-0.7396549082121191, pvalue=0.47835758603283807)。p>0.05,接受总体均值为96.5%的假设。

2.独立双样本t检验

用于判断两组独立样本在总体上是否均值无差异,可以通俗理解为两组独立采样的样本所代表的总体均值是否相等。所谓独立采样指的是:对不同个体或单位的受试对象进行采样,如对男性和女性的身高进行采样。采样方法可以相同,也可以不同。

独立双样本t检验还要求两组样本的总体方差齐性(也就是无差异),如果方差不齐,则可以使用Welch t检验(Welch's t-test)。

首先我们先来看满足独立双样本t检验的例子。

某产品两条生产线的合格率经10轮检测,保持在如下水平,试问可否认为其合格率是相同的?

生产线1合格率(%):97.6 93.5 98.7 95.4 95.2 97.7 96.1 94.6 96.8 95.7

生产线2合格率(%):97.2 94.2 97.8 94.9 96.3 98.7 96.5 95.6 97.1 96.2

以下为示例代码

X1=np.array([97.6,93.5, 98.7 ,95.4 ,95.2 ,97.7, 96.1 ,94.6 ,96.8 ,95.7])
X2=np.array([97.2,94.2,97.8,94.9,96.3,98.7,96.5,95.6,97.1,96.2])
#正态分布检验
stats.normaltest(X1),stats.normaltest(X2)
#方差齐性检验
stats.levene(X1,X2)
#独立双样本t检验
stats.ttest_ind(X1,X2)

上述各项检验p值均大于0.05,因此可以接受两条生产线产品质量无差异的假设。

如果X2=[87.2,92.2,97.8,97.9,96.3,98.7,86.5,95.6,97.1,86.2],则两组样本无法通过方差齐性检验(p=0.03878,小于显著性水平a=0.05)。于是,我们采用Welch t检验。

#独立双样本Welch t检验,equal_var参数值为False时,ttest_ind执行Welch t检验检验
stats.ttest_ind(X1,X2,equal_var=False)

检验结果为:Ttest_indResult(statistic=1.5289576830456144, pvalue=0.15523450660981364)。可以接受两个生产线产品质量相同的假设。

3.配对双样本t检验

用于判断两组配对样本在总体上是否均值无差异。所谓配对采样指的是:对同一个体或单位的受试对象进行采样,如一个人在两个不同时间点的血压值。

配对双样本t检验也要求两组样本的总体方差齐性,同时要求样本容量相同且两个样本各数值的顺序与采样顺序一致。

配对双样本t检验的函数是stats.ttest_rel(X1,X2),使用方法与独立双样本t检验相同,不再赘述。


以上介绍的是均值无差异推断。这种推断是双侧的(two-sided),在实际应用中,我们还会遇到单侧检验(one-sided)的情况,即判断不同总体的均值大小。例如判断第一条生产线的产品质量是否优于第二条生产线。

无论是独立双样本t检验还是配对双样本t检验均支持单侧检验,只需要在检验函数中加入alternative参数即可。该参数的取值为“less”或"greater"。如下例

#X1与X2服从正态分布但方差不齐,使用Welch t检验(单侧)
X1=np.array([97.6,93.5, 98.7 ,95.4 ,95.2 ,97.7, 96.1 ,94.6 ,96.8 ,95.7])
X2=np.array([87.2,92.2,97.8,97.9,96.3,98.7,86.5,95.6,93.1,86.2])
stats.ttest_ind(X1,X2,alternative="less",equal_var=False)
结果:Ttest_indResult(statistic=1.81631548017011, pvalue=0.9514575126271494)。

该结果如何解读呢?是\bar{X_1}>\bar{X_2},还是\bar{X_1}<\bar{X_2}?这是很多初学者比较困惑的地方。这里作出重要解释:

假设检验的基本思想是“小概率事件”原理,其统计推断方法是带有某种概率性质的反证法。换句话说,我想得到A这个结果,我需要做得事是证明\bar{A}不成立。也就是说

零假设(null hypothesis,无效假设)H_0: \bar{A}

备择假设(alternative hypothesis,想要的结果)H_1: A

 上述检验的备择检验H1是"less",所以零假设H0就是"greater"。由于p>0.05,所以接受零假设,即\bar{X_1}>\bar{X_2}

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

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

相关文章

apt-get update失败

一、先验证是否有网络 rootlocalhost:~# ping www.baidu.com ping: www.baidu.com: Temporary failure in name resolution rootlocalhost:~# 说明没有网&#xff0c;参考&#xff1a;https://blog.csdn.net/qq_43445867/article/details/132384031 sudo vim /etc/resolv.con…

windows如何解决端口冲突(实用篇)

在项目设计中&#xff0c;环境配置成功点击运行瞬间&#xff0c;一大堆红爆出&#xff0c;8080端口占用&#xff0c;这个是很烦人的。。。 解决方式&#xff1a; 笨方法&#xff1a;一、查看所有端口实用情况&#xff08;挨个扫&#xff09; 按住【WINR】快捷键打开运行输入…

报表控件FastReport .NET v2024功能演示—更改图图片形状

报表生成器FastReport .NET 是适用于.NET Core 3&#xff0c;ASP.NET&#xff0c;MVC和Windows窗体的全功能报告库。使用FastReport .NET&#xff0c;您可以创建独立于应用程序的.NET报告。 FastReport .net下载&#xff08;qun&#xff1a;585577353&#xff09;https://www.e…

靠着这份280页的前端面试指南,拿下了字节跳动offer

笔者是在今年秋招面试的头条教育线&#xff0c;顺利拿到了offer&#xff0c;把还记得的东西写下来&#xff0c;供大家参考一下。 一面 tcp 和 udp 的区别和使用场景&#xff1f;quic 基于 udp 怎么保证可靠性&#xff1f;讲一下同源策略和跨域方案&#xff1f;CORS 的几个头部…

AutoAnimate动画库,仅需一行代码

插件官网,支持react,vue AutoAnimate - Add motion to your apps with a single line of code 自动加动画原理 AutoAnimate 加动画的原理也很简单&#xff0c;监听绑定的 DOM 节点里 DOM 结构变化&#xff0c;自动添加对应的过渡动画&#xff1a; 增加子节点 > 渐入动画…

智能检测/摄像头监控系统EasyCVR无法启动进程是什么原因?如何解决?

国标GB28181智慧安防平台EasyCVR支持高清视频的接入和传输、分发&#xff0c;平台采用了开放式的网络结构&#xff0c;提供实时远程视频监控、录像回放与存储等功能。视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#xff0c;也能支持…

数据库系统 --- 关系模型

一、关系模型的数据结构以及形式化定义 1.关系 域&#xff1a;一组具有相同数据结构的值的集合。 笛卡尔积&#xff1a;域上的一种集合运算。多个集合做笛卡尔积的结果是每个集合取一个元素组合得到的一个新的集合。 域的基数&#xff1a;一个域上允许的不同取值的个数。 关系&…

【数仓理论】

一、数仓建模方法论 1.1 ER模型&#xff08;Entity Relationship、实体关系模型、范式模型&#xff09; ER模型是Bill Inmon提出的一种建模方法&#xff0c;实体关系模型将复杂的数据抽象为两个概念 ---- 实体和关系 该模型在范式理论上符合3NF&#xff0c;这种模型目的是减少…

VTK学习(入门级教程,包括安装和使用)~持续更新中

说明&#xff1a;研究QTVTK有段时间了&#xff0c;准备把学到的东西分享给大家&#xff0c;这篇博客以VSQTVTK为主进行展开学习的。 VTK学习 VTK安装和使用教程VTK入门级教程设计界面vtkStudy.ui的操作vtkStudy.h头文件说明完整代码 vtkStudy.cpp绘制球体绘制长方体绘制圆柱绘制…

wordpress多語言插件Polylang與GTranslate會有衝突

wordpress多語言插件Polylang與GTranslate會有衝突,會導致分頁顯示不完整&#xff0c;需要禁用或卸載其中一個 分頁顯示才會沒問題 GTranslate必須要先按一種語言編輯好你要發佈網站&#xff0c;GTranslate這種語言為基礎去翻譯出來&#xff0c;其實內裡是套用了google 翻譯的…

第二证券:结构性行情或将延续 泛科技有望继续走强

展望未来&#xff0c;当时已进入重要的方针窗口期&#xff0c;能否有超预期的新方针推出是改变商场的要害。但复盘2023年的行情来看&#xff0c;过早买卖方针预期的成功率并不高&#xff0c;因而主张该方位以防御性资产为主&#xff0c;高股息资产从本年9月份至今现已调整了2个…

ubuntu dns 相关

查看dns配置 systemd-resolve --status 修改dns vim /etc/resolv.conf sudo apt install traceroute 追踪 traceroute www.baidu.com

windows下docker环境安装

开启硬件虚拟化技术 win10中开启 Hyper-V Win10 下是否开启硬件虚拟化技术&#xff0c;在控制面板&#xff0c;启用 window 功能&#xff0c;找到 Hyper-V 选项&#xff0c;点勾选确认。如图&#xff1a; Windows 11 家庭中文版新增 Hyper-V选项 注意以下的解决方案来自win1…

Vision Transformer模型架构详解

&#x1f380;个人主页&#xff1a; https://zhangxiaoshu.blog.csdn.net &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️&#xff0c;如有错误敬请指正! &#x1f495;未来很长&#xff0c;值得我们全力奔赴更美好的生活&…

自动化测试 (一) 12306火车票网站自动登录工具

还记得2011年春运&#xff0c;12306火车票预订网站经常崩溃无法登录吗。 今天我们就开发一个12306网站自动登录软件。 帮助您轻松订票 Web的原理就是&#xff0c;浏览器发送一个Request给Web服务器&#xff0c;Web服务器处理完这个请求之后发送一个HTTP Response给浏览器。 …

【JAVA】黑马MybatisPlus 学习笔记【一】

1.快速入门 为了方便测试&#xff0c;我们先创建一个新的项目&#xff0c;并准备一些基础数据。 1.1 环境配置 导入项目 注意配置一下项目的JDK版本为JDK11。首先点击项目结构设置&#xff1a; 导入两张表&#xff0c;在课前资料中已经提供了SQL文件&#xff1a; 最后&am…

python用来干什么的,python用来做什么的

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python用来干什么的&#xff0c;python用来做什么的&#xff0c;今天让我们一起来看看吧&#xff01; 随着互联网行业的发展&#xff0c;编程越来越受到人们的重视&#xff0c;但是始终很多人并不了解编程是什么&#x…

Linux——MySQL数据库系统

一、 MySQL的编译安装 1、准备工作 &#xff08;1&#xff09;为了避免发生端口冲突&#xff0c;程序冲突等现象&#xff0c;建议先查询MySQL软件的安装情况&#xff0c;确认没有使用以Rpm方式安装的mysql-server、mysql软件包&#xff0c;否则建议将其卸载 [rootlocalhost ~]…

13、RockerMQ消息类型之广播与集群消息

RocketMq中提供两种消费模式&#xff1a;集群模式和广播模式。 集群模式 集群模式表示同一个消息会被同一个消费组中的消费者消费一次&#xff0c;消息被负载均衡分配到同一个消费者上的多个实例上。 还有另外一种平均的算法是AllocateMessageQueueAveragelyByCircle&#xff…

element table表格内进行表单验证(简单例子,一看就会,亲测有用~)开箱即用!!

效果图&#xff1a; 代码&#xff1a; <div> <el-form ref"form" :model"form" ><el-table :data"form.tableData" align"center" border><el-table-column label"名称"><template slot-scope&…