From d308453cf347d9e30641c3c571676f86b75fc4c8 Mon Sep 17 00:00:00 2001 From: liuyixi520 Date: Tue, 9 Aug 2022 22:30:02 +0800 Subject: [PATCH] update 07.md-09.md --- docs/07.md | 35 +++++----- docs/08.md | 26 +++---- docs/09.md | 132 +++++++++++++++++++---------------- docs/img/bmi.png | Bin 0 -> 6792 bytes docs/img/df.png | Bin 0 -> 7091 bytes docs/img/h0-ha.png | Bin 0 -> 5191 bytes docs/img/h0.png | Bin 0 -> 5100 bytes docs/img/h0coin.png | Bin 0 -> 4079 bytes docs/img/h0n.png | Bin 0 -> 5501 bytes docs/img/ha.png | Bin 0 -> 5414 bytes docs/img/hacoin.png | Bin 0 -> 4218 bytes docs/img/han.png | Bin 0 -> 4972 bytes docs/img/not-p.png | Bin 0 -> 3826 bytes docs/img/poly-distribute.png | Bin 0 -> 7297 bytes docs/img/seg.png | Bin 0 -> 3035 bytes docs/img/t-student.png | Bin 0 -> 4155 bytes docs/img/ufb.png | Bin 0 -> 5386 bytes 17 files changed, 101 insertions(+), 92 deletions(-) create mode 100644 docs/img/bmi.png create mode 100644 docs/img/df.png create mode 100644 docs/img/h0-ha.png create mode 100644 docs/img/h0.png create mode 100644 docs/img/h0coin.png create mode 100644 docs/img/h0n.png create mode 100644 docs/img/ha.png create mode 100644 docs/img/hacoin.png create mode 100644 docs/img/han.png create mode 100644 docs/img/not-p.png create mode 100644 docs/img/poly-distribute.png create mode 100644 docs/img/seg.png create mode 100644 docs/img/t-student.png create mode 100644 docs/img/ufb.png diff --git a/docs/07.md b/docs/07.md index 611d541..b7ebaa2 100644 --- a/docs/07.md +++ b/docs/07.md @@ -2,19 +2,19 @@ # 7 采样 -统计学中的一个基本思想是,我们可以根据总体中相对较小的个体样本,对整个总体做出推断。在这一章中,我们将介绍统计抽样的概念,并讨论它的工作原理。 +统计学中的一个基本思想是,我们可以根据部分来推断出整体。在这一章中,我们将介绍统计学中抽样的概念,并讨论它的工作原理。 -任何生活在美国的人都会熟悉从政治民意调查中取样的概念,这已经成为我们选举过程的一个核心部分。在某些情况下,这些民意调查在预测选举结果时会非常准确。最著名的例子来自 2008 年和 2012 年美国总统选举,当时民调专家内特·西尔弗(Nate Silver)正确预测了 2008 年 49/50 个州和 2012 年全部 50 个州的选举结果。西尔弗是通过综合 21 个不同民调的数据得出这一结论的,这些数据在倾向于共和党或民主党的程度上有所不同。每一项民意调查都包括来自大约 1000 名潜在选民的数据——这意味着 Silver 能够利用仅来自大约 21,000 人的数据以及其他知识(如这些州过去的投票情况)几乎完美地预测超过 1 . 25 亿选民的投票模式。 +任何生活在美国的人都会熟悉从政治民意调查中取样的概念,这已经成为我们选举过程的一个核心部分。在某些情况下,这些民意调查在预测选举结果时会非常准确。最著名的例子来自 2008 年和 2012 年美国总统选举,当时民调专家内特·西尔弗(Nate Silver)正确预测了 2008 年 49/50 个州和 2012 年全部 50 个州的选举结果。西尔弗是通过综合了21个不同民调的数据得出这一结论的,这些民调结果在对共和党或民主党的倾向性上有所不同。每一项民意调查都包括来自大约1000名潜在选民的数据——这意味着Silver能够利用仅来自大约21,000人的数据以及其他知识(如这些州过去的投票情况)几乎完美地预测超过1.25亿选民的投票结果。 ## 7.1 我们如何采样? -我们抽样的目的是确定感兴趣的整个人口的统计值,只使用人口的一个小子集。我们这样做主要是为了节省时间和精力——当仅仅一个小样本就足以准确估计感兴趣的统计数据时,为什么还要费事去测量群体中的每个个体呢? +我们抽样的目的是确定感兴趣的总体的统计结果,只使用一个子集。我们这样做主要是为了节省时间和精力——当仅仅一个子集就足以准确估计感兴趣的统计数据时,为什么还要费事去观测整体中的每个样本呢? -在选举示例中,人口是被调查区域中的所有注册选民,样本是由投票组织选择的 1000 个人的集合。我们选择样本的方式对于确保样本能够代表整个人口是至关重要的,这也是统计抽样的一个主要目标。很容易想象一个不具有代表性的样本;如果民意测验专家只打电话给他们从当地民主党那里得到名字的个人,那么民意测验的结果就不可能代表全体人口。一般来说,我们将代表性投票定义为人口中的每个成员都有平等的机会被选中。当这失败时,我们就不得不担心我们对样本计算的统计数据是否有*偏差*——也就是说,它的值是否系统地不同于总体值(我们称之为*参数*)。请记住,我们通常不知道这个总体参数,因为如果我们知道,那么我们就不需要采样!但是我们会用例子来说明一些关键的观点,在这些例子中我们可以接触到整个人群。 +在选举示例中,总体是被调查区域中的所有注册选民,样本是由投票组织选择的1000个人的集合。我们选择样本的原则要确保部分能够代表整体,这一点是至关重要的,这也是统计抽样的一个主要目标。很容易想象一个不具有代表性的部分样本;如果民意测验专家只打电话给他们从当地民主党那里得到名字的个人,那么民意测验的结果就不可能代表整体。一般来说,我们抽样时要确保每个成员都有平等的机会被选中。当这一点无法保证时,我们就不得不担心我们所抽样出来的样本带有*偏见*——也就是说,抽样结果无法代表整体(我们称之为*参数*)。请记住,我们通常不知道这个总体参数,因为如果我们知道,那么我们就不需要采样!但是我们会用例子来说明一些关键的观点,在这些例子中我们可以接触到整体。 -区分两种不同的采样方式也很重要:有替换和没有替换。在使用替换的采样*中,在群体的一个成员被采样后,他们被放回池中,以便他们可能被再次采样。在*无替换抽样*中,成员一旦被抽样,就没有资格再次被抽样。最常见的是使用无替换采样,但是在某些情况下我们会使用有替换采样,比如我们在第 [8](#resampling-and-simulation) 章中讨论一种叫做*引导*的技术。* +区分两种不同的采样方式也很重要:有替换和没有替换。在使用**有替换的采样**中,在群体的一个样本被采样后,他们被放回池中,以便他们可能被再次采样。在**无替换的抽样**中,样本一旦被抽样,就没有资格再次被抽样。最常见的是使用无替换采样,但是在某些情况下我们会使用有替换采样,比如我们在第 [8](#resampling-and-simulation) 章中讨论一种叫做*引导*的技术。 @@ -22,16 +22,17 @@ ## 7.2 采样误差 -不管我们的样本有多有代表性,我们从样本中计算出的统计数据很可能会与总体参数略有不同。我们称之为*采样误差*。如果我们取多个样本,我们的统计估计值也会因样本而异;我们将样本间的统计分布称为*抽样分布*。 +不管我们的抽样出来的样本有多有代表性,我们从样本中计算出的统计数据很可能会与总体参数略有不同。我们称之为*采样误差*。如果我们取多个样本,我们的统计估计值也会因样本而异;我们将样本间的统计分布称为*抽样分布*。 -抽样误差直接关系到我们测量人口的质量。显然,我们希望从样本中获得的估计值尽可能接近总体参数的真实值。然而,即使我们的统计是无偏的(即,我们期望它具有与总体参数相同的值),任何特定估计的值都将不同于总体值,并且当抽样误差较大时,这些差异将会较大。因此,减少采样误差是提高测量质量的重要一步。 +抽样误差直接关系到我们预测整体统计结果的质量。显然,我们希望从样本中获得的估计值尽可能接近总体统计结果的真实值。然而,即使我们的统计是无偏见的(即,我们期望它具有与总体参数相同的值),任何特定估计的值都将不同于总体值,并且当抽样误差较大时,这些差异将会较大。因此,减少采样误差是提高测量质量的重要一步。 -我们将使用 NHANES 数据集作为例子;我们将假设 NHANES 数据集是感兴趣的整个人群,然后我们将从该人群中抽取随机样本。我们将在下一章详细讲述在计算机中如何产生“随机”样本。 +我们将使用 NHANES 数据集作为例子;我们将假设NHANES数据集的整体是现在我们需要统计的,然后我们将从该整体中随机抽取样本。我们将在下一章详细讲述在计算机中如何产生“随机”样本。 -在本例中,我们知道成人人口身高的平均值(168.35)和标准差(10.16),因为我们假设 NHANES 数据集*是人口的*。表 [7.1](#tab:sampleExample) 显示了从 NHANES 人群的 50 个个体的几个样本计算的统计数据。 +在本例中,我们知道成人身高的平均值(168.35)和标准差(10.16),因为我们假设NHANES数据集代表了全体。表 [7.1](#tab:sampleExample) 显示了从NHANES数据集中抽取50个样本的统计数据。 Table 7.1: Example means and standard deviations for several samples of Height variable from NHANES. -| 采样平均 | 样品 | + +| 身高均值 | 采样数量 | | --- | --- | | One hundred and sixty-seven | Nine point one | | One hundred and seventy-one | Eight point three | @@ -39,7 +40,7 @@ | One hundred and sixty-six | Nine point five | | One hundred and sixty-eight | Nine point five | -样本均值和标准差相似,但不完全等于总体值。现在,让我们从 50 个个体中抽取大量样本,计算每个样本的平均值,并查看平均值的抽样分布。为了很好地估计抽样分布,我们必须决定取多少样本——在这种情况下,我们将取 5000 个样本,这样我们对答案非常有信心。请注意,像这样的模拟有时需要几分钟才能运行,可能会让您的计算机气鼓鼓的。图 [7.1](#fig:samplePlot) 中的直方图显示,50 个个体的每个样本的估计均值略有不同,但总体而言,它们以总体均值为中心。5000 个样本平均值(168.3463)非常接近真实总体平均值(168.3497)。 +样本均值和标准差相似,但不绝对等于总体值。现在,让我们抽取比50样本更多的样本,来计算样本的平均值,并查看平均值的抽样分布。为了很好地估计抽样分布,我们必须决定取多少样本——在这种情况下,我们将取 5000 个样本,这样统计结果更加贴近与真实情况。请注意,像这样的模拟有时需要几分钟才能运行,可能会让您的计算机超负荷运作。图 [7.1](#fig:samplePlot) 中的直方图显示,50 个个体的每个样本的估计均值略有不同,但总体而言,它们以总体均值为中心。5000 个样本平均值(168.3463)非常接近真实总体平均值(168.3497)。 ![The blue histogram shows the sampling distribution of the mean over 5000 random samples from the NHANES dataset. The histogram for the full dataset is shown in gray for reference.](img/file41.png) @@ -53,13 +54,13 @@ 在本书的后面,为了对样本统计数据进行推断,描述样本的可变性将变得至关重要。对于平均值,我们使用一个称为平均值(SEM)的*标准误差*的量来计算,可以将其视为平均值的采样分布的标准偏差。为了计算样本平均值的标准误差,我们将估计的标准偏差除以样本大小的平方根: -【s】【e】【m】= +![seg](img/seg.png) 请注意,如果我们的样本很小(小于 30),我们必须小心使用估计的标准偏差计算 SEM。 因为我们有来自 NHANES 总体的许多样本,并且我们实际上知道总体 SEM(我们通过将总体标准差除以总体大小来计算),所以我们可以确认,使用总体参数(1.44)计算的 SEM 非常接近我们从 NHANES 数据集(1.43)获取的样本的均值的观测标准差。 -平均值的标准误差公式意味着我们测量的质量涉及两个量:总体可变性和样本大小。因为样本大小是 SEM 公式中的分母,所以在保持总体可变性不变的情况下,较大的样本大小将产生较小的 SEM。我们无法控制人口的可变性,但是我们可以控制样本的大小。因此,如果我们希望改善我们的样本统计(通过减少他们的抽样可变性),那么我们应该使用更大的样本。然而,这个公式也告诉我们一些关于统计抽样的非常基本的东西——也就是说,较大样本的效用随着样本大小的平方根而减少。这意味着加倍样本量将*而不是*加倍统计数据的质量;而是将其提高一个2\ sqrt { 2 }的因子。在第 [10.3](#statistical-power) 节中,我们将讨论统计功效,它与这一概念密切相关。 +平均值的标准误差公式意味着我们测量的质量涉及两个量:总体可变性和样本大小。因为样本大小是 SEM 公式中的分母,所以在保持总体可变性不变的情况下,较大的样本大小将产生较小的 SEM。我们无法控制人口的可变性,但是我们可以控制样本的大小。因此,如果我们希望改善我们的样本统计(通过减少他们的抽样可变性),那么我们应该使用更多的样本。然而,这个公式也告诉我们一些关于统计抽样的非常基本的东西——也就是说,较大样本的效用随着样本大小的平方根而减少。这意味着加倍样本量将*而不是*加倍统计数据的质量;而是将其提高了根号2倍。在第 [10.3](#statistical-power) 节中,我们将讨论统计效率,它与这一概念密切相关。 @@ -69,15 +70,15 @@ 中心极限定理告诉我们,随着样本量变大,均值的抽样分布将变成正态分布,*即使每个样本内的数据不是正态分布*。 -首先,我们来简单介绍一下正态分布。它也被称为*高斯*分布,以卡尔·弗里德里希·高斯的名字命名,这位数学家没有发明它,但在它的发展中发挥了作用。正态分布用两个参数来描述:平均值(可以认为是峰值的位置)和标准差(指定分布的宽度)。分布的钟形形状永远不会改变,只有它的位置和宽度会改变。正如我们已经在第 3 章中看到的,正态分布在现实世界中收集的数据中是常见的,中心极限定理给了我们一些关于为什么会发生这种情况的见解。 +首先,我们来简单介绍一下正态分布。它也被称为*高斯*分布,以卡尔·弗里德里希·高斯的名字命名,虽然不是他发明的,但是高斯在推广正态分布的时候发挥了重要的作用。正态分布用两个参数来描述:平均值(可以认为是峰值的位置)和标准差(指定分布的宽度)。分布的钟形形状永远不会改变,只有它的位置和宽度会改变。正如我们已经在第 3 章中看到的,正态分布在现实世界中收集的数据中是常见的,中心极限定理解释了为什么会发生这种情况。 -为了查看中心极限定理的作用,让我们使用 NHANES 数据集中的变量 AlcoholYear,它是高度偏斜的,如图 [7.2](#fig:alcDist50) 的左图所示。由于没有更好的词来形容,这种分布是时髦的——而且肯定不是正态分布。现在让我们看看这个变量的均值的抽样分布。图 [7.2](#fig:alcDist50) 显示了该变量的抽样分布,通过从 NHANES 数据集中重复抽取 50 个样本并取平均值获得。尽管原始数据显然是非正态的,但抽样分布非常接近正态。 +为了查看中心极限定理的作用,让我们使用NHANES数据集中的变量AlcoholYear,它是高度偏斜的,如图 [7.2](#fig:alcDist50) 的左图所示。由于没有更好的词来形容,暂且叫做时髦分布吧——可以肯定不是正态分布。现在让我们看看这个变量的均值的抽样分布。图 [7.2](#fig:alcDist50) 显示了该变量的抽样分布,通过从 NHANES 数据集中重复抽取 50 个样本并取平均值获得。尽管原始数据显然是非正态的,但抽样分布非常接近正态。 ![Left: Distribution of the variable AlcoholYear in the NHANES dataset, which reflects the number of days that the individual drank in a year. Right: The sampling distribution of the mean for AlcoholYear in the NHANES dataset, obtained by drawing repeated samples of size 50, in blue. The normal distribution with the same mean and standard deviation is shown in red.](img/file42.png) 图 7.2:左:NHANES 数据集中变量 AlcoholYear 的分布,它反映了个人一年中饮酒的天数。右图:NHANES 数据集中酒精年份平均值的抽样分布,通过绘制 50 个蓝色重复样本获得。具有相同平均值和标准偏差的正态分布显示为红色。 -中心极限定理对统计学很重要,因为它允许我们安全地假设在大多数情况下均值的抽样分布将是正态的。这意味着我们可以利用假设正态分布的统计技术,我们将在下一节中看到。它也很重要,因为它告诉我们为什么正态分布在现实世界中如此普遍;任何时候我们把许多不同的因素结合成一个单一的数字,结果很可能是一个正态分布。例如,任何成年人的身高都取决于他们的基因和经历的复杂混合;即使这些单独的贡献可能不是正态分布的,当我们将它们组合起来时,结果也是正态分布的。 +中心极限定理对统计学很重要,因为它允许我们安全地假设在大多数情况下均值的抽样分布将是正态的。这意味着我们可以利用假设正态分布的统计技术,我们将在下一节中看到。它也很重要,因为它告诉我们为什么正态分布在现实世界中如此普遍;任何时候我们把许多不同的因素结合成一个单一的数字,结果很可能是一个正态分布。例如,任何成年人的身高都取决于他们的基因和经历的复杂混合;即使这些单独的影响可能不是正态分布的,当我们将它们组合起来时,结果也是正态分布的。 @@ -96,7 +97,7 @@ -## 7.6 建议读数 +## 7.6 建议书籍 * Nate Silver 的《信号与噪音:为什么这么多预测失败,但有些却没有》 diff --git a/docs/08.md b/docs/08.md index 6fb16a2..1fc033c 100644 --- a/docs/08.md +++ b/docs/08.md @@ -2,7 +2,7 @@ # 8 重采样和模拟 -计算机模拟的使用已经成为现代统计学的一个重要方面。例如,在实用计算机科学中最重要的一本书,叫做*数字配方*,这样写道: +使用计算机的模拟能力已经成为现代统计学的一个重要方面。例如,在实用计算机科学中最重要的一本书,叫做**与数字共舞**,这样写道: > “如果让我们在精通五英尺厚的分析统计学书籍和中等水平的统计蒙特卡罗模拟能力之间做出选择,我们肯定会选择后者。” @@ -29,9 +29,9 @@ ## 8.2 统计学中的随机性 -术语“随机”通常在口语中用来指奇怪或意想不到的事情,但在统计学中,该术语有一个非常具体的含义:如果一个过程不可预测,它就是*随机的*。例如,如果我掷一枚普通硬币 10 次,一次掷的结果值并不能为我提供任何信息来预测下一次掷的结果。重要的是要注意,某件事不可预测的事实并不一定意味着它不是确定的。例如,当我们抛硬币时,抛硬币的结果是由物理定律决定的;如果我们足够详细地了解所有的条件,我们应该能够预测翻转的结果。然而,许多因素结合在一起,使得掷硬币的结果在实践中不可预测。 +术语“随机”通常在口语中用来指难以琢磨或意想不到的事情,但在统计学中,该术语有一个非常具体的含义:如果一个过程不可预测,它就是*随机的*。例如,如果我掷一枚普通硬币 10 次,一次掷的结果值并不能为我提供任何信息来预测下一次掷的结果。重要的是要注意,某件事不可预测的事实并不一定意味着它不是确定的。例如,当我们抛硬币时,抛硬币的结果是由物理定律决定的;如果我们足够详细地了解所有的条件,我们应该能够预测翻转的结果。然而,许多因素结合在一起,使得掷硬币的结果在实际过程中不可预测。 -心理学家表明,人类实际上有相当糟糕的随机感。首先,我们倾向于看到不存在的模式。在极端情况下,这导致了 *pareidolia* 现象,在这种现象中,人们会在随机模式中感知熟悉的物体(例如将一朵云感知为人脸或在一片烤面包中看到圣母玛利亚)。第二,人类倾向于认为随机过程是自我修正的,这导致我们在一场概率游戏中输掉许多回合后,认为自己“应该赢”,这种现象被称为“赌徒谬误”。 +心理学家表明,人类实际上有相当糟糕的随机感。首先,我们倾向于看到不存在的模式。在极端情况下,这导致了 *pareidolia* 现象,在这种现象中,人们会在随机模式中感知熟悉的物体(例如将一朵云感知为人脸或在一片烤面包中看到圣母玛利亚)。第二,人类倾向于认为随机过程是自我修正的,这导致我们在一场概率游戏中输掉许多回合后,认为自己“应该赢”,这种现象被称为“赌徒心理”。 @@ -39,9 +39,9 @@ ## 8.3 生成随机数 -运行蒙特卡罗模拟需要我们生成随机数。产生真正的随机数(即完全不可预测的数字)只有通过物理过程才有可能,如原子衰变或掷骰子,这些过程很难获得和/或太慢而无法用于计算机模拟(尽管它们可以从 [NIST 随机性信标](https://www.nist.gov/programs-projects/nist-randomness-beacon%5D)中获得)。 +运行蒙特卡罗模拟需要我们生成随机数。产生真正的随机数(即完全不可预测的数字)只有通过物理过程才有可能,如原子衰变或掷骰子,这些过程或者因为很难获得,或者因为太慢而无法用于计算机模拟(尽管它们可以从 [NIST 随机性信标](https://www.nist.gov/programs-projects/nist-randomness-beacon%5D)中获得)。 -一般来说,我们使用通过计算机算法产生的*伪随机数*,而不是真正的随机数;从很难预测的意义上来说,这些数字看起来是随机的,但实际上这一系列数字会在某个时候重复出现。例如,r 中使用的随机数生成器会在219937-12^{19937}-1数字后重复。这远远超过了宇宙历史中的秒数,我们通常认为这对于统计分析的大多数目的来说是没问题的。 +一般来说,我们使用通过计算机算法产生的*伪随机数*,而不是真正的随机数;从很难预测的意义上来说,这些数字看起来是随机的,但实际上这一系列数字会在某个时候重复出现。例如,R语言中使用的随机数生成器会在219937-12^{19937}-1次后重复。这远远超过了宇宙的生命周期(以秒为单位),我们通常认为这对于以统计分析为目的的业务场景来应用是没问题的。 大多数统计软件都包括为每个主要概率分布生成随机数的功能,例如均匀分布(0 到 1 之间的所有值相等)、正态分布和二项式分布(例如掷骰子、掷硬币)。图 [8.1](#fig:rngExamples) 显示了从均匀分布函数和正态分布函数生成的数字示例。 @@ -59,13 +59,13 @@ ## 8.4 使用蒙特卡罗模拟 -让我们回到考试结束时间的例子。假设我管理三次测验,并记录每个学生每次考试的完成时间,这可能看起来像图 [8.2](#fig:finishingTimes) 中呈现的分布。 +让我们回到课堂测试时间的例子。假设我观测三次测验,并记录每个学生每次考试的完成时间,这可能看起来像图 [8.2](#fig:finishingTimes) 中呈现的分布。 ![Simulated finishing time distributions.](img/file44.png) 图 8.2:模拟的结束时间分布。 -要回答我们的问题,我们真正想知道的不是完成时间的分布是什么样的,而是每次测验的最长完成时间的分布是什么样的。为了做到这一点,我们可以模拟一个测验的结束时间,假设结束时间是正态分布的,如上所述;对于每个模拟测验,我们会记录最长的完成时间。我们大量重复这种模拟(5000 次应该足够了)并记录完成次数的分布,如图 [8.3](#fig:finishTimeSim) 所示。 +现在想想我们想要回答的问题,我们真正想知道的不是完成时间的分布是什么样的,而是每次测验的最长完成时间的分布是什么样的。为了做到这一点,我们可以模拟一个测验的结束时间,假设结束时间是正态分布的,如上所述;对于每个模拟测验,我们会记录最长的完成时间。我们大量重复这种模拟(5000 次应该足够了)并记录完成次数的分布,如图 [8.3](#fig:finishTimeSim) 所示。 ![Distribution of maximum finishing times across simulations.](img/file45.png) @@ -83,11 +83,11 @@ -### 8.5.1 计算自举 +### 8.5.1 计算bootstrap -在前一章中,我们使用了均值的抽样分布知识来计算均值的标准误差。但是如果我们不能假设估计值是正态分布的,或者我们不知道它们的分布,那该怎么办呢?bootstrap 的想法是使用数据本身来估计答案。这个名字来源于自力更生的想法,表达了我们没有任何外部杠杆来源,所以我们必须依赖数据本身的想法。自举法是由斯坦福大学统计系的布拉德利·埃夫隆提出的,他是世界上最有影响力的统计学家之一。 +在前一章中,我们使用了均值的抽样分布知识来计算均值的标准误差。但是如果我们不能假设估计值是正态分布的,或者我们不知道它们的分布,那该怎么办呢?bootstrap 的想法是使用数据本身来估计答案。这个名字来源于自我提升的想法,表达了我们没有任何外部杠杆来源,所以我们必须依赖数据本身的想法。自举法是由斯坦福大学统计系的布拉德利·埃夫隆提出的,他是世界上最有影响力的统计学家之一。 -bootstrap 背后的想法是我们从实际的数据集中重复采样;重要的是,我们用替换的对*进行采样,这样同一个数据点通常会在一个样本中出现多次。然后,我们计算每个 bootstrap 样本的感兴趣的统计量,并使用这些估计值的分布作为我们的采样分布。在某种意义上,我们将特定的样本视为整个总体,然后用替换重复采样,以生成我们的分析样本。这使得我们的特定样本是总体的准确反映的假设,这对于较大的样本可能是合理的,但是当样本较小时可能会失效。* +bootstrap 背后的想法是我们从实际的数据集中重复采样;重要的是,我们用替换的对进行采样,这样同一个数据点通常会在一个样本中出现多次。然后,我们计算每个 bootstrap 样本的感兴趣的统计量,并使用这些估计值的分布作为我们的采样分布。在某种意义上,我们将特定的样本视为整个总体,然后用替换重复采样,以生成我们的分析样本。这使得我们的特定样本是总体的准确反映的假设,这对于较大的样本可能是合理的,但是当样本较小时可能会失效。 让我们从使用 bootstrap 估计 NHANES 数据集中成人身高平均值的抽样分布开始,这样我们就可以将结果与我们之前讨论的平均值的标准误差(SEM)进行比较。 @@ -110,15 +110,15 @@ bootstrap 背后的想法是我们从实际的数据集中重复采样;重要 * 描述蒙特卡罗模拟的概念。 * 描述统计学中随机性的含义 * 描述伪随机数是如何产生的 -* 描述引导数据库的概念 +* 描述bootstrap法的概念 -## 8.7 建议读数 +## 8.7 建议书籍 -* 计算机时代的统计推断:算法、证据和数据科学 +* Bradley Efron and Trevor Hastie写的:《计算机时代的统计推断:算法、证据和数据科学》 diff --git a/docs/09.md b/docs/09.md index 691b0eb..3942105 100644 --- a/docs/09.md +++ b/docs/09.md @@ -4,7 +4,7 @@ 在第一章中,我们讨论了统计学的三个主要目标: -* 形容 +* 描述 * 决定 * 预测 @@ -14,9 +14,9 @@ ## 9.1 零假设统计检验(NHST) -我们将要讨论的假设检验的具体类型被称为*零假设统计检验* (NHST)。如果你拿起几乎任何科学或生物医学研究出版物,你会看到 NHST 被用来测试假设,在他们的心理学入门教科书中,格里克&津巴多(2002)将 NHST 称为“心理学研究的支柱”。因此,学习如何使用和解释假设检验的结果对于理解许多研究领域的结果是至关重要的。 +我们将要讨论的假设检验,具体来说是*零假设统计检验* (NHST)。如果随手翻基本关于科学或生物医学研究出版物,你都会看到 NHST 被用来测试假设,在心理学入门教科书中,格里克&津巴多(2002)将 NHST 称为“心理学研究的支柱”。因此,学习如何使用和解释假设检验的结果对于理解许多研究领域的结果是至关重要的。 -然而,让你知道 NHST 有很深的缺陷也很重要,许多统计学家和研究人员(包括我自己)认为这是科学中严重问题的原因,我们将在第 18 章讨论。50 多年来,一直有人呼吁放弃 NHST 而采用其他方法(比如我们将在以下章节中讨论的方法): +然而,同时也一定要让你知道NHST也有很多不足之处,许多统计学家和研究人员(包括我自己)认为这是科学中严重问题的原因,我们将在第 18 章讨论。50 多年来,一直有人呼吁放弃 NHST 而采用其他方法(比如我们将在以下章节中讨论的方法): * “心理学研究中的统计显著性检验可以被看作是研究过程中一种基本的盲目行为的一个例子”(巴坎,1966) * 假设检验是“关于什么构成科学进步的错误观点”(卢斯,1988) @@ -29,13 +29,13 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 ## 9.2 零假设统计检验:一个例子 -人们对警察使用随身携带的相机很感兴趣,认为这可以减少武力的使用,改善警察的行为。然而,为了证明这一点,我们需要实验证据,而政府使用随机对照试验来检验这些想法已经变得越来越普遍。2015/2016 年,华盛顿州、DC 政府和 DC 大都会警察局进行了一项关于体戴相机有效性的随机对照试验。军官们被随机分配佩戴或不佩戴随身摄像机,然后随着时间的推移,他们的行为被跟踪,以确定摄像机是否导致更少使用武力和更少的平民对军官行为的投诉。 +人们对警察使用随身携带的相机很感兴趣,认为这可以减少武力的使用,避免警察的暴力执法。然而,为了证明这一点,我们需要实验证据来支撑,而政府使用随机对照试验来检验这些想法已经变得越来越普遍。2015/2016 年,华盛顿州、DC政府和DC大都会警察局进行了一项关于体戴相机有效性的随机对照试验。警察们被随机分配佩戴或不佩戴随身摄像机,然后对他们随后执法行为进行了一段时间的跟踪调查,以确定摄像机是否导致更少使用武力和更少的平民对警察暴力执法行为的投诉。 -在我们得到结果之前,让我们问一下你认为统计分析可能如何工作。比方说,我们想具体测试佩戴摄像头是否会减少使用武力的假设。随机对照试验为我们提供了检验假设的数据——即被分配到摄像机组或对照组的官员使用武力的比率。下一个明显的步骤是查看数据,并确定它们是否为这一假设提供了令人信服的证据。那就是:给定数据和我们所知道的一切,随身携带的相机减少武力使用的可能性有多大? +在我们得到结果之前,让我们问一下你认为统计分析工作具体该如何开展。比方说,我们想具体验证佩戴摄像头是否会减少使用武力的假设。随机对照试验为我们提供了检验假设的数据——即被分配到摄像机组或对照组的警察使用武力的比率。然后明显的步骤是查看数据,并确定它们是否为这一假设提供了令人信服的证据。那就是:给定数据和我们所知道的一切,随身携带的相机减少武力使用的可能性有多大? -原来这是*而不是*零假设检验的工作方式。相反,我们首先采用我们感兴趣的假设(即,体戴式相机减少使用武力),并将其颠倒过来,创建一个*无效假设*——在这种情况下,无效假设将是相机不会减少使用武力。重要的是,我们假设零假设是真的。然后,我们查看数据,并确定如果零假设为真,数据的可能性有多大。如果数据在零假设下不太可能,我们可以拒绝零假设,而选择另一个假设*作为我们感兴趣的假设。如果没有足够的证据来拒绝零,那么我们说我们保留(或“未能拒绝”)零,坚持我们最初的假设,即零是真实的。* +这是**反证法**零假设检验的工作方式。相反,我们首先采用我们感兴趣的假设(即,体戴式相机减少使用武力),并将其颠倒过来,创建一个*无效假设*——在这种情况下,假设是相机不会减少使用武力。重要的是,我们假设零假设是真的。然后,我们查看数据,并确定如果零假设为真,数据的可能性有多大。如果数据在零假设下不太可能,我们可以拒绝零假设,而选择另一个假设*作为我们感兴趣的假设。如果没有足够的证据来拒绝零,那么我们说我们保留(或“未能拒绝”)零,坚持我们最初的假设,即零是真实的。* -理解 NHST 的一些概念,尤其是臭名昭著的“p 值”,在你第一次遇到它们时总是充满挑战,因为它们太反直觉了。正如我们将在后面看到的,还有其他方法提供了一种更直观的方法来处理假设检验(但是有它们自己的复杂性)。然而,在我们讨论这些之前,对你来说,深入了解假设检验的工作原理是很重要的,因为它显然不会很快消失。 +理解 NHST 的一些概念,尤其是臭名昭著的“p 值”,在你第一次遇到它们时总是充满挑战,因为它们太反直觉了。正如我们将在后面看到的,还有其他方法提供了一种更直观的方法来处理假设检验(但是有它们自己的复杂性)。然而,在我们讨论这些之前,对你来说,深入了解假设检验的工作原理是很重要的,这些理论知识不会随时间而消逝。 @@ -47,20 +47,19 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 1. 制定一个体现我们预测的假设(*在看到数据*之前) 2. 指定无效假设和替代假设 -3. 收集一些与假设相关的数据 +3. 收集一些与假设相关的数据Ijjjkk 4. 根据代表替代假设的数据拟合模型,并计算检验统计量 5. 假设零假设为真,计算该统计的观察值的概率 6. 评估结果的“统计显著性” -举个动手的例子,让我们用 NHANES 的数据提出以下问题:身体活动与身体质量指数有关吗?在 NHANES 数据集中,参与者被问及他们是否定期参加中等或剧烈强度的体育、健身或娱乐活动(存储在变量PhysActIvephy active研究人员还测量了身高和体重,并用它们来计算身体质量指数(身体质量指数): - -【B3】【b】【m】【I】=w +举个动手的例子,让我们用 NHANES 的数据提出以下问题:身体活动与身体质量指数有关吗?在 NHANES 数据集中,参与者被问及他们是否定期参加中等或剧烈强度的体育、健身或娱乐活动。研究人员还测量了身高和体重,并用它们来计算体脂比: +![bmi](img/bmi.png) ### 9.3.1 第一步:制定感兴趣的假设 -我们假设不参加体育活动的人比参加体育活动的人身体质量指数更大。 +我们假设不参加体育活动的人比参加体育活动的人身体素质更好。 @@ -68,23 +67,23 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 ### 9.3.2 步骤 2:指定无效假设和替代假设 -对于步骤 2,我们需要指定我们的零假设(我们称之为H0H _ 0)和我们的替代假设(我们称之为AH _ A)。H0H _ 0是我们测试我们感兴趣的假设的基线:也就是说,如果没有影响,我们会期望数据看起来像什么?零假设总是涉及到某种等式(=,\乐 ,或者\葛 )。HAH _ A描述了如果确实存在一种效果,我们所期望的。备择假设总是涉及到某种不等式(\ ne、>或<)。重要的是,零假设检验是在假设零假设为真的情况下进行的,除非证据显示并非如此。 +对于步骤 2,我们需要指定我们的零假设(我们称之为H0)和我们的替代假设(我们称之为HA)。H0是我们测试我们感兴趣的假设的基线:也就是说,如果没有影响,我们会期望数据看起来像什么?零假设总是涉及到某种等式(等于、大于等于、小于等于)。HA描述了如果确实存在一种效果,我们所期望的。总是涉及到某种不等式(不等于、大于、小于)。重要的是,零假设检验是在假设零假设为真的情况下进行的,除非证据显示并非如此。 -我们还必须决定是否要测试一个*方向性*或*非方向性*假设。一个无方向性的假设,只是简单的预测会有差异,而没有预测会往哪个方向走。对于身体质量指数/活动的例子,无方向性的零假设是: +我们还必须决定是否要测试一个*方向性*或*无方向性*假设。一个无方向性的假设,只是简单的预测会有差异,而没有预测会往哪个方向走。对于身体质量指数/活动的例子,无方向性的零假设是: -【h】【0】:【b】【m】 +![h0](img/h0.png) 相应的无方向性替代假设是: -【h】【a】:【b】【m】 +![ha](img/ha.png) 另一方面,方向假说预测了差异的走向。例如,我们有很强的先验知识来预测从事体育活动的人应该比不从事体育活动的人体重轻,因此我们将提出以下方向性零假设: -【h】【0】:【b】【m】 +![h0n](img/h0n.png) 和方向选择: -【h】【a】:【b】【m】 +![han](img/han.png) 正如我们将在后面看到的,测试一个非方向性假设更为保守,所以这通常是首选,除非有一个强有力的*先验*理由来假设一个特定方向上的效应。假设,包括它们是否有方向性,应该总是在查看数据之前指定! @@ -97,7 +96,8 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 在这种情况下,我们将从 NHANES 数据集中抽取 250 个样本。图 [9.1](#fig:bmiSample) 显示了这样一个样本的例子,身体质量指数分别显示了活跃和不活跃的个人,表 [9.1](#tab:summaryTable) 显示了每个组的汇总统计数据。 Table 9.1: Summary of BMI data for active versus inactive individuals -| 物理活性的 | 普通 | 意思是 | 存储卡 | + +| PhysActive | N | mean | sd | | --- | --- | --- | --- | | 不 | One hundred and thirty-one | Thirty | Nine | | 是 | One hundred and nineteen | Twenty-seven | Five point two | @@ -115,14 +115,13 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 接下来,我们想用这些数据来计算一个统计量,最终让我们决定是否拒绝零假设。要做到这一点,模型需要量化相对于数据可变性的支持替代假设的证据数量。因此,我们可以认为检验统计量提供了与数据可变性相比的效果大小的度量。一般来说,这个检验统计量会有一个与之相关的概率分布,因为这允许我们确定我们的统计量的观察值在零假设下的可能性有多大。 在身体质量指数的例子中,我们需要一个检验统计量来检验两个均值之间的差异,因为假设是以每组的身体质量指数均值来表述的。经常用来比较两个平均值的一个统计数据是统计学家威廉·西利·戈塞特(William Sealy Gossett)首先提出的 *t* 统计数据,他为都柏林的吉尼斯啤酒厂工作,并以“学生”为笔名写作——因此,它通常被称为“学生的 *t* 统计数据”。当样本量相对较小且总体标准差未知时, *t* 统计量适用于比较两组的平均值。用于比较两个独立组的 *t* 统计量计算如下: +![t-student](img/t-student.png) -= n【t = \ frac】{ \ bar { x _ 1 }-\ bar { x _ 2 } } { \ sqrt }+\ frac { s _ 1 ^ 2 } { n _ 1 }+\ frac - -其中x1\ bar { x } _ 1x2\ bar { x } _ 2是两者的意思 因为两个自变量之差的方差是每个单个变量的方差之和(vAr(AB=v +vAr(B)var(A-B)= var(A)+var(B)【T141),我们添加的方差为 因此,人们可以将 *t* 统计视为一种量化组间差异相对于均值间差异的抽样可变性有多大的方法。 +其中X1,X2是两个变量的均值,s1平方和s2平方是两个变量的方差,n1和n2是两个变量的总数,因为两个自变量之差的方差是每个单个变量的方差之和,我们添加的方差为 从而人们可以将*t*统计视为一种量化组间差异相对于均值间差异的抽样可变性有多大的方法。 根据被称为 *t* 分布的概率分布来分布 *t* 统计量。 *t* 分布看起来非常类似于正态分布,但是它根据自由度的数量而不同。当自由度较大时(比如 1000),那么 *t* 分布看起来基本上像正态分布,但是当自由度较小时 *t* 分布比正态分布具有更长的尾部(见图 [9.2](#fig:tVersusNormal) )。在最简单的情况下,各组大小相同且方差相等,因为我们计算了两个平均值,因此放弃了两个自由度,所以 *t* 测试的自由度为观察值减 2。在这种情况下,从箱线图可以很清楚地看出,不活动组比活动组更易变,每组中的数字也不同,因此我们需要使用稍微复杂一点的自由度公式,这通常被称为“韦尔奇 t 检验”。公式是: -d f =(S12T30】n1+S22 2(S12/n1) 2n1—T97】1+(S22n21【mathrm { d . f . } = \frac{\left(\frac{s_1^2}{n_1}+\frac{s_2^2}{n_2}\right)^2}{\frac{\left(s_1^2/n_1\right)^2}{n_1-1}+\frac{\left(s_2^2/n_2\right)^2}{n_2-1}} 这将等于n1+n2-2n _ 1 对于本例,得出的值为 241.12,略低于从样本量中减去 2 得到的值 248。 +![df](img/df.png) ![Each panel shows the t distribution (in blue dashed line) overlaid on the normal distribution (in solid red line). The left panel shows a t distribution with 4 degrees of freedom, in which case the distribution is similar but has slightly wider tails. The right panel shows a t distribution with 1000 degrees of freedom, in which case it is virtually identical to the normal.](img/file48.png) @@ -134,27 +133,29 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 ### 9.3.5 第五步:确定零假设下观察结果的概率 -这是 NHST 开始违背我们直觉的一步。我们不是确定给定数据的零假设为真的可能性,而是确定在零假设下观察到的统计数据至少与我们观察到的统计数据一样极端的可能性,因为我们一开始就假设零假设为真!要做到这一点,我们需要知道在零假设下统计的期望概率分布,这样我们就可以问在该分布下结果的可能性有多大。注意,当我说“结果会有多可能”时,我真正的意思是“观察到的结果或一个更极端的结果会有多可能”。(至少)有两个原因让我们需要添加这个警告。首先,当我们谈论连续值时,任何特定值的概率都是零(如果你上过微积分课,你可能还记得)。更重要的是,我们试图确定如果零假设是真的,我们的结果会有多奇怪,任何更极端的结果都会更奇怪,所以当我们计算零假设下的结果的概率时,我们希望计算所有这些更奇怪的可能性。 +这是 NHST 开始违背我们直觉的一步。我们不是确定给定数据的零假设为真的可能性,而是确定在零假设下观察到的统计数据至少与我们观察到的统计数据一样极端的可能性,因为我们一开始就假设零假设为真!要做到这一点,我们需要知道在零假设下统计的期望概率分布,这样我们就可以问在该分布下结果的可能性有多大。注意,当我说“结果会有多可能”时,我真正的意思是“观察到的结果或一个更极端的结果会有多可能”。(至少)有两个原因让我们特别小心。首先,当我们谈论连续值时,任何特定值的概率都是零(如果你上过微积分课,你可能还记得)。更重要的是,我们试图确定如果零假设是真的,我们的结果会有多奇怪,任何更极端的结果都会更奇怪,所以当我们计算零假设下的结果的概率时,我们希望计算所有这些更奇怪的可能性。 我们可以使用理论分布(如 *t* 分布)或使用随机化来获得这个“零分布”。在我们转到身体质量指数的例子之前,让我们从一些更简单的例子开始。 -#### 9.3.5.1 P 值:一个非常简单的例子 +#### 9.3.5.1 P 值:举个非常简单的例子 -让我们说,我们希望确定一个特定的硬币是否偏向着陆头。为了收集数据,我们将硬币抛 100 次,假设我们数了 70 个头。在这个例子中, H0:P(Heads)0.5H \le 0.5HA:P(HAds) 我们接下来想问的问题是:如果正面的真实概率是 0.5,我们在 100 次抛硬币中观察到 70 个或更多正面的可能性有多大?我们可以想象这种情况偶尔会发生,但似乎不太可能。为了量化这个概率,我们可以使用*二项分布*: +让我们现在来思考这样一个问题,我们希望确定一个特定的硬币是否正面朝上的概率比较大。为了收集数据,我们将硬币抛 100 次,假设我们数了70次正面朝上。在这个例子中,![h0coin](img/h0coin.png)![hacoin](img/hacoin.png) 我们接下来想问的问题是:如果正面的真实概率是 0.5,我们在 100 次抛硬币中观察到 70 个或更多正面的可能性有多大?我们可以想象这种情况偶尔会发生,但似乎不太可能。为了量化这个概率,我们可以使用*二项分布*: -P(Xk)=I=0k( pI(1—t59】p)(n—t71】I 这个等式将告诉我们一定数量的人头(kk)或更少的概率,给定特定概率的人头(【T97)和事件数( N ) 然而,我们真正想知道的是某个数字或更多数字的概率,我们可以根据概率规则通过从一个数字中减去一个数字来获得: +![poly](img/poly-distribute.png) -【p】(【x】【k】 +这个等式将告诉我们一定次数(k)或更少次数的朝上概率,给定特定概率的正面朝上的概率p和事件次数N。然而,我们真正想知道的是某个次数或更多次数的概率,我们可以根据概率规则通过从一个数字中减去一个数字来获得,如下面的公式所示: + +![not-p](img/not-p.png) ![Distribution of numbers of heads (out of 100 flips) across 100,000 simulated runs with the observed value of 70 flips represented by the vertical line.](img/file49.png) -图 9.3:100,000 次模拟运行中的头数分布(100 次翻转中),观察到的 70 次翻转值用垂直线表示。 +图 9.3:模拟100,000次实验,100枚硬币正面朝上的次数分布情况,观察到的70次翻转值用垂直线表示。 -使用二项式分布,给定 P(头数)=0.5,69 头或更少头的概率是 0.999961,因此 70 头或更多头的概率就是 1 减去该值(0.000039)。这个计算告诉我们,如果硬币确实是公平的,得到 70 或更多人头的可能性非常小。 +使用二项式分布,给定 P(正面朝上)=0.5,69次正面朝上或更少次数正面朝上的概率是0.999961,因此70次正面朝上或更多次数正面朝上的概率就是1减去该值(0.000039)。这个计算告诉我们,如果硬币确实是公平的,得到70或更多次数正面朝上的的可能性非常小。 -现在,如果我们没有一个标准的函数来告诉我们人头数的概率呢?我们可以通过模拟来确定它——我们使用 0.5 的真实概率重复投掷硬币 100 次,然后计算这些模拟运行中人头数量的分布。图 [9.3](#fig:coinFlips) 显示了模拟的结果。这里我们可以看到,通过模拟计算的概率(0.000030)非常接近理论概率(0.000039)。 +现在,如果我们没有一个标准的函数来告诉我们正面朝上的概率呢?我们可以通过模拟来确定它——我们使用 0.5 的真实概率重复投掷硬币 100 次,然后计算这些模拟运行中人头数量的分布。图 [9.3](#fig:coinFlips) 显示了模拟的结果。这里我们可以看到,通过模拟计算的概率(0.000030)非常接近理论概率(0.000039)。 @@ -162,13 +163,13 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 #### 9.3.5.2 使用 *t* 分布计算 p 值 -现在,让我们使用 *t* 分布来计算身体质量指数示例的 p 值。首先,我们使用上面计算的样本值来计算 *t* 统计量,我们发现 t = 3.86。我们接下来想问的问题是:如果组间的真实差异为零或更小(即方向性零假设),我们找到这种规模的 *t* 统计量的可能性有多大? +现在,让我们使用 *t* 分布来计算体脂比的p值。首先,我们使用上面计算的样本值来计算 *t* 统计量,我们发现 t = 3.86。我们接下来想问的问题是:如果组间的真实差异为零或更小(即方向性零假设),我们找到这种规模的 *t* 统计量的可能性有多大? -我们可以用 *t* 分布来确定这个概率。上面我们注意到合适的自由度(校正方差和样本大小的差异后)是 t = 241.12。我们可以使用统计软件中的函数来确定找到大于或等于我们观察值的 *t* 统计值的概率。我们发现 p(t > 3.86,df = 241.12) = 0.000072,这告诉我们,如果零假设真的为真,我们观察到的 *t* 统计值 3.86 是相对不可能的。 +我们可以用 *t* 分布来确定这个概率。上面我们注意到合适的自由度(校正方差和样本大小的差异后)是 t = 241.12。我们可以使用统计软件中的函数来确定找到大于或等于我们观察值的 *t* 统计值的概率。我们发现 p(t > 3.86,df = 241.12) = 0.000072,这告诉我们,如果零假设为真,我们观察到的 *t* 统计值3.86是不可能的。 -在这种情况下,我们使用了方向假设,所以我们只需要查看零分布的一端。如果我们想测试一个无方向性的假设,那么我们就需要能够识别出这种效应的大小有多出乎意料,而不管它的方向如何。在 t 检验的上下文中,这意味着我们需要知道统计数据在正向或负向出现极端的可能性有多大。为此,我们将观察到的 *t* 值乘以-1,因为 *t* 分布以零为中心,然后将两个尾部概率加在一起,得到一个*双尾* p 值:p(t > 3.86 或 t < -3.86,df = 241.12) = 0.000145。这里我们看到,双尾检验的 p 值是单尾检验的两倍,这反映了一个事实,即一个极值不那么令人惊讶,因为它可能发生在任一方向上。 +在这种情况下,我们使用了有方向假设,所以我们只需要查看零分布的一端。如果我们想测试一个无方向性的假设,那么我们就需要能够识别出这种局面的可能性大小有多出乎意料,而不管它的方向如何。在 t 检验的上下文中,这意味着我们需要知道统计数据在正向或负向出现极端的可能性有多大。为此,我们将观察到的 *t* 值乘以-1,因为 *t* 分布以零为中心,然后将两个尾部概率加在一起,得到一个*双尾* p 值:p(t > 3.86 或 t < -3.86,df = 241.12) = 0.000145。这里我们看到,双尾检验的 p 值是单尾检验的两倍,这反映了一个事实,即一个极值不那么令人惊讶,因为它可能发生在任一方向上。 -如何选择是使用单尾检验还是双尾检验?双尾检验总是更加保守,所以使用双尾检验总是一个好的选择,除非你有非常充分的理由使用单尾检验。在这种情况下,你应该在查看数据之前写下假设。在第 [18](#doing-reproducible-research) 章中,我们将讨论假设预登记的想法,这是在你看到实际数据之前写下假设的正式想法。你应该*永远不要*在看过数据后就决定如何进行假设检验,因为这会给结果带来严重的偏差。 +如何选择是使用单尾检验还是双尾检验?双尾检验总是更加保守,所以使用双尾检验总是一个好的选择,除非你有非常充分的理由使用单尾检验。在这种情况下,你应该看一下你在探索数据之前写下假设。在第 [18](#doing-reproducible-research) 章中,我们将讨论假设预登记的想法,这是在你看到实际数据之前写下假设的正式想法。你应该*永远不要*在看过数据后就决定如何进行假设检验,因为这会给结果带来严重的偏差。 @@ -184,25 +185,33 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 #### 9.3.5.4 随机化:一个简单的例子 -让我们从一个简单的例子开始。假设我们想比较足球运动员和越野跑运动员的平均下蹲能力, 同H0:μFBμXCH _ 0:\ mu HA:μFB>μX 我们测量 5 名足球运动员和 5 名越野跑运动员的最大下蹲能力(我们会随机产生,假设μFB=300\ mu _ { FB } = 300 μXC=140\ mu _ { XC } = 140,以及σ【T126 数据见表 [9.2](#tab:squatPlot) 。 +让我们从一个简单的例子开始。假设我们想比较足球运动员和越野跑步运动员的平均下蹲能力,有方向检验假设和无方向检验假设如下: + +![h0-ha](./img/h0-ha.png) + +我们测量 5 名足球运动员和 5 名越野跑运动员的最大下蹲能力(我们会随机产生,假设 +![ufb](./img/ufb.png) +具体数据见表 [9.2](#tab:squatPlot) 。 + Table 9.2: Squatting data for the two groups -| 组 | 蹲着的 | shuffledSquat | + +| group | squat | shuffledSquat | | --- | --- | --- | -| 运货单(freight bill) | Two hundred and sixty-five | One hundred and twenty-five | -| 运货单(freight bill) | Three hundred and ten | Two hundred and thirty | -| 运货单(freight bill) | Three hundred and thirty-five | One hundred and twenty-five | -| 运货单(freight bill) | Two hundred and thirty | Three hundred and fifteen | -| 运货单(freight bill) | Three hundred and fifteen | One hundred and fifteen | -| 容抗 | One hundred and fifty-five | Three hundred and thirty-five | -| 容抗 | One hundred and twenty-five | One hundred and fifty-five | -| 容抗 | One hundred and twenty-five | One hundred and twenty-five | -| 容抗 | One hundred and twenty-five | Two hundred and sixty-five | -| 容抗 | One hundred and fifteen | Three hundred and ten | +| FB | Two hundred and sixty-five | One hundred and twenty-five | +| FB | Three hundred and ten | Two hundred and thirty | +| FB | Three hundred and thirty-five | One hundred and twenty-five | +| FB | Two hundred and thirty | Three hundred and fifteen | +| FB | Three hundred and fifteen | One hundred and fifteen | +| XC | One hundred and fifty-five | Three hundred and thirty-five | +| XC | One hundred and twenty-five | One hundred and fifty-five | +| XC | One hundred and twenty-five | One hundred and twenty-five | +| XC | One hundred and twenty-five | Two hundred and sixty-five | +| XC | One hundred and fifteen | Three hundred and ten | ![Left: Box plots of simulated squatting ability for football players and cross-country runners.Right: Box plots for subjects assigned to each group after scrambling group labels.](img/file50.png) -图 9.4:左图:足球运动员和越野跑运动员模拟蹲姿能力的方框图。右图:打乱组标签后分配到每个组的受试者的方框图。 +图 9.4:左图:足球运动员和越野跑运动员模拟蹲姿能力的箱线图。右图:打乱组标签后分配到每个组的受试者的箱线图。 从图 [9.4](#fig:squatPlot) 左侧的图中可以明显看出两组之间有很大的差异。我们可以做一个标准的 t 检验来检验我们的假设;对于这个例子,我们将在 R 中使用`t.test()`命令,它给出如下结果: @@ -232,9 +241,9 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 -##### 9.3.5.4.1 随机化:身体质量指数/活动实例 +##### 9.3.5.4.1 随机化:身体体脂比/活动实例 -现在,让我们使用随机化来计算身体质量指数/活动示例的 p 值。在这种情况下,我们将随机打乱`PhysActive`变量,并在每次打乱后计算各组之间的差异,然后将我们观察到的 *t* 统计数据与打乱数据集的 *t* 统计数据的分布进行比较。图 [9.6](#fig:simDiff) 显示了混洗样本中 *t* 值的分布,我们还可以计算出找到与观察值一样大或比观察值更大的值的概率。从随机化获得的 p 值(0.000000)非常类似于使用 *t* 分布获得的值(0.000075)。随机化检验的优点是,它不要求我们假设每个组的数据都是正态分布的,尽管 t 检验通常对违反该假设的情况非常稳健。此外,当我们没有像 t 检验那样的理论分布时,随机化检验可以允许我们计算统计的 p 值。 +现在,让我们使用随机化来计算身体质量指数/活动示例的 p 值。在这种情况下,我们将随机打乱`PhysActive`变量,并在每次打乱后计算各组之间的差异,然后将我们观察到的 *t* 统计数据与打乱数据集的 *t* 统计数据的分布进行比较。图 [9.6](#fig:simDiff) 显示了打乱样本中 *t* 值的分布,我们还可以计算出找到与观察值一样大或比观察值更大的值的概率。从随机化获得的 p 值(0.000000)非常类似于使用 *t* 分布获得的值(0.000075)。随机化检验的优点是,它不要求我们假设每个组的数据都是正态分布的,尽管 t 检验通常对违反该假设的情况非常稳健。此外,当我们没有像 t 检验那样的理论分布时,随机化检验可以允许我们计算统计的 p 值。 ![Histogram of t statistics after shuffling of group labels, with the observed value of the t statistic shown in the vertical line, and values at least as extreme as the observed value shown in lighter gray](img/file52.png) @@ -252,7 +261,7 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 ### 9.3.6 步骤 6:评估结果的“统计显著性” -下一步是确定上一步得出的 p 值是否足够小,以至于我们愿意拒绝零假设,并得出替代方案为真的结论。我们需要多少证据?这是统计学中最有争议的问题之一,部分原因是它需要主观判断——没有“正确”的答案。 +下一步是确定上一步得出的p值是否足够小,支持我们拒绝零假设,并得出替代方案为真的结论。我们需要多少证据?这是统计学中最有争议的问题之一,部分原因是它需要主观判断——没有“正确”的答案。 从历史上看,这个问题最常见的答案是,如果 p 值小于 0.05,我们应该拒绝零假设。这来自罗纳德·费雪的著作,他被称为“20 世纪统计学中最重要的人物” ( [Efron 1998](19.html#ref-efron1998) ) : @@ -264,7 +273,7 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 相反,p < .05 很可能成为一种惯例,这是因为在计算使计算统计数据的任意值的 p 值变得容易之前,依赖于使用的 p 值表。所有的表都有一个 0.05 的条目,这使得很容易确定一个人的统计值是否超过了达到该显著性水平所需的值。 -统计阈值的选择仍然存在很大争议,最近(Benjamin et al .,2018)有人建议将默认阈值从. 05 更改为. 005,使其更加严格,从而更难拒绝零假设。这一举动在很大程度上是由于人们越来越担心,从一个显著结果中获得的证据在<p<处相对薄弱;我们将在第 [18](#doing-reproducible-research) 章讨论再现性时回到这一点。 +统计阈值的选择仍然存在很大争议,最近(Benjamin et al .,2018)有人建议将默认阈值从. 05 更改为. 005,使其更加严格,从而更难拒绝零假设。这一举动在很大程度上是由于人们越来越担心,从一个显著结果中获得的证据在<p<处相对薄弱;我们将在第 [18](#doing-reproducible-research) 章讨论再现性时再看看这一点。 @@ -278,12 +287,12 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 为了理解尼曼和皮尔森提出的决策框架,我们首先需要讨论统计决策可能出现的结果。现实有两种可能的状态(H0H _ 0为真,或者H0H _ 0为假),以及两种可能的决策(拒绝H0【T33)有两种方法可以让我们做出正确的决定: -* 我们可以拒绝H0H _ 0当它为假时(在信号检测理论的语言中,我们称这为*击中* +* 我们可以拒绝H0H _ 0当它为假时(在信号检测理论的语言中,我们称这为*命中* * 我们可以保留H0H _ 0当它为真时(在这个上下文中有点令人困惑,这叫做*正确拒绝*) 我们还会犯两种错误: -* 我们可以拒绝H0H _ 0当它实际上是真的时候(我们称之为*虚警*,或*I 型错误* +* 我们可以拒绝H0H _ 0当它实际上是真的时候(我们称之为*虚假警告*,或*I 型错误* * 我们可以保留H0H _ 0当它实际上是假的时候(我们称这个为*错过*,或者*类型二错误* 奈曼和皮尔森创造了两个术语来描述这两种错误的长期概率: @@ -301,7 +310,7 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 ### 9.3.7 重大结果是什么意思? -关于 p 值的实际含义有很大的混乱(Gigerenzer,2004)。假设我们做了一个实验,比较不同条件下的平均值,我们发现一个 p 值为 0.01 的差异。人们可能会有几种可能的解释。 +关于 p 值的实际含义有很大的争议(Gigerenzer,2004)。假设我们做了一个实验,比较不同条件下的平均值,我们发现一个 p 值为 0.01 的差异。人们可能会有几种可能的解释。 @@ -315,8 +324,7 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 #### 9.3.7.2:这是否意味着你做出错误决定的概率是 0.01? -不.这将是P(H0|data)P(H _ 0 | data)但记住为 - +不.这将是P(H0|data)P(H _ 0 | data)但请记住,如上所述,p值为H0下数据的概率,而不是假设的概率。 @@ -349,9 +357,9 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 ## 现代背景下的 NHST:多重考验 -到目前为止,我们已经讨论了我们感兴趣的测试单个统计假设的例子,这与通常一次只测量几个变量的传统科学是一致的。然而,在现代科学中,我们经常可以测量每个人的数百万个变量。例如,在量化整个基因组的遗传研究中,每个个体可能有数百万个测量值,而在我的小组所做的脑成像研究中,我们经常同时从大脑中超过 100,000 个位置收集数据。当在这些环境中应用标准假设检验时,除非我们采取适当的措施,否则会发生不好的事情。 +到目前为止,我们已经讨论了我们感兴趣的测试单个统计假设的例子,这与通常一次只测量几个变量的传统科学是一致的。然而,在现代科学中,我们经常可以测量每个人的数百万个特征变量。例如,在量化整个基因组的遗传研究中,每个个体可能有数百万个测量值,而在我的小组所做的脑成像研究中,我们经常同时从大脑中超过 100,000 个位置收集数据。当在这些环境中应用标准假设检验时,除非我们采取适当的措施,否则会发生不好的事情。 -让我们看一个例子来看看这是如何工作的。人们对了解可能使个体易患精神分裂症等重大精神疾病的遗传因素有很大兴趣,因为我们知道,患有精神分裂症的个体之间约 80%的差异是由于遗传差异。人类基因组计划和随之而来的基因组科学革命提供了工具来检查人类在基因组上的许多不同之处。近年来使用的一种方法被称为*全基因组关联研究* (GWAS),其中每个人的基因组在一百万或更多的地方被表征,以确定他们在每个位置具有遗传密码的哪些字母,重点关注人类往往经常不同的位置。在确定这些之后,研究人员在基因组的每个位置进行了统计测试,以确定被诊断患有精神分裂症的人是否更有可能或更不可能在该位置具有特定版本的遗传序列。 +让我们看一个例子来看看这是如何工作的。人们对了解可能使个体患上精神分裂症等重大精神疾病的遗传因素有很重要的意义,因为我们知道,患有精神分裂症的个体之间约 80%的差异是由于遗传差异。人类基因组计划和随之而来的基因组科学革命提供了工具来检查人类在基因组上的许多不同之处。近年来使用的一种方法被称为*全基因组关联研究* (GWAS),其中每个人的基因组在一百万或更多的地方被表征,以确定他们在每个位置具有遗传密码的哪些字母,重点关注人类往往经常不同的位置。在确定这些之后,研究人员在基因组的每个位置进行了统计测试,以确定被诊断患有精神分裂症的人是否更有可能或更不可能在该位置具有特定版本的遗传序列。 让我们想象一下,如果研究人员只是简单地问测试在来自零分布的 p <.05 at="" each="" location="" when="" in="" fact="" there="" is="" no="" true="" effect="" any="" of="" the="" locations.="" to="" do="" this="" we="" generate="" a="" large="" number="" simulated="" xmlns:epub="http://www.idpf.org/2007/ops"> t 值处是否显著,并问其中有多少在 p<0.05 处显著,会发生什么。让我们这样做很多次,每次都计算出有多少测试结果是显著的(见图 [9.8](#fig:nullSim) )。 @@ -359,7 +367,7 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 图 9.8:左图:当实际上没有真实效果时,每组一百万个统计测试中显著结果数量的直方图。右图:对多个测试应用 Bonferroni 校正后,所有模拟运行的重要结果数量的直方图。 -这表明,在每次运行中,大约 5%的测试是显著的,这意味着如果我们使用 p< .05 as our threshold for statistical significance, then even if there were no truly significant relationships present, we would still “find” about 500 genes that were seemingly significant in each study (the expected number of significant results is simply n*αn * \α)。这是因为虽然我们控制了每个测试的错误,但是我们没有控制整个*系列*测试的错误率(称为*系列错误*),如果我们要查看大量测试的结果,这是我们真正想要控制的。使用 p < .05,我们在上面例子中的家庭误差率是 1——也就是说,我们几乎可以保证在任何特定的研究中至少犯一个错误。 +这表明,在每次运行中,大约 5%的测试是显著的,这意味着如果我们使用 p< .05作为我们的阈值。这是因为虽然我们控制了每个测试的错误,但是我们没有控制整个*系列*测试的错误率(称为*系列错误*),如果我们要查看大量测试的结果,这是我们真正想要控制的。使用 p < .05,我们在上面例子中的家庭误差率是 1——也就是说,我们几乎可以保证在任何特定的研究中至少犯一个错误。 控制家族误差的一个简单方法是将α水平除以测试次数;这就是所谓的 *Bonferroni* 修正,以意大利统计学家 Carlo Bonferroni 命名。使用上面例子中的数据,我们在图 [9.8](#fig:nullSim) 中看到,只有大约 5%的研究使用 0.000005 的校正α水平而不是 0.05 的名义水平显示出任何显著的结果。我们已经有效地控制了家族误差,因此在我们的研究中出现任何*误差的概率被控制在 0 . 05 左右。* @@ -380,9 +388,9 @@ NHST 也被广泛误解,主要是因为它违背了我们关于统计假设检 -## 9.6 建议读数 +## 9.6 建议 -* [Gerd Gigerenzer 的无脑统计](https://library.mpib-berlin.mpg.de/ft/gg/GG_Mindless_2004.pdf) +* [Gerd Gigerenzer编写的 《统计之禅》](https://library.mpib-berlin.mpg.de/ft/gg/GG_Mindless_2004.pdf) diff --git a/docs/img/bmi.png b/docs/img/bmi.png new file mode 100644 index 0000000000000000000000000000000000000000..df6c07fdd08ba39ee818cce89486eb885bba353c GIT binary patch literal 6792 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 literal 0 HcmV?d00001 diff --git a/docs/img/df.png b/docs/img/df.png new file mode 100644 index 0000000000000000000000000000000000000000..d0abc9a02a17c9dbcf9bc2f201d8cf43bed1f7e2 GIT binary patch literal 7091 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 literal 0 HcmV?d00001 diff --git a/docs/img/h0.png b/docs/img/h0.png new file mode 100644 index 0000000000000000000000000000000000000000..fd7f157e310e6bbcc422a9b3b3ed1396ced14b45 GIT binary patch literal 5100 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 R12*Fj6$K6WC%IQ|{s+?o#R32T literal 0 HcmV?d00001 diff --git a/docs/img/h0n.png b/docs/img/h0n.png new file mode 100644 index 0000000000000000000000000000000000000000..05b04040a63077d4a464e483ccde97ff5f9181c4 GIT binary patch literal 5501 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 literal 0 HcmV?d00001 diff --git a/docs/img/ha.png b/docs/img/ha.png new file mode 100644 index 0000000000000000000000000000000000000000..ff9178b969765a0158b27672ed8571f472dd9de4 GIT binary patch literal 5414 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 literal 0 HcmV?d00001 diff --git a/docs/img/hacoin.png b/docs/img/hacoin.png new file mode 100644 index 0000000000000000000000000000000000000000..05f072c8b7ffed5e98edd551fd0354c5faa29ed8 GIT binary patch literal 4218 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 RgZn51q4GretD<@Ee*x*BgyH}I literal 0 HcmV?d00001 diff --git a/docs/img/poly-distribute.png b/docs/img/poly-distribute.png new file mode 100644 index 0000000000000000000000000000000000000000..29db064ccc8d59873ea804f14dd52206c6adec63 GIT binary patch literal 7297 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 SbHmqz2vtQ*WU>6i=l=(_hFJmt literal 0 HcmV?d00001 diff --git a/docs/img/seg.png b/docs/img/seg.png new file mode 100644 index 0000000000000000000000000000000000000000..cea931d9b8c4a2e926557285dbca7f5450635ba6 GIT binary patch literal 3035 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 UQXIPp2yc*~t_i$K+vVxM0gfK)*#H0l literal 0 HcmV?d00001 diff --git a/docs/img/t-student.png b/docs/img/t-student.png new file mode 100644 index 0000000000000000000000000000000000000000..a292db8050a302f7c48cd1bac1d694f52e71f05d GIT binary patch literal 4155 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 GA^!tpZ`ES} literal 0 HcmV?d00001 diff --git a/docs/img/ufb.png b/docs/img/ufb.png new file mode 100644 index 0000000000000000000000000000000000000000..0ca8a9ebb4562e4e1ae648dd5d06d52e40558e6e GIT binary patch literal 5386 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 AkN^Mx literal 0 HcmV?d00001 -- GitLab