Assignment Chef icon Assignment Chef
All German tutorials

Programming lesson

Ökonometrie II: Monte-Carlo-Simulation zur OLS-Schätzung – Ein praktischer Leitfaden mit MATLAB (Frühjahr 2025)

Lerne in diesem Tutorial, wie du mit MATLAB eine Monte-Carlo-Simulation durchführst, um das Verhalten des OLS-Schätzers in Abhängigkeit von Stichprobengröße und Regressorverteilung zu analysieren. Inklusive Schritt-für-Schritt-Anleitung, Codebeispielen und Chow-Tests.

Monte-Carlo-Simulation MATLAB OLS-Schätzer Simulation Ökonometrie II Hausaufgabe t-Test MATLAB Chow-Test MATLAB Stichprobengröße OLS asymptotische Approximation nicht-normaler Fehler MATLAB Ökonometrie Tutorial Strukturbrüche Chow-Test Finanzkrise 2008 Ökonometrie Konsumwachstum Einkommenswachstum MATLAB Schleife Vermeiden Simulation wiederholen Ökonometrie Hausaufgabe Hilfe Monte Carlo Methode erklärt

Einführung in die Monte-Carlo-Simulation mit MATLAB

Die Ökonometrie II Hausaufgabe 5 aus dem Frühjahr 2025 beschäftigt sich mit der Leistungsfähigkeit des OLS-Schätzers unter verschiedenen Bedingungen. In diesem Tutorial zeigen wir dir, wie du eine Monte-Carlo-Simulation in MATLAB aufsetzt, um die Verteilung des t-Statistik bei kleinen und großen Stichproben zu untersuchen. Solche Simulationen sind besonders relevant, wenn du verstehen willst, wie gut asymptotische Approximationen in der Praxis funktionieren – ähnlich wie KI-Modelle, die mit immer mehr Daten trainiert werden, um bessere Vorhersagen zu liefern.

Warum Monte-Carlo-Simulation?

Die Monte-Carlo-Methode erlaubt es dir, die Eigenschaften von Schätzern unter kontrollierten Bedingungen zu studieren. Stell dir vor, du testest eine neue Trading-Strategie: Du simulierst tausende mögliche Marktverläufe, um die Erfolgsquote zu ermitteln. Genauso wiederholen wir hier die OLS-Schätzung viele Male, um die tatsächliche Größe des Tests zu bestimmen. Der Trend zu datengetriebenen Entscheidungen in Finanzen, Gaming (z.B. Balancing von Charakteren) oder KI macht solche Simulationen unverzichtbar.

Schritt 1: Daten generieren mit normalverteilten Fehlern

Zunächst erzeugen wir die Regressoren X1 und X2. Die Aufgabenstellung gibt vor: Für N=500 ziehen wir einen Vektor w aus Standardnormalverteilung und setzen X1i = 2 + wi2. Anschließend ziehen wir einen weiteren Vektor v aus Standardnormalverteilung und berechnen X2i = 1 + wi2 + 4 * log(vi2). Die Regressoren sind also korreliert und haben einen von Null verschiedenen Erwartungswert. In MATLAB sieht das so aus:

N = 500;
w = randn(N,1);
v = randn(N,1);
X1 = 2 + w;
X2 = 1 + w + 4*log(v);
X = [ones(N,1), X1, X2];

Beachte: Die Verwendung von randn erzeugt normalverteilte Zufallszahlen. Der Befehl log(v) ist nur definiert, wenn v>0, aber da v normalverteilt ist, können negative Werte auftreten. In der Praxis müsstest du v vielleicht absichern, aber für die Simulation nehmen wir an, dass die Werte passen – ein typisches Problem in der Ökonometrie, das du im Hinterkopf behalten solltest.

Schritt 2: Stichprobengröße N=20 – t-Test unter Normalität

Nun betrachten wir den Fall N=20. Wir ziehen einen Vektor e aus einer Normalverteilung mit Varianz 3 und konstruieren Y = 1 + 2*X1 + 4*X2 + e, wobei wir nur die ersten 20 Beobachtungen von X verwenden. Dann schätzen wir β und führen einen t-Test für H0: β1=2 durch. Dies wiederholen wir 100 Mal und zählen, wie oft der t-Wert den kritischen Wert der t-Verteilung mit N-3 Freiheitsgraden überschreitet (zweiseitig, α=0,05).

