繁体   English   中英

如何为 r 中的指数分布生成估计参数(标准差和均值)?

[英]How to generate the estimate parameters (Standard deviation and mean) for an exponential distribution in r?

例如:

#Using QQ-plots to decide which of the Normal, Gumbel and Exponential distribution best fits Qc
qqplot(x=qexp(ppoints(length(data$Qc))), y=data$Qc, main="Exponential Q-Q Plot",
       xlab="Theoretical Quantiles", ylab= "Data Quantiles")
qqplot(x=qnorm(ppoints(length(data$Qc))), y=data$Qc, main="Normal Q-Q Plot",
       xlab="Theoretical Quantiles", ylab= "Data Quantiles")
qqplot(x=qgumbel(ppoints(length(data$Qc))), y=data$Qc, main="Gumbel Q-Q Plot",
       xlab="Theoretical Quantiles", ylab= "Data Quantiles"

在假设我认为正态/指数分布是适合我的变量的好模型之后,如何生成正态分布或指数分布的估计参数(即标准偏差和平均值)?

指数的

MASS::fitdistr(Qc, dexp, start = list(rate = 0.1))
## 0.0338
## however, the maximum likelihood estimate of the exponential rate parameter
##  is just 1/mean(x):
(r <- 1/mean(Qc))
## 0.0338
pexp(30, rate = r, lower.tail = FALSE)  ## 0.362

普通的

样本均值和样本标准差可以很好地估计 Normal 的均值和 SD 参数(尽管如果我们真的想使用fitdistr可以使用):

MASS::fitdistr(Qc, dnorm, start = list(mean = 25, sd = 7))
pnorm(30, mean = mean(Qc), sd = sd(Qc), lower.tail = FALSE)  ## 0.473

贡贝尔

library(fitdistrplus)
library(VGAM)
fitdist(Qc, "gumbel", start = list(location = 25, scale = 1)) 
pgumbel(30, location = 27.03, scale = 7.56, lower.tail = FALSE) ## 0.491

经验

我们可以计算观察到的值 > 30 的概率:

mean(Qc>30)  ## 0.469

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM