Variablen zusammenfassen

Fragen zu Stata Syntax und Do-Files.

Variablen zusammenfassen

Beitragvon Monez » Mo 15. Jan 2024, 00:56

Screenshot 2024-01-14 234636.png
Screenshot 2024-01-14 234636.png (250.72 KiB) 437-mal betrachtet
Screenshot 2024-01-14 234902.png
Screenshot 2024-01-14 234902.png (79.87 KiB) 437-mal betrachtet
Screenshot 2024-01-14 234846.png
Screenshot 2024-01-14 234846.png (135.65 KiB) 437-mal betrachtet


Hallo, ich schreibe gerade meine Bachelorarbeit und stehe vor einem Problem. Ich habe eine Umfrage veröffentlicht und möchte die Ergebnisse mit STATA auswerten. Ich musste schon einige Dinge anpassen, um mit den Daten arbeiten zu können. Nun habe ich allerdings folgendes Problem:

Ich habe strings in numerische Variablen umgeschrieben. Z.B. der Fachbereich, den die Befragten angeben sollten hieß vorher fb, ich habe ihn umgewandelt und er heißt jetzt fb_r. Die Ergebnisse die drin waren hatten Antwortcodes (AO01, AO02, ...) diese habe ich benannt in eco, law, sosci, etc und habe numlabel, add benutzt, dass sie einen "Wert" haben. Ich möchte jetzt eco, ecoped, poleco und busad in fb_r zu einer Variable zusammenfassen, bekomme aber gesagt, dass die Variablen eco, ecoped, ... nicht existieren.
Habe fb_r dann noch gerecasted, von long in float, aber das hat auch nicht gebracht. Wie kann ich das lösen? (Ich bin Anfänger in STATA also bitte alles erklären :? ;) )

hier meine Do-File:

*Umkodieren

numlabel, add
tabulate G01Q06

rename G01Q07_SQ011 umweltzerst
rename G01Q07_SQ002 vernetzKomm
rename G01Q07_SQ003 kultur
rename G01Q07_SQ009 poliMachtverl
rename G01Q07_SQ004 waren
rename G01Q07_SQ005 ausbeutung
rename G01Q07_SQ006 inthandel
rename G01Q07_SQ008 natintmacht
rename G01Q07_SQ007 finanzkap
rename G01Q07_SQ012 intpoliZsm
rename G01Q07_SQ010 jobverlust

rename G01Q02 sex
rename G01Q03 age
rename G01Q06 studgang
rename G01Q04 fb
rename G01Q04_other fbother
rename G01Q05 semester

rename G01Q08_SQ001 globgut
rename G01Q08_SQ002 globschlecht
rename G01Q08_SQ003 globwn

rename G01Q10_SQ001 globtrotzunabhverl

rename G01Q09 deprofit

rename G01Q13_SQ001 berufspers

rename G01Q14_SQ001 lireskala

rename G01Q11 negerf

rename G01Q12 mail

*destring strg variables in num vriables
encode studgang, generate(studgang_r)
label variable studgang_r "degree courses"
ssc install labutil2
tab studgang_r
label values studgang_r sg
tab studgang_r
label define sg 1 "BA" 2 "MA" 3 "andere"
tab studgang_r

encode fb, generate(fb_r)
label variable fb_r "department"
tab fb_r
label values fb_r fachb
tab fb_r
label define fachb 1 "eco" 2 "law" 3 "sosci" 4 "posci" 5 "socio" 6 "ecoped" 7 "poleco" 8 "busad"
tab fb_r

encode semester, generate(semester_r)
label variable semester_r "semester"
tab semester_r
label values semester_r sem
tab semester_r

encode deprofit, generate(deprofit_r)
label variable deprofit_r "profit for germany through globalization"
tab deprofit_r
label values deprofit_r prof
tab deprofit_r
label define prof 1 "Yes" 2 "No" 3 "Neither"
tab deprofit_r

encode berufspers, generate(berufspers_r)
label variable berufspers_r "career prospects"
tab berufspers_r
label values berufspers_r carpros
tab berufspers_r
label define carpros 1 "very good" 2 "good" 3 "mediocre" 4 "bad" 5 "very bad"
tab berufspers_r

encode lireskala, generate(lireskala_r)
label variable lireskala_r "left-right-scale"
tab lireskala_r
label values lireskala_r lerisc
tab lireskala_r
label define lerisc 1 "left" 2 "center-left" 3 "center" 4 "center-right" 5 "right"
tab lireskala_r

*combine similar departments
numlabel, add
tab fb_r
generate eco_all = eco + ecoped + poleco + busad
Monez
 
Beiträge: 3
Registriert: Mo 15. Jan 2024, 00:36
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variablen zusammenfassen

