作者:数据科学家联盟

来源:J

目录

  • 0前言

  • 1 Z 检验

    • 1.单样本 Z 检验

    • 2.双样本 Z 检验

  • 2 T 检验

    • 1.单样本 T 检验

    • 2.双样本 T 检验

  • 3 比例检验

    • 1.单比例检验

    • 2.双比例检验

  • 4 总结

    • 1. Z 分布和 T 分布

    • 2. Z 检验和 T 检验的区别

0x00 前言

均值对比是数据分析中最重要的内容之一,应用广泛。

  • 对比试验前后病人的症状,证明某种药是否有效;

  • 对比某个班级两次语文成绩,验证是否有提高;

  • 对比某个产品在投放广告前后的销量,看广告是否有效。

这些都属于两均值对比的应用。

均值对比的假设检验方法主要有 Z 检验和 T 检验,它们的区别在于 Z 检验面向总体数据和大样本数据,而 T 检验适用于小规模抽样样本。下面分别介绍 Z 检验和 T 检验。

0x01 Z 检验

需要事先知道总体方差,另外,如果总体不服从正态分布,那么样本量要大于等于 30 ;如果总体服从正态分布,那么对样本量没有要求。

Z 检验用于比较样本和总体的均值是否不同或者两个样本的均值是否不同。检验统计量 z 值的分布服从正态分布。

1.单样本 Z 检验

使用单样本 Z 可以在知道总体的标准差时,估计总体的均值并将它与目标值或参考值进行比较。使用此分析,可以执行以下操作:确定总体均值是否不同于您指定的假设均值。计算可能包括总体均值的值范围。

例子:

  • 质量分析员使用单样本 Z 检验来确定螺栓的平均螺纹长度是否不同于目标值 39 毫米。如果均值不同于目标值,分析员将使用置信区间来确定差值有可能为多大以及差值是否有实际意义;

实现代码:

import statsmodels.stats.weightstats as sw
arr = [23,36,42,34,39,34,35,42,53,28,49,39,46,45,39,38,45,27,43,54,36,34,48,36,47,44,48,45,44,33,24,40,50,32,39,31
]
tstats, pvalue = sw.ztest(arr, value=39)
print(tstats, pvalue)
# 输出:0.3859224924939799 0.6995540720244979
# 假设置信度为 0.05 ,由于 p 值大于置信度,接受原假设。所以平均螺纹长度等于 39 。

2.双样本 Z 检验

在两个总体标准差(s1 和 s2)已知的情况下,检验基于独立样本的两个总体平均值(m1 和 m2)是否相等(或大于/小于)。

实现代码:

import statsmodels.stats.weightstats as sw
arr1 = [23,36,42,34,39,34,35,42,53,28,49,39,46,45,39,38,45,27,43,54,36,34,48,36,47,44,48,45,44,33,24,40,50,32,39,31
]
arr2 = [41,34,36,32,32,35,33,31,35,34,37,34,31,36,37,34,33,37,33,38,38,37,34,36,36,31,33,36,37,35,33,34,33,35,34,34,34,35,35,34
]
tstats, pvalue = sw.ztest(arr1, arr2, value=0, alternative='two-sided')
print(tstats, pvalue)
# 3.775645601380307 0.0001595937672736755
# 假设置信度为 0.05 ,由于 p 值小于置信度 0.05 ,拒绝原假设,接受备选假设。所以两个独立样本的总体均值相等。

0x02 T 检验

