T检验两个函数stats.t.cdf和stats.t.sf(左尾/右尾T检验)

news2023/11/30 8:58:42

左右T检验都是用于比较两组数据之间的差异,但它们的应用场景和假设略有不同。

  1. 左尾T检验(One-tailed T-test)用于检查一个样本是否显著地小于另一个样本。它的零假设是一个样本的平均值小于或等于另一个样本的平均值。

  2. 右尾T检验(One-tailed T-test)则用于检查一个样本是否显著地大于另一个样本。它的零假设是一个样本的平均值大于或等于另一个样本的平均值。

如果你想查看两组数据之间是否存在任何显著的差异,而不限定于是大还是小,你应该使用双尾T检验(Two-tailed T-test)。

stats.t.sf 是Scipy库中用于计算学生t分布的生存函数(Survival Function)的函数。生存函数是一个概率密度函数的补函数,它表示随机变量大于某个值的概率。具体来说,stats.t.sf(x, df) 计算了自由度为 df 的t分布中,随机变量大于 x 的概率。

stats.t.cdf 是Scipy库中用于计算学生t分布的累积分布函数(Cumulative Distribution Function)的函数。累积分布函数给出了随机变量小于或等于某个值的概率。具体来说,stats.t.cdf(x, df) 计算了自由度为 df 的t分布中,随机变量小于或等于 x 的概率。

在下列代码中,我们首先生成了两组示例数据。然后使用 stats.ttest_ind 执行了独立样本的T检验,得到了t统计量和p值。接下来,我们计算了自由度,并使用 stats.t.cdf 计算了t统计量在t分布中的位置。最后,我们使用 stats.t.sf 计算了右尾的p值。

import numpy as np
import scipy.stats as stats

# 生成示例数据
group1 = np.random.normal(5, 2, 30)  # 第一组数据
group2 = np.random.normal(6, 2, 30)  # 第二组数据

# 执行独立样本T检验
t_stat, p_value = stats.ttest_ind(group1, group2)

# 计算自由度
df = len(group1) + len(group2) - 2

# 计算t统计量在t分布中的位置
# stats.t.cdf(x, df) 计算了自由度为 df 的t分布中,随机变量小于或等于 x 的概率
t_cdf = stats.t.cdf(t_stat, df)

# 计算t统计量右侧的概率(p-value)
# stats.t.sf(x, df) 计算了自由度为 df 的t分布中,随机变量大于 x 的概率。
p_right = stats.t.sf(t_stat, df)

# 输出结果
print(f"独立样本T检验结果:t_stat = {t_stat}, p_value = {p_value}")
print(f"t统计量在t分布中的位置 (CDF):{t_cdf}")
print(f"p-value (右尾):{p_right}")

# 独立样本T检验结果:t_stat = -3.9177011382620153, p_value = 0.0002382448506984628
# t统计量在t分布中的位置 (CDF):0.0001191224253492314
# p-value (右尾):0.9998808775746508

-----------
我们首先生成了两组示例数据(group1group2)。然后,分别执行了左尾和右尾T检验,并打印了检验的结果。最后,通过Matplotlib库绘制了两组数据的直方图,以便直观地比较它们的分布。

import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt

# 生成示例数据
group1 = np.random.normal(5, 2, 30)  # 第一组数据
group2 = np.random.normal(6, 2, 30)  # 第二组数据

# 执行左尾T检验
t_stat_left, p_value_left = stats.ttest_ind(group1, group2, alternative='less')

# 执行右尾T检验
t_stat_right, p_value_right = stats.ttest_ind(group1, group2, alternative='greater')

# 打印结果
print(f"左尾T检验结果:t_stat = {t_stat_left}, p_value = {p_value_left}")
print(f"右尾T检验结果:t_stat = {t_stat_right}, p_value = {p_value_right}")

