科研学习|研究方法——python T检验

news2024/11/26 12:17:20

一、单样本T检验

  • 目的:检验单样本的均值是否和已知总体的均值相等
  • 前提条件

(1)总体方差未知,否则就可以利用 Z ZZ 检验(也叫 U UU 检验,就是正态检验);
(2)正态数据或近似正态;
(3)连续变量

  • 原假设和备择假设:

  • 例子:假设已知我国男青少年的平均身高是1.73,那么取某高校50名男生的身高(本文采用随机数据),想比较该高校与我国男青少年的平均身高是否存在差异。

ttest_1samp 函数参数可参考:

from scipy import stats
 
rvs = stats.norm.rvs(loc=1.5, scale=1, size=(50)) # 生成均值为1.5,标准差为1的50个样本
t, p = stats.ttest_1samp(rvs, 1.73)               # 进行单样本T检验

print(" T-test: %f\n"%t,"P-vlaue: %f"%p)

# T-test: -3.087647
# P-vlaue: 0.003317

 

结论:T值小于0,说明样本均值小于总体均值;P值小于0.05,说明该高校与我国男青少年的平均身高存在差异。

单侧检验 :scipy库中stats只提供了双侧检验,如果需要单侧检验只需要将计算出来的P值除于2即可,这里参考文章:利用python进行单边T检验

置信区间:采用 scipy.stats.norm.interval() 函数计算

import numpy as np

stats.norm.interval(
    alpha = 0.95,
    loc = np.mean(rvs),
    scale = stats.sem(rvs)
)

二、独立样本t检验(双样本T检验)

  • 目的:检验两组独立样本均值是否相等
  • 前提条件
    (1)两组总体方差相等,如果不相等,先利用levene检验,检验两总体是否具有方差齐性;
    (2)正态数据或近似正态;
    (3)连续变量
  • 原假设和备择假设:

场景1: 想比较可口可乐饮料在沃尔玛、大润发两个超市的销量是否存在差异
场景2: 想比较南、北方人的平均身高、体重是否存在差异

需要注意的是:前期需要检验两组方差是否相等,如不相等, scipy.stats.ttest_ind() 函数中的参数 equal_var 需要设置成 False

levene 检验P值 > 0.05,接受原假设,认为两组方差相等 

from scipy import stats
 
rvs_1 = stats.norm.rvs(loc=1.5, scale=1, size=(50)) # 生成均值为1.5,标准差为1的50个样本
rvs_2 = stats.norm.rvs(loc=2, scale=1, size=(50))   # 生成均值为2,标准差为1的50个样本

levene = stats.levene(rvs_1, rvs_2)                 # 进行 levene 检验

t, p = stats.ttest_ind(rvs_1,rvs_2,equal_var=True) # 独立样本t检验

print("levene 检验P值: %f"%levene.pvalue,'\n')

print("独立样本t检验")
print(" T-test: %f\n"%t,"P-vlaue: %f"%p)

T值小于0,说明第一组数据的均值小于第二组
单侧检验:同上

三、配对样本T检验

目的:比较同一组样本在不同场景下,均值是否存在差异
前提条件
(1)两组总体方差相等,如果不相等,先利用levene检验,检验两总体是否具有方差齐性;
(2)正态数据或近似正态;
(3)连续变量
原假设和备择假设

场景1: 将小白鼠配对为两组,分别接受不同的处理,检验处理结果的差异
场景2: 对于一批血清样本,将其分为两个部分,利用不同的方法接受某种化合物的检验,检验结果的差异
场景3: 检验癌症患者术前、术后的某种指标的差异
场景4: 可口可乐饮料今年与去年在沃尔玛超市销售额均值是否存在差异

与独立样本t检验相比,配对样本T检验要求样本是配对的,两个样本的样本量要相同

python 实现有两种方式
(1)两组数据做差,再对差值进行单样本T检验,检验均值为0;
(2)利用 scipy.stats.ttest_rel() 函数进行配对样本T检验

from scipy import stats
 
rvs_1 = stats.norm.rvs(loc=1.5, scale=1, size=(50)) # 生成均值为1.5,标准差为1的50个样本
rvs_2 = stats.norm.rvs(loc=2, scale=1, size=(50))   # 生成均值为2,标准差为1的50个样本

levene = stats.levene(rvs_1, rvs_2)          # 进行 levene 检验
t1, p1 = stats.ttest_1samp(rvs_1 - rvs_2, 0) # 单样本T检验
t2, p2 = stats.ttest_rel(rvs_1,rvs_2)        # 配对样本t检验

print("levene 检验P值: %f"%levene.pvalue,'\n')

print("单样本T检验")
print(" T-test: %f\n"%t1,"P-vlaue: %f"%p1)

print("\n配对样本t检验")
print(" T-test: %f\n"%t2,"P-vlaue: %f"%p2)

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

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

相关文章

趣学python编程 (一、计算机基础知识科普)

未来是高度科技化和智能化的时代。过去不识字的叫“文盲”,如今不懂点计算机知识,则可能是新时代的“文盲”。不论从事什么行业,了解下计算机和编程都是有益的。Python 连续多年占据最受欢迎的编程语言榜首,未来Python有机会成为像…