T 检验,亦称 student t 检验(Student's t test),主要用于样本含量较小(例如 n < 30),总体标准差 σ 未知的正态分布资料。T 检验是用 T 分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著。

事先不知道总体方差,另外,如果总体不服从正态分布,那么样本量要大于等于 30 ,如果总体服从正态分布,那么对样本量没有要求。

Z 检验虽然能够进行均值差异性检验,但是,它要求总体标准差已知或者样本容量足够大,这是很难做到甚至无法达成的。这时候t检验就粉墨登场了,只需从正态总体中抽取小规模的样本数据,并计算均值与标准差,用来代替正态总体的均值和标准差即可。

1.单样本 T 检验

单样本 T 检验确定样本均值是否与已知或假设的总体均值具有统计学差异。

例子:

  • 你有 10 个年龄,你正在检查平均年龄是否为 30 岁;

  • 已知一般婴儿出生体重 μ0 ,现有n个难产儿出生重量数量,检验难产儿与一般婴儿体重的总体均数是否相等(检验难产儿体重与一般婴儿体重有没有显著性差异);

  • 媒体报道某大学的学生平均学习时间是 2.5h ,为了证实这报道的数据是否正确,随机抽样 16 人,平均学习时间是 3.2h ,方差是 0.57 ,检验这所学校学生学习时长与媒体报道中的时长是否显著不同;

实现代码:

from scipy import stats
arr = [31, 35, 28, 29, 27, 34, 32, 33, 30, 26]
statistic, pvalue = stats.ttest_1samp(arr, 30)
print('statistic={}, pvalue={}'.format(statistic, pvalue))
# 输出:statistic=0.5222329678670935, pvalue=0.614117254808394
# 假设置信度为 0.05 ,由于 p 值大于置信度 0.05 ,接受原假设。所以 arr 的均值与 30 差异不显著。

2.双样本 T 检验

独立样本 T 检验或双样本 T 检验比较两个独立组的平均值,以确定是否有统计证据表明相关的人口均值存在显着差异。独立样本 T 检验是参数检验。该测试也称为:独立 T 检验。

1)独立均值 T 检验

例子:

  • 研究表达性写作对创伤事件的治愈效果(ABTest);

  • 用T检验比较下列男、女儿童身高的均值是否一样;

实现代码:

import statsmodels.stats.weightstats as st
arr1 = [8, 7, 9, 6, 8]
arr2 = [6, 7, 7, 6, 6]
# usevar='unequal'两个总体方差不一样
t, p, df = st.ttest_ind(arr1, arr2, alternative='two-sided', usevar='unequal')
print('t值={},p值={},自由度={}'.format(t, p, df))
# 输出:t值=2.1213203435596415,p值=0.08011884223003829,自由度=5.752808988764045
# 假设置信度为 0.05 ,由于 p 值大于置信度 0.05 ,接受原假设。所以 arr1 与 arr2 的均值没有差异。

2)非独立(配对样本)均值 T 检验

例子:

  • 检验运动前和运动后同一批人的体重是否有变化。

  • 检验 5 位丈夫结婚前后交流质量是否有变化。

实现代码:

from scipy import stats
arr1 = [8, 7, 9, 6, 8]
arr2 = [6, 7, 7, 6, 6]
statistic, pvalue = stats.ttest_rel(arr1, arr2)
print('statistic={}, pvalue={}'.format(statistic, pvalue))
# 输出:statistic=2.449489742783178, pvalue=0.07048399691021993
# 假设置信度为 0.05 ,由于 p 值大于置信度 0.05 ,接受原假设。所以 arr1 与 arr2 所代表的总体均值相等。

注:Z 分布与 T 分布,是两个分布,概率函数公式的存在差异,T 分布较 Z 分布多了一个自由度的变量,惩罚小样本,增加其拒绝 H0 的难度,因而小样本采用 T 检验,优于 Z 检验。

0x03 比例检验

1.单比例检验

计算未知成功比例 (prop) 的检验。它将样本 x 中的成功计数和样本 n 中的观察计数作为输入,比较样本(p0)和总体(prop)的比率是否相同,以此来检验样本和总体之间的差异性。

零假设:

  • H0: prop=p0

  • H0: prop<p0

  • H0: prop>p0

例子:

  • 汽车制造商声称不安全的汽车不超过 10% ,检查了 15 辆汽车的安全性,发现 3 辆不安全,通过假设检验判断不安全汽车的概率是否不超过 10% 。

