Sunday 12 February 2017

Mouvement Moyenne Moyenne Stata

Cette structure de données est tout à fait impropre à l'objet. En supposant un ID identifiant que vous devez refaire. par exemple. Ensuite, une moyenne mobile est facile. Utiliser tssmooth ou simplement générer. par exemple. Plus sur pourquoi votre structure de données est tout à fait impropre: Non seulement le calcul d'une moyenne mobile nécessite une boucle (ne nécessitant pas nécessairement d'egen), mais vous créerez plusieurs nouvelles variables supplémentaires. L'utilisation de ceux dans toute analyse ultérieure serait quelque part entre difficile et impossible. EDIT Ill donner une boucle d'échantillon, tout en ne se déplaçant pas de ma position que c'est une mauvaise technique. Je ne vois pas une raison derrière votre convention de dénomination par laquelle P1947 est un moyen pour 1943-1945 Je suppose que c'est juste une faute de frappe. Supposons que nous ayons des données pour 1913-2012. Pour des moyens de 3 ans, nous perdons un an à chaque extrémité. Cela pourrait être écrit de manière plus concise, au détriment d'une vague de macros dans les macros. Utiliser des poids inégaux est facile, comme ci-dessus. La seule raison d'utiliser egen est qu'il ne renonce pas si il ya des fautes, ce qui va faire. Comme une question d'exhaustivité, notez qu'il est facile de gérer les fautes sans recourir à egen. Et le dénominateur Si toutes les valeurs sont manquantes, cela se réduit à 00 ou manquant. Sinon, si une valeur manque, on ajoute 0 au numérateur et 0 au dénominateur, ce qui équivaut à l'ignorer. Naturellement, le code est tolérable comme ci-dessus pour les moyennes de 3 ans, mais soit pour ce cas ou pour la moyenne sur plus d'années, nous remplacerions les lignes ci-dessus par une boucle, ce qui est egen does. Stata: Data Analysis and Statistical Software Nicholas J , Et ses limitations Statarsquos commande la plus évidente pour le calcul des moyennes mobiles est la fonction ma () de egen. Étant donné une expression, il crée une moyenne mobile de cette expression. Par défaut, la valeur 3. doit être impaire. Cependant, comme l 'entrée manuelle indique, egen, ma () ne peut pas être combiné avec varlist:. Et, pour cette seule raison, elle ne s'applique pas aux données des groupes spéciaux. En tout cas, il se trouve en dehors de l'ensemble des commandes spécifiquement écrites pour les séries chronologiques, voir les séries temporelles pour plus de détails. Autres approches Pour calculer les moyennes mobiles pour les données de panel, il y a au moins deux choix. Les deux dépendent de l'ensemble de données ayant été tsset à l'avance. Cela vaut vraiment la peine de le faire: non seulement vous pouvez vous épargner à plusieurs reprises en spécifiant variable de panneau et variable de temps, mais Stata se comporte intelligemment compte tenu des lacunes dans les données. 1. Écrivez votre propre définition à l'aide de la génération en utilisant des opérateurs de série chronologique tels que L. et F.. Donner la définition de la moyenne mobile comme argument à une déclaration generate. Si vous faites cela, vous n'êtes naturellement pas limité aux moyennes mobiles pondérées (non pondérées) également pondérées calculées par egen, ma (). Par exemple, des moyennes mobiles à pondération égale à trois périodes seraient données par et certains poids peuvent être facilement spécifiés: Vous pouvez bien sûr spécifier une expression telle que log (myvar) au lieu d'un nom de variable tel que myvar. Un avantage majeur de cette approche est que Stata fait automatiquement la bonne chose pour les données de panel: les valeurs de départ et de retard sont élaborées au sein des panneaux, tout comme la logique dicte qu'ils devraient l'être. L'inconvénient le plus notable est que la ligne de commande peut être assez longue si la moyenne mobile implique plusieurs termes. Un autre exemple est une moyenne mobile unilatérale fondée uniquement sur les valeurs précédentes. Cela pourrait être utile pour générer une anticipation adaptative de ce qu'une variable sera fondée uniquement sur l'information à ce jour: que pourrait-on prévoir pour la période en cours sur la base des quatre dernières valeurs, en utilisant un système de pondération fixe (un délai de 4 périodes pourrait être Surtout utilisé avec les séries trimestrielles). 2. Utilisez egen, filter () de SSC Utilisez le filtre de fonction egen écrit () de l'ensemble egenmore sur SSC. Dans Stata 7 (mis à jour après le 14 novembre 2001), vous pouvez installer ce paquet après par lequel l'aide egenmore indique des détails sur filter (). Les deux exemples ci-dessus seraient rendus (dans cette comparaison, l'approche de génération est peut-être plus transparente, mais nous verrons un exemple du contraire dans un instant). Les retards sont un numlist. Les conducteurs sont des retards négatifs: dans ce cas, -11 se dilate à -1 0 1 ou conduit 1, retard 0, décalage 1. Les coefficients, un autre nombre, multiplient les éléments retardés ou principaux correspondants: dans ce cas, ces éléments sont F1.myvar . Myvar et L1.myvar. L'effet de l'option de normalisation consiste à mettre à l'échelle chaque coefficient par la somme des coefficients de telle sorte que coef (1 1 1) normalise soit équivalente à des coefficients de 13 13 13 et coef (1 2 1) normale est équivalente à des coefficients de 14 12 14 Vous devez spécifier non seulement les décalages, mais aussi les coefficients. Parce que egen, ma () fournit le cas également pondéré, la raison principale pour egen, filter () est de soutenir le cas pondéré inégalement, pour lequel vous devez spécifier des coefficients. On pourrait également dire que l'obligation faite aux utilisateurs de spécifier des coefficients est un peu plus de pression sur eux pour penser à quels coefficients ils veulent. La principale justification pour des poids égaux est, nous devinons, la simplicité, mais des poids égaux ont de mauvaises propriétés de domaine fréquentiel, pour ne citer qu'une seule considération. Le troisième exemple ci-dessus pourrait être l'un ou l'autre est à peu près aussi compliqué que l'approche générer. Il ya des cas où egen, filter () donne une formulation plus simple que generate. Si vous voulez un filtre binomial à neuf termes, que les climatologues trouvent utile, il semble peut-être moins horrible et plus facile à obtenir que, tout comme avec l'approche generate, egen, filter () fonctionne correctement avec les données du panneau. En fait, comme indiqué ci-dessus, cela dépend du jeu de données ayant été tsset à l'avance. Une astuce graphique Après avoir calculé vos moyennes mobiles, vous voudrez probablement regarder un graphique. La commande tsgraph utilisateur-écrit est intelligente au sujet des ensembles de données de tsset. Installez-le dans un Stata 7 à jour par ssc inst tsgraph. Qu'en est-il sous-ensemble avec si aucun des exemples ci-dessus ne font usage de restrictions si. En fait, egen, ma () ne permettra pas si elle doit être spécifiée. Occasionnellement, les gens veulent utiliser si lors du calcul des moyennes mobiles, mais son utilisation est un peu plus compliquée qu'il est habituellement. Qu'attendriez-vous d'une moyenne mobile calculée avec if. Identifions deux possibilités: Faible interprétation: Je ne veux pas voir de résultats pour les observations exclues. Interprétation forte: Je ne veux même pas que vous utilisiez les valeurs pour les observations exclues. Voici un exemple concret. Supposons que, comme conséquence de certaines conditions if, les observations 1-42 sont incluses, mais pas les observations 43 sur. Mais la moyenne mobile de 42 dépendra, entre autres choses, de la valeur d'observation 43 si la moyenne s'étend vers l'arrière et vers l'avant et est de longueur au moins 3, et elle dépendra également de certaines des observations 44 dans certaines circonstances. Notre conjecture est que la plupart des gens iraient pour l'interprétation faible, mais si cela est correct, egen, filter () ne supporte pas si soit. Vous pouvez toujours ignorer ce que vous donrsquot voulez ou même définir des valeurs indésirables à manquer par la suite en utilisant remplacer. Une note sur les résultats manquants aux extrémités de la série Puisque les moyennes mobiles sont des fonctions de lags et de leads, egen, ma () produit manquant où les lags et les leads n'existent pas, au début et à la fin de la série. Une option nomiss oblige à calculer des moyennes mobiles plus courtes et non centralisées pour les queues. En revanche, ni générer ni egen, filter () ne, ou permet, quelque chose de spécial pour éviter les résultats manquants. Si l'une des valeurs requises pour le calcul est manquante, ce résultat est manquant. Il appartient aux utilisateurs de décider si et quelle chirurgie corrective est nécessaire pour de telles observations, vraisemblablement après avoir examiné l'ensemble de données et en considérant toute science sous-jacente qui peut être mis à bear. Announcement C'est mon premier post et je vais essayer d'être aussi clair Que possible. Le lien pour la base de données principale se trouve à la fin du message. Contexte J'utilise StataSE 12.0 sous Windows 10. J'ai commencé avec Stata il y a seulement quelques semaines et j'essaie d'apprendre par moi-même une mission qui doit arriver dans quelques jours (parce que chaque table ou figure m'a pris des jours et des jours) : Répliquer le papier quotDoes Obligatoire School Attendance Affect Schoolig et Earningsquot: web. stanford. edu pistaangrist. pdf qui consiste à montrer que les personnes nées dans les derniers trimestres des années ont plus d'éducation en moyenne que ceux nés dans les premiers trimestres en raison de la scolarité obligatoire lois. Les premiers chiffres donnent un graphique du nombre moyen d'années d'études (variable EDUC) pour toutes les personnes nées une certaine année (variable YOB pour l'année de naissance) au cours d'un trimestre donné (QOB). Il ya une tendance générale à la hausse et à la détérioration des données, ils utilisent une moyenne mobile (figure IV), qui est où j'ai été bloqué pour les 5 derniers jours. Problème Dans la base de données, il y a 27 variables parmi lesquelles v4 renommé EDUC, v27 renommé YOB (année de naissance) et v18 renommé QOB (trimestre de naissance). Ce qui est nécessaire pour la moyenne mobile est, pour chaque groupe de personnes nées dans l'année c et le quart j, calculer le nombre moyen d'années d'éducation non pour cette année et trimestre, mais pour le trimestre juste avant, 2 trimestres avant, un trimestre Plus tard et 2 trimestres plus tard (expliqué p. 985 du papier). Par exemple, si je regarde les hommes nés entre 1930 et 1939 comme dans cette figure (figure IV de l'article: onedrive. liveredirresi. Ntphoto2cpng), je dois commencer par la cohorte née en 1930, 3ème trimestre et calculer le nombre moyen Des années de scolarité des personnes nées en 1930, 2ème trimestre (né un trimestre avant la cohorte donnée), même pour les nés en 1930, 1er trimestre (nés 2 trimestres avant la cohorte donnée), même pour ceux nés en 1930, (Un quart après la cohorte donnée), et même pour ceux nés en 1931, 1er trimestre (2 trimestres après la cohorte donnée). Ensuite, la moyenne mobile est obtenue en ajoutant ces 4 valeurs et en divisant par 4. Tout ce processus doit être répété pour chaque cohorte entre 1930, 3e trimestre et 1939, 2e trimestre. Do-File Pour le fichier-do (onedrive. liveredirresid6919D329B3BF1EF23227ampauthkeyAO2cxEN AGpZMgsMampithintfile2cdo), j'ai commencé avec le modèle des autres figures et j'ai essayé d'utiliser la boucle foreach et beaucoup d'autres choses (ne me souviens pas des messages d'erreur ne savais pas que j'allais poster ici) Mais ne comprennent toujours pas comment dire Stata: quotfor chaque YOBQn. Calculer la moyenne (EDUC) de YOBQ n-1, YOBQ n-2, YOBQ n1, YOBQ n2. Pour faire la somme et diviser par 4 après cela, il devrait être plus facile. J'ai reçu un conseil exceptionnel de l'assistant d'enseignement: essayez la commande tssmooth. Vous devrez d'abord créer une variable temporelle pour laquelle la commande du groupe egen sera très utile. Mais d'après mes recherches sur les citations et les quots figurant dans les manuels de données et dans le livre Cameron amp Trivedi, quotÉconometrics utilisant Stataquot (dernier lien): Statamanuals14degen. Tfolder2cdta statamanuals14gsw11.pdf statamanuals14u11.p. Languagesyntax statamanuals14u13.p. Itsubscripting onedrive. liveredirresi. Intfile2cpdf Je devrais tsset les données avant tssmooth mais je n'ai pas passé cette étape puisque apparemment, la notation n n'est pas autorisée avec quotegenquot (erreur r (101) quotweights pas allowedquot) et je suis encore très confondu avec la façon de combiner egen, tsset Et tssmooth. Ce serait génial si quelqu'un pouvait m'aider sur la façon de résoudre les quotweights pas allowedquot erreur et comment combiner les commandes quotegenquot, quottssetquot et quottssmoothquot. Merci beaucoup Postscript: voici la base de données par la manière onedrive. liveredirresi. Tfolder2cdta Note: J'ai le fichier-do pour les figures les plus importantes et les tableaux de l'article, à l'exception de la table I, mais ce fichier n'est probablement pas nécessaire juste pour info: onedrive. liveredirresi. Hintfile2cdo Dernière édition par Amarylis Durand 25 mars 2016, 01:55. 25 mars 2016, 22:50 Voici une version plus courte de ma question: comment éviter l'erreur ci-dessous (r451 en gras) et comment dire à Stata que la moyenne mobile de quotmedstay1quot doit être calculée pour chaque valeur de tps par YOB QOB pour Tous ceux nés la même année et le même trimestre, trier en augmentant les années et les trimestres et calculer le nombre moyen d'années d'éducation par YOB QOB. Sort: egen medstay1 mean (EDUC) génère une nouvelle variable YOBNew parce que la commande yq exige que le premier argument soit entre 1000 et 9999 et que nos données pour YOB dans le recensement de 1980 soient comprises entre 30 et 49 au lieu de 1930 et 1949 gen YOBNewYOB replace YOBNew YOB1900 si CENSUS80 génère une variable de temps qui a le format requis dans l'aide tsset gen tpsyq (YOBNew, QOB) format tq tps l'instruction suivante retourne r451. Les valeurs de temps répétées dans le panneau, probablement parce qu'il ya des milliers de personnes nées au cours de la même année et le même trimestre, évidemment avec le même nombre moyen d'années d'éducation. Comment éviter cette erreur tsset medstay1 tps instruction d'avoir la moyenne mobile MA, mais je veux que le déplacement de la moyenne de medstay1 à être calculé pour chaque valeur de la quattpsVariable temps. Quelle commande me permettrait de le faire ou est-ce fait automatiquement tssmooth ma MA medstay1. Window (2 0 2) J'espère que quelqu'un peut vous aider.


No comments:

Post a Comment