跳转到内容

统计分析:使用 R 的入门/第 3 章

来自维基教科书,开放世界的开放书籍

安斯库姆?

  • R 主题:用户函数 & 使用花括号分组

假设的作用

[编辑 | 编辑源代码]

想象一下,我们有一些观察结果,我们想用它们来推断我们周围的世界。在观察结果由一个系统组成的情况下,统计学可以帮助我们,该系统由一个系统组成部分和随机机会效应组成。一个经典的“玩具”例子是骰子。假设我们想要分析以下结果,该结果通过掷骰子五次获得。

滚动
2
3
6
6
6

尽管作为一般规则,您的第一步应该是绘制数据,但在这种情况下几乎没有意义。数据集如此之小,以至于我们可以通过简单地检查数字来感受它。最显着的特征是,我们似乎有大量 6,尽管这可能是由于偶然性。

我们可以简单地将序列 {2,3,6,6,6} 视为一个独特的、任意的事件序列。但这有点毫无意义:数据通常被分析是为了寻找一般模式,并通过概括来增加我们的理解。在这种情况下,我们可能希望使用结果来确定骰子是否偏向六,以及它是否可以用来玩游戏。

天真地,我们可能希望用完全开放的思想来分析它;以没有任何先验假设的方式来处理这种情况。片刻的思考应该表明这是不可能的。例如,想象一下骰子是骗子的梦想:一台复杂的微型机器,可以预先编程,以便每天给出特定的数字序列。例如,它可以被编程为给出 2,然后是 3,然后是三个 6,然后在一天的剩余时间里滚动 1。在这种情况下,结果与我们观察到的完全一致,但它们没有告诉我们骰子后续行为的任何信息。虽然它完美地解释了数据,但大多数人会(相当合理地)采用先验假设,即“微型机器”解释不太可能。

当然,这是一个极端的例子,但它说明了这一点。无论我们是否意识到,我们始终用关于什么是合理解释以及什么不是的先验概念来检查数据。统计分析是将这些解释形式化的过程,然后使用数据在它们之间进行选择。一个很好的方法是用模型来描述我们所做出的假设。例如,以下两个假设是几乎所有我们可能想要测试的解释所共有的。

诚实的假设
我们假设数据已“诚实地”收集和报告。如果数据被故意更改或某些值被“审查”,则可能并非如此。在我们的小型示例中,如果说前四次掷骰子都是 1,但观察者将其丢弃,因为这似乎是一个“不寻常的模式”,那么就会发生这种情况。虽然不诚实可能会严重改变我们的结论,但我们所能做的就是假设它没有发生。
随机误差的假设
我们假设数据受到“随机机会”过程的影响,导致结果在每次实例中以不可预测的方式发生变化。在这种情况下,骰子在掷出方式、随后的翻滚和与表面的接触方式上的微小变化会产生六种结果中的一种。统计学家经常(有点令人困惑地)将这种机会过程称为数据中“误差”的来源。描述机会运作方式通常需要一整套其他假设,这是第 3 章的重点。

明确假设

[编辑 | 编辑源代码]

对任何假设进行任何假设的问题在于它们仅仅是假设。它们可能是也可能不是真的。当试图用我们的分析来说服他人时,我们是在要求他们相信我们的假设。出于这个原因,我们应该尝试做出广泛接受的假设,更重要的是,确保它们是完全明确的。这样,其他人就可以自己决定是否应该相信该分析。我们可以通过制定模型来最容易、最简洁地概括这一点。

模拟现实

[编辑 | 编辑源代码]

我们理解周围世界的常见方法是用模型来描述它。越

许多基本统计书籍都教授简单的检验,例如 t 检验或符号检验。这些都是基于一个底层模型。

那么一个合适的模型是什么样的?我们可以用各种方法来

一些文字模型

[编辑 | 编辑源代码]

测试特定模型。

模型 1 — 一个完全有偏差的骰子
骰子在掷出时总是给出 6。这里不需要额外的假设,在这种极端情况下,没有误差过程。

我们可以通过单次观察轻松地反驳这一点。但是,我们永远无法证明这一点。事实证明,这通常是正确的。不可能证明某事是正确的,因为总有可能存在


模型 2 — 一个公平的骰子
这是一个更复杂的模型,它包含以下假设
  • 每次滚动有 6 种可能的结果,每次都会选择 1-6 之间的数字。这是“有放回的”抽样。定义一组可能性(样本空间)
  • 独立性假设:一次滚动不会告诉我们关于后续滚动将发生的事情的任何额外信息。
  • 同质性假设:每次滚动任何结果的可能性都是一样的
  • 公平性:6 种可能性中的任何一种都有相同的可能性,每个数字的可能性都相等。在

