R - 正态分布



在来自独立来源的随机数据收集中,通常观察到数据分布是正常的。这意味着,在绘制一个图表时,在水平轴上显示变量的值,在垂直轴上绘制值计数时,我们得到一条钟形曲线。曲线的中心表示数据集的平均值。在图中,50% 的值位于平均值的左侧,另外 50% 的值位于图表的右侧。这在统计中称为正态分布。

R 有四个内置函数来生成正态分布。它们如下所述。


dnorm(x, mean, sd)
pnorm(x, mean, sd)
qnorm(p, mean, sd)
rnorm(n, mean, sd)

以下是上述函数中使用的参数的描述 -

  • x 是数字向量。
  • p 是概率向量。
  • n 是观测值个数(样本量)。
  • mean 是样本数据的平均值。它的默认值为零。
  • SD 是标准差。它的默认值为 1。

dnorm()函数

此函数给出给定均值和标准差在每个点的概率分布高度。


# 创建一个-10到10之间的数字序列,递增0.1。
x <- seq(-10, 10, by = .1)

# 选择平均值为2.5,标准偏差为0.5。
y <- dnorm(x, mean = 2.5, sd = 0.5)

# 为图表文件命名。
png(file = "dnorm.png")

plot(x,y)

# 保存文件。
dev.off()

当我们执行上述代码时,它会产生以下结果——

dnorm() 图

pnorm()函数

此函数给出正态分布的随机数小于给定数值的概率。它也被称为 “Cumulative Distribution Function”。


# 创建一个-10到10之间的数字序列,递增0.2。
x <- seq(-10,10,by = .2)
 
# 选择平均值为2.5,标准偏差为2。 
y <- pnorm(x, mean = 2.5, sd = 2)

# 为图表文件命名。
png(file = "pnorm.png")

# 绘制图表。
plot(x,y)

# 保存文件。
dev.off()

当我们执行上述代码时,它会产生以下结果——

pnorm() 图

qnorm()函数

此函数获取概率值并给出一个累积值与概率值匹配的数字。


# 创建一个以0.02递增的概率值序列。
x <- seq(0, 1, by = 0.02)

# 选择平均值为2,标准偏差为3。
y <- qnorm(x, mean = 2, sd = 1)

# 为图表文件命名。
png(file = "qnorm.png")

# 绘制图表。
plot(x,y)

# 保存文件。
dev.off()

当我们执行上述代码时,它会产生以下结果——

qnorm() 图

rnorm()函数

该函数用于生成分布正态的随机数。它采用样本大小作为输入并生成如此多的随机数。我们绘制一个直方图来显示所生成数字的分布。


# 创建一个由50个正态分布的数字组成的样本。
y <- rnorm(50)

# 为图表文件命名。
png(file = "rnorm.png")

# 绘制此示例的直方图。
hist(y, main = "Normal DIstribution")

# 保存文件。
dev.off()

当我们执行上述代码时,它会产生以下结果——

rnorm() 图形