目录

一、为什么要使用假设性检验?

二、假设检验基础原理与使用条件

三、怎么使用?

3.1 假设检验的步骤

1、H0(零假设)和H1(备择假设)

2、计算P值

3、确认显著性水平

3.2 常见的统计量

四、假设检验中存在的两类错误&需要注意的问题

3.1 假设检验中的两类错误

3.2 假设检验中需要注意的问题

六、案例(t检验)

6.1 单样本t检验

6.1.1 scipy 方法实现

6.1.2 statsmodels 方法实现

6.2 两样本t检验

6.2.1 scipy 方法实现

6.2.2 statsmodels 方法实现

6.3 配对t检验


一、为什么要使用假设性检验?

假设检验是一个工具,能够穿越复杂的现象,得到一个靠谱的结论。

比如去医院检查身体,医生会先假设这个人没有病,然后通过一系列检查,看看能不能找到患者的症状。

二、假设检验基础原理与使用条件

1、概率分布是假设检验的基础:对于很多复杂的随机事件,需要把随机事件的概率分布图拿出来,并根据在图中位置确定P值的大小。只有这样,才能和显著性水平比较,才能判断H0能不能被推翻。假设检验是基于概率的反证法,而要用概率的反证法,就要用到概率分布。

2、假设检验的原理:是如果能够证明一个结论发生的概率特别小,我们就可以推翻这个结论,接受和它相反的结论,这个推论的过程就叫“假设检验”。

3、适用条件:

1)独立性:各观察值间相互独立,不能相互影响

2)正态性:理论上要求样本取自正态总体

3)方差齐性:两样本所对应的总体方差相等

三、怎么使用?

3.1 假设检验的步骤

1、H0(零假设)和H1(备择假设)

这是一对假设,只要互相对立就行,一般情况H0是会被拒绝的假设。

2、计算P值

就是在H0这个假设下,当前现象以及更加极端现象出现的概率。如果P值特别大,我们就不能推翻H0这个假设,更不能去相信H1;而如果P值特别小,就可以认为H0几乎不可能发生,转而去相信H1。

p值得计算中,有单侧和双侧两种

双侧检验:不知道样本所在总体和假定总体的相应指标谁高谁低。得到拒绝结论更困难,因此相应的结果也更稳妥。

单侧检验:在专业上可知所在总体的相应指标不可能更高/更低于假定总体值。

3、确认显著性水平

就是是否推翻H0的边界,一般使用5%,即只要P值小于5%,就推翻H0,相信H1;如果P值大于5%,就没有办法推翻H0。

3.2 常见的统计量

1、z统计量:

2、t 统计量

3、卡方统计量

4、F统计量

四、假设检验中存在的两类错误&需要注意的问题

3.1 假设检验中的两类错误

第一类错误:指在原假设成立的情况下错误低拒绝了原假设;

第二类错误:和第一类错误相反,指没有成功拒绝不成立的原假设。

在假设检验中,如何平衡两类错误。在假设检验的过程中,通常会预先设定犯第一类错误的上限,也就是定义显著性水平 ,1- 被称为置信度 一般设定为5%。在显著性水平固定的情况下,认为设定,需要减少第二类错误发生的概率,1- 对应与规避第二类错误的概率,用power表示,也称为检验效能,power 的大小可以通过增加样本量来提高,通常需要power达到80%或者更好的水平。

3.2 假设检验中需要注意的问题

1、忽略小概率事件,假设检验要用个别推导全部,就一定会忽略一些极端的小概率情况,但是小概率事件,不代表一定不会发生。

2、系统性偏差。因为P值可以影响我们最终的结论,而选择不同的样本就会得到不同的P值。只要不断改变样本,就能不断改变P值,最终总能找到一个非常小的P值,也就能推翻原假设,得到一个自己想要的结论。【例子:著名的邮件骗局】

3、显著性水平设置不好会导致错误。显著性水平是约定俗称的,不同的领域,需要选择不同的标准。

4、用错分布导致错误结论。

六、案例(t检验)

6.1 单样本t检验

实例:ccss项目基期的信心数据被设定为100,但这是全部城市的平均水平,请考察基期时广州信心指数均值是否和基准值有差异。

可以使用的方式:scipy、statsmodels 。

6.1.1 scipy 方法实现

import pandas as pd
ccss = pd.read_excel("CCSS_sample.xlsx", sheet_name = 'CCSS')

数据样式:

使用scipy.stat包可以实现各种常见的检验方法,但并未配备详细选项,例如不能指定检验的单双侧。

#scipy 中相关参数
scipy.stats.ttest_1samp(a:类list格式的样本数值popmean:H0所对应的总体均数
)
ccss.query("s0 == '广州' & time == '2022704'") #数据查询
ccss.query("s0 == '广州' & time == '2022704'").index1.describe #数据描述
ccss.query("s0 == '广州' & time == '2022704'").index1.hist #数据直方图

直方图用于展示数据的形态,以上图形大致符合正态分布。

# t检验from scipy import stats as ss #导入对应的包
ss.ttest_1samp(ccss.query("s0 == '广州' & time == '200704'").index1, 100) #t检验
#输出结果 Ttest_1sampResult(statistic=-1.3625667518512996, pvalue=0.17611075148299993)
#statistic:统计量值,pvalue:p值 

6.1.2 statsmodels 方法实现

该方法中数据为DescrStatsW,DescrStatsW类中的confint_mean可以计算可信区间,ttest_mean则可直接实现单样本t检验。

# statsmodels中tconfint_mean相关参数#计算均值的可信区间
DescrStatsW.tconfint_mean(alpha = 0.05 #显著性水平alternative = 'two-sided' #选择是双侧检验还是还是单侧检验
)#进行单样本t检验
DescrStatsW.ttest_mean(value = 0 #H0所对应的总体均数alternative = 'two-sided' | 'larger' | 'smaller'
)
# 使用得第二种方法 statsmodels 这种方法可以计算可信区间,也可以实现单样本的t检验from statsmodels.stats import weightstats as ws test_samp_data = ccss.query("s0 == '广州' & time == 200704").index1  #样本数据des = ws.DescrStatsW(test_samp_data) #使用该检验数据必须是DescrStatsW类
des.tconfint_mean() #计算可信区间,默认95% 对应的参数 alpha = 0.05 alternative = 'two-sided'
#输出结果 (93.03590418536487, 101.29354984884586)des.ttest_mean(100) #默认是双侧
#输出结果 (-1.3625667518512996, 0.17611075148299993, 99.0) 分别为t值、p值、自由度des.ttest_mean(100,'smaller') #单侧检验
#输出结果 (-1.3625667518512996, 0.08805537574149996, 99.0) t值和双侧检验相同,p值是双侧检验的一半

6.2 两样本t检验

案例:研究不同婚姻状况的信心指数均值可能存在差异。

两样本的t检验需要检验样本的方差齐性检验。

同样可以使用scipy和statsmodels两种方式 。

6.2.1 scipy 方法实现

#进行两样本t检验scipy.stats.ttest_ind(a,b:类数据格式的两组数值equal_var = true #两组方差是否齐同,方差不齐时给出welch's t检验结果nan_policy = propagate #缺失值的处理方式propagate #返回nanraise #是否抛出错误omit #忽略nan
)

方差齐性检验

#常用的方差齐性检验
scipy.stats.bartlett() #bartlett 方差齐性检验
scipy.stats.levene() #levene 方差齐性检验,该结果针对非正泰总体稳健,相对更加常用#案例中使用
ss.levene(ccss.index1[ccss.s7 == "未婚"],ccss.index1[ccss.s7 == '已婚'])
#输出结果 LeveneResult(statistic=0.6178737960192996, pvalue=0.43200314605212653)
# H0是两个样本具有一样的方差,p值大于0.05接受原假设    即两个样本方差齐

进行样本t检验

#进行样本t检验ss.ttest_ind(ccss.index1[ccss.s7 == "未婚"],ccss.index1[ccss.s7 == "已婚"])
#输出结果 Ttest_indResult(statistic=2.405261376009453, pvalue=0.016320721789339597)
#Ho两个样本均值一致不具有差异性  p值小于0.05拒绝原假设,即两个样本均值存在差异#如果在上面的方差检验中,方差不是齐性的,则需要在t检验中进行参数设置ss.ttest_ind(ccss.index1[ccss.s7 == '未婚'],ccss.index1[ccss.s7 == '已婚'],equal_var= False)

6.2.2 statsmodels 方法实现

statsmodels可以实现t检验的所有功能,但是无法完成方差齐性检验。

statsmodels.stats.weightstats.CompareMeans(d1, d2)
# d1, d2均为DescrStatsW对象,如果只有d1为DescrStatsW对象,也可以使用d1.get_compare(other)直接转换CompareMeans.ttest_ind(alternative = 'two-sided' : 'larger' | 'smaller'usevar='pooled' : 'pooled' or 'unequal',方差是否齐同value = 0 : H0假设所对应的均数差值
)#两样本的statsmodels实现
d1 = ws.DescrStatsW(ccss.index1[ccss.s7 == '未婚'])
d2 = ws.DescrStatsW(ccss.index[ccss.s7 == '已婚'])
comp = ws.CompareMeans(d1,d2)
comp.ttest_ind()
#输出结果 (-26.42469575169767, 3.1575849989673495e-120, 1131.0) 统计量 p值 自由度

6.3 配对t检验

案例:为保证数据质量,接受过ccss访问的受访家庭半年内不会在进行访问,单半年后会进行抽样回访。现通过回访采集了88个有效样本,希望比较这些样本的信心值是否发生变化。

进行配对p检验时需要使用相关分析进行相关性检验。

ccss_p = pd.read_excel("CCSS_sample.xlsx", sheet_name = 'CCSS_pair') #导入数据ccss_p.loc[:, ['index1', 'index1n']].describe()
ss.pearsonr(ccss_p.index1, ccss_p.index1n) #相关性检验
ss.ttest_1samp(ccss_p.index1 - ccss_p.index1n, 0) #检验

