R - 正常分布:初学者的友好指南
嘿,未来的R语言大师们!? 今天,我们将深入探索R语言中正常分布的迷人世界。如果你之前从未编程过,也不用担心——我会成为你这次旅行的友好向导,我们会一步一步地前进。在本教程结束时,你会对自己仅用几行代码就能做到的事情感到惊讶!
正常分布是什么?
在我们跳入R语言之前,让我们快速了解一下正常分布是什么。想象你在测量你学校所有学生的身高。你可能发现大多数人的身高都在平均水平附近,而身高特别高或特别矮的人较少。如果你把这些数据绘制在图表上,它会呈现出一个钟形的曲线。这就是正常分布!
在统计学中,我们经常使用正常分布,而R语言提供了一些出色的函数来帮助我们处理它们。让我们一个接一个地探索这些函数。
R语言中的正常分布函数
R语言提供了四个主要的函数来处理正常分布。这里有一个快速的概览:
函数 | 目的 |
---|---|
dnorm() | 计算在给定点的正常分布的密度(高度) |
pnorm() | 计算到给定点的累积概率(曲线下的面积) |
qnorm() | 找到与给定概率相对应的值(分位数) |
rnorm() | 从正常分布生成随机数 |
现在,让我们深入了解这些函数,看看它们是如何工作的!
dnorm():密度函数
dnorm()
函数帮助我们找到在任意给定点的正常分布曲线的高度。这就像在问,“这个特定值有多可能出现?”
让我们试一个例子:
# 计算标准正态分布在 x = 0 处的密度
result <- dnorm(0)
print(result)
当你运行这段代码时,你会看到:
[1] 0.3989423
这意味着标准正态分布在 x = 0 处的高度大约是 0.3989。
但是,如果我们想要改变平均值或标准差呢?没问题!让我们试试:
# 计算在 x = 1 处的密度,对于平均值为 2,标准差为 0.5 的正态分布
result <- dnorm(1, mean = 2, sd = 0.5)
print(result)
输出:
[1] 0.1079819
看,多么简单!我们只是告诉R我们想要一个平均值为2,标准差为0.5的正态分布,然后询问在 x = 1 处的密度。
pnorm():累积概率函数
现在,让我们转到 pnorm()
。这个函数计算小于或等于给定点的值的概率。这就像在问,“得到一个这么低或更低的值的几率是多少?”
这里有一个例子:
# 计算在标准正态分布中小于或等于 1.96 的值的概率
result <- pnorm(1.96)
print(result)
输出:
[1] 0.9750021
这告诉我们,在标准正态分布中,大约有97.5%的几率得到一个小于或等于1.96的值。
有趣的事实:这就是为什么1.96在统计学中常用于95%置信区间!
让我们再试一个例子,使用不同的平均值和标准差:
# 计算在平均值为 60,标准差为 10 的正态分布中小于或等于 70 的值的概率
result <- pnorm(70, mean = 60, sd = 10)
print(result)
输出:
[1] 0.8413447
这意味着在这个分布中,大约有84.1%的几率得到一个小于或等于70的值。
qnorm():分位数函数
qnorm()
是 pnorm()
的反函数。不是给它一个值然后询问概率,而是给它一个概率然后询问值。就像在说,“什么值会给我这个特定的概率?”
让我们试试:
# 在标准正态分布中找到一个累积概率为 0.95 的值
result <- qnorm(0.95)
print(result)
输出:
[1] 1.644854
这告诉我们,在标准正态分布中,95%的值在1.645以下。
我们也可以使用不同的平均值和标准差:
# 在平均值为 100,标准差为 15 的正态分布中找到一个累积概率为 0.99 的值
result <- qnorm(0.99, mean = 100, sd = 15)
print(result)
输出:
[1] 134.8745
所以,在这个分布中,99%的值在134.87以下。
rnorm():生成随机数
最后但同样重要的是,我们有 rnorm()
。这个函数就像一个遵循正态分布规则的魔法数字生成器。它在模拟和创建测试数据时非常实用。
这里是如何使用它的:
# 从标准正态分布生成5个随机数
random_numbers <- rnorm(5)
print(random_numbers)
输出(你的数字将是不同的):
[1] -0.56047565 -0.23017749 1.55870831 0.07050839 0.12928774
我们也可以指定不同的平均值和标准差:
# 从平均值为 50,标准差为 10 的正态分布生成5个随机数
random_numbers <- rnorm(5, mean = 50, sd = 10)
print(random_numbers)
输出(你的数字将是不同的):
[1] 52.39086 46.08371 47.92569 62.36229 45.45923
这难道不酷吗?只需一行代码,我们就可以生成我们想要的任何数量的随机数,遵循我们指定的任何正态分布!
结束语
就这样,各位!我们一起穿越了R语言中的正常分布领域,沿途探索了四个强大的函数。记住,熟能生巧,所以不要害怕用这些函数做实验。尝试不同的值,绘制结果,看看会发生什么!
这里有一个小挑战给你:尝试使用 rnorm()
生成1000个随机数,然后用 hist()
绘制这些数字的直方图。你将看到正常分布在你眼前栩栩如生!
快乐编码,愿正常分布与你同在!???
Credits: Image by storyset