实现代码:

# 显著性水平 α = 0.05 ,原假设 H0 :汽车不安全性小于 0.1 ;备择假设 H1 :汽车不安全性大于 0.1
from statsmodels.stats.proportion import proportions_ztest
stat, pval = proportions_ztest(3, 15, 0.1, alternative='larger')
print('{0:0.4f}'.format(pval))
# 输出:0.1664
# 由于p大于0.05,接受原假设。

2.双比例检验

计算检验以比较两个总体的成功比例(p1 和 p2)。它将每个样本中的成功计数(x1 和 x2)和每个样本中的观察计数(n1 和 n2)作为输入。

零假设:

  • H0: p1 = p2

  • H0: p1 < p2

  • H0: p1 > p2

例子:

  • 调查南方人还是北方人更喜欢吃甜豆花

实现代码:

from statsmodels.stats.proportion import proportions_ztest
# H0:假设南方人和北方人爱吃甜豆花的比例没有差异;H1:假设南方人和北方人爱吃甜豆花的比例有差异;
z_score, p_value = sp.proportions_ztest([81, 48], [180, 150], alternative='two-sided')
print('p_value={}'.format(p_value))
print(z_score, p_value)
# 输出:0.0160
# 由于 p 小于 0.05 ,接受备选假设,南方人与北方人在喜爱吃甜豆花的比例上有显著差别,南方人爱吃甜豆花比例更高。

0x0FF 总结

1. Z 分布和 T 分布

  • Z 分布,标准正态分布。

  • T 分布,正态分布,v为自由度,随着v增加,形态最终趋向标准正态分布。

T 分布较 Z 分布多了一个自由度的变量,惩罚小样本,增加其拒绝 H0 的难度,因而小样本采用 T 检验,优于 Z 检验。

2. Z 检验和 T 检验的区别

  • Z 检验用于大样本(n > 30),或总体方差已知;

  • T 检验用于小样本(n < 30),且总体方差未知时,适用性优于 Z 检验,而在大样本时,Z 检验和 T 检验的结论趋同。

下一篇文章,我们将介绍 F 检验和 卡方 检验的应用及代码实现。

◆ ◆ ◆  ◆ ◆

长按二维码关注我们


数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。

管理员二维码:

猜你喜欢

● 笑死人不偿命的知乎沙雕问题排行榜

● 用Python扒出B站那些“惊为天人”的阿婆主!

● 全球股市跳水大战,谁最坑爹!

● 华农兄弟、徐大Sao&李子柒?谁才是B站美食区的最强王者?

● 你相信逛B站也能学编程吗

