假设检验

假设检验是推论统计学(inferential statistics)的一个分支,也就是对一个较小的、有代表性的数据组(例如样本集合)进行分析与评估,并依此推断出一个大型的数据组(例如人口)的一般性结论。一个典型的例子如:估算一个国家中居民的平均身高(在这个场景下,也就是人口)。在估算时,可能会在1000个人(也就是样本)中进行分析以及评估,然后对整个国家里的居民平均身高进行估算。

假设检验尝试解决的问题:一个特定的假设值是否与直接分析(或评估)获取的值处于一致。

一般来说,假设检验的步骤如下:

1. 定义null 与 alternative hypotheses

在第一步中,会定义一个null hypothesis(记为H0)。这里我们定义H0为:某国的人口平均身高为175cm。这个假设是需要之后通过统计测试进行测试的假设。Alternative hypothesis(记为Ha)由null hypothesis 的补全完整性声明组成,在这个例子中,alternative hypothesis Ha 为:平均身高不为175cm。null hypothesis 和 alternative hypothesis 永远都是相互补全的。

2. 确立合适的检验统计量

检验统计量是基于样本计算出的一个量。它的值是决定接收或是拒绝null hypothesis 的基准。在大部分情况下,它可以由下面的公式计算得出:

这里sample statistic(样本统计值)是在样本上计算得出的统计值(在这个例子中,就是1000个样本居民的平均身高);

value under null hypothesis(null hypothesis 下的值),假设 null hypothesis成立时的值(在这个例子中,也就是175cm);

standard error of sample statistic(样本统计值的标准差),是样本的标准误差。

一旦test statistic 确定并计算得出后,我们需要决定它遵循什么样的概率分布。在大部分情况下,会使用如下概率分布:

  1. t-分布(Student’s t-distribution),对应t-检验(t-test)
  2. 标准正态分布(Standard normal)或z-分布(z-distribution),对应z-检验(z-test)
  3. 卡方分布(Chi-squared distribution),对应卡方检验(chi-squared test)
  4. F-分布(F-distribution),对应F-检验(F-tests)

在选择使用哪个分布时,取决于样本的大小以及检验的类别。根据经验,如果样本大小超过30,我们预期“中心极限定理的假设成立“,所以检验统计(test statistic)遵循一个标准分布(所以使用z-检验)。对于更保守的办法,或是对于小于30个样本,应使用t-检验(检验统计遵循Student’s t-分布)

3. 指定显著性水平(significance level)

在检验统计量(test statistic)计算得出后,我们需要决定是否能拒绝null hypothesis。在执行时,我们首先指定一个显著性水平(significance level),也就是拒绝一个正确的null hypothesis 的概率。一般的方法是指定5% 的显著性水平。这个意思是:null hypothesis 为正确的,但是我们有5% 的概率拒绝它(对于更保险的方法,我们可以使用1% 或甚至0.5%)。一旦一个显著性水平被指定后,我们需要计算拒绝点(rejection points),他们是用于与检验统计量进行对比的值。如果检验统计量(test statistic)大于指定的拒绝点,则我们可以拒绝 null hypothesis 并假设 alternative hypothesis 为真。这里我们就可以将两者区分开来

4. 双侧检验(two-sided tests)

这是在null hypothesis 假设value“等同于“一个预定义的值的时候做的检验。举个例子,全国人民的平均身高等同于175cm。在这个例子中,如果我们指定一个显著性水平为5%,则我们会有两个临界值(一正一负),它们两条尾巴的总体概率相加为5%。在计算临界值时,我们需要找到一个正态分布的两个百分比值,这两个百分比值之间的概率等同于1减去显著性水平。举个例子,如果我们假定样本的身高均值服从一个正态分布,指定检验的显著性水平为5%,则我们需要找到两个百分比数,落入它们区间之外的值的概率等于0.05。由于它的概率由两条尾巴进行分割,所以这2个百分数就是2.5 和 97.5。对于一个正态分布来说,对应的值就是-1.96 和 1.96,这就是两个临界值。所以,如果以下为真,则我们不会拒绝null hypothesis:

如果上面的公式不为真,那也就是说,检验统计值(test statistic)大于1.96或是小于-1.96,则我们拒绝null hypothesis

5. 单侧检验(One-sided tests)

这是在null hypothesis 假定value “大于“或是”小于“一个预定义值的时候做的检验。例如,全国人民的平均身高高于175cm。在这个例子中,如果我们指定一个显著性水平为5%,则我们将仅有一个临界值,它的尾巴的概率等同于5%。在找这个临界值时,我们需要找到一个正态分布的一个百分数,对应的是尾部概率等于0.05 的值。对于”大于“类型的检验,临界值对应于5-分位数,或是-1.645(若是检验遵从一个正态分布);对于”小于“类型的检验,临界值对应为95-分位数,或是1.645。所以,若是以下为真,则我们会拒绝null hypothesis(”大于“检验的情况):

反之,对于“小于“检验的类型,若是以下公式为真,则我们拒绝null hypothesis:

需要注意的是,通常情况下,相对于计算一个特定显著性水平的临界值,我们会使用检验的 p 值(p-value)。p值是在null hypothesis可以被拒绝时的最小显著性水平。p 值也提供了,在null hypothesis 为真的情况下,获取观测到的样本统计量的概率。如果获取的 p 值小于一个指定的显著性水平,则我们可以拒绝null hypothesis。所以p值的方法,在实际使用中,是另一个(大多数情况下也是更方便的一个)执行假设检验的方法。

下一章我们会使用 Python 来演示一个实际执行假设检验的例子。

