Antwort mit KI erzeugt
Simulation des arithmetischen Mittels in R
Um die gestellte Aufgabe zu bewältigen, gehen wir schrittweise vor. Du wirst eine Simulation in R durchführen, um das arithmetische Mittel unterschiedlich verteilter Zufallsvariablen für verschiedene \(n\) Werte zu berechnen. Für jede Verteilung werden wir eine separate Funktion schreiben, die \(M = 10.000\) Simulationen des arithmetischen Mittels \( \bar{X}_{n} \) für jedes \(n\) durchführt. Anschließend visualisieren wir die Ergebnisse durch Boxplots und Histogramme und fügen zu den Histogrammen eine passende Normalverteilungskurve hinzu.
a) Simulation von \( \bar{X}_{n} \)
Wir beginnen mit der Implementierung der Simulationen für jede der gegebenen Verteilungen: Poisson (mit Parameter \( \lambda = 2\)), Exponentialverteilung (mit Parameter \( \lambda = 3\)), und eine diskrete Gleichverteilung (Zweipunktverteilung) auf \(\{1,5\}\).
R
set.seed(123) # Für reproduzierbare Ergebnisse
# Funktion zur Simulation des arithmetischen Mittels für eine gegebene Verteilungsfunktion
simulate_means <- function(n, M, dist_function, ...) {
means <- numeric(length(n))
for (i in seq_along(n)) {
samples <- replicate(M, mean(dist_function(n[i], ...)))
means[i] <- mean(samples)
}
return(means)
}
n_values <- c(seq(5, 50, by = 5), 100, 200, 500)
M <- 10000
# Poisson-Verteilung
pois_means <- sapply(n_values, function(n) mean(replicate(M, mean(rpois(n, 2)))))
# Exponentialverteilung
exp_means <- sapply(n_values, function(n) mean(replicate(M, mean(rexp(n, 3)))))
# Diskrete Gleichverteilung
discrete_means <- sapply(n_values, function(n) mean(replicate(M, mean(sample(c(1, 5), n, replace = TRUE)))))
b) Visualisierung durch Boxplots und Histogramme
Für die Visualisierung nutzen wir
ggplot2
für die Erstellung der Boxplots und Histogramme aller simulierten arithmetischen Mittel.
R
library(ggplot2)
# Daten für Boxplots vorbereiten
data_pois <- data.frame(Means = pois_means, n = as.factor(n_values), Distribution = "Poisson")
data_exp <- data.frame(Means = exp_means, n = as.factor(n_values), Distribution = "Exp")
data_discrete <- data.frame(Means = discrete_means, n = as.factor(n_values), Distribution = "Discrete")
data_all <- rbind(data_pois, data_exp, data_discrete)
# Boxplots
ggplot(data_all, aes(x = n, y = Means, fill = Distribution)) +
geom_boxplot() +
theme_minimal() +
labs(title = "Boxplots der simulierten Mittelwerte", x = "n", y = "Mittelwert")
# Histogramme für n = 5, 50, 500 als Beispiele
# Diese können durch ähnliche Aufrufe in ggplot2 erzeugt werden, wobei die spezifischen n-Werte gefiltert und dann visualisiert werden.
c) Hinzufügen der Normalverteilungskurve
Für jede der Verteilungen berechnest du den Erwartungswert \( \mu \) und die Varianz \( \sigma^{2} \), um dann die Dichtefunktion der Normalverteilung über die Histogramme zu zeichnen.
R
# Beispiel, um eine Normalverteilungskurve zu einem Histogramm hinzuzufügen
# Dabei ist die Berechnung von mu und sigma^2 abhängig von der spezifischen Verteilung.
# Für eine genaue Implementierung müssen diese Werte für jede Verteilung berechnet und dann verwendet werden.
# Dies ist der allgemeine Ansatz und muss für jedes n und jede Verteilung durchgeführt werden.
ggplot(data_all, aes(x = Means)) +
geom_histogram(aes(y = ..density..), binwidth = 0.1, fill = "skyblue") +
stat_function(fun = dnorm, args = list(mean = mu, sd = sqrt(sigma^2 / n))) +
theme_minimal() +
labs(title = "Histogramm mit Normalverteilungskurve", x = "Arithmetisches Mittel", y = "Dichte")
Anmerkungen:
- Für \( \mu \) und \( \sigma^{2} \) musst du die theoretischen Werte basierend auf der spezifischen Verteilung einsetzen. Beispielsweise ist für eine Poisson-Verteilung mit \( \lambda = 2 \), \( \mu = \lambda \) und \( \sigma^{2} = \lambda \).
- Die Normalverteilungskurven müssen für jedes der Histogramme individuell angepasst werden, die du in Teil (b) für \( n = 5, 50, 500 \) erstellst.
- Diese Codes dienen als Ausgangspunkt und können weiter angepasst werden, um die genauen Anforderungen der Aufgabenstellung zu erfüllen.