R dnorm() pnorm() qnorm() 函数 - 正态分布函数族
R 为正态分布提供了四个核心函数:dnorm() 密度函数、pnorm() 累积概率、qnorm() 分位数函数、rnorm() 随机数生成。
它们分别回答不同的问题:某个值的概率密度是多少?累积概率是多少?某个概率对应的分位数是多少?
各函数语法格式如下:
dnorm(x, mean = 0, sd = 1) # 密度函数 pnorm(q, mean = 0, sd = 1) # 累积分布函数 P(X <= q) qnorm(p, mean = 0, sd = 1) # 分位数函数
参数说明:
x/q 要计算的值。
p 概率值(0 到 1)。
mean 均值,默认 0。
sd 标准差,默认 1。
实例
# 假设考试成绩 N(70, 10)
# dnorm: 分数为 70 处的概率密度
print(paste("dnorm(70):", round(dnorm(70, mean = 70, sd = 10), 4)))
# pnorm: 分数低于 85 的概率
print(paste("P(score <= 85):", round(pnorm(85, mean = 70, sd = 10), 4)))
# pnorm: 分数高于 85 的概率
print(paste("P(score > 85):", round(1 - pnorm(85, mean = 70, sd = 10), 4)))
# qnorm: 前 10% 的分界线
print(paste("前 10% 分数线:", round(qnorm(0.9, mean = 70, sd = 10), 2)))
# dnorm: 分数为 70 处的概率密度
print(paste("dnorm(70):", round(dnorm(70, mean = 70, sd = 10), 4)))
# pnorm: 分数低于 85 的概率
print(paste("P(score <= 85):", round(pnorm(85, mean = 70, sd = 10), 4)))
# pnorm: 分数高于 85 的概率
print(paste("P(score > 85):", round(1 - pnorm(85, mean = 70, sd = 10), 4)))
# qnorm: 前 10% 的分界线
print(paste("前 10% 分数线:", round(qnorm(0.9, mean = 70, sd = 10), 2)))
执行以上代码输出结果为:
[1] "dnorm(70): 0.0399" [1] "P(score <= 85): 0.9332" [1] "P(score > 85): 0.0668" [1] "前 10% 分数线: 82.82"

R 语言实例