reps = 100;
N = 20;
cv = tinv(0.975, N-3); % kritischer Wert
t_stat_vec = zeros(reps,1);
for r = 1:reps
    e = sqrt(3)*randn(N,1);
    Y = ones(N,1) + 2*X(1:N,2) + 4*X(1:N,3) + e;
    b = (X(1:N,:)'*X(1:N,:))\ (X(1:N,:)'*Y);
    res = Y - X(1:N,:)*b;
    s2 = (res'*res)/(N-3);
    se_b1 = sqrt(s2 * inv(X(1:N,:)'*X(1:N,:))(2,2));
    t_stat = (b(2) - 2)/se_b1;
    t_stat_vec(r) = abs(t_stat) > cv;
end
rejection_rate = mean(t_stat_vec);

Die Ablehnungsrate gibt an, wie oft der Test die Nullhypothese fälschlicherweise ablehnt (da wir den wahren Wert β1=2 kennen). Bei N=20 erwarten wir eine Abweichung vom nominellen Niveau von 5%.

Schritt 3: Stichprobengröße N=200 – Asymptotischer Test mit nicht-normalen Fehlern

Jetzt erhöhen wir die Stichprobengröße auf N=200 und verwenden nicht-normalverteilte Fehler. Wir konstruieren z = e2 − 1, wobei e2 standardnormalverteilt ist. Das ergibt einen mittelwertbehafteten Fehler mit Schiefe. Dann schätzen wir β1 und verwenden den asymptotischen t-Test (Normalverteilung als kritische Werte). Auch hier 100 Wiederholungen.

N = 200;
cv_asymp = 1.96;
rejection_asymp = 0;
for r = 1:reps
    e2 = randn(N,1);
    z = e2.^2 - 1;
    Y = ones(N,1) + 2*X(1:N,2) + 4*X(1:N,3) + z;
    b = (X(1:N,:)'*X(1:N,:))\ (X(1:N,:)'*Y);
    res = Y - X(1:N,:)*b;
    s2 = (res'*res)/(N-3);
    se_b1 = sqrt(s2 * inv(X(1:N,:)'*X(1:N,:))(2,2));
    t_stat = (b(2) - 2)/se_b1;
    if abs(t_stat) > cv_asymp
        rejection_asymp = rejection_asymp + 1;
    end
end
rejection_rate_asymp = rejection_asymp/reps;

Vergleiche die Ablehnungsraten: Ist die asymptotische Approximation für N=200 besser als für N=20? In der Regel ja, aber die Nicht-Normalität kann die Testgröße beeinflussen. Dieses Experiment ähnelt dem Testen von KI-Modellen: Mit mehr Trainingsdaten werden die Konfidenzintervalle zuverlässiger.

Chow-Tests für Strukturbrüche

Im zweiten Teil der Aufgabe führst du Chow-Tests durch, um zu prüfen, ob sich die Koeffizienten vor und nach 2008 unterscheiden. Der Chow-Test vergleicht die Restriktion, dass die Koeffizienten in beiden Perioden gleich sind, mit einem Modell, das separate Schätzungen erlaubt. Die Teststatistik folgt einer F-Verteilung. In MATLAB könntest du die Daten teilen, die Restriktion schätzen und die Quadratsummen vergleichen. Ein typisches Anwendungsbeispiel: Ändert sich der Zusammenhang zwischen Konsumwachstum und Einkommenswachstum nach der Finanzkrise 2008? Das ist relevant für aktuelle Diskussionen über Inflation und Zinspolitik.

Praktische Tipps für deine Hausaufgabe

  • Reproduzierbarkeit: Setze den Zufallsgenerator mit rng(0) zurück, um gleiche Ergebnisse zu erhalten.
  • Effizienz: Verwende Vektorisierung in MATLAB, um Schleifen zu vermeiden – das beschleunigt die Simulation enorm.
  • Interpretation: Vergleiche die empirische Ablehnungsrate mit dem nominellen Niveau. Eine Rate nahe 0,05 deutet auf eine gute Approximation hin.

Fazit

Monte-Carlo-Simulationen sind ein mächtiges Werkzeug in der Ökonometrie, um die endliche Stichprobeneigenschaften von Schätzern zu untersuchen. Mit diesem Tutorial hast du die Grundlagen, um die Aufgabenstellung zu lösen und deine Ergebnisse zu interpretieren. Denke daran: Die Qualität der Simulation hängt von der Anzahl der Wiederholungen ab – 100 ist ein guter Start, aber für präzise Ergebnisse sind 1000 oder mehr Wiederholungen empfehlenswert. Viel Erfolg bei deiner Hausaufgabe!