Les dernières découvertes sous STATA (partage de commandes magiques)

Voir le sujet précédent Voir le sujet suivant Aller en bas

Les dernières découvertes sous STATA (partage de commandes magiques)

Message  Fred le Ven 9 Déc - 15:58

Je créé ce sujet pour que chacun vienne partager ses dernières découvertes de commandes magiques sous stata. Chacun d'entre nous découvre régulièrement des commandes toutes simples qui vous changent la vie sous stata. Le but du sujet est d'en faire partager vos collègues. Le seul risque est d'expliquer le fonctionnement d'une commande que tout le monde connaît, mais, soyons sérieux, ce risque est vraiment minime. Si chacun s'y met, nous gagnerons en efficacité, ce qui implique plus de temps pour la procrastination.

Par la même occasion, je vous propose de se rencontrer régulièrement par petits groupes au CERDI afin de nous montrer nos do-file et de se conseiller mutuellement.

Je commence donc par deux commandes que j'ai découvert il y a peu (graca à un exercice Stata proposé par David Sahn et grace à une brillante collègue).

La première commande en question est la commande "collapse". J'avais déjà croisé cette bête là sans jamais oser m'en servir, étant sûrement rebuté par le nom effrayant. Pourtant, il s'agit d'une commande très pratique qui permet de générer une nouvelle base ou chaque observation prendra la valeur de la moyenne (la somme ou autre suivant ce que l'on veut) des valeurs individuelles du groupe considéré. Par exemple, si l'on considère des enfants dans une école, répartis dans 5 niveaux différents, auxquels on attribue une note la commande collapse va vous permettre de générer une base comprenant la note moyenne par classe (une seule observation par classe). La commande serait la suivante :

collapse (mean) note , by(classe)

La deuxième commande que j'ai découvert permet de couper une commande trop longue dans un do, c'est à dire exprimer une seule commande en plusieurs lignes. Pour celà, vous pouvez utiliser la commande #delimit ; qui spécifie à stata que la commande n'est terminée que lorsqu'il voit le signe ";". Une autre manière de faire cela est de placer "///" à la fin d'une ligne de commande.

A vous!
avatar
Fred
Admin

Messages : 370
Date d'inscription : 17/11/2009
Age : 33
Localisation : Doctorant

Voir le profil de l'utilisateur http://themanwhobloggedtheworld.blogspot.com/

Revenir en haut Aller en bas

Re: Les dernières découvertes sous STATA (partage de commandes magiques)

Message  gaelleb le Ven 9 Déc - 16:37

merci Fred de nous prendre en main!

Je vais prendre un risque direct, mais au cas où qqun ne connaisse pas la commande codebook, ce serait quand même trop bête (l'idée étant que ce sujet ne souffre pas du syndrome dit "syndrome # delimit ;" et qui consiste à penser "mais tout le monde connaît cette commande, c'est tellement trop galère de faire sans !!!!!!).

Donc:

codebook pays permet de savoir combien j'ai de pays différents dans ma base de données (comment je faisais avant, je ne sais pas)

sort pays classe ma base de données par ordre alphabétique des pays (de A à Z). Soit. Mais j'ai découvert récemment sa grande sœur, beaucoup plus fun: gsort pays fait pareil que sort pays mais gsort -pays (vous avez noté le signe - devant la variable pays) classe ma base en fonction des pays de Z à A (ça marche aussi pour les tris numériques, du plus petit au plus grand versus du plus grand au plus petit)

quand j'en ai eu marre de voir mes graph sortir dans ce bleu enterré j'ai découvert l'option scheme(sj) (une option donc à spécifier après la virgule dans vos commandes graph) qui permet d'appliquer la mise en forme du Stata Journal (SJ) à vos graphiques (c'est-à-dire en N&B).

ensuite imaginons que vous avez une base de données sur les tariffs avec 100 pays (country) 100 produits (product) et 10 années (year) mais que votre panel n'est pas cylindré (vous ne disposez pas de tous les tariffs pour tous les produits, tous les pays et toutes les années, et vous avez fait un append de tout ça sans faire gaffe et du coup les missing n'apparaissent pas). bref, quand vous faites un count ça ne donne pas 100*100*10 observations mais moins. Or, pour une raison ou pour une autre, on peut vouloir faire apparaître ces missing data (notamment pour les remplacer par la valeur de l'année précédente dans le cas des tariffs). Donc pour rectangulariser votre base de données c'est la commande fillin, ici fillin country product year

Bref, j'ai trainé sur le forum au lieu de travailler... ;-)

gaelleb

Messages : 11
Date d'inscription : 23/11/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Les dernières découvertes sous STATA (partage de commandes magiques)

Message  Fred le Ven 9 Déc - 17:15

La commande fillin est juste !

Je connaissais pas, merci!
avatar
Fred
Admin

Messages : 370
Date d'inscription : 17/11/2009
Age : 33
Localisation : Doctorant

Voir le profil de l'utilisateur http://themanwhobloggedtheworld.blogspot.com/

Revenir en haut Aller en bas

Re: Les dernières découvertes sous STATA (partage de commandes magiques)

Message  Fred le Jeu 5 Jan - 0:56

Les premiers TD d'économétrie que l'on suit peuvent laisser penser que l'on va passer son temps à calculer des F-test pour les comparer avec les valeurs lues dans une table. Et, en fait non. En préparant mes TD d'économétries, en tant que que chargé de TD cette fois ( ), j'ai découvert que l'on peut obtenir sous stata la valeur de la statistique présente dans une table de Ficher ou de Chi-deux.

Pour la stat de Fisher, il faut taper :
display invFtail( dl1, dl2, p)

, dl1 et dl2 étant les degrés de libertés et p, le seuil de l'erreur de première espèce qui vous intéresse.

Pour le chi-deux, il faut taper :

display invchi2( dl , (1-p))

, dl étant le degré de liberté et p le seuil de l'erreur de première espèce.


avatar
Fred
Admin

Messages : 370
Date d'inscription : 17/11/2009
Age : 33
Localisation : Doctorant

Voir le profil de l'utilisateur http://themanwhobloggedtheworld.blogspot.com/

Revenir en haut Aller en bas

Re: Les dernières découvertes sous STATA (partage de commandes magiques)

Message  Fred le Sam 7 Jan - 18:32

En cherchant une commande magique pour attribuer la valeur 1 aux observations qui ont une valeur pair, je suis tombé sur une commande curieuse de stata qui m'a renvoyé à mon apprentissage des mathématiques à l'école primaire. La commande en question ( mod(x,y)), calcul la somme qu'il reste lorsque l'on divise x par y. Il doit il y avoir un nom pour ce résidu que les instits et les commerçants doivent bien connaître. Quand vous posez une division sur le papier, par exemple 56/33, vous commencez par retrancher 33 une première fois, vous posez une unité et il vous reste 23 (les chiffres suivants seront tous au delà de la virgule).

Bref, cette fonction qui a priori offre peu d'intérêt, permet de déterminer quelles sont les variables paires et impaires d'une série. Pour mettre en avant les variables impaires, il suffit d'appliquer la commande suivante :

gen IMPAIR = 1 if mod(variable, 2)==1

; et pour les variables paires :

gen PAIR =1 if mod(variable, 2)==0

La formule appliquée est mod(x,y) = x - y*int(x/y). Quand on divise un nombre entier impair par 2, on pose la valeur pair la plus proche mais inférieure et il reste forcément 1.

Vous avez d'autres formules pour déterminer les valeures paires et impaires?
avatar
Fred
Admin

Messages : 370
Date d'inscription : 17/11/2009
Age : 33
Localisation : Doctorant

Voir le profil de l'utilisateur http://themanwhobloggedtheworld.blogspot.com/

Revenir en haut Aller en bas

Re: Les dernières découvertes sous STATA (partage de commandes magiques)

Message  Fred le Ven 27 Jan - 17:51

Une petite commande magique pour la route : rowtotal. La commande permet d'additionner des variables, même si certaines observations ont des données manquantes. Dans ce cas, plutôt que de refuser le calcul, Stata considérera automatiquement que les points sont des valeurs nulles. La commande classique est donc :

egen newvar = rowtotal(var1 var2 ... varX)
avatar
Fred
Admin

Messages : 370
Date d'inscription : 17/11/2009
Age : 33
Localisation : Doctorant

Voir le profil de l'utilisateur http://themanwhobloggedtheworld.blogspot.com/

Revenir en haut Aller en bas

Re: Les dernières découvertes sous STATA (partage de commandes magiques)

Message  Emmanuel le Jeu 12 Avr - 22:36

J'ai découvert récemment la commande fre (ssc install fre): ça fait la même chose que tabulate, sauf que ça affiche les valeurs ET les labels côte à côte. Tellement pratique!

Emmanuel

Messages : 38
Date d'inscription : 18/11/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Les dernières découvertes sous STATA (partage de commandes magiques)

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum