python怎么实现检验_常用统计检验的Python实现

2023-10-29

前言

今天给大家整理了一些使用python进行常用统计检验的命令与说明,请注意,本文仅介绍如何使用python进行不同的统计检验,对于文中涉及的假设检验、统计量、p值、非参数检验、iid等统计学相关的专业名词以及检验背后的统计学意义不做讲解,因此读者应该具有一定统计学基础。

正态性检验

正态性检验是检验数据是否符合正态分布,也是很多统计建模的必要步骤,在Python中实现正态性检验可以使用W检验(SHAPIRO-WILK TEST)

检验原假设:样本服从正态分布

Python命令 :stat, p = shapiro(data)

结果解释:当p值小于某个显著性水平α(如0.05)时,则认为样本不是来自正态分布的总体,否则承认样本来自正态分布的总体。

##########示例代码

from scipy.stats import shapiro

data = [0.86, 0.78, 0.83, 0.84, 0.77, 0.84, 0.81, 0.84, 0.81, 0.81, 0.80, 0.81,

0.79, 0.74, 0.82, 0.78, 0.82, 0.78, 0.81, 0.80, 0.81, 0.74, 0.87, 0.78]

stat, p = shapiro(data)

print("stat为:%f" %stat,"p值为:%f" %p)

#stat为:0.966175 p值为:0.574134

相关性检验:皮尔逊相关系数

皮尔逊相关系数(Pearson Correlation Coefficient)用于衡量两个变量之间的线性相关相关关系,相关系数的取值在-1与1之间,大于0为正相关,小于0为负相关。

基本假定:

每个样本中的观察是独立同分布的

每个样本的观察都是正态分布的

每个样本的观察具有相同的方差

所有变量都是连续型变量

检验原假设:两个变量不相关

Python命令:corr,p = pearsonr(x,y)

结果解释:当p值小于某个显著性水平α(比如0.05)时,则拒绝原假设,认为两个变量是相关的。否则认为是不相关的。

注意:这里的相关仅为统计学意义上的相关性,并不能理解为实际因果关系!!

#########示例代码

from scipy.stats import pearsonr

data1 = [23,20,18,29,43,35,32,40,29,26,24,26]

data2 = [1000,1000,500,500,500,100,100,100,100,100,100,100]

corr,p = pearsonr(data1,data2)

print("corr为:%f" %corr,"p值为:%f" %p)

#corr为:-0.392250 p值为:0.207253

相关性检验:斯皮尔曼相关系数

斯皮尔曼相关系数(SPEARMAN’S RANK CORRELATION)又称为斯皮尔曼等级相关系数。是一种非参数方法,衡量两个变量的依赖性的非参数指标。

基本假定:

每个样本中的观察是独立同分布的

每个样本的观察具有相同的方差

所有变量可以是连续型变量或可排序的分类变量

检验原假设:两个变量不相关

Python命令:corr,p =spearmanr(x,y)

结果解释:当p值小于某个显著性水平α(比如0.05)时,则则拒绝原假设,认为两个变量是相关的。否则认为是不相关的。

#######示例代码

from scipy.stats import spearmanr

data1 = [23,20,18,29,43,35,32,40,29,26,24,26]

data2 = [1000,1000,500,500,500,100,100,100,100,100,100,100]

corr, p= spearmanr(data1, data2)

print("corr为:%f" %corr,"p值为:%f" %p)

#corr为:-0.435153 p值为:0.157414

卡方检验

卡方检验是一种用途很广的计数资料的假设检验方法。它属于非参数检验的范畴,卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若两个值完全相等时,卡方值就为0,表明理论值完全符合。

注意:

卡方检验仅针对分类变量

用于计算列联表的观察是独立的。

列联表的每个单元格中有25个或更多个实例。

检验原假设:观察频数与期望频数无显著差异

Python命令:chi2_contingency(data)

结果解释:当p值小于某个显著性水平α(比如0.05)时,则拒绝原假设,认为两个样本有显著差异。

########示例代码

from scipy.stats import chi2_contingency

import numpy as np

kf_data = np.array([[20,21], [22,24]])

kf = chi2_contingency(kf_data)

