下面是我的代码:
set.seed(1)
par(mfrow=c(1,2))
lognorm.gen <- function(mu,sigma){
ns <- rnorm(1000,mu,sigma)
ns <- exp(ns)
hist(ns,probability = T, main = expression(paste("Sample Density Curve", mu, sigma)))
y <- seq(0,15,length=100)
lines(y,dlnorm(y,mu,sigma))
}
lognorm.gen(0,0.25)
我从正态生成样本,然后将它们转换为对数正态分布。首先,我在 rnorm()
中使用 mu
和 sigma
作为参数,然后我应该使用 exp(mu)
和 exp(sigma)
在 dlnorm()
中。然而,该图显示直线和直方图偏离了很多。相反,dlnorm()
中的 mu
和 sigma
可以很好地将直线拟合到直方图中。所以我想知道为什么在这种情况下我不应该使用 exp(mu)
?
最佳答案
请阅读?dlnorm
:
dlnorm(x, meanlog = 0, sdlog = 1, log = FALSE)
plnorm(q, meanlog = 0, sdlog = 1, lower.tail = TRUE, log.p = FALSE)
qlnorm(p, meanlog = 0, sdlog = 1, lower.tail = TRUE, log.p = FALSE)
rlnorm(n, meanlog = 0, sdlog = 1)
meanlog, sdlog: mean and standard deviation of the distribution on the
log scale with default values of ‘0’ and ‘1’ respectively.
均值和标准差以对数刻度指定。这就是为什么您仍然需要与在 rnorm
中使用的相同的 mu
和 sigma
,而不是 exp(mu)
和 exp(sigma)
。
关于r - 正态分布和对数正态分布的均值和标准差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39554545/