In der empirischen Ökonomie ist eine „saubere Identifikation“ oft maßgebend: Instrumentalvariablen, Difference-in-Differences, Randomized Controlled Trials. Das ist gut und wichtig, aber nur weil ein Effekt kausal ist, erklärt er noch nicht viel von der beobachteten Variation. Viele identifizierte Effekte sind real, aber klein im Vergleich zu den großen Bewegungen in Beschäftigung, Einkommen oder Aktienkursen.
Das Lehrstück
Saubere Kausalität isoliert exogene aber häufig sehr geringe, Schwankungen (z. B. über Instrumente, Fixed Effects, Grenzfälle). Das liefert eine glaubwürdige Ursache-Wirkung-Aussage, aber der Preis ist, dass wir viel Variation wegwerfen. Ergebnis: Der Effekt ist kausal richtig, erklärt aber oft nur einen kleinen Teil des Gesamtbilds. Genau diese Trennung von kausal und relevant ist die zentrale Pointe dieses Beitrags.
Paradoxon der Kausaliät
Je strenger wir Identifikation betreiben, desto kleiner wird die verwendete Variation und desto geringer oft die erklärte Streuung. Beispiel: Ein unerwarteter 1 %-Verkauf kann den Preis einer Aktie merklich bewegen (kausal). Doch die meisten Preisbewegungen passieren ganz ohne solchen Order-Druck (Relevanz).
MATLAB-Demo 1: Kausalität ja – Variation nein
Wir erzeugen eine künstliche Welt, in der x1 kausal auf y wirkt.
Trotzdem erklärt eine Regression mit nur x1 wenig vom Gesamt-R², weil zwei weitere (nicht beobachtete) Faktoren die Variation dominieren.
% Kausalitaet ≠ Variation – Demo 1
rng(42); % Reproduzierbarkeit
n = 1000; % Beobachtungen
% "Wahre" Daten-generierende Prozesse
x1 = randn(n,1); % kausaler Faktor (identifizierbar)
x2 = randn(n,1); % unbeobachteter Faktor
x3 = randn(n,1); % unbeobachteter Faktor
eps = randn(n,1); % idiosynkratisches Rauschen
y = 2*x1 + 3*x2 + 5*x3 + eps; % y hängt stark von x2 & x3 ab
% Ökonometriker:innen sehen nur x1 und schätzen:
mdl = fitlm(x1, y);
disp(mdl)
fprintf('\nR^2 (nur x1): %.4f\n', mdl.Rsquared.Ordinary);
% "Wahres" R^2, wenn alle relevanten Faktoren beobachtet würden:
mdl_full = fitlm([x1 x2 x3], y);
fprintf('R^2 (alle Faktoren): %.4f\n', mdl_full.Rsquared.Ordinary);
Interpretation: Der Koeffizient von x1 ist „richtig“ (kausal), aber das R² der Ein-Variablen-Regression ist niedrig.
Mit allen relevanten Faktoren steigt das R² stark. Es ist ein einfaches Beispiel für „Kausalität ≠ Relevanz“.
MATLAB-Demo 2: Fixed Effects – warum Identifikation Variation verkleinert
Fixed Effects werden oft über Dummy-Variablen geschätzt. Dann steigt das R² häufig, weil man viele zusätzliche Variablen ins Modell packt. Für unseren Punkt ist aber etwas anderes wichtig: Wie viel Varianz erklärt der kausal identifizierte Regressor innerhalb der Gruppen? Genau das misst das Within-R².
Dafür nutzen wir die Within-Transformation, auch als Demeaning bezeichnet:
Wir ziehen von y und x1 jeweils den Gruppenmittelwert ab und regressieren dann
y_within auf x1_within. Wenn fast die gesamte Variation von x1 zwischen Gruppen liegt,
bleibt innerhalb der Gruppen kaum noch Variation übrig und das Within-R² wird winzig.
Kausalität ja, Variation nein.
% Kausalitaet ≠ Variation – Demo 2
rng(7);
n = 6000;
G = 60;
g = randi(G, n, 1);
% Große Between-Variation (Gruppenkomponente)
a = 10 * randn(G,1);
% x1: fast nur Between, kaum Within-Variation
x1 = a(g) + 0.05*randn(n,1);
% y: Gruppenanteil + echter kausaler Effekt von x1
eps = 3*randn(n,1);
y = a(g) + 2*x1 + eps;
% ---------- Within-Transformation (demeaning) ----------
mu_y = grpstats(y, g, 'mean'); y_w = y - mu_y(g);
mu_x1 = grpstats(x1, g, 'mean'); x1_w = x1 - mu_x1(g);
% ---------- Within-Schätzung (nur x1) ----------
mdl_w = fitlm(x1_w, y_w);
fprintf('WITHIN (nur x1): beta(x1)=%.3f, Within-R^2=%.8f\n', ...
mdl_w.Coefficients.Estimate(2), mdl_w.Rsquared.Ordinary);
fprintf('Var(x1 within)/Var(x1 total) = %.8f\n', var(x1_w)/var(x1));
fprintf('Var(y within)/Var(y total) = %.8f\n', var(y_w)/var(y));
% Visualisierung
figure; scatter(x1, y, 6, 'filled'); grid on;
xlabel('x1 (total)'); ylabel('y (total)');
title('Total Variation: x1 scheint viel zu erklären');
figure; scatter(x1_w, y_w, 6, 'filled'); grid on;
xlabel('x1 (within, demeaned)'); ylabel('y (within, demeaned)');
title('Within Variation: x1 erklärt kaum Variation');
Interpretation: Der kausale Effekt kann real sein (der Koeffizient bleibt sinnvoll), aber der Anteil erklärter Within-Variation ist oft verschwindend klein. Genau das ist die Botschaft: „Causation does not imply variation.“
![]() |
| Total |
![]() |
| Isolierter Einfluss |
Was bleibt?
Kausalität ist ein Werkzeug, kein Weltbild. Empirie soll Theorie prüfen und nicht ersetzen. Wer nur identifizierbare Mini-Schocks misst, riskiert, die großen Treiber aus dem Blick zu verlieren. Gute Ökonomie kombiniert saubere Identifikation mit Sinn für Größenordnungen.
Die Matlab-Dateien sind auf GitHub .
Hinweis: Dieser Beitrag entstand inspiriert durch aktuelle Debatten in Asset Pricing und Makroökonomik über die Trennung von Kausalität und Relevanz.


Comments
Post a Comment