Was bewirkt ## in Stata?
In diesem Beitrag
Was ## in Stata bedeutet – die Kurzversion
Der Operator ## in Stata ist eine kompakte Schreibweise für ein vollständiges faktorielles Modell: Er nimmt automatisch sowohl die Haupteffekte beider Variablen als auch ihre Interaktion in das Modell auf. Wer A##B schreibt, erhält dasselbe Ergebnis wie bei der ausgeschriebenen Notation A B A#B – nur kürzer und weniger fehleranfällig.
Das ist besonders in der Regressions- und Varianzanalyse relevant, wo Interaktionsmodelle zum Standard gehören. Wer die Notation einmal verstanden hat, spart sich nicht nur Tipparbeit, sondern vermeidet auch typische Spezifikationsfehler.
Der Unterschied zwischen # und ##
In Stata gibt es zwei verwandte, aber inhaltlich verschiedene Operatoren:
- # (einfaches Hashtag): Spezifiziert nur den Interaktionsterm zwischen zwei Variablen – die Haupteffekte werden nicht automatisch hinzugefügt.
- ## (doppeltes Hashtag): Spezifiziert die Haupteffekte und den Interaktionsterm in einem Schritt.
In der offiziellen Stata-Dokumentation zur Factor Variable Notation wird dieser Unterschied explizit herausgearbeitet: i.hlthstat#i.diabetes erzeugt lediglich den Interaktionsterm, während i.hlthstat##i.diabetes zusätzlich die Haupteffekte von hlthstat und diabetes ins Modell aufnimmt.
Wie Stata ## intern expandiert
Stata löst ## intern nach einer festen Regel auf. Das Prinzip lässt sich leicht merken:
Expansion von ##
Bei drei Faktoren gilt entsprechend: A##B##C expandiert zu A B C A#B A#C B#C A#B#C – also allen möglichen Haupteffekten und Interaktionen bis zur dreifachen Wechselwirkung. Die formale Expansion ist in Statas User’s Guide dokumentiert, der bis zu achtfache Interaktionen unterstützt.
Ein konkretes Beispiel aus der Praxis: regress y sex##group age schätzt ein Modell mit dem Haupteffekt von sex, dem Haupteffekt von group, der Interaktion sex#group sowie dem Kovariate age – alles in einer einzigen Zeile.
Präfixe: i. und c. im Zusammenspiel mit ##
Damit Stata Variablen korrekt behandelt, braucht ## die passenden Präfixe. Ohne sie kann Stata eine eigentlich kontinuierliche Variable fälschlicherweise als kategorial interpretieren – oder umgekehrt.
Der Präfix i. – kategoriale Variablen
i. kennzeichnet eine Variable als kategorial (auch: Indikatorvariable). Stata erstellt daraus automatisch Dummy-Variablen für alle Kategorien außer der Referenzkategorie. Beispiel: i.gruppe bei einer Variable mit vier Ausprägungen erzeugt drei Dummy-Variablen.
Der Präfix c. – kontinuierliche Variablen
c. kennzeichnet eine Variable ausdrücklich als kontinuierlich. Das ist besonders dann nötig, wenn eine numerische Variable in einer Interaktion mit einer kategorialen Variable steht, etwa c.alter##i.gruppe. Ohne c. würde Stata alter in diesem Kontext als kategorial behandeln – ein klassischer Fehler in Abschlussarbeiten.
i.alter##i.gruppe und c.alter##i.gruppe erzeugen fundamental unterschiedliche Modelle. Ersteres behandelt das Alter als Kategorie mit eigenen Dummy-Variablen, Letzteres als metrischen Prädiktor. Achten Sie immer darauf, den richtigen Präfix zu setzen – besonders bei Interaktionen mit kontinuierlichen Variablen. Koeffizienten richtig interpretieren
Die Schätzung mit ## ist der einfache Teil. Die korrekte Interpretation der Koeffizienten dagegen bereitet vielen Studierenden Schwierigkeiten – und das aus gutem Grund.
In einem Modell mit Interaktionstermen dürfen die Haupteffekt-Koeffizienten nicht als globale Effekte gelesen werden. Der Koeffizient für group in einem Modell mit female##group beschreibt den Effekt von group nur für die Referenzkategorie von female (also bei female = 0).
Der Befehl margins als Pflichtergänzung
Nach der Schätzung eines Interaktionsmodells mit ## sollten Sie margins einsetzen, um vorhergesagte Mittelwerte oder Marginaleffekte für verschiedene Kombinationen der beteiligten Variablen zu berechnen. Erst dadurch wird der Interaktionseffekt inhaltlich greifbar. Ergänzend lassen sich mit testparm spezifische Hypothesen über Interaktionsterme testen.
Praktisches Beispiel mit Stata-Code
Das folgende Beispiel zeigt eine Regressionsanalyse mit einer kategorial-kategorialen und einer kategorial-kontinuierlichen Interaktion – angelehnt an ein klassisches Studiendesign aus der Sozialforschung:
* Regressionsmodell mit zwei Interaktionstermen via ##
regress schreiben i.geschlecht##i.programm i.auszeichnung##c.leseleistung
* Haupteffekte und Interaktion von geschlecht und programm testen
testparm i.geschlecht#i.programm
* Vorhergesagte Werte für alle Kombinationen von geschlecht und programm
margins geschlecht#programm
* Grafische Darstellung der Interaktion
marginsplot
Was passiert hier im Einzelnen?
- i.geschlecht##i.programm: Stata nimmt den Haupteffekt von
geschlecht, den Haupteffekt vonprogrammund die Interaktiongeschlecht#programmins Modell auf. - i.auszeichnung##c.leseleistung: Kategoriale Variable trifft auf kontinuierliche – der Effekt der Leseleistung auf das Schreiben darf je nach Auszeichnungsstatus variieren.
- testparm: Prüft, ob der Interaktionsterm
geschlecht#programminsgesamt statistisch bedeutsam ist. - margins + marginsplot: Visualisiert die vorhergesagten Werte für alle Kombinationen und macht den Interaktionseffekt sichtbar.
Das ist in der Praxis deutlich übersichtlicher als die ausgeschriebene Alternative – und inhaltlich identisch. Wer in seiner Stata Do-Datei saubere und nachvollziehbare Spezifikationen hinterlegen möchte, profitiert gerade hier von der ##-Notation.
Häufige Fehler beim Einsatz von ##
Abschlussarbeiten, in denen Interaktionsmodelle vorkommen, haben typischerweise drei wiederkehrende Schwachstellen:
Fehlerquellen im Überblick
- Fehlender Präfix: Kontinuierliche Variablen werden ohne
c.in Interaktionen eingesetzt – Stata behandelt sie dann als kategorial. - Koeffizienteninterpretation ohne Kontext: Haupteffekte aus Interaktionsmodellen werden wie gewöhnliche Regressionskoeffizienten gelesen, obwohl sie konditionaler Natur sind.
- Kein margins-Befehl: Das Modell wird geschätzt, die Interaktion aber nicht visualisiert oder inhaltlich aufbereitet – der Mehrwert bleibt ungenutzt.
- Verwechslung von # und ##: Wer nur
#verwendet, vergisst die Haupteffekte und schätzt ein inhaltlich unvollständiges Modell.
Gerade weil diese Fehler schwer zu erkennen sind – das Modell läuft ja fehlerfrei durch –, lohnt es sich, die Spezifikation vor der Auswertung sorgfältig zu prüfen. Falls Sie methodische Unterstützung bei Ihrer Stata-Auswertung benötigen, kann eine gezielte Beratung helfen, solche Stolperfallen frühzeitig zu umgehen.
Ein letzter Hinweis: ## ändert nichts an den Schätzergebnissen im Vergleich zur ausgeschriebenen Notation – die Koeffizienten, Standardfehler und p-Werte sind identisch. Es handelt sich rein um eine Kurzschreibweise, die das Risiko von Tippfehlern minimiert und den Code lesbarer macht. Wer sich fragt, ob Stata insgesamt schwieriger als SPSS ist, wird feststellen: Solche Syntaxkürzel machen Stata langfristig effizienter – erfordern aber eine gewisse Einarbeitungszeit.