Wednesday, 15 February 2017

Fusionner 3 Ensembles De Données Dans Stata Forex

AVIS: Le groupe de consultation IDRE Statistical migrera le site Web vers le WordPress CMS en février pour faciliter la maintenance et la création de nouveaux contenus. Certaines de nos anciennes pages seront supprimées ou archivées de sorte qu'elles ne seront plus conservées. Nous essaierons de maintenir les redirections afin que les anciennes URL continuent à fonctionner de la meilleure façon possible. Bienvenue à l'Institut de recherche et d'éducation numériques Aidez le Groupe de consultation Stat en donnant un cadeau Module d'apprentissage Stata Combinaison de données Ce module vous montrera comment combiner des fichiers dans Stata. Les exemples comprennent les fichiers d'ajout, la fusion d'une à une correspondance et la fusion d'un à plusieurs correspondants. Ajout de fichiers de données Lorsque vous avez deux fichiers de données, vous pouvez les combiner en les superposant les uns sur les autres. Par exemple, nous avons un fichier contenant des papas et un fichier contenant des mamans comme illustré ci-dessous. Si nous voulions combiner ces fichiers en les superposant les uns sur les autres, nous pouvons utiliser la commande append comme indiqué ci-dessous. Nous pouvons utiliser la commande list pour voir si cela fonctionne correctement. L'append fonctionnait correctement. Les papas et les mamans sont empilés ensemble dans un dossier. Mais, il ya un petit problème. Nous ne pouvons pas dire les papas des mamans. Essayons de le faire encore, mais d'abord nous créerons une variable appelée momdad dans les papas et les mamans fichier de données qui contiendra le papa pour le dossier de données de papas et la maman pour le dossier de données de mamans. Lorsque nous combinons les deux fichiers ensemble, la variable momdad nous dira qui sont les mamans et les papas. Ici, nous faisons variable momdad pour le fichier de données papas. Nous enregistrons le fichier appelant dads1. Ici, nous faisons variable momdad pour le fichier de données des mamans. Nous enregistrons le fichier appelant moms1. Maintenant, permet d'ajouter dads1 et moms1 ensemble. Maintenant, quand nous énumérons les données, la variable momdad montre qui sont les mamans et les papas. Fusionner la fusion Une autre façon de combiner les fichiers de données est la fusion. Dire que nous voulions combiner les papas avec le fichier de données faminc, avoir les informations papas et les informations de la famille côte à côte. Nous pouvons le faire avec une correspondance. Permet de jeter un coup d'oeil sur les pères et le fichier faminc. Nous voulons combiner les fichiers de données pour qu'ils ressemblent à ceci. Notez que la variable famid est utilisée pour associer l'observation du fichier pads à l'observation appropriée du fichier faminc. La stratégie pour fusionner les fichiers va comme ceci. 1. trier les papas sur famid et enregistrer ce fichier (l'appelant dads2). 2. Triez le faminc sur famid et enregistrez ce fichier (appelant faminc2). 3. utiliser le fichier dads2. 4. fusionner le fichier dads2 avec le fichier faminc2 en utilisant famid pour les faire correspondre. Voici les quatre étapes. 1. Trier le fichier pads par famid et le sauver comme dads2 2. Trier le fichier faminc par famid et le sauver comme faminc2. 3. Utilisez le fichier dads2 4. Fusionnez avec le fichier faminc2 en utilisant famid comme variable clé. Il semble que cela a fonctionné très bien, mais quelle est cette variable de fusion La variable de fusion indique, pour chaque observation, comment la fusion est allée. Cela est utile pour identifier les enregistrements incompatibles. Merge peut avoir une des trois valeurs 1 - L'enregistrement contient des informations de file1 seulement (par exemple, un enregistrement dad2 sans enregistrement affin2 correspondant) 2 - L'enregistrement contient des informations de file2 seulement (par exemple, un enregistrement faminc2 avec aucun enregistrement dad2 correspondant. L'enregistrement contient des informations provenant des deux fichiers (par exemple, les enregistrements dad2 et faminc2 correspondent). Lorsque vous avez de nombreux enregistrements, tabulation de fusion est très utile pour résumer combien d'incompatibilité que vous avez. Notre cas, tous les enregistrements correspondent à la valeur de fusion Était toujours 3. Un-à-plusieurs match fusionner Un autre type de fusion est appelé un un à plusieurs fusionner. Notre un à un fusionner les papas appariés et faminc et il y avait un un à un appariement des fichiers. Si nous fusionnons les pères avec Comme vous le voyez ci-dessous, la stratégie pour la fusion de un à plusieurs est vraiment la même que la fusion de un à un. Enregistrer ce fichier comme dads3 2. trier les enfants sur famid et enregistrer ce fichier comme kids3 3. utiliser le fichier dads3 4. fusionner le fichier dads3 avec le fichier kids3 en utilisant famid pour les faire correspondre. Les 4 étapes sont présentées ci-dessous. 1. Trier le fichier de données des pères sur famid et enregistrer ce fichier comme dads3. 2. Trier le fichier de données des enfants sur famid et enregistrer ce fichier comme kids3. 3. Utilisez le fichier dads3. 4. Fusionnez le fichier dads3 avec le fichier kids3 en utilisant famid pour les faire correspondre. Permet d'énumérer les résultats. Les résultats sont un peu plus faciles à lire si nous trions les données sur famid et naissance. Comme vous le voyez, il s'agit essentiellement de la même chose qu'une fusion un à un. Vous pouvez vous demander si l'ordre des fichiers sur l'instruction de fusion est pertinent. Ici, nous changeons l'ordre des fichiers et les résultats sont les mêmes. La seule différence est l'ordre des enregistrements après la fusion. Exemple de données d'appariement Exemples d'exemples de fusion de correspondance (un à un et un à plusieurs) Correspond au programme d'exemple de fusion Le contenu de ce site Web ne doit pas être interprété comme un endossement d'un site Web particulier, d'un livre ou d'un produit logiciel par le University of California. Stata for Researchers: Combinaison de jeux de données Il s'agit de la huitième partie de la série Stata for Researchers. Pour une liste des sujets couverts par cette série, voir l'Introduction. Si vous êtes nouveau à Stata, nous vous recommandons fortement de lire les articles dans l'ordre. La combinaison de deux ensembles de données est une tâche de gestion de données commune, et celle qui est très facile à réaliser. Cependant, il est également très facile de se tromper. Avant de combiner des ensembles de données, assurez-vous de bien comprendre la structure des ensembles de données et la logique de la façon dont vous les combinez. Sinon, vous pouvez vous retrouver avec un ensemble de données que vous pensez est prêt à l'analyse, mais est vraiment absurde absolue. Stata essaie de vous assurer que vous avez réfléchi à ce que vous faites, mais que vous ne pouvez pas vous dire ce qui fait sens et ce qui ne marche pas. Stata fonctionne toujours avec un ensemble de données à la fois, vous combinerez toujours les données en mémoire (le jeu de données de base) avec un autre jeu de données sur disque (appelé l'ensemble de données, pour des raisons qui seront claires lorsque vous verrez La syntaxe). Ajout de jeux de données Stata appelle l'ajout lorsque vous ajoutez les observations de l'ensemble de données à l'ensemble de données de base. L'ajout fait sens lorsque les observations dans les deux ensembles de données représentent le même genre de chose, mais pas les mêmes choses. Par exemple, vous pouvez ajouter un ensemble de données de personnes du Wisconsin à un ensemble de données de personnes de l'Illinois. Les ensembles de données doivent avoir la même ou la plupart du temps les mêmes variables, avec les mêmes noms. Si une variable n'apparaît que dans un ensemble de données, les observations de l'autre ensemble de données recevront des valeurs manquantes pour cette variable. La syntaxe consiste à exécuter un append est simple: charger le jeu de données de base, puis tapez: append en utilisant le jeu de données où dataset est le nom de l'ensemble de données que vous souhaitez ajouter. Fusion de jeux de données Stata l'appelle fusionner lorsque les observations des deux ensembles de données sont combinées. En théorie, il existe quatre types de fusion: Dans une fusion un à un, une observation de l'ensemble de données de base est combinée à une observation à partir de l'ensemble de données d'utilisation. Une fusion un à un a un sens lorsque les observations dans les deux ensembles de données décrivent les mêmes choses, mais ont des informations différentes à leur sujet. Par exemple, vous pouvez fusionner les réponses que les gens ont données dans la première vague d'un sondage avec les réponses fournies par les mêmes personnes dans la deuxième vague de l'enquête. Dans une fusion un à plusieurs ou plusieurs à un, une observation d'un ensemble de données est combinée avec de nombreuses observations de l'autre (la différence entre un-à-plusieurs et plusieurs-à-un étant si l'ensemble de données de base A le quotmanyquot ou l'ensemble de données d'utilisation). Ces fusionnements ont un sens lorsque vous avez des données hiérarchiques, et un ensemble de données contient des informations sur les unités de niveau un tandis que l'autre contient des informations sur les unités de niveau deux. Par exemple, vous pourriez fusionner des informations sur les ménages avec des informations sur les personnes qui vivent dans ces ménages. En principe, il existe également des fusions de plusieurs à plusieurs. En pratique, ils sont rarement utiles. Si vous vous trouvez vouloir faire une fusion de plusieurs à plusieurs, vous devriez repenser ce que vous faites. Souvent, ce que vous avez vraiment besoin de faire est d'identifier et de corriger les identificateurs en double, et puis votre fusion fonctionnera comme one-to-one ou one-to-many. Dans toutes les fusions bien discuter, Stata combine des observations qui ont la même valeur d'une variable clé, généralement un ID. Vous pouvez également effectuer des comparaisons en fonction de plusieurs variables (par exemple, combiner des données pour le même état et l'année). Dans une fusion un-à-plusieurs ou plusieurs-à-un, il est l'identificateur pour les unités de niveau deux qui est la variable de clé (par exemple l'ID de ménage, pas l'ID individuel). Il est très important que la variable clé ait le même format dans les deux ensembles de données. Si une observation dans un jeu de données ne correspond pas à une observation dans l'autre, on lui donnera des valeurs manquantes pour les variables de l'autre ensemble de données. Étant donné que la viabilité d'un projet de recherche dépend souvent du nombre d'observations réellement fusionnées (par exemple, combien de personnes de la vague une de l'enquête pourrait être trouvée dans la deuxième vague) Stata vous donne des outils pour déterminer combien d'observations ont réellement fusionné et pour examiner celles qui Didnt. Si une variable existe dans les deux ensembles de données, les valeurs de l'ensemble de données de base seront conservées et les valeurs de l'ensemble de données utilisées seront rejetées. Parfois, c'est ce que vous voulez, mais il est plus susceptible d'être une erreur. En général, vous devez configurer vos données de telle sorte que les seules variables que les fichiers à fusionner ont en commun sont les variables clés. La syntaxe pour une fusion est: type de fusion keyvars using dataset Le type doit être 1: 1 (one-to-one), 1: m (one-to many), m: 1 (many-to-one) ou m: M (plusieurs à plusieurs) keyvars est la variable ou les variables clé et dataset est le nom de l'ensemble de données que vous voulez fusionner. Un exemple de combinaison de jeux de données Les exemples incluent plusieurs fichiers contenant des informations sur les étudiants fictifs de 2007. scores. dta contient les scores des élèves sur un test standardisé, demographics. dta contient des informations démographiques à leur sujet, et teachers. dta contient des informations sur leurs enseignants. Prenez un moment pour regarder chaque fichier, puis démarrez un fichier de travail qui charge des scores. Dans cet ensemble de données, chaque observation représente un étudiant. Parcourez et vous verrez que vous avez un ID d'étudiant (id), un ID d'enseignant (enseignant) et un score pour chacun. Votre première tâche est d'ajouter les informations démographiques. Dans demographics. dta chaque observation représente également un étudiant, avec les variables étant id et la race. C'est donc un travail pour une fusion un à un et la variable clé est id. Fusionnez l'ID 1: 1 en utilisant les données démographiques Stata indiquera que toutes les 60 observations correspondent. Il créera également une variable appelée merge. Un en fusion signifie qu'une observation est seulement venu de l'ensemble de données de base un deux signifie qu'il est venu seulement de l'ensemble de données d'utilisation et un trois signifie une observation réussie et donc venu des deux. Dans ce cas, nous voyons que toutes les observations correspondent et ont donc fusionner égal à trois, donc il n'y a pas besoin de conserver la variable. En fait, nous devons l'abandonner (ou le renommer) avant de faire d'autres fusionnements: Ensuite, ajoutez de l'information sur les enseignants. Dans les enseignants. dta chaque observation représente un enseignant, et chaque enseignant a de nombreux élèves. Cela fait une fusion de plusieurs à un (puisque les nombreux étudiants sont actuellement en mémoire et le seul enseignant est dans l'ensemble de données d'utilisation). La variable clé n'est pas id. Puisque cela se réfère aux étudiants, mais l'enseignant: fusionner m: 1 enseignant utilisant des enseignants Encore une fois, les 60 observations fusionnées correctement, de sorte que vous pouvez laisser tomber la fusion. Combiner les données du panel Supposons maintenant que vous suiviez ces étudiants pendant plusieurs années. L'ensemble de données panel2007.dta contient une version simplifiée de cet ensemble de données: juste id et score. Le jeu de données panel2008.dta a les mêmes variables pour une année différente. Comment les combiner? La bonne façon de les combiner dépend de la structure de données que vous voulez. Il s'agit de données hiérarchiques où une unité de niveau deux est un étudiant et une unité de niveau un est une donnée d'étudiants pour une année donnée. Ainsi, il peut être représenté sous une forme large (une observation par élève), ou sous une forme longue (une observation par élève et par an). Pour mettre les données sous forme longue simplement empiler les deux ensembles de données en utilisant append. Cependant, vous aurez besoin de savoir quelle année chaque observation représente. Pour ce faire, ajoutez une variable d'année à l'ensemble de données, avec la valeur 2007 pour les données 2007 et la valeur 2008 pour les données 2008. Vous pouvez le faire avec le fichier suivant: effacer tous les ensemble plus hors connexion de capture fermer le journal à l'aide de combine1.log, remplacer l'utilisation panel2007 gen year2007 enregistrer panel2007append utiliser panel2008 gen year2008 append using panel2007append enregistrer appendedData, replace Pour mettre les données sous forme large, Faire un un-à-un fusionner avec id comme variable clé. Mais d'abord vous devez changer les noms des variables. Rappelez-vous que dans la forme large, ce sont les noms des variables qui vous indiquent de quel niveau d'une unité vous parlez. Donc, au lieu de score. Vous avez besoin score2007 et score2008. Effacer tout ensemble plus hors connexion de capture fermer journal en utilisant combine2.log, remplacer l'utilisation panel2007 renommer score score2007 enregistrer panel2007merge utiliser panel2008 renommer score score2008 fusionner 1: 1 id using panel2007merge enregistrer mergedData, remplacer Cette fois, vous verrez qu'une observation ne correspond pas. Vous pouvez voir lequel en tapant: Le numéro d'étudiant 55 n'était pas dans le panneau2008 et ainsi ne pourrait pas être assorti. En conséquence, nous n'avons aucune idée de ce que son score de test a été en 2008. Malheureusement, c'est très fréquent 8212students se déplacer hors des districts scolaires entre les tests tout le temps. Si tout votre programme de recherche dépend des résultats des deux tests, vous devrez peut-être supprimer des observations qui n'existent pas dans les deux ensembles de données. Vous pouvez le faire à ce stade en ajoutant: drop if merge3 Vous pouvez également spécifier quelles observations doivent être conservées directement dans la commande de fusion: fusion 1: 1 id using panel2007merge, keep (correspondance) keep (match) . Les alternatives sont maître et en utilisant. Et vous pouvez en énumérer plusieurs. Par exemple, pour garder les observations qui correspondent et les observations qui ne viennent que de l'ensemble de données de base, tout en jetant les observations qui ne viennent que de l'ensemble de données d'utilisation, vous dites keep (master match). Problèmes courants avec les fusions Les fusions découvriront toutes sortes de problèmes avec votre jeu de données (et si elles ne sont pas fixées la fusion introduira de nouvelles). Voici deux méthodes courantes et comment les corriger: Variables clés stockées dans différents formats Alors que Stata sera heureux de correspondre à différents types de nombres (ints et flotteurs, par exemple), il ne peut pas correspondre aux nombres et chaînes. Les ID peuvent être stockés en tant que (tant que vous choisissez un type numérique qui a assez de précision8212 voir Utilisation des données) et il n'est pas rare de trouver que vos jeux de données stockent l'ID de différentes façons. Dans ce cas, il est généralement préférable de convertir les nombres en chaînes: gen idStringstring (id) drop id renommer idString id La fonction string () prend un nombre et le convertit en chaîne. Vous pouvez lui donner un deuxième argument contenant le format dans lequel le nombre devrait être quotwrittenquot si nécessaire. Duplicate IDs Si vous essayez de faire une fusion et que vous obtenez un message d'erreur comme quotvariable id n'identifie pas uniquement les observations dans le master dataquot cela signifie que vous avez des identificateurs en double dans l'ensemble de données mentionné. Ce problème doit être corrigé avant de poursuivre. Ne modifiez pas simplement le type de fusion pour l'ensemble de données pertinent de quotonequot à quotmanyquot espérant faire disparaître le message d'erreur8212 l'ensemble de données résultant n'aura pas de sens pour les observations affectées. Une source possible de doublons est une erreur d'arrondi due à l'enregistrement des ID dans un type de variable inappropriée. Dans ce cas, vous aurez besoin de retourner aux données d'origine et de vous assurer que les identifiants sont stockés comme un type qui ne les contourne pas, comme long, double ou chaîne. Notez que pour les fins de fusion, les valeurs manquantes sont traitées comme n'importe quelle autre valeur. Si vous avez des observations avec des ID manquants, Stata les compte comme des doublons. Vous aurez probablement à les laisser tomber avant la fusion. Mais la plupart du temps les ID en double résultent d'erreurs dans les données. Youll besoin de faire quelque chose sur eux avant de pouvoir effectuer votre fusion. Démarrez un fichier de travail qui charge le jeu de données mergeerror. Cet ensemble de données contient des étudiants, mais certains d'entre eux ont des ID en double qui doivent être corrigés. Vous pouvez voir combien de problèmes vous avez avec le rapport en double: double id de rapport Indique combien d'observations ont la même valeur de id. La sortie vous indique qu'aucune ID ne s'affiche plus de deux fois, mais douze observations ont des ID en double. Pour un examen plus approfondi, créez une variable qui indique le nombre de copies de chaque ID: bysort id: gen copiesN Ensuite, vous pouvez regarder les observations du problème avec: browse if copiesgt1 Pour les observations avec id égal à 9, 26 et 33, les deux observations avec le même ID sont identiques. Cela suggère que le même étudiant a été entré deux fois et vous pouvez résoudre le problème en abandonnant simplement les observations supplémentaires. Faites-le avec: Notez que contrairement à la commande de rapport en double que vous avez exécutée plus tôt, cette commande n'a pas de varlist. Cela signifie qu'il ne supprime que les observations dupliquées si elles ont la même valeur pour toutes les variables, pas seulement l'id. Vous pouvez lui donner un varlist donc il gouttes observations si seulement ces variables ont les mêmes valeurs, mais soyez très prudent le faire. À ce stade, dans les problèmes complexes, vous pouvez supprimer la variable de copie que vous avez créée plus tôt et la recréer, afin de parcourir si copiesgt1 ne montrera plus les observations que vous avez déjà corrigées, mais il n'y a aucun besoin dans cet ensemble de données. Pour les observations avec id égal à 64, 74 et 94, les autres variables montrent que les observations avec le même ID ne sont pas la même personne. C'est un problème majeur pour la fusion: vous ne pouvez pas être sûr que quotstudent 64quot dans cet ensemble de données va avec le quotstudent 64quot dans l'autre ensemble de données hypothétiques. Ajouter d'autres variables peut aider. Par exemple, dans ce cas, la fusion par id et race vous permettrait de faire correspondre les deux sujets avec un id égal à 94. Fusion par id. course. Et la note vous permettrait de correspondre correctement les sujets avec id égal à 74. Il suffit de garder à l'esprit que si l'ensemble de données que vous vouliez fusionner avec celui-ci étaient pour l'année scolaire suivante comme dans notre exemple précédent, vous devez soustraire un de son Première variable. Si vous choisissez d'emprunter cet itinéraire, recréer la variable copies à l'aide de l'ensemble complet de variables que vous prévoyez égaler dans le préfixe par et voir combien de doublons restent. Rien ne va aider avec les deux observations avec id égal à 64, et dans un plus grand ensemble de données il est moins probable que l'appariement par quelques variables supplémentaires vous permettra d'identifier uniquement les sujets. Dans de tels cas, vous aurez probablement besoin de laisser tomber toutes les observations que vous ne pouvez identifier de manière unique, car vous ne pouvez cant fiable n'importe quel eux. Vous pouvez le faire avec: drop if copiesgt1 Une autre façon de combiner des ensembles de données dans une large forme est d'abord les ajouter, puis remodeler. Combinez le panneau2007 et le panneau2008 dans la forme large en utilisant cette méthode. (Solution) Si vous combinez les deux années de données en forme longue en utilisant append. Comment pouvez-vous trouver l'observation qui ne semble pas en 2008 (Solution) Combinez error2007.dta et error2008.dta en le fusionnant dans la forme large, la fixation des problèmes que vous trouvez. Ajoutez ensuite les deux ensembles de données et essayez de localiser les mêmes problèmes. (Solution) Dernière révision: 12292015


No comments:

Post a Comment