如果模型包含随机因素,我们如何知道***

一旦我们有了模型,我们就可以

  • 尝试反驳这个模型(虽然,在这种情况下,总是有一点点机会连续出现 6,所以我们永远不能完全
  • 比较模型,以找出哪个更好

最简单的是模拟(与似然进行比较)

模拟模型

[编辑 | 编辑源代码]

我们可以使用模型的主要方式之一是模拟。这将是本书探索模型的主要方式。为此,我们需要将上面描述的各种模型转换为模拟。上面的“公平骰子”模型提供了一个很好的、简单的例子。我们将这个模型转换为 R 中的模拟。这涉及了解 R 如何处理数字的一些知识,因此您应该检查您是否对 R 中函数的概念感到满意,如以前所述。


有放回的抽样 - 在这里描述使用随机抽样进行模拟的想法


随机抽样

[编辑 | 编辑源代码]
从帮助页面中,我们已经看到 sample 函数可以接受许多不同的参数。x 必须是项目的向量,size 必须是数字。由于 1:6 给出了从 1 到 6 的数字向量,我们可以设置 x=1:6 和 size=5。以下 5 个例子(注意前 4 个是等效的,尽管实际结果会由于抽样时的机会效应而有所不同[1])。
###The next 4 lines are equivalent, 5 numbers are selected from a list of 1..6
sample(x=1:6, size=5, replace=FALSE) #when sampling WITHOUT replacement, each number only appears once
sample(replace=FALSE, size=5, x=1:6) #you can change the order of the arguments
sample(x=1:6, size=5)                #the same, because replace=FALSE by default
sample(1:6, 5)        #we don't need x= and size= if arguments are in the same order as in the help file
### The next line is a different model
sample(1:6, 5, TRUE)                 #sampling WITH replacement (the same number can appear twice)
###The next 4 lines are equivalent, 5 numbers are selected from a list of 1..6
sample(x=1:6, size=5, replace=FALSE) #when sampling WITHOUT replacement, each number only appears once
[1] 1 5 4 3 6
sample(replace=FALSE, size=5, x=1:6) #you can change the order of the arguments
[1] 5 6 4 2 1
sample(x=1:6, size=5)                #the same, because replace=FALSE by default
[1] 2 3 4 6 5
sample(1:6, 5)        #we don't need x= and size= if arguments are in the same order as in the help file
[1] 1 6 3 5 4
### Now simulate a different model
sample(1:6, 5, TRUE)                 #sampling WITH replacement (the same number can appear twice)
[1] 3 6 2 1 3
如前所述,我们的“公平骰子”模型是一种有放回抽样:同一个数字可以出现两次(实际上,在我们的数据中确实出现了)。所以我们在 R 中的模拟模型很简单。
sample(1:6, 5, TRUE) 


参考文献

[编辑 | 编辑源代码]
  1. 在每章开始前调用 set.seed(1) 以获得完全相同的结果


模型检验

[编辑 | 编辑源代码]

我们可以尝试反驳特定的模型,或者使用一些明智的判断在不同的模型之间进行选择。

检验模型的各种方法。例如,将模拟结果与观察结果进行比较。

现在,我们有了模拟模型生成数据的一种简单方法。我们如何才能

现在,我们能够模拟如何***。我们不太可能得到我们观察到的完全相同的序列。一个经典的方法是使用样本统计量。如果我们得到了 3 个 5 或 3 个 1,我们也会感到惊讶。与概率空间概念的关联。

样本统计量

要计算我们的样本统计量,我们首先需要一种方法来计算向量中每个数字的频率。R 提供了一个名为 tabulate() 的函数,它可以完全做到这一点。然后,我们可以使用 max() 函数找到最频繁的
组合函数 输入:
tabulate(c(2,3,6,6,6))         #an example: we can see that the 
max(tabulate(c(2,3,6,6,6)))         #simply confirms what  
结果
参见



现在,我们可以将此应用于我们的模型,重复 1000 次。
使用 replicate() 进行模拟 输入:
'"`UNIQ--pre-00000008-QINU`"'
结果
> replicate(1000, max(tabulate(sample(1:6, 5, TRUE))))
   [1] 3 2 2 2 2 3 2 2 3 2 2 2 2 2 3 2 2 2 3 1 2 2 3 2 2 2 2 2 2 2 2 2 2 3 2
  [36] 1 3 4 2 2 2 2 2 3 2 2 2 3 3 2 2 2 3 2 2 2 3 2 2 2 2 2 2 2 3 2 2 2 2 2
  [71] 1 3 2 2 2 2 1 2 3 2 2 2 3 2 2 3 2 2 2 3 2 2 3 2 2 1 2 2 2 3 2 2 1 2 3
 [106] 3 2 3 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 2 3 3 2 1 2
 [141] 2 2 2 2 2 1 2 2 2 2 2 2 1 1 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2
 [176] 2 3 2 2 2 2 2 2 2 2 2 2 4 2 4 2 2 2 1 2 2 2 2 3 2 3 3 2 2 2 2 2 3 2 2
 [211] 2 3 2 2 2 2 2 2 3 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 1
 [246] 2 2 3 2 3 2 2 3 2 3 2 1 2 2 2 1 2 2 2 2 3 2 3 2 2 2 3 2 3 2 2 2 2 2 2
 [281] 2 2 2 2 3 2 2 2 3 2 2 3 2 2 1 2 2 1 3 3 2 2 2 2 2 2 3 2 2 2 3 2 2 2 3
 [316] 4 3 2 1 1 3 2 2 2 3 3 1 3 2 2 1 2 4 2 3 2 2 2 1 2 2 2 2 2 2 3 2 1 2 2
 [351] 1 3 2 2 3 2 2 2 2 3 1 4 2 3 3 3 2 4 3 2 2 1 2 2 2 2 2 2 3 2 2 1 2 3 2
 [386] 3 2 2 4 2 2 2 1 1 2 3 3 3 2 2 2 2 2 3 2 2 1 2 3 1 2 2 2 2 2 2 2 2 3 2
 [421] 2 1 2 3 2 2 2 2 1 3 2 2 2 2 2 3 1 1 2 2 2 2 2 2 3 2 2 2 3 3 2 2 2 3 2
 [456] 2 1 2 2 2 2 2 2 3 2 2 3 1 3 2 2 3 2 3 2 2 2 2 1 2 3 2 3 2 2 3 2 4 2 2
 [491] 3 2 2 3 2 2 2 4 3 1 2 2 3 2 2 2 2 2 2 4 1 2 2 1 2 2 2 2 2 3 1 2 2 2 2
 [526] 3 2 2 2 2 2 2 2 2 2 2 3 3 2 2 2 2 2 2 2 2 2 2 2 3 1 1 2 3 2 2 2 2 2 2
 [561] 4 2 1 2 2 2 2 2 2 2 2 2 3 2 3 2 2 2 2 2 1 2 3 2 2 2 3 2 2 2 2 2 2 2 2
 [596] 2 2 3 2 2 2 3 2 3 2 2 2 2 2 1 2 2 3 3 3 2 2 2 2 2 2 3 2 4 1 2 2 2 2 2
 [631] 3 2 2 2 2 2 2 2 3 2 2 3 3 2 2 1 1 2 2 3 2 4 2 1 2 2 1 2 2 2 2 2 2 3 2
 [666] 2 2 2 3 2 2 2 3 2 2 2 2 2 2 1 2 2 2 2 2 2 2 3 2 2 3 3 2 2 2 3 3 2 2 3
 [701] 3 3 2 2 2 2 2 1 2 2 3 2 2 2 2 3 2 3 2 3 2 1 2 2 2 2 2 2 3 2 1 2 2 2 2
 [736] 3 3 2 3 2 2 2 3 2 2 2 1 2 2 2 3 2 3 3 2 2 3 1 2 2 2 2 2 4 2 2 2 2 2 2
 [771] 2 1 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 2 2 1 2 2 2 3 3 3 2 2 2 2 2 2
 [806] 2 2 3 1 2 2 4 2 2 1 4 2 3 3 2 2 2 3 2 1 2 2 3 2 2 2 1 2 2 2 2 2 2 2 1
 [841] 2 2 1 2 1 2 3 2 2 2 3 3 2 3 1 2 2 2 2 2 2 3 3 2 2 2 3 2 2 2 2 1 1 2 2
 [876] 1 1 2 2 2 3 1 2 2 2 1 2 2 2 2 2 2 2 2 2 3 2 2 2 1 2 3 2 2 3 2 1 2 3 1
 [911] 3 2 3 2 3 3 1 2 2 2 3 2 1 2 2 2 2 2 3 4 2 2 2 2 3 2 2 2 4 4 2 1 1 2 2
 [946] 3 3 2 2 3 2 2 2 3 2 1 2 2 2 2 2 1 2 2 2 2 2 1 2 3 1 3 4 3 2 2 2 2 2 2
 [981] 1 2 2 2 2 2 3 1 3 3 2 2 3 2 2 4 2 2 4 2
参见


你应该能够看到,这里有零星的 1,

引入概率概念的序言。


下一页: 第 3 章 | 上一页: 第 1 章
主页: 统计分析:使用 R 的介绍
华夏公益教科书