Wednesday, March 8, 2017

Compute Growth Rate In Stata Forex

Je veux calculer les taux de croissance dans Stata pour les observations ayant le même ID. Mes données ressemblent à ceci d'une manière simplifiée: Maintenant, je veux calculer pour chaque taux de croissance ID à partir des variables a f de 2010 à 2011: Par exemple, ID 10 et variable a il serait: (3 2) 2, pour la variable b. (5 4) 4, etc., et stocker les résultats dans de nouvelles variables (par exemple croissance, croissance, etc.). Puisque j'ai plus de 120k observations et environ 300 variables, y at il un moyen efficace de le faire (boucle) Mon code ressemble à ce qui suit (simplifié): FYI: les variables a f sont numériques. Mais Stata dit: local pas trouvé et je ne suis pas sûr si le code est correct. Est ce que je dois également trier pour l'année d'abord demandé Aug 25 15 à 8:31 Quel code avez vous essayé Vouloir le code et avoir aucun n'est pas un problème de programmation pour le dépassement de pile. Ndash Nick Cox Aug 25 15 at 9:04 Merci de rappeler. Je l'ai mis dans le message original. Ndash Jay G Aug 25 15 at 9:15 L'erreur spécifique dans est une erreur dans la syntaxe de foreach. Qui attend ici la syntaxe comme foreach x des variables locales. Compte tenu de votre utilisation antérieure d'une macro locale. Avec le mot clé dans. Foreach prend le mot local littéralement et ici cherche une variable avec ce nom: d'où le message d'erreur. C'est la syntaxe foreach de base: voir son aide. Ce code est problématique pour d'autres raisons. Le tri sur ID ne garantit pas l'ordre de tri correct, ici l'ordre horaire par année. Pour chaque identifiant distinct. Si les observations sont brouillées dans ID. Les résultats seront des ordures. Le code suppose que toutes les valeurs de temps sont présentes sinon l'intervalle de temps entre les observations peut être inégal. Une façon plus propre d'obtenir des taux de croissance est une fois que vous avez tsset (ou xtset) les opérateurs de séries chronologiques peuvent être utilisés sans crainte: le tri correct est automatique et les opérateurs sont intelligents au sujet des lacunes dans les données (par exemple les sauts de 1982 à 1984 dans les données annuelles ). Pour plus de variables la boucle pourrait être où ltwhatevergt pourrait être un général (numeric) varlist. EDIT: La question a changé depuis la première publication et l'intérêt est déclaré dans le calcul des taux de croissance seulement de 2010 à 2011, avec l'implication dans l'exemple que seules ces années sont présentes. Le code plus général ci dessus naturellement encore travailler pour le calcul de ces taux de croissance. La dernière ligne ne fera que créer la différence pour créer le taux de croissance équivalent à votre définition précédente de expgr. Il doit être gén expgr D. exp47L. exp100. En outre, exp est un nom absolument terrible pour une variable: si vous oubliez le signe de multiplication exp (stuff1stuff2). Vous passerez une heure à chercher ce bogue (une fois que quelqu'un remarque que vos numéros sont extraordinairement grands). Ndash StasK Apr 21 12 at 15:34 Les deux corrections sont corrigées correctement. Ndash Fr. Apr 22 12 at 17:30 Excellent, merci. Désolé de prendre si longtemps pour accepter votre réponse, mais il est très utile. Ndash Ricardo Altamirano May 2 12 at 14:03 Pas de soucis. Stas a aidé à le rendre acceptable. Ndash Fr. May 2 12 at 20:35 Salut, Je cam sur ce poste et se demandait si la façon correcte d'obtenir la projection pour l'ensemble de données qui est xtset serait bys panneau date: gen variablegr D. variable47L. variable100. L'exécution de la commande sans le préfixe bys renvoie l'erreur non triée. Ndash Konrad Dec 19 14 at 11:07


No comments:

Post a Comment