Affichage des articles dont le libellé est Statistiques. Afficher tous les articles
Affichage des articles dont le libellé est Statistiques. Afficher tous les articles

vendredi 10 février 2012

R pour les sociologues: partager les ficelles du métier statistique

En plus d'avoir rédigé un manuel d'introduction à R spécialement destiné aux sociologues, ainsi qu'un manuel d'introduction à l'analyse des réseaux avec R, Julien Barnier a également conçu un package (rgrs) de fonctions utiles aux sociologues. Il tient aussi un blog Alea qui complète ses manuels. Enfin, il a mis sur pied une liste d'utilisateurs dédiée à l'échange sur R et à la résolution des problèmes pratiques auxquels ses membres sont confrontés quand ils se servent de R:
https://listes.cru.fr/sympa/info/r-soc.

Je vous recommande vivement de vous y inscrire. Grâce à la réactivité de son fondateur et de ses membres les plus expérimentés, cette liste permet de résoudre rapidement les problèmes rencontrés. C'est extrêmement précieux car c'est bien sûr toujours lorsqu'on se trouve pressé par l'urgence que les obstacles s'accumulent et qu'on sent le plus cruellement ses lacunes en matière de programmation

mardi 29 mars 2011

Taux de croissance sous R

Pour calculer un taux de croissance sous R, prenons pour exemple cette courte chronique de la valeur liquidative d'un fonds d'actions européennes.
       date     VL
1   2/07/07 844.83
2   3/07/07 852.43
3   4/07/07 854.71
4   5/07/07 849.98
5   6/07/07 854.59
6   9/07/07 857.47
7  10/07/07 848.02
8  11/07/07 845.25
9  12/07/07 856.29
10 13/07/07 859.31
11 16/07/07 860.34
Commençons par créer une troisième variable dans notre base de données. Remplissons-la par défaut de non-réponses. Appliquons-lui une "boucle for". La boucle démarre à la deuxième ligne de la base de données et se poursuit jusqu'à la dernière ligne de la base. Pour chaque ligne "i", elle associe à la variable "rentabilite" le taux d'accroissement entre la valeur liquidative de la ligne considérée et la valeur liquidative de la ligne précédente "i-1"
data$rentabilite <- NA
for(i in 2:length(data$VL)) data$rentabilite[i] <- (data$VL[i]-data$VL[i-1])/data$VL[i-1]

Désormais, la base de donnée est augmentée d'une variable dont la première valeur n'est pas renseignée et dont les autres valeurs donnent la rentabilité quotidienne du fonds.
       date     VL  rentabilite
1   2/07/07 844.83           NA
2   3/07/07 852.43  0.008995893
3   4/07/07 854.71  0.002674706
4   5/07/07 849.98 -0.005534041
5   6/07/07 854.59  0.005423657
6   9/07/07 857.47  0.003370037
7  10/07/07 848.02 -0.011020794
8  11/07/07 845.25 -0.003266432
9  12/07/07 856.29  0.013061224
10 13/07/07 859.31  0.003526843
11 16/07/07 860.34  0.001198636

La question traitée dans ce billet est d'une simplicité enfantine. On peut la contourner en passant par un tableur, mais cela vaut le coup d'apprendre les rudiments de la programmation R! Comme je n'ai trouvé la réponse nulle part sur Internet, il m'a fallu recourir à l'aide d'un ami pour avoir la solution. D'autres pourraient vouloir en profiter à leur tour !