(八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB

​ 一、五种算法(DBO、LO、SWO、COA、GRO)简介 1、蜣螂优化算法DBO 蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为…

考虑区域多能源系统集群协同优化的联合需求侧响应模型(matlab代码)

该程序复现《考虑区域多能源系统集群协同优化的联合需求侧响应模型》文献模型,程序的核心是对多个区域级多能源系统互联系统进行多目标优化,并且考虑联合需求侧响应,以多个区域多能源系统运行总成本最小、碳排放最小为目标,建立多…

kickstarter数据采集

搜索界面字段如下: 详情界面字段如下: 评论页面采集: 需要的可以找我沟通

超市管理系统

闲着无聊写了个超市管理系统,包括商品管理、进销存、角色权限管理,很不错的项目分享给大家 1 商品管理 1.1 分类管理 分类信息主要包括名称、描述,可以进行停用、启用 1.2 商品信息 1.3 积分商品 1.4 销售统计 2 库存管理 2.1 仓库管理…

idea中git 移除对某个文件的跟踪

应用场景如下 某个log 文件,被同事用git 提交到了服务器,本地拉去之后我们的跟踪也会受影响 取消跟踪的方法如下: 删除本地缓存 git rm --cached "logs/test.log" 提交无效的log git commit -m "ignore log" 再将lo…

【AI视野·今日NLP 自然语言处理论文速览 第六十五期】Mon, 30 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 30 Oct 2023 Totally 67 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers An Approach to Automatically generating Riddles aiding Concept Attainment Authors Niharika Sri Parasa,…

Docker启动SRS流媒体服务器

一、安装Docker 1.1、下载windows桌面版Windows 1.2、配置镜像 镜像加速器镜像加速器地址Docker 中国官方镜像https://registry.docker-cn.comDaoCloud 镜像站http://f1361db2.m.daocloud.ioAzure 中国镜像https://dockerhub.azk8s.cn科大镜像站https://docker.mirrors.ustc…

YOLOv5项目实战(3)— 如何批量命名数据集中的图片

前言:Hello大家好,我是小哥谈。本节课就教大家如何去批量命名数据集中的图片,希望大家学习之后可以有所收获!~🌈 前期回顾: YOLOv5项目实战(1)— 如何去训练模型 YOLOv5项目实战(2࿰

操作系统 day10(调度的概念、层次、七状态模型)

调度的概念 调度的层次 作业调度(高级调度) 进程调度(低级调度) 内存调度(中级调度) 挂起态与七状态模型 三层调度的联系和对比

AdServices归因和iAd归因集成

AdServices framework 是 Apple 专门为 ASA 提供的归因框架 。尤其在ATT 政策推出以后,app 获取用户 IDFA 的比例大幅降低,传统的依靠IDFA 的方法也无法准确归因。 但是 Apple 为 ASA 开了一个后门,其他广告渠道无法获取用户的 IDFA 作为身份…

MatrixOne完成与欧拉、麒麟信安的兼容互认

近日,超融合异构云原生数据库MatrixOne企业版软件V1.0完成了与欧拉开源操作系统(openEuler简称“欧拉”)、麒麟信安操作系统系列产品和虚拟化平台的相互兼容认证,通过了欧拉兼容性测评,获得了《openEuler技术测评证书》…

unity3d与vs 附加到unity debug报错

点击 附加到unity报错 选择在 调试-》附加unity->选择unity实例

KT148A语音芯片使用串口uart本控制的完整说明_包含硬件和指令举例

一、功能简介 KT148A肯定是支持串口的,有客户反馈使用一线还是不方便,比如一些大型的系统不适合有延时的操作,所以更加倾向于使用uart控制,这里我们也给出解决方案 延伸出来另外一个版本,KT158A 注意次版本芯片还是…

MySQL/SQLServer判断字符是纯数字或者是其它字符

如下是MySQL表结构设计(演示所用): MySQL表关联数据如下所示: 【场景:查询所有数字,包含小数点】,SQL如下所示: SELECT * FROM data WHERE message not REGEXP [^0-9].[^0-9] My…

【AI视野·今日CV 计算机视觉论文速览 第277期】Fri, 27 Oct 2023

AI视野今日CS.CV 计算机视觉论文速览 Fri, 27 Oct 2023 Totally 93 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers A Coarse-to-Fine Pseudo-Labeling (C2FPL) Framework for Unsupervised Video Anomaly Detection Authors Anas Al lahham…

C++ 模板 (一)

1. 泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left, int& right) { int temp left; left right; right temp; } void Swap(double& left, double& right) { double temp left; left right; right temp; } void Swap(char&…

《C++避坑神器·二十二》VS能正常运行程序,但运行exe程序无响应解决办法

原因是某个文件只是放在了项目路径下,没有放在exe路径下,比如Json文件原来只放在了mlx项目下,导致VS可以运行,但运行exe无响应或报错如下: 两种方式修改: 1、把Json文件拷贝一份放到exe路径下 2、利用生成…

云ES使用集群限流插件(aliyun-qos)

aliyun-qos插件是阿里云Elasticsearch团队自研的插件,能够提高集群的稳定性。该插件能够实现集群级别的读写限流,在关键时刻对指定索引降级,将流量控制在合适范围内。例如当上游业务无法进行流量控制时,尤其对于读请求业务,可根据aliyun-qos插件设置的规则,按照业务的优先…

【AI视野·今日Robot 机器人论文速览 第六十五期】Mon, 30 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Mon, 30 Oct 2023 Totally 18 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Gen2Sim: Scaling up Robot Learning in Simulation with Generative Models Authors Pushkal Katara, Zhou Xian, Katerina F…