В CLT указано, что данный i.i.d. образцы из распределения со средним и дисперсией, среднее значение выборки (как случайная величина) имеет распределение, которое сходится к гауссову по мере увеличения числа выборок n
. Здесь я буду предполагать, что вы хотите сгенерировать образцы r
, содержащие n
образцов для создания r
образцов образца. Некоторый код, чтобы сделать это следующим образом:
set.seed(123) ## set the seed for reproducibility
r <- 10000
n <- 200 ## I use 200 instead of 20 to enhance convergence to Gaussian
## this function computes the r samples of the sample mean from the
## r*n original samples
sample.means <- function(samps, r, n) {
rowMeans(matrix(samps,nrow=r,ncol=n))
}
Для создания графики, мы используем ggplot2
и qqplot.data
функцию Аарона из here. Мы также используем gridExtra
для построения нескольких графиков в одном кадре.
library(ggplot2)
library(gridExtra)
qqplot.data <- function (vec) {
# following four lines from base R's qqline()
y <- quantile(vec[!is.na(vec)], c(0.25, 0.75))
x <- qnorm(c(0.25, 0.75))
slope <- diff(y)/diff(x)
int <- y[1L] - slope * x[1L]
d <- data.frame(resids = vec)
ggplot(d, aes(sample = resids)) + stat_qq() + geom_abline(slope = slope, intercept = int, colour="red") + ggtitle("Q-Q plot")
}
generate.plots <- function(samps, samp.means) {
p1 <- qplot(samps, geom="histogram", bins=30, main="Sample Histogram")
p2 <- qplot(samp.means, geom="histogram", bins=30, main="Sample Mean Histogram")
p3 <- qqplot.data(samp.means)
grid.arrange(p1,p2,p3,ncol=2)
}
Тогда мы можем использовать эти функции с равномерной распределения:
samps <- runif(r*n) ## uniform distribution [0,1]
# compute sample means
samp.means <- sample.means(samps, r, n))
# generate plots
generate.plots(samps, samp.means)
Получаем:
Или с пуассоновского распределения с имею в виду = 3:
samps <- rpois(r*n,lambda=3)
# compute sample means
samp.means <- sample.means(samps, r, n))
# generate plots
generate.plots(samps, samp.means)
Получаем:
Или с экспоненциальной распределения со средним = 1/1:
samps <- rexp(r*n,rate=1)
# compute sample means
samp.means <- sample.means(samps, r, n))
# generate plots
generate.plots(samps, samp.means)
Мы получаем:
Обратите внимание, что среднее значение выборочного среднего гистограмм все похоже на Gaussians
со средним, который очень похож на среднее исходного распределения, генерирующего, является ли форма, пуассоновского или экспоненциальной, как предсказано ЦПТ (также его дисперсия будет 1/(n = 200) дисперсия исходного генерирующего распределения).
Можете ли вы показать нам код, который вы начали писать? Мы не являемся службами написания кода. –