Beitragvon Staxa » Mo 15. Jan 2024, 14:12

Recast kannst du dir sparen, das brauchst du nicht benutzen, das betrifft nur die Speicherung intern.

Wichtig ist encode, so kannst du Strings/Texte in numerische Angaben verwandeln.

Deine Logik für den generate Befehl ist falsch. Hierbei würdest du VARIABLEN aufaddieren, du willst aber Kategorien zusammenfassen. Das geht mit recode.

Code: Alles auswählen
recode fb_r (1 2 3 = 0) (4 5 6 = 1), gen(mynewvar)


Nutze doch besser fre statt tab, da siehst du die Codes direkt.

Code: Alles auswählen
ssc install fre, replace


Siehe auch den Link in meiner Signatur.
Stata für Anfänger: www.statabook.com
Staxa
 
Beiträge: 680
Registriert: Di 27. Feb 2018, 12:56
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variablen zusammenfassen

Beitragvon Monez » Mo 15. Jan 2024, 16:35

Kannst du mir erklären, was genau das mit den Zahlen auf sich hat? Das scheint mir nämlich eine Dummy Variable zu generieren, ich möchte aber die Variablen eco, eped, poleco, busad zu einer Variable zusammenfassen, in der die jeweiligen Werte zu einem Wert aufaddiert sind.

Code: Alles auswählen
recode fb_r (1 2 3 = 0) (4 5 6 = 1), gen(mynewvar)


Ich habe noch ein Problem entdeckt: wenn ich ds db_r anwende wird mir nur fb_r ausgegeben und nicht meine Ausprägungen eco, law, ...
Wie kann ich auf die Werte zugreifen und mit den einzelnen Werten arbeiten?
Monez
 
Beiträge: 3
Registriert: Mo 15. Jan 2024, 00:36
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variablen zusammenfassen

Beitragvon Monez » Mo 15. Jan 2024, 17:38

Screenshot 2024-01-15 162951.png
Screenshot 2024-01-15 162951.png (68.73 KiB) 412-mal betrachtet
Screenshot 2024-01-15 163044.png
Screenshot 2024-01-15 163044.png (74.53 KiB) 412-mal betrachtet
Monez hat geschrieben:Kannst du mir erklären, was genau das mit den Zahlen auf sich hat? Das scheint mir nämlich eine Dummy Variable zu generieren, ich möchte aber die Variablen eco, eped, poleco, busad zu einer Variable zusammenfassen, in der die jeweiligen Werte zu einem Wert aufaddiert sind.

Code: Alles auswählen
recode fb_r (1 2 3 = 0) (4 5 6 = 1), gen(mynewvar)


Ich habe noch ein Problem entdeckt: wenn ich ds db_r anwende wird mir nur fb_r ausgegeben und nicht meine Ausprägungen eco, law, ...
Wie kann ich auf die Werte zugreifen und mit den einzelnen Werten arbeiten?


Ich habe mal mit deiner Anleitung eco_all erstellt -> recode fb_r (2 3 4 5 = 0) (6 7 = 1), gen(eco_all)
Ich möchte nämlich mit den Variablen Regressionen durchführen und mit Dummi-Variablen geht das schlecht, dann sieht mein Output komisch aus und ist schwer zu interpretieren. Ich hänge mal ein Bild an. Auf dem Ersten habe ich reg lireskala_r fb_r durchgeführt und auf dem zweiten reg lireskala_r eco_all
Monez
 
Beiträge: 3
Registriert: Mo 15. Jan 2024, 00:36
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variablen zusammenfassen

Beitragvon Staxa » Di 16. Jan 2024, 12:46

Das Problem ist, dass du gar nicht beschreibst, was du eigentlich vor hast, das muss man sich also aus den Daten zusammenreimen. Ich verstehe das so, dass du Personen aus verschiedenen Uni Abteilungen befragt hast und nun eine abhängige Variable testen willst, ob sie sich zwischen den Abteilungen unterscheidet. Wenn das so ist, und eine Person nur in exakt einer Abteilung Mitglied sein kann, so musst du recode nutzen und nicht aufaddieren, was soll das bedeuten? Und genau das willst du offenbar, einen Dummy (oder eine andere kategoriale Var, die Abteilungen zusammenfasst). Und deine Abbildung ist korrekt aber leider nicht gut nutzbar, da es zu wenige Werte gibt. Du kannst hier aber gerne Mittelwerte anschauen, etwa mit:

Code: Alles auswählen
tabstat outcome, by(department)


Oder dann als Regression

Code: Alles auswählen
reg outcome i.department
margins department
Stata für Anfänger: www.statabook.com
Staxa
 
Beiträge: 680
Registriert: Di 27. Feb 2018, 12:56
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Stata Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast