广告
返回顶部
首页 > 资讯 > 后端开发 > Python >利用python进行T检验
  • 168
分享到

利用python进行T检验

python 2023-01-31 01:01:21 168人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

引入所需的包 from scipy import stats import numpy as np 注:ttest_1samp, ttest_ind, ttest_rel均进行双侧检验 H0:μ=μ0H_0: μ=μ_0 H1

引入所需的包

from scipy import stats
import numpy as np

注:ttest_1samp, ttest_ind, ttest_rel均进行双侧检验
H0:μ=μ0
H1:μ≠μ0

单样本T检验-ttest_1samp

ttest_1samp官方文档

生成50行x2列的数据

np.random.seed(7654567)  # 保证每次运行都会得到相同结果
# 均值为5,方差为10
rvs = stats.nORM.rvs(loc=5, scale=10, size=(50,2))

检验两列数的均值与1和2的差异是否显著

stats.ttest_1samp(rvs, [1, 2])

返回结果:

Ttest_1sampResult(statistic=array([ 2.0801775 , 2.44893711]), pvalue=array([ 0.04276084, 0.01795186]))

分别显示两列数的t统计量和p值。由p值分别为0.042和0.018,当p值小于0.05时,认为差异显著,即第一列数的均值不等于1,第二列数的均值不等于2。


不拒绝原假设——均值等于5

stats.ttest_1samp(rvs, 5.0)

Ttest_1sampResult(statistic=array([-0.68014479, -0.04323899]), pvalue=array([ 0.49961383, 0.96568674]))


拒绝原假设——均值不等于5

stats.ttest_1samp(rvs, 0.0)

Ttest_1sampResult(statistic=array([ 2.77025808, 4.11038784]), pvalue=array([ 0.00789095, 0.00014999]))


第一列数均值等于5,第二列数均值不等于0

stats.ttest_1samp(rvs,[5.0,0.0])

Ttest_1sampResult(statistic=array([-0.68014479, 4.11038784]), pvalue=array([ 4.99613833e-01, 1.49986458e-04]))


第一行数均值等于5,第二行数均值不等于0

#axis=0按列运算,axis=1按行运算
stats.ttest_1samp(rvs.T,[5.0,0.0],axis=1) 

Ttest_1sampResult(statistic=array([-0.68014479, 4.11038784]), pvalue=array([ 4.99613833e-01, 1.49986458e-04]))


将两列数据均值分别与5.0和0.0比较,得到4个t统计量和p值

stats.ttest_1samp(rvs,[[5.0],[0.0]])

Ttest_1sampResult(statistic=array([[-0.68014479, -0.04323899],
[ 2.77025808, 4.11038784]]), pvalue=array([[ 4.99613833e-01, 9.65686743e-01],
[ 7.89094663e-03, 1.49986458e-04]]))

两独立样本t检验-ttest_ind

ttest_ind官方文档
生成数据

np.random.seed(12345678)
#loc:平均值  scale:方差
rvs1 = stats.norm.rvs(loc=5,scale=10,size=500)  
rvs2 = stats.norm.rvs(loc=5,scale=10,size=500)

当两总体方差相等时,即具有“方差齐性”,可以直接检验
不拒绝原假设——两总体均值相等

stats.ttest_ind(rvs1,rvs2)

Ttest_indResult(statistic=0.26833823296238857, pvalue=0.78849443369565098)


当不确定两总体方差是否相等时,应先利用levene检验,检验两总体是否具有方差齐性。

stats.levene(rvs1, rvs2)

LeveneResult(statistic=1.0117186648494396, pvalue=0.31473525853990908)

p值远大于0.05,认为两总体具有方差齐性。

如果两总体不具有方差齐性,需要将equal_val参数设定为“False”。


需注意的情况:

如果两总体具有方差齐性,错将equal_var设为False,p值变大

stats.ttest_ind(rvs1,rvs2, equal_var = False)

Ttest_indResult(statistic=0.26833823296238857, pvalue=0.78849452749501059)


两总体方差不等时,若没有将equal_var参数设定为False,则函数会默认equal_var为True,这样会低估p值

rvs3 = stats.norm.rvs(loc=5, scale=20, size=500)
stats.ttest_ind(rvs1, rvs3, equal_var = False)

