R-对数正态分子蒙特卡洛模拟摘要统计量与真实的潜在值不同



我是从R中的对数正态分布进行采样偏差。对于手段而言,同样的情况似乎并不正确。

我会忘记的模拟示例统计信息有偏见吗?即使这样,似乎这种偏见比我预期的要大。

我在r:

中与之合作的
library(dplyr) ## Cleaning data
library(tidyr) ## tidying data
library(stringi)  ## string manipulation
## Define simulation controls
n_sample <- 10
sample_size <- 1000
mu <- 10
sigma <- 3
## Lognormal mean and standard deviation
true_mean <- exp(mu + sigma ^ 2 / 2)
true_sd   <- sqrt((exp(sigma ^ 2) - 1) *
              exp(2 * mu + sigma ^ 2))
## For reporducibility
set.seed(42)
sample_id <- stri_rand_strings(n_sample, length = 5)
counts <- rep(sample_size, n_sample)
observations <- lapply(counts, rlnorm, meanlog = mu, sdlog = sigma)
names(observations) <- sample_id
## Summarize results of the n_sample-many simulations
obs_table <- observations %>%
              bind_rows() %>%
              gather(key = "sample",
                     value = "obs") %>%
              group_by(sample) %>%
              summarize(mean = mean(obs),
                        sd   = sd(obs)) %>%
              ## Mean departure and SD departure from true
              ## underlying distribution.
              mutate(mean_dep = mean / true_mean - 1,
                     sd_dep   = sd / true_sd - 1)
obs_table

观察您的true_sd

> true_sd
[1] 178471287

这太大了。这里的问题是您的样本量(1000(与分配差异相比太小,因此您无法获得对样本统计数据的人口平均/SD的良好估计。您观察到的"偏见"(即大部分时间低估了差异(可能会因为分布的偏斜和库尔病特征而发生,但是随着样本量的增加,这会减少。

提示:尝试调整样本量和参数(MU和Sigma(,并检查样本统计信息与"真实"均值和样本偏差的关系。

最新更新