给定变量均值和方差的估计值,我将如何绘制理论正态分布?

How would I plot the theoretical normal distribution given an estimate of the mean and variance of a variable?

我正在努力解决这个问题。假设可变里程是从正态分布的总体中抽样的,我将如何绘制理论正态分布给定均值和方差的估计值?

data <- read.csv("data.csv", sep = "\t", header = TRUE)
data

   name    mile
1  dat1    5039
2  dat1    2883
3  dat2    135
4  dat2    104
5  dat3    32
6  dat3    192

我得到了按英里计算的均值和方差,如下所示:

mean(data$mile)
[1] 1397.5

var(data$mile)
[1] 4410420

但我不确定这是否是问的问题。以前有没有人处理过这样的问题?任何帮助将不胜感激。

更新

pdf_norm <- function(x,mu,sigma){
  1/(sqrt(2*pi*sigma^2))*exp(-(x - mu)^2/(2*sigma^2))
}

mu <- 1397.5
sigma <- 4410420
x <- seq(mu-3*sigma, mu+3*sigma,length.out = 100) # empirical rule 3 sigma rule
d <- pdf_norm(x, mu,sigma)

plot(x,d, xlab = "X", ylab = "density")

到这里我得到...

的输出

我尝试使用下面的代码将直方图叠加到上面的图上...

hist(data$mile, add = T)

但是结果是...

这显然是不对的。有人可以帮忙吗?

您可以使用rnorm()函数从具有给定总体均值和标准差的正态分布生成随机值,然后使用density()函数和plot()函数来创建正态分布图。使用您的数据,您可以执行以下操作:

plot(density(rnorm(n = 100000, mean = mean(data$mile), sd = sd(data$mile))))

我使用 sd() 函数来计算标准差,但您也可以使用方差的平方根:sqrt(var(data$mile))

如果需要绘制理论分布图,需要先定义它的PDF(比如可以找到公式here):

pdf_norm <- function(x,mu,sigma){
  1/(sqrt(2*pi*sigma^2))*exp(-(x - mu)^2/(2*sigma^2))
}

这里,x是随机变量,mu是均值,sigma是标准差。

之后就可以进行绘图了。将 musigma 设置为您的估计值并评估 PDF。使用 three-sigma rule.

选择范围
mu <- 1397.5
sigma <- 4410420
x <- seq(mu-3*sigma, mu+3*sigma,length.out = 100) # empirical rule 3 sigma rule
d <- pdf_norm(x, mu,sigma)

plot(x,d, xlab = "X", ylab = "density")

您还可以确保 PDF 大约集成到 1:

integrate(function(x) pdf_norm(x, mu, sigma), mu-3*sigma, mu+3*sigma)

输出