Hallo Madlain,
du bist grundsätzlich schon auf der richtigen Spur; ich glaube, es geht nur um Details, die dir evtl. bei deiner Herangehensweise nicht aufgefallen sind. Und die sind:
- Im Zuge der Abfrage von Wohn-Episoden (Ergebnis:
th21111_g1
inspResidence
) werden ausschließlich die Personen (weiter)befragt, die aus der IAB-ALWA-Studie in die NEPS Startkohorte 6 hineingewachsen sind; dieses Modul ist allerdings erst seit Welle 4 (wieder)eingeführt worden. - Alle anderen Personen (und auch die ALWA-Personen zu Befragungszeitpunkten vor Welle 4) erhalten die Frage nach dem momentanen Wohnohrt im querschnittlich in jeder Welle (Ergebnis:
t751001_g1
inpTarget
).
Eine Kombination aus beiden Datenquellen ist meines Erachtens genau das, was du erreichen möchtest. Dafür solltest du
- Die Episodendaten in
spResidence
(unter Zuhilfenahme des Interviewdatums) auf eine Wohnepisode pro Welle reduzieren - Achtung: Die Reduktion ist dabei immer annahmebehaftet; unterschiedliche Annahmen über den Hauptwohnsitz können zu unterschiedlichen Ergebnissen führen.
- Das Ergebnis zwischenspeichern.
- Die Wohnorts-Daten in
pTarget
durch die reduzierte Informationen auffüllen.
Die folgende Stata-Syntax skizziert das Vorgehen; es scheint für Welle 9 allerdings noch ein Problem dahingehend zu geben, dass die Wohnortsdaten für 1090 Personen nicht korrekt kodiert wurden. Das werden wir mit der nächsten Veröffentlichung beheben.
// this do-file uses the -neps:- prefix command and -nepsmiss-
// to ease the use of NEPS Scientific Use Files;
// install via
// . net install nepstools , from(http://nocrypt.neps-data.de/stata)
neps set directory . // <-- insert directory path to NEPS SUF here; see ". help neps"
neps set level D // anonymisation level: Download
neps set study SC6 // focus study: NEPS SC6
neps set version 9.0.1 // SUF version 9.0.1
neps set language en // label language: english
// declare temporary variables and filenames
tempvar begindate enddate intdate duration
tempfile spresidence_extract
// (1) open spResidence, and reduce the information to one observation per wave and id
neps : use ID_t wave spell subspell spgen th21105 th21106 th21107 th21108 th21109 th21111_g1 using spResidence , clear
* ignore harmonized episodes
drop if spgen==1
* insert place of residence (only asked at first occurrence of episode) into follow-up sub-episodes
bysort ID_t spell (subspell) : replace th21111_g1=th21111_g1[1] if subspell>1
* add interview date from pTarget
neps: merge m:1 ID_t wave using pTarget , keepusing(intm inty wave) assert(match using) keep(match) nogenerate
* encode missings
nepsmiss _all
* generate start and end date (substract 20 in case of vague monthly date, insert 7 as month if information is missing)
generate `begindate'=ym(th21106,cond(missing(th21105),7,cond(inrange(th21105,21,32),th21105-20,th21105)))
generate `enddate'=ym(th21108,cond(missing(th21107),7,cond(inrange(th21107,21,32),th21107-20,th21107)))
* generate interview date
generate `intdate'=ym(inty,intm)
* apply date display format
format `begindate' `enddate' `intdate' %tmCCYY_Mon
* only keep ongoing episodes and episodes that embrace an interview date
* (logically, these selections should be identical; technically, they are not due to item nonresponse in date variables)
keep if ((th21109==1) , (`begindate'<`intdate' & `enddate'>=`intdate'))
// (2) sort, and eliminate duplicates; assumption: longer enduring episodes are "dominant"
* generate duration
generate `duration'=`enddate'-`begindate'+1
replace `duration'=-1 if (missing(`duration')) // <-- replace missing with negative value to make the sorting trick below work
* sort by id, wave, and (descending) duration; thus, the first observation per id and wave is the longest episode
gsort ID_t wave -`duration'
by ID_t wave : keep if (_n==1)
// cross-check data structure, temporarily save relevant information
rename th21111_g1 place_of_residence
keep ID_t wave place_of_residence
isid ID_t wave
save `"`spresidence_extract'"'
clear
// (4) open subset of pTarget, merge sample indicator from Weights
neps : use ID_t wave t751001_g1 using pTarget , clear
neps : merge m:1 ID_t using Weights , keepusing(sample) assert(match) nogenerate
nepsmiss _all
rename t751001_g1 place_of_residence
// combine both data sources, and show some diagnostic tables
merge 1:1 ID_t wave using `"`spresidence_extract'"' , update replace assert(match master match_update match_conflict)
bysort wave : tabulate _merge sample
tabulate wave place_of_residence , missing
Ich hoffe, das hilft dir weiter.
Beste Grüße
Bela