# 绘制两组数据的直方图
plt.hist(group1, alpha=0.5, label='Group 1', color='blue')
plt.hist(group2, alpha=0.5, label='Group 2', color='green')
plt.legend(loc='upper right')
plt.title('Histogram of Group 1 and Group 2')
plt.show()

----------
在这个示例中,我们首先设置了自由度为10,然后生成了一系列x值,计算了自由度为10的T分布的概率密度函数。最后,使用Matplotlib绘制了T分布的曲线图。

import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
plt.rcParams['font.sans-serif'] = ['SimHei']  # 防止中文标签乱码
plt.rcParams['axes.unicode_minus'] = False
# 设定自由度
df = 10

# 生成x值范围
# np.linspace 是NumPy库中用于创建等间隔的一维数组的函数
x = np.linspace(-4, 4, 1000)

# 计算T分布的概率密度函数
pdf = stats.t.pdf(x, df)

# 绘制T分布曲线图
plt.plot(x, pdf, label=f'T分布 (df={df})', color='blue')
plt.xlabel('x')
plt.ylabel('Probability Density')
plt.title(f'T分布 (df={df})')
plt.legend()
plt.show()

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

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

相关文章

大规模语言模型--中文 LLaMA和Alpaca

中文LLaMA 尽管 LLaMA 和 Alpaca 在 NLP 领域取得了重大进展, 它们在处理中文语言任务时, 仍存在一些局限性。这 些原始模型在字典中仅包含数百个中文 tokens (可以理解为单词),导致编码和解码中文文本的效率受到了很大 影响。 之前已经对…

基于微信小程序的游戏账号交易买卖平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

oracle-使用PLSQL工具自行修改用户密码

1、使用PLSQL工具,输入用户名和原密码登录,如下图 2、登录后,在会话下拉菜单中找到”Change password..” 3、在跳出的窗口中配置新密码,修改完成后单击”确认”,后退出PLSQL 4、重新打开PLSQL,使用新密码登…

1 论文笔记:Efficient Trajectory Similarity Computation with ContrastiveLearning

2022CIKM 1 intro 1.1 背景 轨迹相似度计算是轨迹分析任务(相似子轨迹搜索、轨迹预测和轨迹聚类)最基础的组件之一现有的关于轨迹相似度计算的研究主要可以分为两大类: 传统方法 DTW、EDR、EDwP等二次计算复杂度O(n^2)缺乏稳健性 会受到非…

淘宝商品sku信息抓取接口api

在电商行业中,SKU是一个经常被使用的术语,但是对于很多人来说,这个词可能还比较陌生。在这篇文章中,我们将详细解释什么是SKU,以及在电商业务中它的作用和意义。 什么是SKU? SKU是“Stock Keeping Unit”…

Golang中的包和模块设计

Go,也被称为Golang,是一种静态类型、编译型语言,因其简洁性和对并发编程的强大支持而受到开发者们的喜爱。Go编程的一个关键方面是其包和模块系统,它允许创建可重用、可维护和高效的代码。本博客文章将深入探讨在Go中设计包和模块…

C++11(列表初始化,声明,范围for)

