Exemple avec R: Cohérence dans l’agrégation et le rebasage
Il est utile de terminer cette section du cours avec quelques exemples dans R. Le premier exemple montre qu’un indice géométrique est cohérent dans l’agrégation. Le calcul de l’indice en deux étapes donne la même réponse que le calcul direct.
# Apportez dans la bibliothèque gpindex
library(gpindex)
# Faites des prix apparentés
dat <- data.frame(relative = c(1.1, 1.2, 0.9, 1.1),
weight = c(0.25, 0.3, 0.3, 0.15),
group = letters[c(1, 1, 2, 2)])
dat## relative weight group
## 1 1.1 0.25 a
## 2 1.2 0.30 a
## 3 0.9 0.30 b
## 4 1.1 0.15 b
# Calculer l'indice géométrique pour les parents des groupes a et b
index_ab <- sapply(split(dat, dat$group),
function(x) geometric_mean(x$relative, x$weight) * 100)
index_ab## a b
## 115.34655 96.22603
# Indices agrégés de niveau inférieur
index_top <- geometric_mean(index_ab, as.numeric(tapply(dat$weight, dat$group, sum)))
index_top## [1] 106.3125
# Identique au calcul direct
geometric_mean(dat$relative, dat$weight) * 100## [1] 106.3125
Le deuxième exemple montre comment rebaser un indice de prix — divisez simplement la série d’indices par la valeur de l’indice dans la nouvelle période de base.
# Faire un index sur 12 périodes avec période 0 = 100
index <- data.frame(period = 0:11, value = c(100, sample(90:130, 11)))
index## period value
## 1 0 100
## 2 1 98
## 3 2 104
## 4 3 94
## 5 4 106
## 6 5 95
## 7 6 93
## 8 7 116
## 9 8 107
## 10 9 115
## 11 10 124
## 12 11 112
# Rebase l'indice pour que la période 6 = 100
transform(index, value = value / value[period == 6] * 100)## period value
## 1 0 107.5269
## 2 1 105.3763
## 3 2 111.8280
## 4 3 101.0753
## 5 4 113.9785
## 6 5 102.1505
## 7 6 100.0000
## 8 7 124.7312
## 9 8 115.0538
## 10 9 123.6559
## 11 10 133.3333
## 12 11 120.4301