0 Daumen
295 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 2,9 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community