Rang de naissance

Aller en bas

Rang de naissance

Message  Marie-Ch le Ven 9 Avr - 13:17

Je cherche à avoir une variable rang de naissance d'un enfant dans un ménage, et je cale sur la manip à adopter. Pour cela j'ai l'âge des enfants et l'identifiant de leur mère. Voilà les variables que j'ai avec un petit exemple. Dans l'exemple j'ai un ménage avec 2 co-épouses ayant chacune des enfants. Ce que je cherche à calculer c'est les 2 dernières colonnes, le rang de naissance de l'enfant dans sa fratrie et dans son ménage.
idmenage id_ind idmere age rang_fratrie rang_menage
1 50
2 45
3 2 16 1 1
4 2 10 2 2
5 25
6 5 5 1 3
7 5 3 2 4
8 5 1 3 5

Voilà si quelqu'un a une manip simple en main, je suis preneuse car là j'ai plutôt tendance à partir dans des choses compliquées et douteuses...
Merci d'avance !!

Marie-Ch

Messages : 77
Date d'inscription : 09/11/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Rang de naissance

Message  catherine le Ven 9 Avr - 16:11

Bonjour,
Je pense avoir une solution : la variable egen rank permet de générer une variable de rang et fonctionne avec la commande by

je te donne ce que j'ai tapé (il me semble que ça marche) :
pour générer rang_fratrie:
-sort idménage idmere
-by idménage idmere : egen rang_fratrie = rank(age)
et éventuellement if id_mère != .

pour générer rang_ménage:
-sort idménage
-by idménage : egen rang_ménage = rank(age)
et éventuellement if id_mère != .



ATTENTION à deux choses :
1. l'ordre : le rang 1 est donné au plus jeune et non au plus vieux comme tu l'as demandé, je ne sais pas si c'est grave mais si oui
soit tu crées la variable inverse
soit tu le gardes à l 'esprit dans tes interprétations,...
soit tu mets rank(-age) dans la commande, je n'ai jamais essayé et ne sais pas si ça marche
2. les données . manquantes sont triées et classées du coup il faut penser à les supprimer (un petit if id_mère != .)

J'espère avoir été clair, tiens moi au courant si ça marche et bon courage!!!
avatar
catherine

Messages : 64
Date d'inscription : 18/11/2009
Age : 32
Localisation : Clermont-Ferrand

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Rang de naissance

Message  Marie-Ch le Ven 9 Avr - 16:56

Merci de ta réponse. Je pense en effet que ta solution fonctionne. Ça paraît assez logique que rank serve à déterminer le rang à vrai dire.... Mais ce qui est bien avec stata c'est qu'il y a toujours plusieurs bricolages pour un même résultat (de là à dire que tous les chemins mènent à Rome...);
Sinon voilà comment je m'en suis sortie pour le rang de naissance de la même mère.

gsort idmenage idmere -age
by idmenage idmere : gen rang_fratrie=_n


Du coup j'ai aussi fait la même chose pour le rang de naissance du même père, et pour le rang dans le ménage.

Voilà qui m'a donné l'occasion de faire connaissance avec gsort qui lorsqu'on lui associe une variable avec un + devant (ou rien comme ici) trie par ordre croissant, et trie par ordre décroissant avec un - devant la variable.

Comme dis précédemment il faut faire attention aux données manquantes, en effet un age==. sera considéré comme le plus jeune de la fratrie.

Marie-Ch

Messages : 77
Date d'inscription : 09/11/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Rang de naissance

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

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