Advertisement

R语言-dnorm-pnorm-qnorm-rnorm的区别

阅读量:

dnorm、pnorm、qnorm、rnorm是R语言中用于描述正态分布的四个关键函数,分别用于不同的统计计算。
dnorm:计算正态分布的概率密度函数值,表示某点处的概率密度。例如,dnorm(0)返回标准正态分布在0处的密度值0.3989423。
pnorm:计算正态分布的累积分布函数值,表示曲线下左侧面积(概率)。pnorm(0)返回标准正态分布的累计概率0.5,pnorm(2, mean=5, sd=3)返回非标准正态分布在2处的累计概率0.1586553。
qnorm:计算正态分布的分位数函数,用于由概率求对应的z值。qnorm(0.5)返回标准正态分布的中位数0,qnorm(0.96, mean=5, sd=3)返回对应的z值1.750686。
rnorm:生成符合正态分布的随机数。rnorm(5)生成5个标准正态分布的随机数,rnorm(10, mean=70, sd=5)生成10个均值为70、标准差为5的正态分布随机数。
这些函数在统计分析和概率计算中广泛应用,原理类似,适用于其他分布的扩展。

R语言 dnorm, pnorm, qnorm, rnorm的区别

前言

在R语言中,dnorm、pnorm、qnorm、rnorm是处理正态分布的常见函数。norm函数涉及的正是正态分布,也称为高斯分布(normal distribution)。R语言中还有其他分布的操作,这些函数的命名方式也类似。这些函数在正态分布中各有用途,具体使用方法将在后续内容中详细讲解。

dnorm

d - 指的是概率密度函数(probability density function)

正态分布的公式:
f(x|\mu, \sigma)=\frac{1}{\sqrt{2\pi}}e^{-\frac{x^{2}}{2}}

dnorm实际上就是用来计算正态分布的概率密度值的函数。简单来说,它就是返回这个正态分布的概率密度值。我们下面用代码来具体看一下这个函数的实现。

复制代码
    # 输出在标准正态分布下(mean = 0, standard deviation = 1) 0 的z-sore
    dnorm(0, mean=0, sd=1) # 0.3989423
    # 因为是标准正态分布所以mean和sd是可以省略的
    dnorm(0) # 0.3989423
    # 如果是一个非标准正态分布如下:
    dnorm(2, mean=5, sd=3) # 0.08065691

pnorm

p 代表概率密度函数(从零到 x 的积分)。

x被定义为一个z-score,听起来有些高深莫测,但其实它就是正态分布曲线下x左侧的面积,代表概率占比。我们清楚地知道,如何根据z-score确定其在正态分布中的位置。

复制代码
    # 标准正态分布
    pnorm(0) # 0.5 (50%)
    pnorm(2) # 0.9772499
    # 非标准正态分布
    pnorm(2, mean=5, sd=3) # 0.1586553
    # 也可以求x右边的概率
    pnorm(2, mean=5, sd=3, lower.tail=FALSE) # 0.81586553
    # pnorm也能用来求置信区间
    pnorm(3) - pnorm(1) # 0.1573054

上图用R可以这么写

复制代码
    pnorm(2) # 0.9772499

qnorm

q - 指的是分位数函数(quantile function)

可以说,它是pnorm的反函数。它通过百分比计算z-score。我知道分位数计算z-score。举个例子:

复制代码
    # 在标准正态分布中求z-score
    qnorm(0.5) # 0
    qnorm(0.96) # 1.750686
    qnorm(0.99) # 2.326348

rnorm

r - 指的是随机数函数(random function)(常用于概率仿真)

它是用来生成一组符合正态分布的随机数, 例如:

复制代码
    # 设置随机数种子
    set.seed(1)
    # 生成5个符合标准正态分布的随机数
    rnorm(5) # -0.6264538  0.1836433 -0.8356286  1.5952808  0.3295078
    # 生成10个mean=70, sd=5的正态分布随机数
    rnorm(10, mean=70, sd=5) # 65.89766 72.43715 73.69162 72.87891 68.47306 77.55891 71.94922 66.89380 58.92650 75.62465

在R语言中生成别的各种分布也都是以d, p, q, r开头, 原理和正态分布相似

references

http://www.360doc.com/content/18/0913/18/19913717_786412696.shtml

https://www.runoob.com/r/r-basic-operators.html

全部评论 (0)

还没有任何评论哟~