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

news2024/9/24 13:23:29

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检验。

#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/1312889.html

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

相关文章

获取Java类路径

利用System.getProperty(“java.class.path”)可以获取Java类路径&#xff08;Java class path&#xff09;。 package com.thb;import java.io.IOException;public class Test5 {public static void main(String[] args) throws IOException {System.out.println(System.getP…

MySQL数据库 DDL

目录 一、DDL 二、操作数据库 三、操作表 四、数据类型 五、表操作案例 六、修改表 七、删除表 一、DDL Data Definition Language&#xff0c;数据定义语言&#xff0c;用来定义数据库对象(数据库&#xff0c;表&#xff0c;字段) 。 二、操作数据库 &#xff08;1&am…

Linux学习第47天:Linux音频驱动试验:能不能?不行也得行。

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 CAN 是目前应用非常广泛的现场总线之一&#xff0c;主要应用于汽车电子和工业领域&#xff0c;尤其是汽车 领域&#xff0c;汽车上大量的传感器与模块都是通过 C…

OceanMind海睿思案例入选第二届中国数据治理年会“DCMM百项优秀案例”

近日&#xff0c;中国电子信息行业联合会在北京成功举办“第二届中国数据治理年会”。 本届大会以“数据强基、智领未来”为主题&#xff0c;汇聚我国数据治理领域的资深专家、学者、企业大咖同台论道&#xff0c;共话数据未来的发展与创新。 中新赛克海睿思作为DCMM3级乙方代…

Python自动化批量篆刻Polygon动物铭文$ANTS

铭文介绍 Polygon马蹄链动物主题铭文 A N T S 总量 2100 w 张&#xff0c;当前还剩余 76 ANTS 总量2100w张&#xff0c;当前还剩余76%&#xff0c;成本很低0.003MATIC一张&#xff0c;可以打了防身。 BRC20比特币铭文生态有RATS老鼠大军&#xff0c;PRC20马蹄有ANTS蚂蚁大军&a…

浅析:智能化视频安全监管系统的设计与实现步骤

关于智能化视频监管方案&#xff0c;小编已经和大家分享了很多&#xff0c;今天就和大家来探讨一下关于智能化视频安全监管系统的设计与实现步骤。 首先需要分析需求。要与使用者和业务部门合作&#xff0c;明确系统的功能和需求&#xff0c;例如&#xff0c;确定监控区域、安…

vsftp 使用虚拟用户 —— 筑梦之路

很久之前写过一遍安装vsftp的文章&#xff1a; CentOS 7 vsftpd服务器搭建记录——筑梦之路-CSDN博客 安装一条命令就可以搞定&#xff0c;这里不再赘述。 配置vsftpd.conf # /etc/vsftpd/vsftpd.conf文件修改以下配置#不允许匿名用户认证 anonymous_enableNO #NO表示所有用…

天猫数据分析(天猫数据查询平台):11月天猫啤酒市场销售数据分析报告

在酒类市场中&#xff0c;被视作“气氛担当”的啤酒&#xff0c;是派对聚会或者自饮场景中的常客&#xff0c;消费人群广泛&#xff0c;如今&#xff0c;啤酒市场已进入存量时代&#xff0c;市场中啤酒的销售也在稳步增长。 鲸参谋数据显示&#xff0c;今年11月份&#xff0c;天…

【Lidar】基于Python格网法计算点云体积(eg.树木体积)

这两天一直不在状态&#xff0c;不是特别想分享文章&#xff0c;所以也没怎么更新。但是代码放在文件里始终不是它的归宿&#xff0c;只有被不断使用它才能进步&#xff0c;才能诠释它的意义。所以今天抽空给大家分享一下如何基于Python利用格网法计算点云的体积&#xff0c;我…

docker的资源限制及容器应用

一、docker资源限制 在使用 docker 运行容器时&#xff0c;一台主机上可能会运行几百个容器&#xff0c;这些容器虽然互相隔离&#xff0c;但是底层却使用着相同的 CPU、内存和磁盘资源。如果不对容器使用的资源进行限制&#xff0c;那么容器之间会互相影响&#xff0c;小的来说…

解决多卡机器CUDA Error Code 802(CUDA_ERROR_SYSTEM_NOT_READY)

解决多卡机器安装完CUDA后&#xff0c;出现802错误码&#xff1a;Fabric Manager需要和Driver具有完全一致的版本号。 现象 检查 查看service状态&#xff1a; 显示failed&#xff0c;查看nvidia-smi中的Driver版本&#xff1a; 切换版本 sudo yum list installed | grep…

BERT大模型:英语NLP的里程碑

BERT的诞生与重要性 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;大模型标志着自然语言处理&#xff08;NLP&#xff09;领域的一个重要转折点。作为首个利用掩蔽语言模型&#xff08;MLM&#xff09;在英语语言上进行预训练的模型&…

初学python的体会心得20字,初学python的体会心得2000

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;学了python的心得体会200字&#xff0c;初学python的体会心得20字&#xff0c;现在让我们一起来看看吧&#xff01; 本学期&#xff0c;我们学习了杨老师的《python语言程序设计》这门课程&#xff0c;其实早在大一期间…

【每日一题】【12.15】2415.反转二叉树的奇数层

&#x1f525;博客主页&#xff1a; A_SHOWY&#x1f3a5;系列专栏&#xff1a;力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 2415. 反转二叉树的奇数层https://leetcode.cn/problems/reverse-odd-levels-of-binary-tree/ 今天终于碰到了一个mid题目&#x…

[Unity]关于Unity接入Appsflyer并且打点支付

首先需要去官方下载Appsflyer的UnityPackage 链接在这afPackage 然后导入 导入完成 引入此段代码 using AppsFlyerSDK; using System.Collections; using System.Collections.Generic; using UnityEngine;public class AppflysManager : MonoBehaviour {public static App…

【算法与数据结构】332、LeetCode重新安排行程

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题比较属于困难题目&#xff0c;难点在于完成机票、出发机场和到达机场之间的映射关系&#xff0c;再…

Airtest-Selenium实操小课①:爬取新榜数据

此文章来源于项目官方公众号&#xff1a;“AirtestProject” 版权声明&#xff1a;允许转载&#xff0c;但转载必须保留原链接&#xff1b;请勿用作商业或者非法用途 1. 前言 最近看到群里很多小伙伴都在用Airtest-Selenium做一些web自动化的尝试&#xff0c;正好趁此机会&…

我的NPI项目之Android 安全系列 -- Google Wallet and Secure Element(SE)

随着电子支付的兴起&#xff0c;越来越多的支付方式出现在我们的生活中。其中就有基于NFC的“碰一碰”的支付&#xff0c;支付宝的“扫一扫”支付&#xff0c;我们还知道有Google Pay(Wallet), Apple Pay(Wallet)。作为Android BSP的开发者&#xff0c;我比较关心的是Google Pa…

Backtrader 文档学习-Quickstart

Backtrader 文档学习-Quickstart 0. 前言 backtrader&#xff0c;功能十分完善&#xff0c;有完整的使用文档&#xff0c;安装相对简单&#xff08;直接pip安装即可&#xff09;。 优点是运行速度快&#xff0c;支持pandas的矢量运算&#xff1b;支持参数自动寻优运算&#x…

【Qt QML入门】Button

Button表示一个推按钮控件&#xff0c;用户可以按下或单击它。 import QtQuick import QtQuick.Window import QtQuick.ControlsWindow {id: winwidth: 800height: 600visible: truetitle: qsTr("Hello World")Button {id: btnwidth: 200height: 100anchors.centerIn…