Datensätze mergen - Problem eindeutige Identifizierbarkeit

Fragen zu Stata Syntax und Do-Files.

Datensätze mergen - Problem eindeutige Identifizierbarkeit

Beitragvon Chasi » Sa 8. Jun 2013, 13:53

Hi, mein Problem:

2 Datensätze
Datensatz 1 - mit allen Beobachtungen: Jedes Individuum hat eine Haushalt-IQ (Variable id) und eine Individuumsnummer innerhalb des Haushalts (Variable memid)
Datensatz 2 - mit nur einem Teil der Beobachtungen: Jedes Individuum hat wieder eine Haushalt-IQ (Variable id), die auch mit der im Datensatz 1 übereinstimmt, allerdings dann keine memid. Die einzelnen Individuen werden dann innerhalb des Haushaltes anders geordnet. Ich möchte, dass sie auch die gleiche memid zugeordnet bekommen!

Allein mit id kann ich jetzt natürlich nicht eindeutig identifizieren. Das einzige was die Individuen noch als gleiche Variable haben ist der Name. Allerdings ist es wohl so, dass bei einigen (ich denke wenigen) Beobachtungen Namen innerhalb des Haushalts mehrfach vorkommen. Ich könnte für dieses Beobachtungen händisch schon sagen welche Person es dann wohl ist, denn im Datensatz 1 gibt es noch die Variable age und im Datensatz 2 gibt es noch die Variable Geburtsjahr.

Wie merge ich und sorge dafür, dass ich im Datensatz 2 damit auch die memid zuordnen kann, die die Individuen im Datensatz 1 haben?

Wenn ich merge, gibt er mir den Fehler, dass eben auch Name nicht eindeutig spezifiziert ist. (Aufgrund dem oben genannten Problem).

Help highly appreciated :(
Chasi
 
Beiträge: 10
Registriert: Sa 8. Jun 2013, 13:46
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Datensätze mergen - Problem eindeutige Identifizierbarke

Beitragvon daniel » Sa 8. Jun 2013, 18:28

Für Dein Problem gibt es leider keine (gute) Lösung. Wenn die Personen in Datensatz 2 nicht eindeutig identifiziert sind - also es keine Datensatz 1 entsprechende id Variable (memid) gibt - dann lässt sich das nicht ändern.

Das beste, was Du tun kannst, hast Du bereits beschrieben: so viele bekannte/kontsante Variablen zum -merge-n verwenden, wie möglich. Allerdings musst Du Alter bzw. geburtsjahr natürlich nicht "händisch" vergleichen, denn das kann Stata auch tun, solange Du eines der beiden in das jeweils andere Format übersetzt und gleich benennst.

vgl. auch: http://blog.stata.com/2011/04/18/mergin ... -gone-bad/
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: Datensätze mergen - Problem eindeutige Identifizierbarke

Beitragvon Chasi » Sa 8. Jun 2013, 18:57

Danke für deine schnelle Antwort.

Habe jetzt die Idee zu mergen anhand der ID und des Namens. In wenigen Fällen gibt es den Namen in einer Familie doppelt.
In dem Fall würd ich einfach mal sagen, dass eben dann die Familie mit der ID rausgeworfen wird. Es sind nicht viele.

Aber was ist der Befehl zu mergen anhand von ID und NAME und falls NAME doppelt, soll er diesen Haushalt rausschmeißen?

wenn ich nur eingebe merge 1:1 ID NAME using blablaandererdatensatz, gibt er mir natürlich nur die Fehlermeldung, dass durch einige doppelte Namen pro ID nicht gemerged werden kann.

LG & Danke!
Chasi
 
Beiträge: 10
Registriert: Sa 8. Jun 2013, 13:46
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Datensätze mergen - Problem eindeutige Identifizierbarke

Beitragvon daniel » Sa 8. Jun 2013, 19:18

Warum die Fälle verschwenden, auch wenn es nur wenige sind?

Ich würde aus dem Geburtsjahr das Alter machen (oder umgekehrt, je nachdem was in welchem Datensatz vorhanden ist) und dann etwas in der Art

Code: Alles auswählen
mer 1:1 ID NAME <ALTER> using foo


versuchen.

Ansonsten musst Du die "doppelten" vor dem -merge-n rauswerfen. Das kannst Du mit -duplicates- machen.
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: Datensätze mergen - Problem eindeutige Identifizierbarke

Beitragvon Chasi » Sa 8. Jun 2013, 21:51

hab mich jetzt dazu entschlossen, die duplicates rauszumachen, hab mir das mal genauer angeschaut und es sind teilweise datenfehler und insgesamt nur ein paar von paar tausend observations.

leider funktioniert das mergen trotzdem nicht :( hab die duplicates gedropped (habs auch nachkontrolliert und sie sind draußen). er gibt mir aber wieder die fehlermeldung, dass id und name nicht eindeutig spezifizieren. an was kann das noch liegen?

so hab ich die duplicats raus:
Code: Alles auswählen
sort id name
quietly by id name: gen dup = cond(_N==1,0,_n)
tabulate dup
drop if dup>0
save ...


und so hab ich gemerged:
Code: Alles auswählen
merge 1:1 id name using ...


bekomm dann aber das:
variables id name do not uniquely identify observations in the
master data
r(459);
Chasi
 
Beiträge: 10
Registriert: Sa 8. Jun 2013, 13:46
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Datensätze mergen - Problem eindeutige Identifizierbarke

Beitragvon daniel » So 9. Jun 2013, 00:07

Ich kann nicht viel dazu sagen, ich habe die Daten nicht.

Ich würde hier nicht meinen eigenen code verweden (auch wenn das korrekt aussieht), sondern (wie von mir vorgeschlagen) das dafür entwickelte command -duplicates- verwenden. Aber daran wird es vermutlich nicht scheitern.

Wenn Stata Dir sagt, dass die Fälle noch immer nicht eindeutig identifiziert sind, stimmt das. Punkt. Es liegt nun an Dir herauszufinden, wesshalb das so ist. Vielleicht hilft dabei das bereits angesprochene -duplicates- und zusätzlich -isid-, um nicht immer erst beim Aufruf von -merge- den Fehler zu bekommen.

Was mir noch auffällt, die Fehlermeldung bezieht sich auf den master Datensatz. Wenn Du die Duplikate im using Datensatz entfernst, musst Du das natürlich auch im master tun -- wie soll Stata sonst wissen, welchen Fall im master es dem im using (aber eben auch nur dort) eindeutig identifizierten Fall zuordnen 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: Datensätze mergen - Problem eindeutige Identifizierbarke

Beitragvon Chasi » Do 13. Jun 2013, 16:56

Vielen Dank ;) Ja, das war des Rätsels Lösung :)
Chasi
 
Beiträge: 10
Registriert: Sa 8. Jun 2013, 13:46
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