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
这告诉我们,在标准正态分布中,得到一个小于或等于1.96的值的几率大约是97.5%。
有趣的事实:这就是为什么1.96在统计学中经常用于95%置信区间!
让我们尝试另一个具有不同均值和标准差的例子:
# 计算在均值为60,标准差为10的正态分布中,得到一个小于或等于70的值的概率
result <- pnorm(70, mean = 60, sd = 10)
print(result)
输出:
[1] 0.8413447
这意味着在这个分布中,得到一个小于或等于70的值的几率大约是84.1%。
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