python 假设检验相关推荐

  1. python 假设检验 样本量太大_【Python】统计科学系列之最小样本量计算

    首页 专栏 python 文章详情 0 统计科学系列之最小样本量计算 张俊红发布于 35 分钟前 这一篇我们讲讲统计中的最小样本量计算.大家先想想为什么叫最小样本量,而不是最大或者直接叫样本量计算呢? ...

  2. python假设检验平均,利用python进行17种统计假设检验

    请点击阅读原文,在语雀中查看 https://www.yuque.com/alipayqgthu1irbf/sharkfin/enrzni 翻译自 https://machinelearningmas ...

  3. python 假设检验 区间估计_用 Python 实现常用的假设检验

    作者:求知鸟 来源:知乎 开门见山. 这篇文章,教大家用Python实现常用的假设检验!服从什么分布,就用什么区间估计方式,也就就用什么检验!比如:两个样本方差比服从F分布,区间估计就采用F分布计算临 ...

  4. python假设检验平均_Python|Excel|SPSS|R|Stata|Eviews统计数据假设检验T|F|卡方检验

    拍价即为成交价,不按数据量.任务量收费,价格透明,不用询价,节省时间 现在不说专业高效这些话,相信我的认真负责能够赢得您的认可 使用各种统计数据分析软件提供数据分析服务,包含数据整理.处理.清洗.挖掘 ...

  5. python假设检验--两个总体参数的检验(方差)

    方差检验 F=s12/σ22s22/σ22F = \frac{s^2_1 / \sigma^2_2}{s^2_2 / \sigma^2_2}F=s22​/σ22​s12​/σ22​​ 例: 尽管存在争 ...

  6. python 假设检验p值_Python P值

    p值是关于假设的强度. 我们基于一些统计模型建立假设,并使用p值比较模型的有效性. 获得p值的一种方法是使用T检验. 这是对零假设的双侧检验,即独立观察值'a'的样本的期望值(平均值)等于给定的总体均 ...

  7. 视频教程-Python数据分析(统计分析)视频教程-机器学习

    Python数据分析(统计分析)视频教程 计算机博士,专注于机器学习与计算机视觉领域,深度学习领域一线实战讲师.在图像识别领域有着丰富经验,实现过包括人脸识别,物体识别,关键点检测等多种应用的新算法. ...

  8. 人工智能-数学基础-假设检验

    目录 假设检验: 假设检验的应用: 显著性水平: 假设检验的步骤: 原假设与备择建设: 检验统计量: 检验中常说的小概率: P值: 左侧检验与右侧检验 检验结果: Z检验基本原理 统计量Z值的计算公式 ...

  9. Python数据分析(统计分析)视频教程-唐宇迪-专题视频课程

    Python数据分析(统计分析)视频教程-708人已学习 课程介绍         Python数据分析(统计分析)视频培训课程概述:Python统计分析系列课程以Python为核心工具,结合其工具包 ...

  10. 视频教程-人工智能-数学基础视频课程-机器学习

    人工智能-数学基础视频课程 计算机博士,专注于机器学习与计算机视觉领域,深度学习领域一线实战讲师.在图像识别领域有着丰富经验,实现过包括人脸识别,物体识别,关键点检测等多种应用的新算法. 参与多个国家 ...

最新文章

  1. python-15:装饰函数之一
  2. 学校机房项目交换机的配置:
  3. 五种常用的异常值检测方法(均方差、箱形图、DBScan 聚类、孤立森林、Robust Random Cut Forest)
  4. 大脚战场插件怎么关闭_PM工具栏插件:HonmToolBar
  5. 我的Latex中文报告模板
  6. 通过JAVA获取优酷、土豆、酷6、6间房、56视频
  7. 快速:通过画图了解Racket
  8. 目前云存储,主要面临哪些问题?
  9. Echarts图的图例为自定义图片
  10. docker实践(2)常用命令和DockerFile详解
  11. 2019年5大企业网盘对比
  12. 初学Linux RHEL时遇到的系列问题和解决方案
  13. Web3融入现实就是去中心化Boss直聘
  14. Java应用_模拟微信抢红包
  15. 基于 CNN的年龄和性别检测
  16. Flutter 增强版的页面悬浮按钮(FloatingActionButton)
  17. vs2019键盘钩子_键盘钩子WH_KEYBOARD和WH_KEYBOARD_LL
  18. 用递归算法实现 输出一个整数的逆序(倒序输出)C语言
  19. pdf 转 word 软件
  20. 小冬冬历险记_神经网络背后的神经元理论历险记

热门文章

  1. awesome-python(python集合框架)
  2. Godot Shader特效:用SCREE_TEXTURE实现简单的屏幕滤镜
  3. Scala二十四点游戏
  4. 修路【NOIP2016提高组模拟】
  5. 安卓Glide加载图片
  6. hibernate4中HHH000273的错误
  7. 小程序页面收录 sitemap
  8. markdown编辑器Typora的使用方法(保姆级教程)
  9. 引擎开发-图形渲染器开发
  10. 2021牛客多校10F Train Wreck (贪心,思维题)