Bike Sharing Analysis(二)- 假设检验方法的更多相关文章

  1. Kaggle Bike Sharing Demand Prediction – How I got in top 5 percentile of participants?

    Kaggle Bike Sharing Demand Prediction – How I got in top 5 percentile of participants? Introduction ...

  2. PGM学习之二 PGM模型的分类与简介

    废话:和上一次的文章确实隔了太久,希望趁暑期打酱油的时间,将之前学习的东西深入理解一下,同时尝试用Python写相关的机器学习代码. 一 PGM模型的分类 通过上一篇文章的介绍,相信大家对PGM的定义 ...

  3. linux杂记(十二?) 关于账号和密码的二三事

    关于密码的二三事 关于账号和密码的二三事 久了不更linux的相关知识,实在是懒得想内容点(纯粹是懒).那么今天就来谈谈关于linux密码和账号的重要概念. 假如你的主机遭到入侵,那么对方的第一个侵入 ...

  4. 《MySQL面试小抄》索引考点二面总结

    <MySQL面试小抄>索引考点二面总结 我是肥哥,一名不专业的面试官! 我是囧囧,一名积极找工作的小菜鸟! 囧囧表示:小白面试最怕的就是面试官问的知识点太笼统,自己无法快速定位到关键问题点 ...

  5. T检验与F检验的区别_f检验和t检验的关系

    1,T检验和F检验的由来 一般而言,为了确定从样本(sample)统计结果推论至总体时所犯错的概率,我们会利用统计学家所开发的一些统计方法,进行统计检定. 通过把所得到的统计检定值,与统计学家建立了一 ...

  6. 通俗理解T检验和F检验

    来源: http://blog.sina.com.cn/s/blog_4ee13c2c01016div.html   1,T检验和F检验的由来 一般而言,为了确定从样本(sample)统计结果推论至总 ...

  7. 通俗理解T检验与F检验的区别【转】

    转自:http://blog.sina.com.cn/s/blog_4ee13c2c01016div.html1,T检验和F检验的由来一般而言,为了确定从样本(sample)统计结果推论至总体时所犯错 ...

  8. 统计学常用概念:T检验、F检验、卡方检验、P值、自由度

    1,T检验和F检验的由来 一般而言,为了确定从样本(sample)统计结果推论至总体时所犯错的概率,我们会利用统计学家所开发的一些统计方法,进行统计检定. 通过把所得到的统计检定值,与统计学家建立了一 ...

  9. SparkMLlib学习之线性回归

    SparkMLlib学习之线性回归 (一)回归的概念 1,回归与分类的区别 分类模型处理表示类别的离散变量,而回归模型则处理可以取任意实数的目标变量.但是二者基本的原则类似,都是通过确定一个模型,将输 ...

  10. python数据统计分析

    1. 常用函数库   scipy包中的stats模块和statsmodels包是python常用的数据分析工具,scipy.stats以前有一个models子模块,后来被移除了.这个模块被重写并成为了 ...

随机推荐

  1. LVGL 日志

    一.启动日志 在 lv_conf.h 中将 LV_USE_LOG 设置为 1,如下图所示: 二.日志级别 在文件 lvgl/src/misc/lv_log.h 中定义了日志等级,等级是从小到大,所以 ...

  2. C#的基于.net framework的Dll模块编程(四) - 编程手把手系列文章

    这次继续这个系列的介绍: 一.命名空间的起名: 对于C#来说,一般命名空间的建议是:公司名(或个人名称).产品名.分类名,比如我这边是用的这个:Lzhdim.LPF.Helper,意思是个人名Lzhd ...

  3. C/C++如何写调试宏

    1. 调试宏以及测试 在写代码时,不可避免需要打印提示.警告.错误等信息,且要灵活控制打印信息的级别.另外,还有可能需要使用宏来控制代码段(主要是调试代码段)是否执行.为此,本文提供一种调试宏定义方案 ...

  4. 《Effective C++》第三版-4. 设计与声明(Design and Declarations)

    目录 条款17:让接口容易被正确使用,不易被误用(Make interfaces easy to use correctly and hard to use incorrectly) 限制类型和值 规 ...

  5. linux文本三剑客之grep及正则表达式详解

    linux文本三剑客之grep及正则表达式详解 目录 linux文本三剑客之grep及正则表达式详解 1. grep命令详解 2. 正则表达式 2.1 基本正则表达式 2.2 扩展正则表达式 1. g ...

  6. JavaScript面向对象的继承应用

    面向对象语言的三大特征:继承.封装.多态 <!DOCTYPE html> <html> <head> <title>Extend-OPP</tit ...

  7. 【漏洞分析】HPAY 攻击事件分析

    背景 造成本次攻击的原因是关键函数的鉴权不当,使得任意用户可以设置关键的变量值,从而导致攻击的发生. 被攻击合约:https://www.bscscan.com/address/0xe9bc03ef0 ...

  8. leaflet 根据一个经纬度及距离角度,算出另外一个经纬度

    /** * 根据一个经纬度及距离角度,算出另外一个经纬度 * @param {*} lng 经度 113.3960698 * @param {*} lat 纬度 22.941386 * @param ...

  9. centos7 hpc高性能计算集群配置(无密码访问、nfs文件共享)

    0.检查硬件的超线程 由于模型运行时,每个进程几乎都会占用100%的CPU计算能力,开启超线程之后,每个进程最多使用每个核心50%的计算能力,导致程序运行变慢. 1,物理CPU个数:cat /proc ...

  10. 在Biwen.QuickApi中整合一个极简的发布订阅(事件总线)

    闲来无聊在我的Biwen.QuickApi中实现一下极简的事件总线,其实代码还是蛮简单的,对于初学者可能有些帮助 就贴出来,有什么不足的地方也欢迎板砖交流~ 首先定义一个事件约定的空接口 public ...