私は変換したいlognormalデータを持っています。ここでは正確に対数正規分布ではないデータで再現可能な例であるが、それは十分に近いです:データに正規分布をプロットする
# create some lognormal data
dat <- data.frame(x = c(runif(1000, 0, 1), runif(300, 1, 100), runif(100,100,1000)))
私はlog10
することにより、これらのデータを変換し、MASS::fitdistr
とそれらへの正規分布に適合することができます。
# fit normal distribution to log-transformed values
library(MASS)
fit <- fitdistr(log10(dat$x), densfun = "normal")
fit$estimate # mean and SD of the normal distribution
ここでは、データとその上の分布をプロットする必要があります。私はlog10でデータを変換し、stat_function
で正規分布をプロットしますが、データに適合しません。
# plot data and distribution
ggplot(data = dat) +
geom_histogram(mapping = aes(x = log10(x))) +
stat_function(fun = dnorm, args = list(mean = fit$estimate[1], sd = fit$estimate[2], log = TRUE))
任意のポインタと同様に、検証は私が正しくこれについてつもりならば、非常に参考になります。
最後に、x軸を10,100,1000などの単位で表示するにはscale_x_log10()
を使用しますか? x軸をフォーマットする簡単な方法は何ですか?
ログ(一様分布)これは私が探していたまさにです_not_対数正規 –