Anzahl jüngerer Geschwister für jedes Kind generieren

Fragen zu Stata Syntax und Do-Files.

Anzahl jüngerer Geschwister für jedes Kind generieren

Beitragvon pinsi1 » Di 14. Okt 2014, 17:22

Hallo zusammen,

ich arbeite mit Haushaltsdaten und benötige die Anzahl jüngerer Geschwister [i]für jedes Kind[/i] in dem Haushalt.
Habt ihr viellicht eine Idee, wie ich den es schaffe die Anzahl jüngerer Geschwister für jedes Kind im Haushalt zu generieren?

Angelehnt an N. Cox Beitrag (s. unten, Punkt 5) habe ich schon folgendes ausprobiert, aber ich komme da aber leider nicht weiter und habe womöglich einen richtig doofen Denkfehler.
Bekomme da die Bedingung nicht so sinnvoll rein, dass stata nur die Kinder aufsummiert deren Alter kleiner ist als das der laufenden individuellen Nummer ("pid")
"famid" ist der Haushalts-identifier und "kind" gibt an, ob es sich bei einer Person im Haushalt ein Kind handelt ist:

gen anzahl_jk=.
bys famid: gen pid=_n
sum pid
quietly forvalues i=1/`r(max)' {
gen include=1 if pid!= `i' & kind==1
egen work=total(include), by(famid)
*replace anzahl_jk=work if pid==`i'
drop include work
}




N. Cox(2005): Creating variables recording properties of the other members of a group: http://www.stata.com/support/faqs/data-management/creating-variables-recording-properties/


Vielen Dank schonmal für eure Hilfe und schöne Grüße
Pinsi1
pinsi1
 
Beiträge: 17
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Anzahl jüngerer Geschwister für jedes Kind generieren

Beitragvon daniel » Mi 15. Okt 2014, 16:14

Kannst Du ein Minimalbeispiel konsturieren?
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Anzahl jüngerer Geschwister für jedes Kind generieren

Beitragvon pinsi1 » Do 16. Okt 2014, 08:45

Hier ein kleiner Ausschnitt aus den Daten:


+----------------------------+
| famid pid kind alter |
|----------------------------|
1. | 1 1 1 0 |
2. | 1 2 1 6 |
3. | 1 3 1 9 |
4. | 1 4 0 33 |
5. | 1 5 0 32 |
|----------------------------|
6. | 2 1 1 12 |
7. | 2 2 1 14 |
8. | 2 3 1 2 |
9. | 2 4 0 42 |
10. | 2 5 0 42 |
|----------------------------|
11. | 3 1 1 7 |
12. | 3 2 1 6 |
13. | 3 3 0 44 |
14. | 3 4 0 35 |
15. | 4 1 1 15 |
|----------------------------|
16. | 4 2 1 7 |
17. | 4 3 0 33 |
18. | 4 4 0 36 |
+----------------------------+




Ich brauche nun innerhalb jeder familie (famid) für jedes Kind die Anzahl jüngerer Geschwister. Für die erste Familie (famid=1) wäre das also:
Kind mit pid=1 hat 0 jüngere Geschwister
Kind mit pid=2 hat 1 jüngeres Geschwisterkind
Kind mit pid=3 hat 2 jüngere Geschwister
usw.

Für die Eltern (kind=0) müsste die neue Variable dementsprechend als missing gesetzt werden.
pinsi1
 
Beiträge: 17
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Anzahl jüngerer Geschwister für jedes Kind generieren

Beitragvon daniel » Do 16. Okt 2014, 11:42

Aber ist das nicht ganz einfach

Code: Alles auswählen
bys famid (kind alter) : g n_younger_sibs = (sum(kind) - 1) if kind


Hier Dein Beispiel

Code: Alles auswählen
clear
inp famid pid kind alter
1 1 1 0
1 2 1 6
1 3 1 9
1 4 0 33
1 5 0 32
2 1 1 12
2 2 1 14
2 3 1 2
2 4 0 42
2 5 0 42
3 1 1 7
3 2 1 6
3 3 0 44
3 4 0 35
4 1 1 15
4 2 1 7
4 3 0 33
4 4 0 36
end

bys famid (kind alter) : g n_younger_sibs = (sum(kind) - 1) if kind

l ,sepby(famid)


Edit: Vorsicht bei gleichaltrigen Kindern. Die werden in diesem Absatz zufällig dem einen als älteres, dem anedren als jüngeres Geschwisterkind zugeordnet. Hier bräuchte man eine Regel, was dabei geschen soll.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Anzahl jüngerer Geschwister für jedes Kind generieren

Beitragvon pinsi1 » Do 16. Okt 2014, 12:02

Ja, war es. Stand scheinbar auf dem Schlauch...
Danke!
pinsi1
 
Beiträge: 17
Registriert: Sa 1. Okt 2011, 17:20
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

cron