正确的p值
Ttest_indResult(statistic=-0.46580283298287956, pvalue=0.64149646246568737)


stats.ttest_ind(rvs1, rvs3)

被低估的p值
Ttest_indResult(statistic=-0.46580283298287956, pvalue=0.64145827413435608)


当两样本数量不等时,equal_val的变化会导致t统计量变化
rvs1:来自总体——均值5,方差10,样本数500
rvs2:来自总体——均值5,方差20,样本数100
两总体不具有方差齐性,应设定equal_var=False

rvs4 = stats.norm.rvs(loc=5, scale=20, size=100)
stats.ttest_ind(rvs1, rvs4)

错误的t统计量
Ttest_indResult(statistic=-0.99882539442782847, pvalue=0.31828327091038783)


stats.ttest_ind(rvs1, rvs4, equal_var = False)

正确的t统计量
Ttest_indResult(statistic=-0.69712570584654354, pvalue=0.48716927725401871)


不同均值,不同方差,不同样本量的t检验
错误的检验:未将equal_var设定为False

rvs5 = stats.norm.rvs(loc=8, scale=20, size=100)
stats.ttest_ind(rvs1, rvs5)

Ttest_indResult(statistic=-1.4679669854490669, pvalue=0.14263895620529113)


正确的检验:

stats.ttest_ind(rvs1, rvs5, equal_var = False)

Ttest_indResult(statistic=-0.94365973617133081, pvalue=0.34744170334794089)


配对样本t检验

ttest_rel官方文档

np.random.seed(12345678)

不拒绝原假设,认为rvs1 与 rvs2 所代表的总体均值相等

rvs1 = stats.norm.rvs(loc=5,scale=10,size=500)
rvs2 = (stats.norm.rvs(loc=5,scale=10,size=500) + stats.norm.rvs(scale=0.2,size=500))
stats.ttest_rel(rvs1,rvs2)

Ttest_relResult(statistic=0.24101764965300979, pvalue=0.80964043445811551)


拒绝原假设,认为rvs1 与 rvs3所代表的总体均值不相等

rvs3 = (stats.norm.rvs(loc=8,scale=10,size=500) + stats.norm.rvs(scale=0.2,size=500))
stats.ttest_rel(rvs1,rvs3)

Ttest_relResult(statistic=-3.9995108708727924, pvalue=7.3082402191661285e-05)


--结束END--

本文标题: 利用python进行T检验

