Fehlende Werte ersetzen (Matching xfill)

Fragen zu Stata Syntax und Do-Files.

Fehlende Werte ersetzen (Matching xfill)

Beitragvon Josef » Mi 7. Aug 2013, 14:38

Grüß Gott, ich bin relativ neu bei Stata und habe folgendes Problem:
ich würde gerne fehlende Werte ersetzen durch ein sogenanntes matching.

1.
Ich habe einen sehr großen Datensatz (mehr als 130.000 Observationen). Dort habe ich Unternehmen aufgelistet über mehrere Jahre mit unterschiedlichen Variablen (Anzahl der Mitarbeiter, Gewinn usw). Zudem habe ich einige Variablen, die die Unternehmen in unterschiedliche Industrien einteilen.

Industrie-Einteilungen:
- ff_industry_5
- ff_industry_10
- ff_industry_17
- ff_industry_30
- ff_industry_38
- ff_industry_48
- ff_industry_49

Diese Industrie-Klassifizierungen unterscheiden sich darin, dass z.B. die ff_industry_5 alle Unternehmen in 5 Gruppen einteilt, die ff_industry_10 in 10 Gruppen usw.

Diese Industrie-Einteilungen von den ff_industrys pro Unternehmen wird durch eine Variable prod1_sic festgelegt.

prod1_sic für ein Unternehmen wird durch das Segments des 1. Produktes des Unternehmens bestimmt.

Somit ist die Anzahl der fehlenden Werte bei prod1_sic und bei den ff_industrys (5,10,...,49) die selbe weil die ff_industrys von prod1_sic abhängig sind.

2.
Zudem habe ich eine weitere Variable: primary_sic Diese primary_sic hat kaum (deutlich weniger als prod1_sic) fehlende Werte. Ich würde gerne die fehlenden Werte von der Variable prod1_sic durch ein matching mit der Variable primary_sic auffüllen, da sie deutlich weniger fehlende Werte hat.

Ich suche einen Weg um prod1_sic zu füllen

Hier ist noch zu sagen, dass der prod1_sic nicht konstant ist mit primary_sic.

Ich habe mir dieses Thema angeguckt

http://www.stata-forum.de/post1374.html#p1374 Konnte mir aber nicht weiterhelfen.

Zudem habe ich das Command:
Code: Alles auswählen
xfill
runtergeladen. Dieser verweist aber darauf, dass prod1_sic nicht konstant mit primary_sic ist.

Ich habe noch für ein Matching eine Datei (siehe Anhang). Leider komme ich mit dem Problem nicht alleine klar.
Meint ihr hier gibt es eine Lösung wenn prod1_sic nicht konstant mit primary_sic ist?
Dateianhänge
sample.dta
Sample
(2.7 KiB) 240-mal heruntergeladen
Matching.dta
Matching
(98.54 KiB) 243-mal heruntergeladen
Josef
 
Beiträge: 2
Registriert: Mi 7. Aug 2013, 09:51
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Fehlende Werte ersetzen (Matching xfill)

Beitragvon daniel » Mi 7. Aug 2013, 15:02

Sorry, trotz Beispiel fällt es mir sehr schwer zu verstehen, was hier gewünscht ist.

Wenn Du schreibst,

Hier ist noch zu sagen, dass der prod1_sic nicht konstant ist mit primary_sic.


was heißt das konkret?

Ich würde gerne die fehlenden Werte von der Variable prod1_sic durch ein matching mit der Variable primary_sic auffüllen


Nach welcher "Regel" sollen fehlende Werte ersetzt werden? Was soll da wie gematcht werden?

In welchem Verhältnis stehen die beiden Datensätze?

Zudem habe ich das Command:
Code: Alles auswählen
xfill

runtergeladen


Wo? Von dem Programm habe ich noch nie gehört und -findit- zeigt keinen einzigen Treffer an.
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: Fehlende Werte ersetzen (Matching xfill)

Beitragvon Josef » Do 8. Aug 2013, 14:06

Hier ist noch zu sagen, dass der prod1_sic nicht konstant ist mit primary_sic.
Das heißt, dass es mehrere prod1_sic gibt für einen primary_sic und umgekehrt auch.
BSP:
für prod1_sic: 5411 --> ist primary_sic = 1041

und auch für prod1_sic: 1041 --> ist primary_sic = 6726 oder 1311 oder 1041

Ich weiß nicht in wie weit hier eine Systematisierung möglich ist, dementsprechend eine Automatisierung...

Ich würde gerne die fehlenden Werte von der Variable prod1_sic durch ein matching mit der Variable primary_sic auffüllen
Ich würde gerne die prod1_sic Variable auffüllen, durch die Variable primary_sic. Beispiel:

prod1_sic: 2002 --> primary_sic: 5
...
prod1_sic: .(missing) --> primary_sic: 5

Auffüllung durch matching: .(missing) --> prod1_sic: 2002

Die Datensätze:
Der eine Datensatz (matching) ist die Auflistung aller prod1_sic-Codes mit ihren ff_industry-Werten. Das Sample nur ein Beispiel.

für x-fill
http://www.sealedenvelope.com/stata/xfill/

Wie gesagt, ich weiß nicht ob man hier irgendeine Systematik herausbekommen kann. Trotzdem Danke schonmal
Josef
 
Beiträge: 2
Registriert: Mi 7. Aug 2013, 09:51
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Fehlende Werte ersetzen (Matching xfill)

Beitragvon daniel » Do 8. Aug 2013, 17:06

für prod1_sic: 5411 --> ist primary_sic = 1041

und auch für prod1_sic: 1041 --> ist primary_sic = 6726 oder 1311 oder 1041

Ich weiß nicht in wie weit hier eine Systematisierung möglich ist, dementsprechend eine Automatisierung...


Problem erkannt. Was nicht sytsematisiert werden kann, kann nicht automatisiert werden und muss demnach "von Hand" eingetragen werden.

Ich würde gerne die prod1_sic Variable auffüllen, durch die Variable primary_sic.

Nach welcher Regel? Dein Beispiel von oben (angepasst):

prod1_sic: missing --> ist primary_sic = 6726 oder 1311 oder 1041


Welcher soll es denn nun in diesem Fall (und dann für alle möglichen Fälle) sein? 6726, 1311 oder doch 1041?
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


Zurück zu Stata Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste