Die CLT besagt, dass i.i.d. Stichproben aus einer Verteilung mit Mittelwert und Varianz hat der Stichprobenmittelwert (als Zufallsvariable) eine Verteilung, die mit der Anzahl der Stichproben n
zu einer Gaußschen Konvergenz konvergiert. Hier nehme ich an, dass Sie r
Probensätze erstellen möchten, die n
Proben enthalten, um r
Proben des Beispielmittels zu erstellen. Einige Code zu tun, ist wie folgt:
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))
}
Für die Plots zu erzeugen, verwenden wir ggplot2
und Aarons qqplot.data
Funktion von here. Wir verwenden auch gridExtra
, um mehrere Diagramme in einem Frame zu plotten.
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)
}
Dann können wir diese Funktionen mit der einheitlichen Verteilung verwenden:
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)
Wir erhalten:
Oder, mit der poisson Verteilung mit bedeuten = 3:
samps <- rpois(r*n,lambda=3)
# compute sample means
samp.means <- sample.means(samps, r, n))
# generate plots
generate.plots(samps, samp.means)
Wir erhalten:
Oder, mit der exponentiellen Verteilung mit Mittelwert = 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)
Wir bekommen:
Beachten Sie, dass der Mittelwert der Probe bedeutet Histogramme alle aussehen wie Gaussians
mit dem Mittelwert, der den Mittelwert der ursprünglichen Erzeugungsverteilung sehr ähnlich ist, ob diese einheitlich ist, poisson, oder exponentiell, wie sie in der CLT vorhergesagt (auch seine Varianz ist 1/(n = 200) die Varianz der ursprünglichen erzeugenden Verteilung).
Können Sie uns Code zeigen, den Sie zu schreiben begonnen haben? Wir sind kein Code Writing Service. –