Chapter 3 Data Preparation
3.1 recode
- Mit recode werden die Ausprägungen einer Variable rekodiert, beispielsweise um die Ausprägungen einer Variable zusammenzufassen
- Vorsicht: Mit recode wird die Ausgangsvariable rekodiert! Mit der Option generate(new_variable) wird zusätzlich eine neue Variable generiert und die Ausgangsvariable bleibt unversehrt.
- Zum Rekodieren kann die Option nolab genutzt werden, diese zeigt Ausprägungen anstelle von Labels an.
- Im Stata Output werden die Werte der Variable foreign von 0 auf 1; bzw von 1 auf 0 rekodiert, beispielsweise um eine leichtere Interpretation der Dummy Variable zu erhalten.
sysuse auto, clear
tab foreign
tab foreign, nolab
recode foreign (0 = 1) (1 = 0), gen(foreign_recode)
tab2 foreign foreign_recode
(1978 Automobile Data)
Car type | Freq. Percent Cum.
------------+-----------------------------------
Domestic | 52 70.27 70.27
Foreign | 22 29.73 100.00
------------+-----------------------------------
Total | 74 100.00
Car type | Freq. Percent Cum.
------------+-----------------------------------
0 | 52 70.27 70.27
1 | 22 29.73 100.00
------------+-----------------------------------
Total | 74 100.00
(74 differences between foreign and foreign_recode)
-> tabulation of foreign by foreign_recode
| RECODE of foreign
| (Car type)
Car type | 0 1 | Total
-----------+----------------------+----------
Domestic | 0 52 | 52
Foreign | 22 0 | 22
-----------+----------------------+----------
Total | 22 52 | 74
- Bitte bei der Erstellung oder Rekodierung einer Variable stets nach der Datenaufbereitung prüfen ob dies fehlerfrei funktioniert hat (bspw. über tab Befehl)
3.2 generate und replace
- Mit generate wird eine neue Variable erstellt und je nach Angabe werden spezifische Werte (auch missings) vergeben
- Mit replace können diese Werte ausgetauscht werdem, also beispielsweise nach der Ausprägung einer zu recodierenden Variablen ersetzt werden
- Beispiel: Die Variable foreign zeigt an, ob ein Auto ausländisch (1) ist
- Mit generate und replace können wir eine neue Variable (domestic) erzeugen die auf 1 springt, wenn ein Auto ausländisch ist anstelle der alten Codierung
gen domestic = 1
replace domestic = 0 if foreign == 1
tab2 foreign domestic
(22 real changes made)
-> tabulation of foreign by domestic
| domestic
Car type | 0 1 | Total
-----------+----------------------+----------
Domestic | 0 52 | 52
Foreign | 22 0 | 22
-----------+----------------------+----------
Total | 22 52 | 74
3.3 egen
- egen bedeutet: Extensions to generate
- Beispielsweise lässt sich so der Mean einer Variable berechnen und dieser kann direkt als neue Variable gespeichert werden
egen mean_price = mean(price)
list mean_price in 1/4, table
. egen mean_price = mean(price)
. list mean_price in 1/4, table
+----------+
| mean_p~e |
|----------|
1. | 6165.257 |
2. | 6165.257 |
3. | 6165.257 |
4. | 6165.257 |
+----------+
- Zur Generierung von Summary statistics können eine Reihe an Funktionen: count(), iqr(), kurt(), mad(), max(), mdev(), mean(), median(), min(), mode(), pc(), pctile(), sd(), skew(), and total() genutzt werden.
- Häufig muss der Datensatz noch entsprechend sortiert werden. Beispielweise bei einer zeitlicher Struktur und mehrere Wellen in den Daten. Dies zeigt der folgende Output exemplarisch:
by sortier_var, sort: egen new_var = median(var)
3.4 label
- Your variables need some nice labels?
- Der Befehl lab var gibt der Variable ein Label
- Der Befehl lab def definiert die Labels für die Ausprägungen der Variable
- Der Befehl lab val fügt die definierten Labels der Variablen hinzu
*Einer Variable einen Namen, Label gebenlabel variable domestic "Inländische Autos"
*Ausprägungen müssen definiert werden und können so für mehrere Variablen genutzt werdenlabel define car_label 0 "Ausländische Autos" 1 "Inländische Autos"
*Ausprägungen müssen der Variable zugeordnet werdenlabel values domestic car_label
*Did it work?tab domestic
Inländische Autos | Freq. Percent Cum.
-------------------+-----------------------------------
Ausländische Autos | 22 29.73 29.73
Inländische Autos | 52 70.27 100.00
-------------------+-----------------------------------
Total | 74 100.00
3.5 Mathematische Transformationen
Hier eine erste kurze Sammlung zentraler mathematischer Transformationen in Stata:
- Logarithmus von Variable(n) erstellen
- Polynome
- Variable am Mean zentrieren
gen ln_age = ln(age) // Logarithmus
gen quad_age = (age*age) // Quadratischer Term
center age , gen (zent_age) // Variable zentrieren