编程教程 - 页 18

 

使用 R 进行拟合优度测试:示例


使用 R 进行拟合优度测试:示例

今天我们将使用 R 来解决拟合优度测试的典型问题。这里是:

在随机抽取的10个三孩家庭中,女孩的分布情况如下:

  • 12个家庭没有女孩
  • 31个家庭育有一女
  • 42个家庭有两个女孩
  • 15个家庭有3个女孩

问题是:这样的家庭中女孩的数量服从参数 n=3 和 p=0.5 的二项分布是否合理?

让我们切换到 R,我已经在其中输入了观测值。首先,我们需要计算预期值并将其与观察到的计数进行比较。我们将从预期的比例开始,可以使用 R 中的 dbinom 函数获得该比例。

以下是一个家庭中有 0、1、2 或 3 个女孩的预期比例:

  • 0 名女孩 12.5%
  • 1 名女孩 37.5%
  • 2个女孩为37.5%
  • 3 名女孩 12.5%

接下来,我们将预期比例乘以 100 来计算预期计数(因为我们总共有 100 个家庭)。

现在,让我们继续使用两种不同的方法来解决这个问题。首先,我们将使用 R 中的 chisq.test 函数,它通过计算检验统计量和 p 值来提供直接答案。然后,我们将逐步进行计算,以更深入地了解该过程。

使用 chisq.test:

observed_counts <- c ( 12 , 31 , 42 , 15 )
expected_proportions <- dbinom ( 0 : 3 , size = 3 , prob = 0.5 )
expected_counts <- expected_proportions * 100 result <- chisq.test ( observed_counts , p = expected_proportions )
p_value <- result $ p.value
print ( p_value )

假设原假设为真,获得的 p 值表示获得与我们观察到的极端数据的概率。在这种情况下,p 值约为 0.07232。

由于我们的显着性水平设置为 0.05,并且 p 值大于该值,因此我们没有足够的证据来拒绝原假设。我们可以得出结论,这些数据与这些家庭中女孩数量服从参数 n=3 和 p=0.5 的二项分布的假设是一致的。

现在,让我们手动计算卡方检验统计量,以更好地理解该过程:

chi_stat <- sum ( ( observed_counts - expected_counts ) ^ 2 / expected_counts )
degrees_of_freedom <- length ( observed_counts ) - 1
p_value_manual <- 1 - pchisq ( chi_stat , df = degrees_of_freedom )
print ( p_value_manual )

手动计算的 p 值与使用 chisq.test 获得的结果相匹配,证实了我们之前的大约 0.07232 的发现。

总之,两种方法得出相同的结论:数据与零假设一致,即这些家庭中女孩的数量服从参数 n=3 和 p=0.5 的二项分布。

Goodness of fit testing with R: example
Goodness of fit testing with R: example
  • 2023.01.04
  • www.youtube.com
Is it plausible that a categorical variable was sampled from a particular distribution?If this vid helps you, please help me a tiny bit by mashing that 'like...
 

R 中的相关性测试


R 中的相关性测试

大家好!今天,我们将讨论相关性测试。我将使用 R 进行演示,但我们将介绍的概念是普遍适用的,无论您的工作环境如何。因此,即使您使用的是不同的软件,也请坚持使用。

对于此示例,我将使用 islr2 包中的大学数据集。我已经加载了数据集并使用 titiverse 包将我的主题设置为最小。如果您对大学数据集的详细分析感兴趣,我在说明中提供了视频链接。

大学数据集由 777 个观测值组成,每个观测值代表 1995 年以来的一所大学。它包含各种变量,例如公立或私立指定、全日制本科生入学率和毕业率。

我们的重点是确定公立大学全日制本科入学对数与毕业率之间是否存在统计上显着的相关性。我们想知道这种明显的关系是否可能是随机的,或者是否是我们应该关注的有意义的趋势。

