2 Hypothesis Testing
学术专家和行业专家 ,会有各种各样的问题 ,作为数据分析师 我们努力帮助他们回答这些问题 ,但首先我们需要把问题转变成假设 ,然后 我们需要收集数据 ,来判断哪个假设可能是真的
例如 有一天 ,我和一位朋友辩论 ,世界上最受欢迎的冰淇淋口味是什么? ,我认为最受欢迎的口味是巧克力味 ,而他们坚信是香草味 ,这种情况下 我们可以假设 ,最受欢迎的冰淇淋是巧克力味 ,然后收集数据 验证这些数据是否实际支持这个假设
但是 除非我们问过每个人 否则怎么确定呢? ,我们怎么知道我们的结论是否可靠呢?
事实上 ,可以使用假设检验 ,或者上一节课中讲过的置信区间, 仅利用样本数据得出关于总体的结论
在医学研究中 例如我想检验 ,一种抗癌药物是否对患者有效
可以用多种不同方法进行假设
- 如果患者感觉好些了 药物是否有效?
- 如果患者寿命延长 药物是否有效?
- 如果药物减小了肿瘤的尺寸 它是否有效?
在这一节课中 你将学习 ,如何建立和评估假设检验的结果 ,假设检验的目的就是帮助企业 ,对数据库做出更好、更明智的决策 我们开始吧
3 设置假设检验
进行假设检验时, 第一件事是 把一个问题转换成两个对立的假设
- 一个假设叫做零假设
- 另一个叫做对立假设
这些假设的建立存在一定主观性 ,但有几个基本规则
H0是我们在收集任何数据之前认为为真的条件
在数学上 H0通常认为两组相等或者效应为零
H0和H1应该是对立的、不重叠的假设
H1通常 ,与你希望为真或你想要证明为真的事情相关
在数学上 H0一般包含相等关系 (=, ≤, or ≥)
H1包含大于、小于或不等关系(≠, >, or <.)
举例: 美国司法系统中常说 “被证明有罪之前是无辜的”
这实际是建立了一个假设检验 ,在司法案例中 ,每个个体要么无辜 要么有罪 , “被证明有罪之前是无辜的” 的陈述 ,其实表达的是
- “我们最初认为每个人都是无辜的” ,这是一种零假设, 假设每个人都是无辜的 ,在收集任何数据之前 我们认为这种陈述为真
- 与它对立的对立假设就是 个体有罪 ,然后我们收集证据或数据 检验这些数据支持哪个假设
4 ,
举例: 假如你建了一个新网页布局 我们想知道 ,这个新网页是否能比现有网页带来更多流量,我们可以这样问 “与现有网页相比” ,“新网页的平均网站流量是否增加?”
在进行这个检验之前 ,我们可能希望新网页更好 ,这也是我们建这个网页的原因 ,但是我们需要证明 ,这表示
- 新网页好于现有网页 ,属于对立假设
- 零假设就是两个网页的平均网站流量相同或者旧网页实际更好
在数学上
现有网页的平均流量等于新网页的平均流量
那么 对立假设就是新网页的平均流量大于现有网页的平均流量
我们可以收集数据 检验数据支持哪个假设 ,这里 在零假设和对立假设的定义上 我们的准则起了很大的作用 ,假设检验的建立比较棘手 因为不只有一个正确答案 ,在后面的概念中 ,你将了解这对我们的决策过程有多重要 ,现在用这个例子以及这四条准则练习设置假设 ,
5 错误类型
你已经练习了如何建立假设 ,你可能会问自己 ,为什么零假设和对立假设这么重要? 它们非常重要 ,我们再回顾一下之前举过的法庭例子 ,我们可以把可能与事实组成四个决策组合 ,为了方便查看每个结果 ,我们使用网格 用这个轴线代表 一个人无辜或者有罪的事实 ,用这个轴线代表 ,陪审团认为这个人无辜还是有罪的决定 ,这形成了一个包含四个潜在结果的网格
- 事实是一个人无辜 ,陪审团也认为这个人是无辜的
- 事实是这个人有罪 ,陪审团也认为这个人有罪
在其余两个角 ,陪审团犯了错误 因为事实与他们的决定不符 ,这产生了两个潜在错误 它们在假设检验中也可能会发生是
- 第一种可能错误一个人有罪 ,但陪审团认为这个人无辜 ,这个错误会导致有罪的人被释放
- 第二种错误是一个人无辜 ,但陪审团认为这个人有罪 ,这个错误会导致无辜的人被惩罚
6 两种类型的错误
一类错误和二类错误,正是由于这个原因 ,正确建立零假设和对立假设是非常重要的 ,它们定义了我们犯的错误的重要程度
在上一个例子中 ,一类错误是我们认为一个人有罪 ,但他们实际无罪
一类错误的定义是 ,在零假设实际为真的情况下,选择对立假设的错误 ,你可能还听过另一种叫法假正例 它常用
α
表示 ,一类错误是两种可能错误中较严重的类型
Type I errors have the following features:
- You should set up your null and alternative hypotheses, so that the worse of your errors is the type I error.
- They are denoted by the symbol
α
. - The definition of a type I error is: Deciding the alternative (H1) is true, when actually (H0) is true.
- Type I errors are often called false positives.
另一种错误 ,可能导致有罪的人被释放, 这是二类错误
二类错误的定义是在对立假设实际为真的情况下选择零假设
- They are denoted by the symbol
β
. - The definition of a type II error is: Deciding the null (H0) is true, when actually (H1) is true.
- Type II errors are often called false negatives.
在这个例子中 我们可以看出 有两个潜在极端 ,陪审团可能从来不想犯一类错误 在这种情况下 ,无论证据如何 ,都会认为每个人无罪 ,他们以后还会犯更多的二类错误
相反 如果陪审团认为每个人都有罪 ,他们永远不会犯二类错误 ,只会犯更多的一类错误
由于一类错误和二类错误之间的这种关系 ,专业人员通常会为 ,他们愿意犯的一类错误的数量设置一个阈值, 之后 他们在满足这个阈值的同时,尽量减少二类错误 ,医学领域内常见的一类错误率是 1% ,学术期刊和其它商业应用中是 5% ,但实际上 这个比率取决于具体应用情况
希望你现在能轻松辨别假设和错误类型, 我们再举一个例子 解释这些概念 ,这个例子帮助我 ,将假设检验和一类、二类错误的所有信息点结合起来 ,我希望它对你有同样的效果
假设你有一个跳伞装备商店 ,作为你工作的一部分 ,你必须对降落伞进行检查 确保它们功能正常 ,有两个潜在结果 ,降落伞正常或者不正常
你可以把这两个结果创建为两个潜在假设 ,你知道对于跳伞者与降落伞的每个组合有四个潜在结果
首先 你检查每个降落伞, 确定降落伞是否正常
- 如果确定它正常 ,你把它放在货架上供跳伞者使用
- 如果不正常 你把它扔掉
现在 有两个可能事实 ,降落伞要么正常, 要么不正常
对于我们扔掉的降落伞
如果它不正常,那很好 但是如果正常 ,那我们很可能损失了 30 块
现在 对于我们上架的降落伞
如果它正常 那么跳伞者 ,用它跳出飞机 安全落地 ,但是 如果不正常, 我们明显犯了最严重类型的错误 ,在这个例子中 它属于一类错误 ,所以另一种错误是二类错误 ,这能帮助我们把零假设与对立假设这样排列
我们知道 一类错误率是, 在零假设为真的情况下选择了对立假设, 所以我们算出一类错误率是1% 或 5% 这太高了 ,在每 100 个人中犯五次 ,甚至一次这种错误 都是不可接受的
7 常见假设检验
大家已经了解了假设检验的建立 ,我们现在看一下实践中的最常见检验
- 一种常见检验是检验一个总体的均值或比例是否等于某个值
例如 在金融领域 ,我们有一个问题 ,如果你期望投资回报率大于 6% ,那么 我们可以用以下方法建立假设检验
零表示你的投资回报率小于等于 6% ,另一种表示大于 6%
- 另一种常见假设检验是 ,确定两种营销活动中的哪一种能给我们的网站带来更多流量 ,这种情况下 我们可以设置一个零和一个这样的替代值
零表示在两种活动中 ,访问我们网页的个人的比例相同 ,另一种表示其中一个网页吸引的流量更大
这种情况下两个网页之间的流量比例不同 ,如果我们真的想要检验新活动是否好于旧活动 ,可以使用这样的单侧假设检验 ,其中的 “大于” ,表示新活动中访问我们网站的个人的比例较大 ,你可以做一些代数运算 将相同的逻辑改成这样
注意: 所有的这些假设检验都考虑了参数 ,这些检验与统计值无关, 从来无关 ,不需要对统计值进行假设检验 ,因为在我们的数据集里它们属于精确值 ,我们的问题与整个总体有关 因此 ,我们的假设也与整个总体有关 ,
常见的假设检验包括:
您可以使用其中一个站点提供t表或z表来支持上述方法之一: t-table,t-table或z-table
实际上有100多种不同的假设检验! 但是,您可以找到最佳估计您想要估计的参数的统计数据,而不是记住如何执行所有这些测试,您可以通过引导来模拟采样分布。然后,您可以使用抽样分布来帮助选择适当的假设。
10 如何在假设之间做出选择?
问题
喝咖啡的所有人的平均身高是否大于 70 英寸 (1.78 米)
我们可以用以下方法建立已知的对立假设 ,这里 我们的
- 零假设是喝咖啡的所有人的平均身高小于等于 70 英寸
- 对立假设是平均身高大于 70 英寸
注意: 我们检验的始终是参数, 所以我在这里用 µ 表示喝咖啡的所有人的均值
第一种方法:
根据我刚才建立的置信区间 ,你可以用一个直观的方法确定零假设是否可能 ,即自助抽样数据的一个样本集 然后反复计算样本均值 ,建立抽样分布和对应的置信区间 ,用特定置信水平为总体均值确定合理值
在实践中, 假设我们从数据集中获得了这个样本 ,我们可以用以下方法对它进行自助抽样, 现在 我们进行多次自助抽样 然后计算每个自助样本的均值 ,这里 我们有自助样本 ,在这里 我已经创建了一个空的均值向量 ,我将把每个自助抽样均值添加到其中 ,现在 我们得出了所有均值 可以创建置信区间了 ,这里是下限 ,这里是上限 ,另外 我们还可以选择对它们绘图 这是绘制的图表
结论: 在上面的例子中,我们的区间完全低于70,这表明零(总体均值小于70)实际上是正确的。
喝咖啡的所有人的平均身高是否大于 70 英寸 (1.78 米) ,我们可以建立这样的零假设和对立假设 ,在假设检验中做决策
第二种常用方法:
假如零假设为真 如果我们用零假设里最接近对立假设的值进行模拟
我们可以知道抽样分布的形状 ,这个值是70
,这是零假设里最接近对立假设的值 ,我们可以用抽样分布的标准偏差确定,如果这个值来自零假设 抽样分布是什么形状
在这个例子中 我们对正态分布进行模拟 ,我将复制之前使用的代码 ,以便获得我们的抽样分布的标准偏差 ,抽样分布的标准偏差等于 0.2658 ,我们知道 如果它来自70 的零假设值 它会是什么形状
根据中心极限定理 ,我们知道 它服从正态分布 ,现在从 NumPy 的正态分布文档中,我们了解了可以用以下方法
用 70
的假设均值和抽样分布的标准偏差 ,对正态分布中的抽取值进行模拟
这里 “loc” 表示均值 也就是 70 ,“scale” 是我们想要使用的标准偏差 ,是我们的抽样分布的标准偏差 ,我们可以模拟其中的1 万个值 ,这里的每个被模拟抽取值代表零假设中的一个可能均值
我们现在可以问一个问题 样本均值位于这个分布中的哪个位置 ,回顾一下样本均值
可以看出 它远远低于这个正态分布 ,如果样本均值接近 70 的中心值 ,它就是零假设中的值 因此 ,我们认为零假设更可能为真 ,现在这种情况下 样本均值位于尾部之外 ,我们不太可能认为它来自这个零假设值
11 什么是p值
如果p值比α小, 意味着拒绝零假设而偏向对立假设犯一类错误的概率为p, 而犯一类错误的概率不能超过5%, 所以说可以很安全的推翻零假设.
如果p值比α大, 意味着拒绝零假设而偏向对立假设犯一类错误的概率为p, 而犯一类错误的概率不能超过5%, 而此时超过了5%,因此犯错误的概率太大太有风险, 不能推翻零假设
如果零假设为真,则 p值的定义是观察您的统计量(或者更偏向于替代方案)的概率。
在第二种方法中
我们问了一个问题 如果零假设为真, 获得数据中观察到的统计量或者更极端统计量, 从而选择对立假设的概率是多少?
这个概率称为 P 值, P 值的确定涉及你学到的多个概念, 抽样分布和条件概率
假如我们有一个零假设, 假设总体均值等于零, 我们收集样本数据 发现样本均值是5,
样本标准偏差是2
假设统计量的抽样分布符合零假设, 从这个分布中的数据, 观察到统计量实际值的概率是多少?
如果我们想知道, 总体均值实际大于零的概率, 你可以更新假设6、7、10
等值都在这更像是表明对立假设为真, 总体均值大于零
另外 观察到的统计量, 表明需要选择对立假设的概率是多少?
这个阴影区域就是这个概率 也就是 P 值
注意: P 值取决于对立假设 因为它决定了更极端的值, 如果对立假设是参数大于零, 阴影区域会比现在显示的统计量大
但是 如果我们把零假设和对立假设改成这样, 阴影区域应该在这个统计量左边
P 值的阴影区域现在是这样
要理解的有两个部分
第一 你必须把 P 值完全概念化, 它是零假设为真的情况下数据的条件概率, 然后 你需要明白要计算的是什么, 这三个图片有很直观的总结, 在开始学习运用 P 值的概念做决策之前, 你还需要对这两个部分进行练习
- 如果您的参数大于备选假设中的某个值,则您的着色将如下所示以获取您的p值:
- 如果您的参数小于备选假设中的某个值,则您的着色将如下所示以获取您的p值:
注意 : 这会形成非常大的概率, 因为这种情况下几乎整个分布区域都是阴影, 如果对立假设中含有不等关系, 阴影区域则与在两个方向, 均远离零假设的极端值相关, 这种情况下 我们只关心在两个方向均远离零假设的统计量, 所以我们最终在远离零假设的两端涂阴影 从而确定 P 值
- 如果您的参数不等于备选假设中的某个值,则您的着色将如下所示以获取您的p值:
计算p值
如果p值比α小, 意味着拒绝零假设而偏向对立假设犯一类错误的概率为p, 而犯一类错误的概率不能超过5%, 所以说可以很安全的推翻零假设.
如果p值比α大, 意味着拒绝零假设而偏向对立假设犯一类错误的概率为p, 而犯一类错误的概率不能超过5%, 而此时超过了5%,因此犯错误的概率太大太有风险, 不能推翻零假设
你学习了如何用零假设模拟抽样
- 如果统计量处于分布区域内 ,这表明统计量可能来自这个零假设
- 但是 如果统计量远离分布区域 ,这表明零假设不可能产生统计量
你还学习了如何根据阴影区计算 p 值 ,阴影区从我们观察到的统计量开始 延伸到分布区域的尾部 ,阴影区取决于对立假设
你用零假设模拟了抽样分布的值, 假设我们的对立假设是 ,总体均值大于 70 ,我们可以将 p 值作为大于样本均值的模拟样本的比例来计算
这里可以看出 我们得到的 p 值是1
,记住 p 值较大表示不应该抛弃零假设 ,在这个案例中 这表明 我们应该认为均值小于 70 ,这里 我们已经计算了大于样本均值的空值 ,由于这是一 ,p 值较大 因此 我们不会抛弃零假设 ,这表明总体均值实际小于等于 70
如果新的零假设和对立假设是这样 ,计算 p 值的方法稍微有些不同 ,这里 由于对立假设是小于 70 ,我们现在可以看统计量左边的阴影区域 ,p 值将变成这样 ,由于 p 值是零 ,这表明我们应该抛弃零假设 选择对立假设 ,表明总体均值小于 70
如果这是零假设和对立假设 ,我们现在应该看 在远离零假设的任一方向 ,都比样本均值极端的值
过程总结:
- 从null中模拟可能的统计值。
- 计算您在数据中实际获得的统计值。
- 将统计信息与null中的值进行比较。
- 根据您的对立假设计算被视为极值的空值的比例。
P是“拒绝原假设时犯错误概率”又或者说是“如果你拒绝掉原假设实际上是在冤枉好人的概率”。
不管怎么表达理解上都有点绕,所以你还是看例子吧。比如你做一个假设( null hypothesis):你的女性朋友平均身高2米,输入你统计的样本数据后,计算机给你返回的p值是0.03。这意味着如果你拒绝“女性朋友平均身高2米”这个结论,犯错的概率是0.03,小于0.05(人们一般认为拒绝一句话时犯错概率小于0.05就可以放心大胆地拒绝了),这个时候你就可以拒绝原假设。如果计算机返回p值是0.9,那么你就会想,这说明拒绝原假设犯错概率高达90%,那么我就不应该拒绝原假设,即你应该认为你的女性朋友平均身高就是2米。
原假设为女性朋友身高平均值2米,取了若干个样本后测量出样本的平均值为1.6,经过计算,在我们设定alpha为0.05时,置信区间为1.8到2.2,咱们取的样本均值1.6不在这个范围内,所以拒绝。
“拒绝原假设犯错的概率”是在说什么呢,它是在说,我们假设女孩子们身高均值为2米,计算出来的均值为1.6,跟原假设差距很大,这时候我们拒绝原假设“身高为2米”,我们拒绝这个不靠谱零假设时可能犯错的概率<=0.05。
or
“接受原假设正确的概率”是在说什么呢,它是在说,我们假设女孩子们身高均值为2米,计算出来的均值为1.6,跟原假设差距很大,但我们还是坚持认为原假设“身高为2米,我们坚持这个不靠谱零假设时可能正确的概率<=0.05。
样本均值1.6对应的p值为0.03是什么意思?这是指,在假设全体女孩身高为2米的情况下,咱们随机抽取到一些样本得出均值为1.6米或比1.6米更极端的数值的可能性为0.03,在原假设下抽到这样样本的概率太低了,而我们却十分稀罕地居然一下就抽到了这样的样本,那么正常人的第一反应就是,咱们原先假设身高均值为2米这个假设不对。用统计学的话来说就叫做“由于样本均值落在拒绝域中,所以拒绝原假设”。
如果p值比α小, 意味着拒绝零假设而偏向对立假设犯一类错误的概率为p, 而犯一类错误的概率不能超过5%, 所以说可以很安全的推翻零假设.
如果p值比α大, 意味着拒绝零假设而偏向对立假设犯一类错误的概率为p, 而犯一类错误的概率不能超过5%, 而此时超过了5%,因此犯错误的概率太大太有风险, 不能推翻零假设
可见,p值是在精确的算出一个取样的稀罕程度。alpha值是事先给出了一个对样本稀罕程度的判断,这个值是可以主观去改变的,你可以认为取到样本均值的可能性为0.2或更低就很极端从而拒绝,也可以认为取到样本均值的可能性为0.001或更低才拒绝。一般认为样本稀罕到可能取到的概率<=0.05时,咱们就认为原假设不靠谱。
14 p 值与错误类型
如果p值比α小, 意味着拒绝零假设而偏向对立假设犯一类错误的概率为p, 而犯一类错误的概率不能超过5%, 所以说可以很安全的推翻零假设.
如果p值比α大, 意味着拒绝零假设而偏向对立假设犯一类错误的概率为p, 而犯一类错误的概率不能超过5%, 而此时超过了5%,因此犯错误的概率太大太有风险, 不能推翻零假设
学习了 p 值是从零假设中 ,获取数据或更极端值的概率 ,那么 这与做决策和我们犯的错误类型有什么关系? ,
如果 p 值非常小 ,表示不太可能从零假设中观察到统计量 ,统计量很可能来自对立假设 ,但是 如果选择零假设 ,p 值最小应该是多少? (接受原假设正确的概率)
我认为这取决于你犯特定类型错误的意愿有多大 ,如果你愿意犯 5% 的错误 ,错误地选择对立假设 ,p 值需要小于这个阈值 才能选择对立假设
但是 如果从零假设获得数据的概率是 ,比如 8% ,在 5% 的一类错误阈值下 ,这个概率足以让你选择零假设
简单的规则是 如果 p 值小于一类错误率 ,专业人员建议我们拒绝零假设 ,即 选择对立假设 ,如果 p 值大于一类错误率 ,我们无法拒绝零假设 ,即 我们选择零假设作为我们的决策 ,到底哪个为真? ,在实践中 我们无法确定 ,但是 我们现在能利用数据库做出决策
在选择零假设与对立假设之间做决策时 ,你可能会看到一些专家 特别是统计学家 ,畏畏缩缩 做出这样的总结 ,“根据数据 ,我们认为零假设为真” 或者 ,“根据数据 我们认为对立假设为真”
记住 建立零假设和对立假设时 ,在收集任何数据之前 我们自动把零假设设为真 ,因此 这种陈述是默认的 ,这不是说我们不确定应该选哪个假设 然后从中选择一个 ,而是默认选择了零假设
现在再看法庭的例子 ,每个人在被证明有罪之前 都是无辜的 ,你不是选择某个人无辜 ,默认情况下 每个人都是无辜的
因此 在假设检验中 ,我们说 “根据数据 ,我们有证据反对零假设” 或者 ,如果没有足够的证据反对零假设 我们说 ,“根据数据 我们无法反对零假设” ,许多人只关心做出对的决策 ,所以这样区分可能看起来有点吹毛求疵 ,但是它强调的是 在你开始陈述哪个为真时 ,零假设被选中的可能性更大 ,
其他需要考虑的事项
- 样本能够代表总体吗
- 样本的大小对结果有影响吗?
- 假设检验与机器学习
对于大样本量,假设检验甚至导致最小的发现具有统计学意义。然而,这些发现可能根本没有实际意义。
例如,假设你发现统计学多的人喜欢的饮料1到饮料2就超过一百万人的研究。在此基础上,您决定开设一家商店来销售饮料1.然后您会发现饮料1仅比饮料2更受欢迎0.0002%(但您的大样本量具有统计学意义)。实际上,也许你应该开一家卖两者的商店。
假设检验对基于数据的结论采取综合方法,因为这些检验旨在了解人口参数(即总人口价值)。
或者,机器学习技术采用个别方法来得出结论,因为它们试图预测每个特定数据点的结果。
17 , ,你已经了解了假设检验可能会发生的错误类型 ,你还了解了如何为 ,错误的允许发生频率创建一个阈值 ,
但是想一下 如果我们把同一类型的假设检验进行 20 次 ,即使零假设实际为真 ,如果一类错误率是 5% ,可以预计 其中一次检验的结果是选择对立假设 ,世界上的研究者通常都在进行非常相似的研究 ,所以 当一名研究者获得了重大成果 ,我们怎么确定这些成果就是这些一类错误的其中之一? 在许多情况下 我们无从知晓 这是难点所在 ,这是一个问题 但是统计学家提出了 ,解决这个问题的几个办法 ,最保守和常见的一种方法是 Bonferroni 校正法 ,这种简单校正法认为 如果你正在进行 m 检验 ,你应该将一类错误率除以 m ,确保保持这里的错误率 ,所以 如果你真的想要 ,达到 5% 的一类错误率 并且正在进行 10 次假设检验 ,新的选择对立假设的阈值实际是 0.5%
这只是其中一种常见的校正法 ,其它方法包括 Tukey 校正法 ,生物医学领域 ,常用的方法是 Q 值法 ,下面的讲师注释介绍了更多方法 ,
其他技术
防止复合I类错误的其他技术包括:
15 CI和HT如何比较?
双边假设检验(即涉及a的测试) \ neq≠替代方案)就作为置信区间作出的结论而言是相同的,只要:
1 - CI = α
例如,95%置信区间将得出与假设检验相同的结论,I类错误率为0.05,根据选择的假设,因为:
1 - 0.95 = 0.05
假设替代假设是双边检验。
你已经学习了如何建立零假设和对立假设 ,你还判定了一类错误和二类错误 ,你可以根据错误阈值计算要选择的假设 ,你还了解了在样本量非常大 ,以及需要进行多次假设检验的情况下 ,你可能做出的结论会带来什么危害 ,最后 你了解了置信区间和 ,假设检验的紧密关系 ,假设检验相关概念是 ,A/B 测试以及数据库业务决策的核心 ,在下一节课 ,你将学习在实战中运用这些概念