本文链接: https://www.lsjlt.com/news/185064.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 利用python进行T检验
    引入所需的包 from scipy import stats import numpy as np 注:ttest_1samp, ttest_ind, ttest_rel均进行双侧检验 H0:μ=μ0H_0: μ=μ_0 H1...
    99+
    2023-01-31
    python
  • python T检验
    T检验通常分为三种:单样本T检验、双样本T检验、配对样本T检验原理可以参考:一文详解t检验本文主要介绍使用python实现T检验的过程,内容主要是参考这篇博文:利用python库stats进行t检验 ...
    99+
    2023-08-31
    python numpy 数据分析
  • python中的T检验是什么
    这篇文章主要介绍“python中的T检验是什么”,在日常操作中,相信很多人在python中的T检验是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python中的T检验是什么”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-20
  • 利用Python对哥德巴赫猜想进行检验和推理
    目录一、前言二、猜想简介三、偶数猜想1.是否符合哥德巴赫猜想2.输入偶数,输出两个质数四、奇数猜想1.检测是否符合2.给出一数返回三数一、前言 写一篇优质一点的文章吧。 数学是一个奇...
    99+
    2022-12-08
    Python哥德巴赫猜想检验 Python哥德巴赫猜想推理 Python哥德巴赫猜想
  • 【python统计分析】stats.ttest_ind 独立样本T检验
    用法 ttest_ind 官方文档 当两总体方差相等时,即具有方差齐性,可以直接检验。 stats.ttest_ind(data1,data2) 当不确定两总体方差是否相等时,应先利用levene检验...
    99+
    2023-09-14
    python 开发语言 numpy
  • 怎么使用MATLAB进行假设检验
    在MATLAB中,可以使用ttest函数来进行假设检验。ttest函数用于计算两个样本的t检验,其中包括单样本t检验和双样本t检验。...
    99+
    2023-09-26
    MATLAB
  • 相关分析——皮尔逊相关系数、t显著性检验及Python实现
    一、相关分析 (1)衡量事物之间或称变量之间线性相关程度的强弱,并用适当的统计指标表示出来的过程。 (2)比如家庭收入和支出、一个人所受教育程度与其收入、子女身高和父母身高的相关性。 二、相关系数 (1)衡量变量之间相关程度的一个量值。 (...
    99+
    2023-09-25
    python 数据分析
  • django 利用pillow 进行简单的设置验证码功能(python)
    1.导入模块 并定义一个验证状态 from PIL import Image, ImageDraw, ImageFont from django.utils.six import BytesIO def verify...
    99+
    2022-06-04
    django pillow python django 验证码
  • 如何在Android中利用 GestureDetector进行手势检测
    今天就跟大家聊聊有关如何在Android中利用 GestureDetector进行手势检测,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、概述当用户触摸屏幕的时候,会产生许多手势,...
    99+
    2023-05-31
    android gesturedetector detect
  • 如何利用Myisamchk对MySQL数据表进行体检
    本篇内容介绍了“如何利用Myisamchk对MySQL数据表进行体检”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2022-10-18
  • three.js如何利用射线Raycaster进行碰撞检测
    这篇文章主要为大家展示了“three.js如何利用射线Raycaster进行碰撞检测”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“three.js如何利用射线R...
    99+
    2022-10-19
  • 利用OpenAI ChatGPT进行编码尝试体验
    ChatGPT 是一种以类似聊天的方式进行交互的人工智能网络,从名字上看起来像是另一个“聊天机器人”,但实际上已经远超聊天的范畴了,当要求它编写一些代码时,结...
    99+
    2022-12-14
    openai chatgpt chatgpt编码
  • python 利用pexpect进行多机
    在安装之前,确认你的机器安装了python,和easy_install.通常python是自动安装的,如果没有安装easy_install,那么wget -q http://peak.telecommunity.com/dist/ez_se...
    99+
    2023-01-31
    多机 python pexpect
  • 利用Python进行XML转CSV
    #!/usr/bin/python#XMLtoCSV.py#encoding:utf-8import csv, osfrom xml.dom.minidom import parsedef createCSVFile(filePrefix)...
    99+
    2023-01-31
    Python XML CSV
  • 利用Python进行CSV转XML
    #!/usr/bin/python #CSVtoXML.py #encoding:utf-8 import csv, os from xml.dom.minidom import Document #prfixFile = "crea...
    99+
    2023-01-31
    Python CSV XML
  • 详解使用Python+Pycaret进行异常检测
    目录概述介绍为什么是PyCaret学习目标PyCaret安装数据导入探索性异常检测分析Swarm图箱形图散点图异常检测模型创建隔离森林局部异常因子K最近邻比较模型中的异常解释和可视化...
    99+
    2022-11-13
  • 怎么在Spring boot中利用validation进行校验
    这篇文章主要为大家详细介绍了怎么在Spring boot中利用validation进行校验,文中示例代码介绍的非常详细,具有一定的参考价值,发现的小伙伴们可以参考一下:前言接触springboot一年多,是时候摆脱这种校验方式了233 ,每...
    99+
    2023-06-06
  • 利用yolov5进行目标检测,并将检测到的目标裁剪出来
    利用yolov5进行目标检测,并将检测到的目标裁剪出来 写在前面:关于yolov5的调试运行在这里不做过多赘述,有关yolov5的调试运行请看:https://www.bilibili.com/vid...
    99+
    2023-09-29
    目标检测 python 人工智能
  • 利用python进行数据加载
    前言 最近参加了datawhale的组队学习活动,在组队学习动员下,开始通过强迫自己输出来实现更好的输入与处理,6-15开始自己的第一次文章发布,我会把自己这个真的很小白遇到的问题写...
    99+
    2022-11-12
  • 使用mypy对python程序进行静态检查
    目录前言1、安装2、执行3、常用的内置类型4、配置文件最后的话前言 在此之前,我认为 Python 的类型提示就是一个花瓶,看起来好看,但并没有实质的作用,因为即使类型写错了,或者传...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作