目录 一、列表初始化 1、一般的列表初始化 2、容器的列表初始化 二、声明 1、 auto 2、decltype 3、nullptr 三、 范围for 一、列表初始化 1、一般的列表初始化 在C98中,标准允许使用花括号{}对数组或者结构体元素进行统一的列表初始值设定。 int main() {…

【C++入门指南】类和对象(上)

【C杂货店】类和对象(上) 一、面向过程和面向对象初步认识二、类的引入三、类的定义四、类的访问限定符及封装4.1 访问限定符4.2 封装 五、类的作用域六、类的实例化七、类对象模型7.1 类对象的存储规则7.2 例题7.3结构体内存对齐规则 八、this指针8.2 t…

YOLOV8-DET转ONNX和RKNN

目录 1. 前言 2.环境配置 (1) RK3588开发板Python环境 (2) PC转onnx和rknn的环境 3.PT模型转onnx 4. ONNX模型转RKNN 6.测试结果 1. 前言 yolov8就不介绍了,详细的请见YOLOV8详细对比,本文章注重实际的使用,从拿到yolov8的pt检测模型&…

Go_原子操作和锁

原子操作和锁 本文先探究并发问题,再探究锁和原子操作解决问题的方式,最后进行对比。 并发问题 首先,我们看一下程序 num该程序表面看上去一步就可以运行完成,但是实际上,在计算机中是分三步运行的,如下…

计算机图像处理-中值滤波

非线性滤波 非线性滤波是利用原始图像跟模版之间的一种逻辑关系得到结果,常用的非线性滤波方法有中值滤波和高斯双边滤波,分别对应cv2.medianBlur(src, ksize)方法和cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]])方法。 …

Linux高性能服务器编程 学习笔记 第九章 IO复用

IO复用使程序能同时监听多个文件描述符,这可以提高程序的性能,通常网络程序在以下情况需要使用IO复用: 1.客户端进程需要同时处理多个socket。 2.客户端进程需要同时处理用户输入和网络连接。 3.TCP服务器要同时处理监听socket和连接socket…

c#设计模式-结构型模式 之装饰者模式

🚀介绍 在装饰者模式中,装饰者类通常对原始类的功能进行增强或减弱。这种模式是在不必改变原始类的情况下,动态地扩展一个对象的功能。这种类型的设计模式属于结构型模式,因为这种模式涉及到两个类型之间的关系,这两个…

《C++ Primer》练习7.31:定义互相嵌套的类

类可以先声明再定义,可以用下面这个题目理解一下 class Y; class X {Y *y; };class Y {X x; };未出现的类类型要在前面声明。 参考 《C Primer》

前端架构师之02_ES6_高级

1 类和继承 1.1 class类 JavaScript 语言中,生成实例对象的传统方法是通过构造函数。 // ES5 创建对象 // 创建一个类,用户名 密码 function User(name,pass){// 添加属性this.name name;this.pass pass; } // 用 原型 添加方法 User.prototype.sho…

集合-ArrayList源码分析(面试)

系列文章目录 1.集合-Collection-CSDN博客​​​​​​ 2.集合-List集合-CSDN博客 3.集合-ArrayList源码分析(面试)_喜欢吃animal milk的博客-CSDN博客 目录 系列文章目录 前言 一 . 什么是ArrayList? 二 . ArrayList集合底层原理 总结 前言 大家好,今天给大家讲一下Arra…

使用Qt验证RGB格式

下面我们用不同的颜色来绘制一块矩形区域,来对比学习RGB颜色。 一片漆黑的黑色 黑色在RGB中是三个颜色分量都是0。也就是没有颜色。 下面我们绘制一个水平100个像素,垂直200个像素的矩形区域,颜色设置为黑色。 #ifndef MAINWINDOW_H #def…

基于B2B平台的医疗病历交互系统

目录 前言 一、技术栈 二、系统功能介绍 医院管理 医院注册 医院文章 医生信息 医院注册 医疗安排 院区注册 医院公告 医院工作人员 病人病历 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 进入21世纪,计算机技术迅速向着网络化的、集…

el-menu 导航栏学习(1)

最简单的导航栏学习跳转实例效果: (1)index.js路由配置: import Vue from vue import Router from vue-router import NavMenuDemo from /components/NavMenuDemo import test1 from /components/test1 import test2 from /c…

Qt::图层框架-图片图层-序列图层-QGraphicsPixmapItem

二维矢量动画智能制作软件开发合集 链接:软件开发技术分享及记录合集 个人开发二维矢量动画智能制作软件界面如下: 目录 一、图片序列图层原理 二、图片序列图层代码实现 三、图片序列图层软件测试视频 结束语 一、图片序列图层原理 本软件的11种…