print('chisq-statistic=%.4f, p-value=%.4f, df=%i expected_frep=%s'%kf)

chisq-statistic=0.0159, p-value=0.8997, df=1 expected_frep=[[19.79310345 21.20689655]

[22.20689655 23.79310345]]

T检验:单样本T检验

单样本t检验是样本均值与总体均值的比较问题。其中总体服从正态分布,从正态总体中抽样得到n个个体组成抽样样本,计算抽样样本均值和标准差,判断总体均值与抽样样本均值是否相同。

基本假定:

样本数据服从正态或近似正态分布

每个样本中的观察是独立同分布的

T检验属于参数检验,用于检验定量数据,若数据均为定类数据则应使用卡方检验

检验原假设:样本均值无差异(μ=μ0)

Python命令:.ttest_1samp(data,1)

结果解释:当p值小于某个显著性水平α(比如0.05)时,则认为样本均值存在显著差异,具体的分析要看所选择的是双边假设还是单边假设(又分小于和大于)注意ttest_1samp进行双侧检验。

#示例代码,检验样本均值与1是否有差异

from scipy import stats

data = [23,20,18,29,43,35,32,40,29,26,24,26]

stats.ttest_1samp(data,1)

#Ttest_1sampResult(statistic=-29.095366280269644, pvalue=1.2015599001111872e-19)

T检验:两样本T检验

两样本t检验是比较两个样本所代表的两个总体均值是否存在显著差异。除了要求样本来自正态分布,还要求两个样本的总体方差相等也就是“方差齐性”。

检验原假设:样本均值无差异(μ=μ0)

Python命令:stats.ttest_ind(data1,data2)

当不确定两总体方差是否相等时,应先利用levene检验检验两总体是否具有方差齐性stats.levene(data1,data2)如果返回结果的p值远大于0.05,那么我们认为两总体具有方差齐性。如果两总体不具有方差齐性,需要加上参数equal_val并设定为False,如下。

stats.ttest_ind(data1,data2,equal_var=False)

结果解释:当p值小于某个显著性水平α(比如0.05)时,则认为样本均值存在显著差异,具体的分析要看所选择的是双边假设还是单边假设(又分小于和大于)注意stats.ttest_ind进行双侧检验。

#示例代码,检验两组样本均值是否相等

from scipy import stats

data1 = [23,20,18,29,43,35,32,40,29,26,24,26]

data2 = [1000,1000,500,500,500,100,100,100,100,100,100,100]

stats.ttest_ind(data1,data2)

#Ttest_indResult(statistic=-3.1758496679296524, pvalue=0.004373771039397662)

T检验:配对T检验

配对样本均数T检验简称配对T检验(paired t test), 又称非独立两样本均数t检验,适用于配对设计计量资料均数的比较,其比较目的是检验两相关样本均数所代表的未知总体均数是否有差别。与独立样本T检验相比,配对样本T检验要求样本是配对的。两个样本的样本量要相同;样本先后的顺序是一一对应的。

基本假定:

每个样本中的观察是独立同分布的

每个样本的观察都是正态分布的

每个样本中的观察具有相同的方差

每个样本的观察结果是成对的

检验原假设:样本均值无差异(μ=μ0)

Python命令:stats.ttest_rel(data1,data2)

结果解释:当p值小于某个显著性水平α(比如0.05)时,则认为样本均值存在显著差异,具体的分析要看所选择的是双边假设还是单边假设(又分小于和大于)注意stats.ttest_rel进行双侧检验。

####示例代码,配对样本T检验

from scipy import stats

data1 = [23,20,18,29,43,35,32,40,29,26,24,26]

data2 = [1000,1000,500,500,500,100,100,100,100,100,100,100]

stats.ttest_rel(data1,data2)

#Ttest_relResult(statistic=-3.149034903041314, pvalue=0.009258094005021552)