数据分析系列:Z 检验和 T 检验的应用及代码实现相关推荐

  1. cif t t操作流程图_Danish:STATA 操作正态检验、卡方检验和T检验

    STATA 操作正态检验.卡方检验和T检验 图示和基本概念 Coef. :回归分析系数.在回归方程中表示自变量x 对因变量y 影响大小的参数.回归系数越大表示x 对y 影响越大. Std. Err.  ...

  2. 数据分析系列--常见的评估方法

    假设检验:t 检验.方差分析 假设检验: 又称统计假设检验,是用来判断样本与样本.样本与总体的差异是由抽样误差引起还是本质差别造成的统计推断方法.显著性检验是假设检验中最常用的一种方法,也是一种最基本 ...

  3. r语言 林元震_方差分析--T检验和F检验的异同

    方差分析--T检验和F检验的异同 最近在图书馆借了本<R和ASReml-R统计分析教程>,林元震和陈晓阳主编的关于R的书籍,当时看上这本书的原因在于里面以统计学知识为主,作为R语言实战的良 ...

  4. 【通俗向】方差分析--T检验和F检验的异同

    最近在图书馆借了本<R和ASReml-R统计分析教程>,林元震和陈晓阳主编的关于R的书籍,当时看上这本书的原因在于里面以统计学知识为主,作为R语言实战的良好补充,虽然R语言实战是一本相当详 ...

  5. T检验和F检验的由来

    1,T检验和F检验的由来 http://baike.baidu.com/link?url=e5JaLU5xO-44lEP42WkekMvPw4wuc6EIpd2EasBpCvxyl8YTQf60G_C ...

  6. 游程检验和随机性检验

    游程检验和随机性检验 1 游程检验的含义 2 应用1:两总体分布一致性检验 2.1 定义及解决的问题 2.2 原理 2.2.1 Step1:提出假设 2.2.2 Step2:计算检验统计量 2.2.3 ...

  7. R语言数据分析系列之七

    R语言数据分析系列之七 -- by comaple.zhang 回归分析建模是数据分析里面很重要的一个应用之一,即通过使用已有的自变量的值建立某种关系,来预测未知变量(因变量)的值.如果因变量是连续的 ...

  8. arcgis 快速制图插件_51GIS学院|ArcGIS空间数据分析系列课程的27个视频

    51GIS学院 课程背景 迎接科学分析与国土空间规划,迅速掌握ArcGIS基础操作并进阶实战,推出本次ArcGIS空间数据分析系列课程.系列课程一,为ArcGIS基础与制图,课程目标为掌握ArcGIS ...

  9. 数据分析系列精彩浓缩(二)

    数据分析系列精彩浓缩(二) 那么我们有了UCI提供的datasets,我们怎么Perfect operation呢? First,we download a data file to the loca ...

  10. 数据分析系列:绘制散点图(matplotlib)

    这是数据分析系列的开篇,这个系列中主要与matplotlib包打交道.进入正题今天我们学习使用matplotlib.pyplot绘制散点图,操作工具为Jupyter notebook,环境为Pytho ...

最新文章

  1. 疯狂捕鱼之路径解决方案的思考
  2. 加密解密php,2个比较经典的PHP加密解密函数分享
  3. How to hide index.php on nginx
  4. arcgis server发布地图服务中文标注不能显示
  5. Mysql查看和修改时区
  6. php yaf twig,yaf-example
  7. caffe 日志保存以及matlab绘制方法(windows以及ubuntu下)
  8. 2019 6.30学习笔记
  9. docker es持久化_docker如何保持数据持久化?其实可以考虑通过数据卷挂载的方式~...
  10. Lighttpd、Nginx 、Apache 隐藏响应头信息的Server信息和版本信息
  11. 从VC6到VC9移植代码问题总结
  12. android 安装界面关闭程序,Android安装apk文件,不弹出安装完成的界面
  13. 力扣刷题 DAY_68 回溯
  14. 解决警告Presenting view controllers on detached view controllers is discouraged 以及引申
  15. Java基础关于接口的案例及多态的引用类型转换练习题
  16. 股票分红信息 股票历次分红查询
  17. 【Python数据处理篇——DataFrame数据准备】DataFrame的创建、增删改查、数据导入等
  18. oracle plsql 绑定变量值,dbms_sqltune解析SQL的BIND_DATA绑定变量值
  19. c语言 宏do while,关于C语言宏定义 使用do{ xxxx }while()
  20. osm数据下载 python_批量下载osm的分区域的osm文件

热门文章

  1. Django中related_name作用
  2. 二层交换机与三层交换机区别
  3. Projector学习笔记
  4. 深入解析内存原理:DRAM的基本原理
  5. DRAM Devices Organization
  6. 宫颈癌风险的智能诊断
  7. 仿世纪佳缘登录注册页面
  8. JS 把 Wed Jul 15 2015 00:00:00 GMT+0800 转换成2015-07-15
  9. android自定义大转盘,Android使用surfaceView自定义抽奖大转盘
  10. 四川大学计算机学院管理手册,机房管理_规章制度_计算机基础教学实验中心 - Powered by 四川大学计算机基础教学实验中心...