Saturday 15 July 2017

Imputing Fehlende Daten In Stata Forex


Mehrfache Imputation in Stata: Imputing Dies ist Teil vier der Multiple Imputation in Stata Serie. Eine Liste der Themen, die von dieser Serie behandelt werden, finden Sie in der Einleitung. Dieser Abschnitt wird Sie durch die Details des Imputationsprozesses sprechen. Seien Sie sicher, dass Sie mindestens den vorherigen Abschnitt, Erstellen von Imputationsmodellen lesen. So haben Sie einen Sinn für welche Probleme können die Gültigkeit Ihrer Ergebnisse beeinflussen. Beispieldaten Um den Prozess zu veranschaulichen, verwenden Sie einen fertigen Datensatz. Anders als bei den Beispielen wird dieser Datensatz entworfen, um eine gewisse Ähnlichkeit mit realen Daten zu haben. Weiblich (binär) Rasse (kategorisch, drei Werte) städtisch (binär) edu (geordnet kategorisch, vier Werte) exp (kontinuierlich) Lohn (kontinuierlich) Fehlende. Jeder Wert aller Variablen außer weiblich hat eine 10 Chance, völlig zufällig zu fehlen, aber natürlich in der realen Welt werden wir nicht wissen, dass es MCAR vor der Zeit ist. So werden wir prüfen, ob es sich um MCAR oder MAR handelt (MNAR kann nicht durch Betrachten der beobachteten Daten überprüft werden), wobei das Verfahren verwendet wird, das in der Entscheidung entschlossen ist, zu impulieren: unab numvars: unab missvars: urban-wage misstable sum, gen (miss) foreach var Lokale Missvars Lokale Covare: Liste Numvars - Var Display Newline (3) Quotenfehler von Var auf Covarsquot Logit Missvar Covars foreach Nvar von lokalen Covars Display Newline (3) Quotttest von Nvar durch Fehlen von Varquot ttest nvar, von (missvar) Siehe das Protokoll Datei für Ergebnisse. Unser Ziel ist es, die Löhne auf Sex, Rasse, Ausbildungsniveau und Erfahrung zu regressieren. Um die quotrightquot Antworten zu sehen, öffnen Sie die do-Datei, die den Datensatz erstellt und untersucht den Gen-Befehl, der Lohn definiert. Vollständiger Code für den Imputationsprozess kann in der folgenden Datei gefunden werden: Der Imputationsprozess erzeugt viel Ausgabe. Gut auf dieser Seite, aber eine komplette Log-Datei mit den dazugehörigen Graphen finden Sie hier: Jeder Abschnitt dieses Artikels hat Links zu dem entsprechenden Abschnitt des Protokolls. Klicken Sie auf quotbackquot in Ihrem Browser, um zu dieser Seite zurückzukehren. Einrichten Der erste Schritt bei der Verwendung von mi-Befehlen besteht darin, dass Sie Ihre Daten setzen. Das ist etwas ähnlich wie bei svyset. Tsset Oder xtset Der mi-set-Befehl teilt Stata mit, wie es die zusätzlichen Imputationen speichern soll. Wir schlagen vor, das breite Format zu verwenden, da es etwas schneller ist. Auf der anderen Seite nutzt mlong etwas weniger Speicher. Um Stata die breite Datenstruktur zu verwenden, geben Sie Folgendes ein: Um Stata die mlong (marginal long) Datenstruktur zu verwenden, geben Sie ein: Die breite vs. lange Terminologie ist aus der Umgestaltung entlehnt und die Strukturen sind ähnlich. Allerdings sind sie nicht gleichwertig und du würdest niemals umgestaltet werden, um die von mi verwendete Datenstruktur zu ändern. Stattdessen geben Sie mi konvertieren breit oder mi konvertieren mlong (add, klar, wenn die Daten seit der letzten Änderung nicht gespeichert wurden). Die meiste Zeit müssen Sie sich nicht darum kümmern, wie die Imputationen gespeichert sind: Die mi Befehle stellen sich heraus, wie man alles anwendet, was du für jede Anrechnung tust. Aber wenn du die Daten in einer Weise manipulieren musst, die du nicht für dich tun kannst, dann musst du dich über die Details der Struktur informieren, die du benutzt hast. Youll muss auch sehr, sehr vorsichtig sein. Wenn Sie sich für solche Dinge interessieren (einschließlich der selten verwendeten Flong - und Flongsep-Formate), führen Sie diese Datei aus und lesen Sie die Kommentare, die sie enthält, während Sie den Datenbrowser untersuchen, um zu sehen, wie die Daten in jeder Form aussehen. Registrieren von Variablen Die mi-Befehle erkennen drei Arten von Variablen: Imputed Variablen sind Variablen, die mi zu rechnen oder zu rechnen hat. Regelmäßige Variablen sind Variablen, die mi nicht zu entscheiden, entweder durch Wahl oder weil sie keine Werte fehlen. Passive Variablen sind Variablen, die vollständig durch andere Variablen bestimmt werden. Zum Beispiel wird der Lohnlohn durch den Lohn bestimmt, oder ein Indikator für Fettleibigkeit kann durch eine Funktion von Gewicht und Höhe bestimmt werden. Interaktionsbegriffe sind auch passive Variablen, aber wenn Sie Statas Interaktionssyntax verwenden, müssen Sie sie nicht als solche deklarieren. Passive Variablen sind oft problematisch für die Beispiele für Transformationen. Nichtlinearität. Und Interaktionen zeigen, wie die Verwendung von ihnen unangemessen zu voreingenommenen Schätzungen führen kann. Wenn eine passive Variable durch reguläre Variablen bestimmt wird, dann kann sie als reguläre Variable behandelt werden, da keine Imputation benötigt wird. Passive Variablen müssen nur dann als solche behandelt werden, wenn sie von unterstellten Variablen abhängen. Die Registrierung einer Variablen gibt Stata an, welche Art von Variable es ist. Geplante Variablen müssen immer registriert werden: mi Register unterstellte varlist wo varlist durch die tatsächliche Liste der zu referenzierenden Variablen ersetzt werden sollte. Regelmäßige Variablen müssen oft nicht registriert werden, aber es ist eine gute Idee: mi Register reguläre varlist Passive Variablen müssen registriert werden: mi Register passive varlist Allerdings werden passive Variablen häufiger nach dem Imputing erstellt. Machen Sie dies mit mi passiv und werden automatisch als passiv registriert. In unseren Beispieldaten sind alle Variablen außer weiblich zu rechnen. Der entsprechende mi-register-Befehl lautet: mi registrierter Rendite-Lohn (Beachten Sie, dass Sie nicht als Ihre varlist verwenden können, auch wenn Sie alle Ihre Variablen in Anspruch nehmen müssen, denn das würde die Systemvariablen hinzufügen, die von mi gesetzt wurden, um die Imputationsstruktur zu verfolgen .) Registrierung der weiblichen als regelmäßige ist optional, aber eine gute Idee: mi Register regelmäßige Frau Überprüfung der Imputation Modell Basierend auf den Arten der Variablen, sind die offensichtlichen Imputation Methoden: Rasse (kategorisch, drei Werte): mlogit urban (binary): Logit edu (geordnet kategorisch, vier werte): ologit exp (kontinuierlich): regress lohn (kontinuierlich): regress weiblich muss nicht unterlegt werden, sollte aber in die anrechnungsmodelle aufgenommen werden, da es sich im analyse-modell befindet und weil es ist Wahrscheinlich relevant sein. Bevor wir fortfahren, werden wir jedes der Imputationsmodelle überprüfen. Führen Sie immer jede Ihrer Imputationsmodelle einzeln aus, außerhalb des mi verkürzten Kontextes, um zu sehen, ob sie konvergieren und (soweit es möglich ist) überprüfen, ob sie korrekt angegeben sind. Code, um jedes dieser Modelle laufen zu lassen: mlogit Rennen i. urban exp Lohn i. edu i. female logit städtischen i. race exp Lohn i. edu i. female ologit edu i. urban i. race exp Lohn i. female regress exp I. urban i. race Lohn i. edu i. female Regress Lohn i. urban i. race exp i. edu i. female Beachten Sie, dass, wenn kategorische Variablen (geordnet oder nicht) als Kovariaten erscheinen i. Erweitert sie in Sätze von Indikatorvariablen. Siehe auch später, die Ausgabe des mi impute chained Befehl enthält die Befehle für die einzelnen Modelle, die es läuft. So eine nützliche Verknüpfung, vor allem, wenn Sie eine Menge von Variablen zu beurteilen, ist es, Ihre mi setzen Kette Befehl mit der Dryrun-Option, um zu verhindern, dass es eine tatsächliche Imputing, führen Sie es, und dann kopieren Sie die Befehle aus der Ausgabe in Du machst eine Datei zum Testen. Konvergenzprobleme Das erste, was zu beachten ist, dass alle diese Modelle erfolgreich laufen. Komplexe Modelle wie mlogit können nicht konvergieren, wenn Sie eine große Anzahl von kategorischen Variablen haben, weil das oft zu kleinen Zellengrößen führt. Um die Ursache des Problems festzulegen, entfernen Sie die meisten Variablen, stellen Sie sicher, dass das Modell mit dem, was übrig ist, funktioniert, und fügen Sie dann Variablen wieder einzeln oder in kleinen Gruppen hinzu, bis es aufhört zu arbeiten. Bei einigen Experimenten sollten Sie in der Lage sein, die Problemvariable oder die Kombination von Variablen zu identifizieren. Zu diesem Zeitpunkt müssen Sie entscheiden, ob Sie Kategorien kombinieren oder Variablen löschen oder andere Änderungen vornehmen können, um ein bearbeitbares Modell zu erstellen. Präfekt Vorhersage Perfekte Vorhersage ist ein weiteres Problem zu beachten. Der Imputationsprozess kann nicht einfach die perfekt vorhergesagten Beobachtungen fallen lassen, wie es logit kann. Du könntest sie vor dem Zutritt ablegen, aber das scheint den Zweck der mehrfachen Imputation zu besiegen. Die Alternative ist, die Erweiterung (oder nur aug) Option auf die betroffenen Methoden hinzuzufügen. Dies sagt, dass mi veranlasst ist, den quotaugmentierten Regressionquot-Ansatz zu verwenden, der gefälschte Beobachtungen mit sehr niedrigen Gewichten so hinzufügt, dass sie eine vernachlässigbare Wirkung auf die Ergebnisse haben, aber eine perfekte Vorhersage verhindern. Für Details siehe den Abschnitt quotThe Problem der perfekten Vorhersage während der Angabe von kategorischen Datenquot in der Stata MI Dokumentation. Überprüfung auf Misspecification Sie sollten auch versuchen zu bewerten, ob die Modelle korrekt angegeben sind. Eine vollständige Diskussion darüber, wie zu bestimmen, ob ein Regressionsmodell korrekt angegeben ist oder nicht, ist weit über den Rahmen dieses Artikels hinaus, aber verwenden Sie, welche Werkzeuge Sie angemessen finden. Hier sind einige Beispiele: Residual vs. Fitted Value Plots Für kontinuierliche Variablen können Rest-vs. Fit-Value-Plots (leicht mit rvfplot) nützlich sein. Einige der Beispiele verwenden sie, um Probleme zu erkennen. Betrachten Sie die Handlung für Erfahrung: regress exp i. urban i. race Lohn i. edu i. female rvfplot Beachten Sie, wie eine Anzahl von Punkten entlang einer Linie in der unteren linken Seite gruppiert sind, und keine Punkte sind darunter: Dies spiegelt die Einschränkung, dass Erfahrung kann nicht kleiner als Null sein, was bedeutet, dass die angepassten Werte immer größer oder gleich den Residuen sein müssen oder dass die Residuen größer oder gleich dem Negativ der angepassten Werte sein müssen. (Wenn der Graph die gleiche Skala auf beiden Achsen hatte, wäre die Einschränkungslinie eine 45-Grad-Linie.) Wenn alle Punkte unter einer ähnlichen Linie liegen, anstatt darüber, würde dies Ihnen sagen, dass es eine obere Grenze an der Variablen gab Eher als eine untere Grenze. Der y-Intercept der Constraint-Zeile zeigt Ihnen die Grenze in beiden Fällen. Sie können auch eine untere Grenze und eine obere Grenze haben, indem sie alle Punkte in eine Band zwischen ihnen setzen. Das Quellmodell, regress. Ist für die Erfahrung unangemessen, weil sie diese Einschränkung nicht anwenden wird. Es ist auch unangemessen für die Löhne aus dem gleichen Grund. Alternativen sind Truncreg, ll (0) und pmm (gut verwenden pmm). Hinzufügen von Interaktionen In diesem Beispiel scheint es plausibel, dass die Beziehungen zwischen Variablen zwischen Rasse, Geschlecht und urbanrural Gruppen variieren können. So ist eine Möglichkeit, auf Misspecification zu überprüfen, um Interaktionsbegriffe den Modellen hinzuzufügen und zu sehen, ob sie sich als wichtig erweisen. Zum Beispiel, vergleiche das offensichtliche Modell: regress exp i. race Lohn i. edu i. urban i. female mit einer, die Interaktionen enthält: regress exp (i. race i. urban i. female) (c. wage i. edu ) Gut laufen ähnliche Vergleiche für die Modelle der anderen Variablen. Dies schafft eine große Menge an Ausgabe, so sehen Sie die Protokolldatei für Ergebnisse. Interaktionen zwischen weiblichen und anderen Variablen sind in den Modellen für exp. führen. Edu Und städtischen Es gibt ein paar bedeutende Wechselwirkungen zwischen Rasse oder städtischen und anderen Variablen, aber nicht annähernd so viele (und bedenkt, dass mit diesen vielen Koeffizienten einige falsche Positives mit einem Signifikanzniveau von 0,05 erwarten würden). Nun also die Männer und Frauen gesondert ansprechen. Dies ist eine besonders gute Option für diesen Datensatz, weil Frau niemals fehlt. Wenn es so wäre, müssen die Beobachtungen, die weiblich fehlen, fallen lassen, weil sie nicht in einer Gruppe oder der anderen platziert werden konnten. Im Inputationsbefehl bedeutet das Hinzufügen der by (female) Option. Beim Testen von Modellen bedeutet das Starten der Befehle mit dem von weiblichen: Präfix (und Entfernen von weiblichen aus den Listen von Kovariaten). Die verbesserten Imputationsmodelle sind also: bysort weiblich: reg exp i. urban i. race Lohn i. edu von weiblich: logit urban exp i. race Lohn i. edu von weiblich: mlogit Rennen exp i. urban Lohn i. edu von weiblich : Reg lohn exp i. urban i. race i. edu von weiblich: ologit edu exp i. urban i. race Lohn pmm selbst kann nicht außerhalb der Imputation Kontext laufen, aber da es auf Regression basiert, können Sie regelmäßige Regression verwenden, um es zu testen . Diese Modelle sollten noch einmal getestet werden. Die Grundsyntax für mi verketten ist: mi veranlaßt verkettet (method1) varlist1 (method2) varlist2. Regvars Jede Methode gibt die Methode an, die für die Eingabe der folgenden Varlist verwendet werden soll. Die Möglichkeiten der Methode sind rückläufig. Pmm Truncreg Intreg Logit Ologit Mlogit Poisson Und nbreg. Regvars ist eine Liste der regelmäßigen Variablen, die als Kovariaten in den Anrechnungsmodellen verwendet werden, aber nicht unterlegt (es kann nicht sein). Die grundlegenden Optionen sind: add (N) rseed (R) savetrace (tracefile ersetzen) N ist die Anzahl der Imputationen, die dem Datensatz hinzugefügt werden sollen. R ist das Saatgut, das für die Zufallszahl generiert werden soll8212wenn du dieses nicht stellst, erhältst du jedes Mal, wenn der Befehl ausgeführt wird, etwas andere Imputationen. Die Tracefile ist ein Datensatz, in dem mi veranlagt wird, die Information über den Imputationsprozess zu speichern. Nutzen Sie diesen Datensatz, um nach Konvergenz zu suchen. Optionen, die für eine bestimmte Methode relevant sind, gehen mit der Methode, innerhalb der Klammern, aber nach einem Komma (z. B. (mlogit, aug)). Optionen, die für den Imputationsprozess als Ganzes relevant sind (wie bei (weiblich)) gehen am Ende, nach dem Komma. Für unser Beispiel wäre der Befehl: mi veranlaßt verkettet (logit) urban (mlogit) Rasse (ologit) edu (pmm) exp Lohn, add (5) rseed (4409) von (weiblich) Beachten Sie, dass dies keine Savetrace beinhaltet () Option. Ab diesem Schreiben kann durch () und savetrace () nicht gleichzeitig verwendet werden, vermutlich weil es für jede Gruppe eine Trace-Datei benötigen würde. Stata ist sich dieses Problems bewusst und wir hoffen, dass dies bald geändert wird. Für die Zwecke dieses Artikels, entfernen Sie die by () Option, wenn es Zeit ist, die Verwendung der Trace-Datei zu illustrieren. Wenn dieses Problem in Ihrer Forschung auftaucht, sprechen Sie mit uns über Work-arounds. Auswahl der Anzahl der Imputationen Es gibt einige Meinungsverschiedenheiten zwischen den Behörden darüber, wie viele Imputationen ausreichend sind. Manche sagen 3-10 in fast allen Umständen, die Stata-Dokumentation schlägt mindestens 20 vor, während White, Royston und Wood argumentieren, dass die Anzahl der Imputationen ungefähr gleich dem Prozentsatz der Fälle mit fehlenden Werten sein sollte. Allerdings ist uns kein Argument bekannt, dass die Erhöhung der Zahl der Imputationen jemals Probleme verursacht (nur dass der marginale Nutzen einer anderen Anregung asymptotisch Null annähert). Die Erhöhung der Anzahl der Imputationen in Ihrer Analyse nimmt im Wesentlichen keine Arbeit auf Ihrer Seite. Ändern Sie einfach die Nummer in der add () - Option auf etwas Größeres. Auf der anderen Seite kann es eine Menge Arbeit für den Computer sein. Mehrere Imputation hat viele Forscher in die Welt der Jobs eingeführt, die Stunden oder Tage in Anspruch nehmen. Sie können in der Regel davon ausgehen, dass die benötigte Zeit proportional zur Anzahl der verwendeten Imputationen ist (z. B. wenn eine do-Datei zwei Stunden dauert, um mit fünf Imputationen zu laufen, wird es wahrscheinlich etwa vier Stunden dauern, bis mit zehn Imputationen laufen). So heres unser Vorschlag: Beginnen Sie mit fünf Imputationen (das niedrige Ende, was weitgehend als legitim betrachtet wird). Arbeiten Sie an Ihrem Forschungsprojekt bis Sie vernünftigerweise überzeugt sind, dass Sie die Analyse in ihrer endgültigen Form haben. Sei sicher, alles mit Do-Dateien zu tun, damit du es nach Belieben laufen kannst. Beachten Sie, wie lange der Prozess dauert, von der Anrechnung bis zur Endanalyse. Überlegen Sie, wie viel Zeit Sie zur Verfügung haben und entscheiden, wie viele Imputationen können Sie sich leisten, um zu laufen, mit der Faustregel, dass die Zeit erforderlich ist proportional zur Anzahl der Imputationen. Wenn möglich, machen Sie die Anzahl der Imputationen in etwa gleich dem Prozentsatz der Fälle mit fehlenden Daten (eine High-End-Schätzung, was erforderlich ist). Erlauben Sie sich Zeit, sich zu erholen, wenn es geht, falsch zu gehen, wie sie es normalerweise tun. Erhöhe die Anzahl der Imputationen in deiner Do-Datei und beginne sie. Tu etwas anderes, während die Do-Datei läuft, wie schreib deine Papiere. Hinzufügen von Imputationen sollte nicht ändern Sie Ihre Ergebnisse deutlich8212und in dem unwahrscheinlichen Ereignis, dass sie tun, betrachten Sie sich glücklich, dass herausgefunden, dass vor der Veröffentlichung. Beschleunigung des Imputationsprozesses Mehrere Imputation hat viele Forscher in die Welt der Jobs eingeführt, die Stunden, Tage oder sogar Wochen laufen lassen. In der Regel ist es nicht wert, Ihre Zeit zu verbringen, um Stata-Code schneller laufen zu lassen, aber mehrere Imputation kann eine Ausnahme sein. Benutzen Sie den schnellsten Computer, der Ihnen zur Verfügung steht. Für SSCC-Mitglieder bedeutet das Lernen, Aufträge auf Linstat, dem SSCCs Linux-Computing-Cluster, auszuführen. Linux ist nicht so schwierig wie Sie vielleicht denken8212Unterstützung von Linstat hat Anweisungen. Mehrere Imputation beinhaltet mehr Lesen und Schreiben auf Festplatte als die meisten Stata Befehle. Manchmal beinhaltet das das Schreiben von temporären Dateien im aktuellen Arbeitsverzeichnis. Nutzen Sie den schnellsten Speicherplatz für Sie, sowohl für Ihren Datensatz als auch für das Arbeitsverzeichnis. Im Allgemeinen ist der lokale Speicherplatz schneller als der Festplattenspeicherplatz, und auf Linstat ramdisk (ein quotdirectoryquot, das tatsächlich im RAM gespeichert ist) ist schneller als der lokale Speicherplatz. Auf der anderen Seite würden Sie nicht wollen, dauerhaft speichern Datensätze überall, aber Netzwerk-Festplattenspeicher. Also betrachten Sie Ihre do-Datei machen so etwas wie die folgenden: Windows (Winstat oder Ihren eigenen PC) Dies gilt, wenn youre mit unterstellten Daten als auch. Wenn Ihr Datensatz groß genug ist, dass das Arbeiten mit ihm nach der Zurechnung langsam ist, kann das obige Verfahren helfen. Prüfung auf Konvergenz MICE ist ein iterativer Prozess. In jeder Iteration schätzt mi die verketteten ersten Schätzungen das Imputationsmodell, wobei sowohl die beobachteten Daten als auch die unterstellten Daten aus der vorherigen Iteration verwendet werden. Er zieht dann neue aufgerechnete Werte aus den daraus resultierenden Verteilungen. Beachten Sie, dass jede Iteration eine gewisse Autokorrelation mit der vorherigen Imputation hat. Die erste Iteration muss ein besonderer Fall sein: in ihr, mi veranlagt verkettet erste Schätzungen das Imputationsmodell für die Variable mit den wenigsten fehlenden Werten, die nur auf den beobachteten Daten basieren und zeichnet die berechneten Werte für diese Variable an. Es schätzt dann das Modell für die Variable mit den nächstgelegenen fehlenden Werten, wobei sowohl die beobachteten Werte als auch die unterstellten Werte der ersten Variablen verwendet werden und für den Rest der Variablen ähnlich verlaufen. So ist die erste Iteration oft atypisch, und weil Iterationen korreliert sind, kann sie auch nachfolgende Iterationen atypisch machen. Um dies zu vermeiden, verlässt mich mi standardmäßig durch zehn Iterationen für jeden unterstellten Datensatz, den Sie anfordern, und sparen nur die Ergebnisse der zehnten Iteration. Die ersten neun Iterationen heißen die Burn-In-Periode. Normalerweise ist das viel Zeit für die Auswirkungen der ersten Iteration, um unbedeutend zu werden und für den Prozess, um in einen stationären Zustand zu konvergieren. Allerdings sollten Sie auf Konvergenz zu überprüfen und erhöhen Sie die Anzahl der Iterationen, wenn nötig, um sicherzustellen, dass es mit der burnin () Option. Um dies zu tun, untersuchen Sie die Trace-Datei gespeichert von mi verketten verkettet. Es enthält die mittlere und Standardabweichung jeder unterstellten Variablen in jeder Iteration. Diese werden nach dem Zufallsprinzip variieren, aber sie sollten keinen Trend zeigen. Eine einfache Möglichkeit zu überprüfen ist mit tsline. Aber es erfordert die Neugestaltung der Daten zuerst. Unser bevorzugtes Imputationsmodell verwendet nach (). So kann es keine Trace-Datei speichern. So gut entfernen von () für den Augenblick. Nun auch erhöhen die burnin () Option auf 100 so ist es einfacher zu sehen, was eine stabile Spur aussieht. Nun, dann verwenden Sie umgestalten und tsline, um auf Konvergenz zu prüfen: bewahrt mi veranlaßt verkettet (logit) städtisch (mlogit) Rasse (ologit) edu (pmm) exp Lohn weiblich, add (5) rseed (88) savetrace (extrace, replace) burnin ( 100) verwenden Sie extrace, ersetzen Sie reshape breites Mittel sd, i (iter) j (m) tset iter tsline expmean, title (quotMean von Imputed Values ​​of Experiencequot) note (quotEach line ist für eine imputationquot) Legende (off) graph export conv1. Png, ersetzen tsline expsd, title ("Deanding Deviation of Imputed Values ​​of Experiencequot") Anmerkung (quotEach Zeile ist für eine imputationquot) Legende (off) graph Export conv2.png, ersetzen Wiederherstellung Die resultierenden Graphen zeigen keine offensichtlichen Probleme: Wenn Sie dies tun Sehen Sie die Zeichen, dass der Prozess nach den voreingestellten zehn Iterationen nicht konvergiert werden kann, erhöhen Sie die Anzahl der durchgeführten Iterationen, bevor Sie mit der Option burnin () gesperrte Werte speichern. Wenn Konvergenz nie erreicht wird, zeigt dies ein Problem mit dem Imputationsmodell an. Überprüfen der Bewegungswerte Nach der Imputierung sollten Sie überprüfen, ob die unterstellten Daten den beobachteten Daten entsprechen. Unglücklicherweise gibt es keinen formalen Test, um festzustellen, was genau genug ist. Natürlich, wenn die Daten MAR sind, aber nicht MCAR, sollten die unterstellten Daten systematisch von den beobachteten Daten abweichen. Ironischerweise sind die weniger fehlenden Werte, die Sie zurechnen müssen, je mehr Variation youll zwischen den unterstellten Daten und den beobachteten Daten (und zwischen den Imputationen) sehen. Für binäre und kategorische Variablen, vergleichen Sie Häufigkeitstabellen. Für kontinuierliche Variablen ist Vergleichsmittel und Standardabweichungen ein guter Ausgangspunkt, aber man sollte sich auch die Gesamtform der Verteilung anschauen. Dafür empfehlen wir Kerndichte-Graphen oder vielleicht Histogramme. Schauen Sie sich jede Imputation separat an, anstatt alle unterstellten Werte zu bündeln, damit Sie sehen können, ob einer von ihnen schief gelaufen ist. Das mi xeq: Präfix sagt Stata, um den nachfolgenden Befehl einzeln auf jede Imputation einzustellen. Es gilt auch für die ursprünglichen Daten, die Quoten-Imputation. quot So: mi xeq: Tab Rennen geben Ihnen sechs Häufigkeit Tabellen: eine für die ursprünglichen Daten und eine für jede der fünf Imputationen. Allerdings wollen wir die beobachteten Daten nur mit den unterstellten Daten vergleichen, nicht mit dem gesamten Datensatz. Dies erfordert das Hinzufügen einer if-Bedingung zu den Tab-Befehlen für die Imputationen, aber nicht die beobachteten Daten. Fügen Sie eine Zahl oder numlist hinzu, um mi xeq auf bestimmte Imputationen zu setzen: mi xeq 0: tab Race mi xeq 15: tab Race if missrace Dies erzeugt Frequenztabellen für die beobachteten Rennwerte und dann die unterstellten Werte in allen fünf Imputationen. Wenn du eine beträchtliche Anzahl von Variablen hast, um zu untersuchen, kannst du sie leicht schleifen: foreach var von varlist städtisches Rennen edu mi xeq 0: tab var mi xeq 15: tab var if missvar Für Ergebnisse siehe Log-Datei. Das Ausführen von Zusammenfassungsstatistiken über kontinuierliche Variablen folgt dem gleichen Prozess, aber das Erstellen von Kernel-Dichte-Graphen fügt eine Komplikation hinzu: Sie müssen entweder die Graphen speichern oder sich eine Chance geben, sie zu betrachten. Mi xeq: kann mehrere Befehle für jede Zurechnung ausführen: Legen Sie sie alle in einer Zeile mit einem Semikolon () am Ende von jedem. (Dies wird nicht funktionieren, wenn Sie das allgemeine End-of-Command Trennzeichen zu einem Semikolon geändert haben.) Der Schlafbefehl sagt, dass Stata für einen bestimmten Zeitraum pausiert, gemessen in Millisekunden. Mi xeq 0: kdensity lohnschlaf 1000 mi xeq 15: kddheit lohn wenn missvar schlaf 1000 wieder kann dies alles automatisiert werden: foreach var von varlist lohn exp mi xeq 0: sum var mi xeq 15: sum var if missvar mi xeq 0: Kdensity var schlafen 1000 mi xeq 15: kdensity var wenn missvar schlaf 1000 Das Speichern der Graphen erweist sich als etwas schwieriger, weil man dem Graphen von jeder Imputation einen anderen Dateinamen geben muss. Leider können Sie nicht auf die Imputationsnummer innerhalb von mi xeq zugreifen. Allerdings können Sie eine Forvalues-Schleife über Imputation Zahlen zu tun, dann haben mi xeq auf jeden von ihnen zu handeln: forval i15 mi xeq i: kdensity exp Wenn missexp grafik export expi. png, ersetzen Integrieren Sie diese mit der vorherigen Version gibt: foreach var von Varlist lohn exp mi xeq 0: sum var mi xeq 15: sum var wenn missvar mi xeq 0: kdensity var graph export chkvar0.png, ersetzen forval i15 mi xeq i: kdensity var wenn missvar grafik export chkvari. png, ersetzen Für Ergebnisse, Siehe Protokolldatei. Es ist mühsam, daß in allen Imputationen der Mittelwert der unterstellten Lohnwerte höher ist als der Mittelwert der beobachteten Lohnwerte. Und der Mittelwert der unterstellten Werte von exp ist niedriger als der Mittelwert der beobachteten Werte von exp. Wir haben nicht gefunden, dass die Daten MAR sind, aber nicht MCAR, so dass die Mittel der unterstellten Daten um die Mittel der beobachteten Daten gruppiert werden sollen. Es gibt keinen formalen Test, um uns endgültig zu sagen, ob das ein Problem ist oder nicht. Allerdings sollte es Verdacht erheben, und wenn die endgültigen Ergebnisse mit diesen unterstellten Daten von den Ergebnissen der vollständigen Fallanalyse abweichen, stellt sich die Frage, ob der Unterschied auf Probleme mit dem Imputationsmodell zurückzuführen ist. Zuletzt überarbeitet: 8232012Multiple Imputation in Stata: Erstellen von Imputationsmodellen Dies ist Teil drei der Multiple Imputation in Stata Serie. Eine Liste der Themen, die von dieser Serie behandelt werden, finden Sie in der Einleitung. In der Theorie schätzt ein Imputationsmodell die gemeinsame Verteilung aller darin enthaltenen Variablen. MICE bricht dieses Problem in eine Reihe von Schätzungen, die eine Variable auf alle anderen Variablen im Modell zurücksetzen. (Der Nachteil ist, dass eine Reihe von Modellen der Verteilungen einzelner Variablen nicht zwangsläufig zu einem konsistenten Modell der gemeinsamen Verteilung beitragen.) Der mi-Befehl, der angekettet hat, erfordert nicht, dass Sie das Modell für jede Variable separat angeben: Liste die Variablen auf, die zusammen mit Informationen darüber, wie sie zu unterwerfen sind, und mi verketten verkettet wird die einzelnen Modelle automatisch bilden. Der Erfolg des Gesamt-Imputationsmodells hängt jedoch vom Erfolg aller Einzelmodelle ab. Wenn ein einziges Modell nicht konvergiert, wird der Imputationsprozess als Ganzes fehlschlagen. Wenn ein einzelnes Modell fehlt, kann es die Ergebnisse Ihres Analysemodells vorschreiben. Wir empfehlen dringend, dass Sie jedes einzelne Modell auf eigene Faust betreiben, außerhalb des Kontextes von mi verketten. Auf Konvergenz und Missspezifikation zu testen. Besprechen Sie die Details dazu im nächsten Abschnitt. Dieser Abschnitt konzentriert sich auf Fragen, die Sie bei der Erstellung Ihrer Imputationsmodelle berücksichtigen müssen. Auswählen von Variablen Der erste Schritt bei der Erstellung eines Imputationsmodells entscheidet, welche Variablen zu rechnen sind. Das Imputationsmodell sollte immer alle Variablen im Analysemodell enthalten. Dies beinhaltet die abhängige Variable Ihres Analysemodells, obwohl es einige Diskussionen darüber gibt, ob die unterstellten Werte der abhängigen Variablen verwendet werden sollen. Auch wenn Sie nicht planen, die unterstellten Werte der abhängigen Variablen zu verwenden, geben die beobachteten Werte der abhängigen Variablen Informationen über die anderen Variablen an und die Informationen aus diesen Beobachtungen, die die abhängige Variable fehlen, sollten im Imputationsmodell als verwendet werden Gut. Das Imputationsmodell sollte alle anderen Variablen enthalten, die Informationen über die wahren Werte der fehlenden Daten oder über ihre Wahrscheinlichkeit des Fehlens liefern. Vermeiden Sie es, ein quotkitchen sinkquot Modell zu erstellen. Eine große Anzahl von Variablen, insbesondere kategoriale Variablen, kann zu Modellen führen, die nicht konvergieren. Verwenden Sie die Theorie, um Sie bei der Auswahl geeigneter Variablen zu führen. Sie können dem Imputationsmodell Variablen hinzufügen, die nicht (oder sollte nicht) belegt werden, indem Sie sie am Ende der Variablenliste nach einem Gleichheitszeichen setzen. Anpassen von Imputationsmodellen Mit den Optionen include () oder omit () können Sie Variablen aus dem Imputationsmodell für eine einzelne Variable oder Gruppe von Variablen hinzufügen oder entfernen. Mit der Option include () können Sie auch Ausdrücke zu einem Modell wie (x2) hinzufügen. Aber sie müssen in einen zusätzlichen Satz von Klammern gehen (z. B. include ((x2))). Diese Optionen gehen mit der Imputationsmethode für eine Variable oder Variablen (z. B. (Regress, include (x))) anstatt am Ende des mi-Befehls. Seien Sie vorsichtig, wenn Sie Ausdrücke zu Imputationsmodellen hinzufügen: Wenn y von einer Funktion von x abhängt. Dann x sollte von der inversen Funktion von y abhängen und nicht zu modellieren, beide können Ihre Ergebnisse vorspannen. Weitere Informationen finden Sie unter Nichtlineare Begriffe. PanelLongitudinal Data Wenn Sie Daten haben, in denen Einheiten über die Zeit beobachtet werden, sind die besten Prädiktoren eines fehlenden Wertes in einer Periode wahrscheinlich die Werte dieser Variablen in den vorherigen und nachfolgenden Perioden. Allerdings kann das Imputationsmodell nur dann diese Informationen nutzen, wenn der Datensatz in breiter Form vorliegt (eine Beobachtung pro Einheit, keine Beobachtung pro Einheit pro Zeitraum). Du kannst dich nach dem Nachgeben wieder in eine lange Form umwandeln. Um die Daten in breite Form vor dem Imput zu konvertieren, verwenden Sie neu. Um nach langer Form zurückzukehren, nach der Imputierung, verwenden Sie mi reshape. Dies hat die gleiche Syntax wie die Umgestaltung. Aber stellt sicher, dass die Imputationen richtig behandelt werden. Wenn Sie nicht mit Umgestaltung vertraut sind. Siehe die Hierarchie Daten Abschnitt von Stata für Forscher. Umfrage-Daten Die mi-Schätzung: und svy: Präfix-Befehle können zusammen (in dieser Reihenfolge) verwendet werden, um Modelle auf Umfrage-Daten auszuführen, die mehrfach referenziert wurden. Allerdings: svy: kann nicht mit mi veranlaßt angekettet werden. Sie können Gewichte (z. B. Pweightweight) anwenden, aber nicht für andere Elemente der Umfrage Struktur wie Schichten oder PSU korrekt. Die gegenwärtige Empfehlung besteht darin, Umfragestrukturvariablen wie Schichten und PSU in den Imputationsmodellen als Sätze von Indikatorvariablen (z. B. i. psu) einzuschließen. Dies ist ein Bereich der laufenden Forschung. Wenn Sie Ihre individuellen Imputationsmodelle testen, empfehlen wir Ihnen, sie zuerst mit dem Svy zu starten: Präfix und dann ohne es aber mit Gewichten angewendet und Umfrage Struktur Variablen hinzugefügt, um das Modell. Wenn die beiden sehr unterschiedliche Ergebnisse geben, versuchen Sie, Interaktionen zwischen den Umfragestrukturvariablen oder zusätzlichen Variablen, die sich auf die Umfragestruktur beziehen, hinzuzufügen. Wenn sie weiterhin sehr unterschiedliche Ergebnisse trotz Ihrer besten Bemühungen geben, seien Sie vorsichtig über die Verwendung mehrerer Anrede. Auswählen von Methoden Es gibt neun Methoden zur Angabe einer Variablen: Regress. Pmm Truncreg Intreg Logit Ologit Mlogit Poisson und nbreg. In den meisten Fällen wählen Sie die gleiche Imputationsmethode, die Sie wählen, wenn Sie die Variable normal modellieren würden: regress für die meisten stetigen Variablen, logit für binäre Variablen, mlogit für ungeordnete kategorische Variablen, etc. Kontinuierliche, aber nicht normale Variablen Beachten Sie das Der Standard-Regress impliziert einen normalen Fehler-Term nach der Kontrolle für die Kovariaten. Wenn Sie eine kontinuierliche Variable haben, die nicht normal ist, kann der Regress nicht eine Verteilung von unterstellten Werten geben, die den beobachteten Werten sehr gut entspricht. Eine Alternative ist Predictive Mean Matching (PMM). PMM ist eine Ad-hoc-Technik mit wenig Theorie dahinter, aber es scheint ganz gut in der Praxis zu funktionieren. PMM beginnt mit dem Zurücktreten der Variablen, die auf die Kovariaten zu rechnen ist, und dann Zeichnen eines Satzes von Koeffizienten aus den Ergebnissen, wobei sowohl die geschätzten Koeffizienten als auch die Unsicherheit über sie eingegangen werden. Diese Koeffizienten werden verwendet, um einen vorhergesagten Wert für alle fehlenden Werte zu berechnen. Allerdings verwendet er dann den vorhergesagten Wert für eine gegebene Beobachtung, um jene Beobachtungen zu identifizieren, deren beobachteter Wert der Variablen nahe dem vorhergesagten Wert liegt, und wählt einen von ihnen zufällig als den unterstellten Wert. Wenn die beobachteten Werte einer Variablen nicht normal sind, wird PMM gewöhnlich eine Verteilung von unterstellten Werten erzeugen, die der Verteilung der beobachteten Werte genauer entspricht als die Regression. Die Option knn () steuert, wie viele Beobachtungen als Übereinstimmungen betrachtet werden (basierend auf ihren beobachteten Werten der Variablen, die nahe dem vorhergesagten Wert für die Beobachtung stehen). Die jüngsten Arbeiten von Morris, White und Royston zeigen, dass eine größere Anzahl von Beobachtungen verwendet werden sollte, als es in der Vergangenheit üblich war. Sie schlagen mindestens 10, und mehr, wenn Ihr Datensatz ist sehr groß (Zehntausende von Beobachtungen oder mehr). Because PMM draws its imputed values from the observed values, it has the property that the imputed values will never be outside the range of the observed values. This makes it very useful for bounded variables (discussed below). It can also be used for some non-continuous distributions. However, PMM is not appropriate if you have reason to believe the unobserved values are outside the range of the observed values. Transformations Skewed variables may be made more normal by transformations such as taking the log. However, you should consider how this affects the relationships between variables. For example, if you have variables for quotincomequot and quotspending on entertainmentquot and you believe the relationship between the two is linear, replacing quotincomequot with quotlog incomequot makes the imputation model for both variables misspecified. Bounded Variables Another common situation is bounded variables. For example, quothours workedquot cannot go below zero, and percentages must be between zero and 100. Such variables can be imputed using truncreg. The ll() and ul() options contain the lower limit and upper limit for the variable, which can be either numbers or variables. You are not required to specify both (e. g. hours worked probably only needs ll(0). unless youre worried that the model might try to have someone work more than 168 hours per week). Unfortunately, in our experience its not unusual for truncreg to have convergence problems in imputation models with many variables. PMM is a good alternative to truncreg because it naturally honors any bounds that exist in the observed data. Non-Linear Terms If your analysis model contains non-linear terms, most likely variables squared, then this must be taken into account when creating your imputation model. Suppose your analysis model regresses y on x and x2. If you just impute y and x. creating x2 later (either with mi passive or c. xc. x ), then the imputed values of y will only depend on x and the imputed values of x will depend linearly on y. When you run your analysis model, the coefficient on the squared term will be biased towards zero because for observations where either y or x is imputed, y really is unrelated to x2. (Never forget that when you write your mi impute chained command you are building models, not just listing variables to impute.) The best alternative appears to be what White, Royston and Wood call the quotJust Another Variablequot approach. Create new variables to store the non-linear terms (e. g. gen x2x2 ) and then impute them as if they were just another variable, unrelated to the linear terms. The imputed values of the non-linear terms wont have the proper relationship to the linear terms (i. e. the imputed values x2 will not in fact be x2 ) but as long as they are distributed properly this does not appear to affect the results of the analysis model. This is an area of ongoing research. Interaction Terms Interaction terms raise issues very similar to those raised by non-linear terms: if the interaction term isnt included in the imputation model, the coefficient on the interaction term will be biased towards zero in the analysis model. The quotJust Another Variablequot approach also works well for interaction terms: create variables storing the interaction effects (e. g. gen gxgx ) and then impute them separately. If, however, the interactions involve binary or categorical variables that represent groups, consider instead using the by() option to impute each group separately. This allows coefficients to vary between groups without the problem of imputed interaction terms not actually matching the variables being interacted. For example, suppose youre regressing income on education. Erfahrung. and black (an indicator for quotsubject is blackquot), but think the returns to education vary by race and thus include blackc. education in the regression. The just another variable approach would create a variable edblackblackrace and impute it, but its possible for the model to impute a zero for black and a non-zero value for edblack. Theres no indication this would cause problems in the analysis model, however. An alternative would be to add the by(black) option to the imputation command, so that whites and blacks are imputed separately. This would allow you to use blackc. education in your analysis model without bias (and it would always correspond to the actual values of black and education ). However, running two separate imputation models allows the returns to experience to vary by race in the imputation model, not just education. If you had strong theoretical reasons to believe that was not the case (which is unlikely) that would be a specification problem. A far more more common problem is small sample size: make sure each of your by() groups is big enough for reasonable regressions. Trying to use quotJust Another Variablequot for interactions between categorical variables and imputing them with logit is problematic. Use by() instead. Sets of Indicator Variables If you have a set of mutually exclusive indicator variables, use them to create a single categorical variable and then impute it using mlogit. For example, combine white. black. hispanic. other into race. or highSchool. someCollege. bachelors. advanced into education. You can recreate the indicator variables after imputing, either with mi passive or by simply using i. race or i. education in your models. If you impute the indicator variables themselves using logit. the imputation model will not impose the constraint that only one of them can be one. Thus youll likely get people with more than one race or more than one education level. By converting the indicators to a categorical variable and imputing the categorical variable using mlogit you force the model to choose just one category. Last Revised: 9152015

No comments:

Post a Comment