“以上就是早起的统计工具箱第一期内容,有关如何使用Python进行方差分析以及一些非参数的检验实现方法我们下期再聊,记得在看哦~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python怎么实现检验_常用统计检验的Python实现 的相关文章

  • Rancher部署

    使用helm方式安装 https blog csdn net zhoumengshun article details 108160704 参考地址 https blog csdn net weixin 47752736 article d
  • 机器学习之数学基础

    机器学习之数学基础 机器学习所需的数学知识 微积分 线性代数 概率论 最优化方法 微积分知识 导数与求导公式 一阶导数与函数的单调性 一元函数极值判定法则 高阶导数 二阶导数与函数的凹凸性 一元函数泰勒展开 偏导数与梯度 高阶偏导数 雅克比
  • android项目迁移到androidX:类映射(content*,multidex*)

    android support content 支持库类 AndroidX 类 android support content ContentPager androidx contentpager content ContentPager
  • ajax传回的数据做表格,Datatables ajax返回的数据顺序与表格中的数据顺序不一致...

    项目中Datatables是采用Ajax作为数据源的 当ajax返回数据后 我查看ajax返回的数据发现 ajax返回的数据顺序与datatables表格中显示的数据顺序不一致 请问如何才能这两者显示一致呢 下面是ajax返回的数据 dat
  • linux 系统对信号的处理,linux内核线程对信号的处理过程(转)

    linux中的线程分为用户线程和内核线程 用户线程是标准的线程 完全的自主性 完全的抢占性 但是内核线程就不那么好了 某种意义上没有用户线程那么清闲 这个怎么理解呢 用户线程的编写者只需要实现应用逻辑就可以 至于调度 信号处理等工作完全有内
  • Gitee上传代码保姆级教程(亲测有效)

    作为一名程序猿or程序媛 怎么能不会使用Gitee上传代码 协同开发呢 今天 一个小白保姆级Gitee上传代码教程他来啦 亲测有效 小伙伴们来trytry吧 前提 1 已经下载过Git Bash 如果还没有下载过 请移步至其他博主的博客下载
  • 嗯嗯

    编写一个程序 可以一直接收键盘字符 如果是小写字符就输出对应的大写字符 如果接收的是大写字符 就输出对应的小写字符 如果是数字不输出 由于键盘每一个符号在c语言中是使用asscii码实现 可以使用范围来判断具体键盘输入的内容 include
  • 【Liunx】Navicat连接ubuntu下mysql

    一 首先准备好 ubuntu虚拟机一台 xftp7 mysql5 7离线包 Navicat软件 二 启动ubuntu虚拟机在主目录下创建mysql文件夹 查询虚拟机ip地址 使用xftp7连接虚拟机上传mysql5 7安装包 创建mysql
  • 基于Numpy构建RNN模块并进行实例应用(附代码)

    文章目录 一 写在前面 二 RNN原理介绍说明 1 RNN架构说明 2 RNN的数学模型及代码 正向传播 输入层 隐藏层 正向传播 隐藏层 输出层 反向传播 输出层 隐藏层 反向传播 隐藏层 输入层 三 RNN在实例中的应用 1 实例问题说
  • 【QT】图形化页面设计

    可视化的图形化界面共有三种设计方式 一种是通过可视化来设计界面的方式 一种是代码化的设计方式 最后是混合上面两种的混合界面设计方式 目前我们只考虑通过Designer和代码来设计图形化页面的两种方式 目录 可视化图形界面设计 图形页面设计
  • 算法小白的自我总结

    2018年10月26号 觉得该把这段时间做一下总结了 大概包括心理变化方面 找工作方面吧 csdn为什么没有表情可以用 并且终于在上线新版之后变得没有那么多bug了 快捷键也能用了 界面看起来还可以 为什么把标志性的红色不见了 红色变成了蓝
  • 使用jquery对输入框内容设置自动校验,只允许数字的输入

    目的 对input输入框的内容进行校验 js的方法 keyup 对键盘的进行监控的事件 正则表达式 d g 原理 就是在输入框添加一个 触发事件 对输入框的内容进行判断 过程遇到问题 js和jquery获取值的方法 value是js获取值的
  • 2021-04-28 Mac上插入公式的三种方法

    文章目录 在线方案 自带的Pages更好用 KLatexformular 在线方案 很多网站可以在线编辑 然后下载图片 给一个我用的链接 https latex codecogs com legacy eqneditor editor ph
  • 整型数据在内存中的存储方式大解密

    提示 先赞后看 养成习惯 文章目录 前言 一 原码 反码 补码 二 体验 存 数据的过程 小小的总结一下 三 体验 取 数据的过程 什么是大小端 如何验证一个机器是大端还是小端的存储模式呢 为什么会有大小端之分呢 取 数据 整型数据范围 前
  • 时序预测

    时序预测 Matlab实现SO CNN GRU蛇群算法优化卷积门控循环单元时间序列预测 目录 时序预测 Matlab实现SO CNN GRU蛇群算法优化卷积门控循环单元时间序列预测 预测效果 基本介绍 程序设计 参考资料 预测效果 基本介绍
  • 获取application.yml文件中配置参数的两个方法

    application yml文件内容 第一种 适用于获取少量配置参数 Value man name private String name 第二种 适用于获取大批量配置参数 第一步 整合pom xml文件
  • 操作系统的调度基础

    操作系统的cpu调度 把内核线程当成内核中的一个进程去理解 任务系统的三个核心特征是 权限分级 数据隔离和任务切换 以X86 64架构为例 权限分级通过CPU的多模式机制和分段机制实现 数据隔离通过分页机制实现 任务切换通过中断机制和任务机
  • Java类与接口、类与类之间的六种关系及UML表示

    转自点击打开链接 一 继承关系 继承指的是一个类 称为子类 子接口 继承另外的一个类 父类 父接口 的功能 并可以增加它自己的新功能的能力 在java中继承关系通过关键字extends明确标识 在设计时一般没有争议性 在UML类图设计中 继
  • 10款炫酷的HTML5动画特效,附源码

    HTML5确实非常强大 很多时候我们可以利用HTML5中的新技术实现非常炫酷效果时 这些效果也非常消耗电脑的CPU 但是这些HTML5效果确实能给用户带来不一样的用户体验 今天我要跟大家分享一些HTML5实现的惊艳特效 希望你可以喜欢 1

随机推荐

  • Docker运行容器端口映射

    大致描述 我发现docker启动容器时 以redis为例 在已经启动了一个 p 6379 6379的redis1容器后 当我们开启第二个redis2容器时 右边的端口映射既可以写别的我们想要映射的端口 p 6380 6380 redis2
  • 如何初始化使用中断

    概念 中断向量 中断服务程序的入口地址 首地址 中断向量表 系统中RAM或ROM的一个区域 用于存储各种中断向量的首地址 其大小取决于CPU支持的中断类型和数量 中断优先级 多个中断源同时向CPU申请中断 为了能够有序地处理多个中断申请所以
  • 感悟2022年:玫琳凯公布今年上半年以来的奖项、里程碑和成就

    玫琳凯公司获得30个奖项 其中包括10个雇主奖 凭借卓越的商业表现 社会影响 倡导参与和可持续发展努力而获得认可 玫琳凯公司 Mary Kay Inc 正在感悟2022年的成就 今年上半年 这家标志性的全球创业公司进一步推进皮肤科学创新 继
  • RxODE 包的使用 (CPT tutorial paper part 1)

    本文基于tutorial paper Wang W Hallow KM James DA A Tutorial on RxODE Simulating Differential Equation Pharmacometric Models
  • MIPI-DSI 三种 Video Mode 理解

    D PHY的物理层支持HS High Speed 和LP Low Power 两种工作模式 HS模式 低压查分信号 功耗大 高速率 80M 1Gbps 信号幅值 100mv 300mv LP模式 单端信号 功耗小 速率低 lt 10Mbps
  • QTableWidget详细使用示例(里面有QMenu实现多级菜单的方法)

    目录 一 创建行表头 二 往表格里插入单元项 带图片和不带图片 三 禁止表格可编辑 四 按行或列或单个选择单元项 五 设置列宽 包括列表头的和行表头的 1 这个普通的行和列都可以设置固定宽高 2 还可以将行和列的大小设为与内容相匹配 3 不
  • 《信号与系统》解读 第1章 信号与系统概述-2:时域信号的分类--确定性信号、离散信号、周期信号、线性信号、基本信号与复合信号

    目录 1 确定性信号与随机信号 2 连续信号与离散信号 3 周期信号与非周期信号 4 线性信号与非线性信号 5 基本信号与复合信号 5 1 单位阶跃信号 基本的数字信号 5 2 单位斜变信号 基本的数字积分 5 3 自然指数信号 信号的自然
  • Python 数据分析实战案例:基于电商销售数据的 RFM 模型构建

    目录 1 背景 2 分析目标 3 数据准备 4 数据清洗 4 1 查看是否含有缺失值 4 2 查看是否有异常值 4 3 数据整理 5 具体目标分析 5 1 分析每年销售额的增长率 5 2 各个地区分店的销售额 5 3 销售淡旺季分析 5 4
  • redis过期策略

    我们使用redis的时候一般会设置过期时间 redis设置过期时间 expire 只针对顶级key有效 即哈希结构不支持过期 value为hash结构的时候 不能对hash中的某一部分进行过期设置 expire key time 以秒为单位
  • PCL 环境下安装配置CGAL 5.5

    目录 一 CGAL简介 二 Using CGAL on Windows with Visual C 1 CGAL下载 2 GMP和MPRF安装 3 boost安装与环境变量设置 三 PCL环境下配置CGAL 四 测试代码 五 结果展示 一
  • 【机器学习】贝叶斯分类器(算法原理实现及sklearn实现)

    系列文章目录 第一章 先验概率和后验概率的通俗解释 贝叶斯分类 第二章 贝叶斯公式证明及Bayesain在机器学习重要地位的理解 第三章 机器学习 贝叶斯分类器 文章目录 系列文章目录 前沿 一 贝叶斯决策论 二 极大似然估计 三 朴素贝叶
  • ddt的使用

    ddt一指data driver test 是一种测试思想 意指数据驱动 这里将的ddt是ddt库 配合unittest使用 假设我们有个登录功能需要设计测试用例 用例如下 1 正确的账号密码登录 2 错误的账号密码登录 3 账号为空登录
  • 模拟电路设计(18)---负阻型正弦波振荡器

    负阻型正弦波振荡器 具有负的微变电阻特性的电子器件称为负阻器件 在一个LC或者谐振腔振荡回路中 若以负阻器件与消耗能量的常规电阻相抵消 使得振荡回路无能量消耗 那么电路也能维持正常的振荡 在实际电路中 负阻器件肯定是有源器件 由这种形式构成
  • Swagger 常用注解

    ApiOperation描述接口的详细内容 ApiModel描述实体类的相关信息 Api用在Controller上面说明Controller的信息 ApiModelProperty用在参数上说明参数的详细信息 ApiImplicitPara
  • 美团滑块模拟登录

    本教程仅限于学术探讨 也没有专门针对某个网站而编写 禁止用于非法用途 商业活动 恶意滥用技术等 否则后果自负 观看则同意此约定 如有侵权 请告知删除 谢谢 aHR0cHM6Ly9wYXNzcG9ydC5tZWl0dWFuLmNvbS9hY2
  • Chapter 17. Network Drivers

    17 Network Drivers Linux Device Drivers 3rd Edition Book Chapter 17 Network Drivers Having discussed char and block driv
  • InnoDB行锁等待

    关键词 InnoDB 行锁 行锁等待 行锁等待超时 问题 数据库错误 Lock wait timeout exceeded try restarting transaction 什么是锁等待 Lock Wait 呢 当事务A对数据表进行DD
  • Javaweb实验:静态网页制作

    Javaweb实验 1 静态网页制作 目录 Javaweb实验 前言 一 实验目的 二 实验原理 三 实验内容 四 实验步骤 五 实验结果 六 实验内容 七 实验步骤 八 实验结果 九 思考 1 frameset和frame标签的作用是什么
  • OpenGL错误总结

    const char getGLErrorInfo int errorId switch errorId case GL INVALID ENUM return GL Invalid Enum n case GL INVALID VALUE
  • python怎么实现检验_常用统计检验的Python实现

    前言 今天给大家整理了一些使用python进行常用统计检验的命令与说明 请注意 本文仅介绍如何使用python进行不同的统计检验 对于文中涉及的假设检验 统计量 p值 非参数检验 iid等统计学相关的专业名词以及检验背后的统计学意义不做讲解