0 Daumen
339 Aufrufe

Aufgabe:

Wir betrachten unabhängige und identisch verteilte Zufallszahlen \( X_{1}, \ldots, X_{n} \) und berechnen das

\( \text { arithmetische Mittel } \bar{X}_{n}=\frac{1}{n} \sum \limits_{i=1}^{n} X_{i} \)

a) Simulieren Sie \( \bar{X}_{n} \) für \( n \in\{5,10,15, \ldots, 50,100,200,500\} \) jeweils \( M=10.000 \) mal für die folgenden Verteilungen von \( X_{1} \)
pois(2)
\( \bullet \operatorname{Exp}(3) \)
diskrete Gleichverteilung (Zweipunktverteilung) auf \{1,5\}

b) Veranschaulichen Sie die Verteilung von \( \bar{X}_{n} \) für alle \( n \) durch Boxplots und für \( n \in\{5,50,500\} \) durch Histogramme.

c) Fügen Sie den Histogrammen jeweils eine Kurve der Dichtefunktion der Normalverteilung mit Erwartungswert \( \mu \) und Varianz \( \frac{\sigma^{2}}{n} \) hinzu, wobei \( \mu \) und \( \sigma^{2} \) jeweils der Erwartungswert und die Varianz der betrachteten, oben genannten Verteilung seien.


Ansatz/Problem:

Ich verstehe nicht wie die Aufgabe gemeint ist. Also soll ich eine Funktion programmieren, die die Simulation durchführt? Wie wird das n gewählt? Wie bringe ich die Verteilung ein? (Wir programmieren in R)

Avatar von

1 Antwort

0 Daumen

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.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community