首先,我使用 ggplot 创建了一个散点图,y 轴为毕业率,x 轴为全日制本科生入学率的对数。我也过滤掉了私立学校,所以我们只分析公立大学。

现在,我们来讨论对数。不要被它吓倒;它只是帮助我们解释数据的规模。在本例中,我们使用以 10 为底的对数,它告诉我们值末尾的零的数量。例如,3.0 在对数刻度上是 10^3,即 1,000。通过取对数,我们可以实现更均匀的分布以及变量之间的大致线性关系。

相关性衡量两个定量变量之间总体线性关系的强度。在这种情况下,我们的正相关性约为0.22,表明随着全日制本科生入学人数的增加,毕业率也呈上升趋势。大学规模和毕业率之间的这种正相关关系可能看起来令人惊讶,但值得进一步探讨。

相关性相对较弱,相关性范围为 -1 到 1。相关性为 -1 表示完全负关系,而相关性为 1 表示完全正关系。

现在,让我们在 R 中进行相关性测试,以确定这种相关性是否具有统计显着性。运行相关性测试的语法类似于计算相关性。通过将 cor.test 函数与两个感兴趣的变量一起使用,我们获得了相关性和附加信息。

在这种情况下,测试结果提供的 p 值为 0.001,这表明如果总体中这些变量之间不存在相关性,则观察到的相关性仅在大约 0.1% 的时间内随机发生。如此低的概率表明我们观察到的相关性具有统计显着性,我们可以得出结论,公立大学全日制本科入学对数与毕业率之间存在相关性。

现在,让我们更深入地研究测试本身。它检查样本数据中观察到的相关性是否可以合理地归因于随机机会。该检验假设变量之间存在线性关系且观察结果独立,因此不适合时间序列数据。此外,它假设数据遵循二元正态分布,但与完美正态性的偏差通常是可以接受的。

值得注意的是,此相关性检验专门检验总体相关性为零的零假设。它不能用于测试除零之外的相关性。

在幕后,该检验使用称为 R 的检验统计量,计算为观察到的样本相关性。该统计量遵循具有 n-2 自由度的学生 t 分布,假设零相关性的零假设被假设。自由度表示为 n-2,取决于样本大小 (n),并由可用于估计的独立观测值的数量确定。

该检验还提供总体相关性的置信区间。在本例中,95% 置信区间的范围为 0.087 到 0.354。这个区间根据我们的样本数据为我们提供了一系列合理的总体相关值。由于区间不包含零,我们可以推断总体相关性很可能是正的。

值得注意的是,相关性并不意味着因果关系。仅仅因为我们观察到两个变量之间的相关性并不意味着一个变量导致另一个变量发生变化。相关性仅表明变量之间的关系,但需要进行额外的研究和分析才能确定因果关系。

为了可视化相关性,我们可以在散点图中添加一条回归线。回归线代表通过数据点的最佳拟合线,表明关系的总体趋势。通过使用 ggplot 中的 geom_smooth 函数和参数 method = "lm",我们可以在绘图中添加一条回归线。

现在我们可以看到拟合数据点的回归线。它直观地展示了公立大学全日制本科生入学对数与毕业率之间的正相关关系。

总之,我们进行了相关性检验,以确定公立大学全日制本科入学对数与毕业率之间是否存在统计上显着的关系。检验结果表明呈正相关,p 值为 0.001,表明存在显着关系。但是,请记住,相关性并不意味着因果关系,需要进一步分析才能建立因果关系。

相关性测试是统计分析中的一个有价值的工具,使我们能够探索变量之间的关系并识别潜在的趋势或关联。它帮助我们做出明智的决策并根据数据得出有意义的结论。

Correlation testing in R
Correlation testing in R
  • 2023.03.29
  • www.youtube.com
Does a sample correlation imply a population correlation, or could the observed data just be due to random chance? Let's get into it!If this vid helps you, p...
 
大佬带带弟弟?
原因: