Begleitmaterialien zur Übung Einführung in die empirische Mikroökonometrie - Ökonometrie II

Größe: px
Ab Seite anzeigen:

Download "Begleitmaterialien zur Übung Einführung in die empirische Mikroökonometrie - Ökonometrie II"

Transkript

1 Begleitmaterialien zur Übung Einführung in die empirische Mikroökonometrie - Ökonometrie II 1. Eine kurze Einführung in STATA Guido Heineck 16. April 2003 Universität Bamberg, Professur für Sozialpolitik, Feldkirchenstr. 21, Bamberg, guido.heineck@sowi.uni-bamberg.de 1

2 0. Einführende Bemerkungen Die Statistik-Software STATA ist ein flexibles, umfangreiches und mächtiges Statistik-Paket. Die in in Vorlesung und Übung behandelten Modelle und Methoden bilden nur einen kleinen Ausschnitt dessen, was unter STA- TA bearbeitet werden kann. Zur Arbeit mit STATA gibt es eine Fülle an hilfreichen Informationen. Dem Neuling sei die Firmen-Website empfohlen ( die eine umfangreiche FAQ beinhaltet und darüber hinaus auch links zu anderen STATA-Ressourcen bereitstellt. Für den Anfänger gut geeignet erscheint hier insbesondere die Einführung, die die University of California, Los Angeles (UCLA) im Web ( zur Verfügung stellt. Hier arbeiten wir mit Version 7 für Windows. Grundsätzlich ermöglicht dies, Befehle interaktiv einzugeben, also über das sog. Befehlseingabe-Fenster. Während dies zwar den Einstieg erleichtern kann, sind komplexere Analysen nur schwer durchzuführen. Daher werden wir syntaxbasiert arbeiten. D.h., kleine Befehlstexte werden mit einem Text-Editor erstellt und dann in STA- TA abgearbeitet. Grundsätzlich kann hierzu jeder beliebige Editor herangezogen werden, für den Einstieg ist der STATA-interne Editor ausreichend. 1 Daneben bietet sich mit dem Erstellen derartiger Batch-Dateien auch die Möglichkeit, 1) Arbeitsschritte zu kommentieren und 2) zu archivieren. Syntax-Dateien werden von STATA als Befehlsprogramm erkannt, wenn man ASCII-Dateien als sogenanntes do-file ablegt, also mit der Dateiendung *.do versieht, statt z.b. *.txt. Nachfolgend werden nun die in der Veranstaltung häufig verwendeten Befehle zur Arbeit mit STATA angeführt und kurz erläutert. Zunächst: Die allgemeine Befehlsstruktur der STATA-Kommandos sieht vor, dass das Kommando den Variablen(namen) voran steht, ggf. noch ergänzt um weitere Optionen, die durch ein Komma abgesetzt sind. Die erstgenannte Variable ist dabei stets die endogene, also abhängige Größe. Kommando [Variablenliste] [, Optionen] Soll also zum Beispiel eine einfache lineare Regression zwischen y und x geschätzt werden, so lautet der entsprechende Befehl: regress y x 1 Ein m.e. guter Editor zur Arbeit mit STATA ist TextPad (Shareware: Neben Syntax-Highlighting besteht z.b. auch die Möglichkeit, do-files als batch im Hintergrund ablaufen zu lassen. 1

3 In aller Regel können Befehle auch abgekürzt werden. Am Beispiel würde statt regress auch reg genügen, was durch die Unterstreichung der ersten drei Lettern gekennzeichnet ist. Die Möglichkeit der Abkürzung besteht auch für die Variablennamen, es muss aber sowohl für Befehle wie auch Variablen Eindeutigkeit sicher gestellt sein. Ist man sich der Befehlsstruktur nicht im Einzelnen sicher, kann man die STATA-eigene, sehr gute Online-Hilfe zu Rate ziehen. Mit help regress bzw. allgemein help command werden im Ausgabefenster Erläuterungen zum Befehl und zu den Optionen gegeben. Befehlsbegleitende Kommentare können ebenfalls erfasst werden. Diese werden von STATA ignoriert, können aber sowohl für den eigenen, späteren Gebrauch, wie auch für die Verwendung durch Dritte sehr hilfreich sein. Einzeilige Kommentare können mit einem Asterisk (*) eingeleitet werden, Kommentare in Befehlsschritten sind mit (/*... */) zu erfassen. Bsp.: * dies ist ein kommentar regress y x /* dies ist auch ein kommentar */ 1. Daten in STATA einlesen und Vorgänge protokollieren Es gibt mehrere Möglichkeiten, Daten in den Arbeitsspeicher von STATA zu laden. Dazu gehört natürlich auch die direkte Eingabe in eine Datenmatrix. Diese erfolgt über den Befehl input. Daneben können bereits im ASCII-Format vorliegende (Text-)Daten mit u.a. insheet, infile, infix eingelesen werden und im STATA-Datenformat (*.dta) abgespeichert werden. Die in dieser Veranstaltung herangezogenen Daten liegen indes schon in diesem Format vor. Das Öffnen der Daten bzw. Einlesen in den Arbeitsspeicher erfolgt dann über den Befehl: use Dateiname mit Pfadangabe [, clear] Die Option clear ermöglicht ein Einlesen von Daten, selbst wenn der Arbeitsspeicher bereits mit Daten belegt ist. Hier ist gleichwohl Vorsicht angebracht: Sind die bereits vorliegenden Daten manipuliert und danach nicht gesichert, d.h. abgespeichert worden, so gehen diese verloren. Sind die Daten im Arbeitsspeicher, können diese manipuliert werden und/oder statistische Verfahren angewendet werden. Um die Arbeitsvorgänge zu protokollieren, gibt es die Möglichkeit, ein sogenanntes log-file aufzuzeichnen. Der dazu gehörige Befehl lautet: log using Log-Name mit Pfadangabe 2

4 Das somit geöffnete log-file zeichnet sowohl die im do-file erstellten Befehle sowie die Ergebnisse der Analysen auf. Wird die Namensendung (*.log) verwendet, wird eine einfach weiter verwendbare Textdatei erzeugt. Nach Ablauf eines Programms oder auch nur eines Abschnitts kann bzw. muss das log-file wieder geschlossen werden. Dies erfolgt über: log close 2. Befehle zu ersten, einfachen Datensichtungen Eine Beschreibung des im Arbeitsspeicher abgelegten Datensatzes oder einzelner Variablen erhält man über: describe [varlist] Die Variablenwerte von einzelnen oder allen Beobachtungen (Individuen, Firmen etc.) erhält man über: list [varlist] Interessiert man sich nur für eine bestimmte Beobachtung oder einen bestimmten Abschnitt der Daten, dann ist die Option in hilfreich. So kann man sich bspw. die ersten 20 Beobachtungen mit list [varlist] in 1/20 anschauen. Für einfache deskriptive Statistiken steht der folgende Befehl zur Verfügung: summarize [varlist] Hiermit werden zum gesamten Datensatz oder zu einzelnen Variablen standardmäßig die Anzahl der Beobachtungen, der Mittelwert, die Standardabweichung sowie Minimum und Maximum ausgegeben. Häufigkeitsverteilungen und einfache Kreuztabellen erstellt man mit: tabulate [varlist] Die Benutzung von Gewichtungsfaktoren ist hier zulässig, so dass bei z.b. Verwendung von SOEP-Daten und geeigneter Gewichtung repräsentative Aussagen für Deutschland möglich wären. Diagramme und Grafiken sind gleichfalls einfach zu erzeugen: 3

5 graph [varlist] Zu diesem Befehl gibt es eine Fülle von Optionen; siehe auch STATA s Online-Hilfe (help graph). Oftmals sind neue Variablen zu generieren bzw. vorhandene zu modifizieren. Bspw. können somit aus kategorialen Variablen mit mehreren Ausprägungen Dummy-Variablen mit 0/1-Ausprägungen erstellt werden. Die folgenden Befehle sind hierfür hilfreich: generate new var = expression replace oldvar = exp recode varname rule generate erzeugt neue Variablen; replace modifiziert den Inhalt einer vorhandenen Variablen; recode modifiziert die Variable entsprechend der vorgegebenen Regel. 3. Abschließende Bemerkungen und ein Beispiel Die Struktur von STATA-Sessions sieht prinzipiell also wie folgt aus: 1. STATA aufrufen 2. STATA s do-file editor aufrufen 3. do-file inkl. log-file erstellen; Arbeitsschritte können z.b. sein: (a) log-file öffnen (b) daten in den arbeitsspeicher laden (c) erste datensichtung (d) datenmanipulation (e) ökonometrische analysen (f) ggf. modell-spezifikation überprüfen (g) log-file schließen 4. do-file ablaufen lassen 5. STATA schließen 4

6 Ein do-file mit einer einfachen Datenanalyse könnte bspw. folgendermaßen aussehen: 2 /* prog: auto.do */ /* date: April 2003*/ /* doing: erste schritte in STATA */ /* log-file oeffnen; achtung: pfad muss vorhanden sein */ log using c:\stata-files\myfirststatalog.log /* datensatz laden; hier: STATA s "auto.dta" */ use auto, clear /* datenbeschreibung und deskriptive statistiken */ d /* describe */ summ /* auflisten aller oder einzelner beobachtungen */ list list price list price if price > /* neue variable(n) erzeugen */ gen expensive=(price > 10000) /* einfache haeufigkeitsverteilungen */ tab price tab expen /* kreuztabellen */ tab rep foreign, row /* grafische datensichtung */ graph turn length /* mgl. positiver zshg. */ graph weight mpg /* mgl. negativer zshg. */ graph price foreign /* und hier? */ /* korrelationskoeffizienten, paarweise */ pwcorr turn length mpg weight price foreign 2 Das Beispiel liegt auch also do-file (auto.do) vor. 5

7 /* einfache lineare regressionen */ reg turn length reg mpg weight /* daten aus speicher loeschen, ggf. vorher speichern */ clear /* schliessen des log-files */ log close /* STATA beenden */ exit 6