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 !

Aucun commentaire: