首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何绘制理论正态分布,给出一个变量的均值和方差的估计?

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

Stack Overflow用户
提问于 2019-11-13 18:41:20
回答 2查看 1.8K关注 0票数 0

我正努力想办法解决这个问题。假设变量英里是从正态分布的人口中取样的,那么在估计均值和方差时,我将如何绘制理论正态分布呢?

代码语言:javascript
复制
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

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

代码语言:javascript
复制
mean(data$mile)
[1] 1397.5

var(data$mile)
[1] 4410420

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

更新

代码语言:javascript
复制
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")

我得到了.的输出。

我试着用下面的代码把直方图叠加到上面的图上.

代码语言:javascript
复制
hist(data$mile, add = T)

但结果是..。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-13 18:58:02

如果需要绘制理论分布图,则需要首先定义其PDF (例如,您可以找到公式这里):

代码语言:javascript
复制
pdf_norm <- function(x,mu,sigma){
  1/(sqrt(2*pi*sigma^2))*exp(-(x - mu)^2/(2*sigma^2))
}

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

在那之后,你可以继续密谋。将musigma设置为您的估计并评估PDF。使用三西格玛规则选择范围。

代码语言:javascript
复制
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:

代码语言:javascript
复制
integrate(function(x) pdf_norm(x, mu, sigma), mu-3*sigma, mu+3*sigma)

输出

票数 2
EN

Stack Overflow用户

发布于 2019-11-13 18:50:43

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

代码语言:javascript
复制
plot(density(rnorm(n = 100000, mean = mean(data$mile), sd = sd(data$mile))))

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58843587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档