Stata
Aus WeissWiki
Inhaltsverzeichnis |
[Bearbeiten] Statistische Analysen
[Bearbeiten] Interaktionseffekte in Regressionsmodellen
Auf http://www.stata.com/stata11/factorvar.html wird ein neues feature von Stata 11 beschrieben, um Interaktionseffekte/Produktterme 'on-the-fly' in Modelle einzubauen.
[Bearbeiten] Programmieren
[Bearbeiten] Relative Pfadangaben
Analysecode mit häufigen Lese- und Schreibzugriffen sollte ohne absolute Pfadangaben auskommen. Eine (beschränkte) Möglichkeit sind relative Pfadangaben (../mydata/) oder aber die Verwendung von lokalen Makros, die entsprechende Informationen enthalten. Nachfolgend ist ein Beispiel für ein solches Makro aufgeführt:
local mypath "e:/data/" cd `mypath' // Oder, mit ergänzenden Pfadangaben cd `mypath'pairfam // Wechsle nach e:/data/pairfam macro list // Inhalt aller Makros auflisten
Ein Hinweis: Unter Stata 11 läuft die oben gezeigte Makro nur nach einem Update (-update all-)!
[Bearbeiten] Zugriff (und Weiterverarbeitung) von Stata-Ergebnissen (r(...) und e(...))
Eine gute Übersicht liefert (wie so oft): http://www.ats.ucla.edu/stat/stata/faq/returned_results.htm
- Skalare werden mit disp r(...) dargestellt.
- Matrixen werden mit matrix list r(...) dargestellt.
Nachfolgend ein kleines Beispiel, um eine beliebige Matrix (die aus einzelnen Spalten zusammengestellt wurde), mit Hilfe von esttab zu exportieren:
// Datensatz laden webuse automiss
// Cronbachs alpha berechnen, alpha-if-item-deleted etc. pp. alpha price headroom rep78 trunk weight length turn displ, std item
// Welche Ergebnisse wurden wie abgespeichert return list
// if item deleted; (Zeilen-)Vektoren abspeichern (1 x 8) matrix a = r(Alpha) matrix b = r(MeanInterItemCorr)
// beide Vektoren zu Matrix zusammenfassen (2 x 8) matrix c = a\b matrix list c
// Matrix transponieren (8 x 2) matrix c = c' matrix list c // abspeichern esttab matrix(c) using d:/tmp/example.csv, scsv replace
Die csv-Datei sieht wie folgt aus:
="";="c";="" ="";="r1";="r1" ="price";=".9128249";=".5993398" ="headroom";=".8969323";=".5542071" ="rep78";=".9143488";=".6039662" ="trunk";=".8818054";=".5159268" ="weight";=".8634851";=".4746798" ="length";=".8624537";=".4725055" ="turn";=".8726937";=".4947697" ="displacement";=".8683838";=".4852127"
Eine Erweiterung könnte darin bestehen, einzelne Skalare noch einzubauen (wie Cronbachs Alpha gesamt etc.)
// Cronbachs Alpha abspeichern matrix d = r(alpha)
// Neuer Dummy-Zeilenvektor (r-1) matrix input f = (0) // Dummy-Zeilenvektor und Alpha zusammenfassen (1 x 2) matrix f = f,d
Anschließend Matrix f wieder mit esttab abspeichern und die "0" in der letzten Zeile löschen

