A quoi ça sert

A distinguer l'effet de structure d'un effet net, par exemple pour la variation d'un taux d'incidence d'une pratique donnée entre deux périodes.

Par exemple, est-ce que l'évolution du nombre de gros lecteurs entre 1981 et 2003 est dû seulement à la variation de la structure des niveaux de diplôme (effet structurel) ou bien à autre chose (effet net) ? Et dans quelles proportions ?

Au départ l'indice de Paasche est un indice de calcul de l'évolution des prix :

http://fr.wikipedia.org/wiki/Indice\_de\_Paasche

Comment ça se calcule

On note c la variable catégorielle dont on veut étudier les effets de changements de structure. Il s'agit d'une variable à n modalités.

On note x la variable dont on souhaite étudier l'évolution du taux d'incidence entre deux dates \(t^1\) et \(t^2\). On note \(x^1\) le taux d'incidence de x en \(t^1\) et \(x^2\) son taux d'incidence en \(t^2\).

La décomposition de Paasche consiste à réécrire \(x^2 - x^1\) de la manière suivante : $$x^2 - x^1 = \sum_{i=1}^{n} c_i^1 (x_i^2 - x_i^1) + \sum_{i=1}^{n} x_i^2 (c_i^2 - c_i^1)$$ Le premier terme de cette décomposition est la somme, sur l'ensemble des modalités, de la proportion de cette modalité en \(t^1\) multiplié par l'évolution de x entre \(t^1\) et \(t^2\) pour cette modalité. C'est l'effet net lié à chaque modalité.

Le deuxième terme est la somme, sur l'ensemble des modalités, de la valeur de x en \(t^2\) pour cette modalité multipliée par l'évolution du taux d'incidence de cette modalité entre \(t^1\) et \(t^2\). C'est l'effet de structure lié à chaque modalité.

Un exemple (presque) intelligent

Imaginons l'évolution du taux d'appréciation de la mortadelle entre 1970 et 2000. Ce taux a évolué entre ces deux dates, mais on sait également que l'incidence du fait d'apprécier la mortadelle est lié au sexe, et que la répartition entre hommes et femmes a elle aussi évolué entre 1970 et 2000. On cherche donc à savoir si l'évolution du taux d'appréciation de la mortadelle est uniquement lié à cette évolution de la structure par sexe ou s'il y a bien un effet "hors-sexe".

On imagine les données suivantes pour 1970 :

  • Proportion d'hommes : 60%
  • Appréciation de la mortadelle chez les hommes : 40%
  • Proportion de femmes : 40%
  • Appréciation de la mortadelle chez les femmes : 70%
  • Appréciation de la mortadelle globale (moyenne pondérée) : 52%

Et pour 2000 :

  • Proportion d'hommes : 50%
  • Appréciation de la mortadelle chez les hommes : 55%
  • Proportion de femmes : 50%
  • Appréciation de la mortadelle chez les femmes : 65%
  • Appréciation de la mortadelle globale (moyenne pondérée) : 60%

On constate donc globalement une augmentation de 8 points du taux d'appréciation de la mortadelle entre les deux années considérées. On applique la décomposition indiquée par la formule de l'indice de Paasche :

Effet de structure

Regardons la deuxième partie de la décomposition :

$$\sum_{i=1}^{n} x_i^2 (c_i^2 - c_i^1)$$

On peut interpréter le calcul comme :

  incidence en t2 chez les hommes * évolution de la proportion d'hommes
+ incidence en t2 chez les femmes * évolution de la proportion de femmes

Ici cela donne le calcul suivant :

$$ 55~\% \times (50~\% - 60~\%) + 65~\% \times (50~\% - 40~\%) = -5,5~\% + 6,5~\% = 1~\% $$

On a donc un effet de structure global positif de 1 point. Celui se décompose en fait en un effet de structure négatif de 5,5 points lié à la diminution de la proportion d'hommes, et à un effet de structure positif de 6,5 points lié à l'augmentation de la proportion de femmes.

Effet net

Regardons la première partie de la décomposition :

$$\sum_{i=1}^{n} c_i^1 (x_i^2 - x_i^1)$$

On peut interpréter le calcul comme :

  proportion d'hommes en t1 * évolution de l'incidence chez les hommes
+ proportion de femmes en t1 * évolution de l'incidence chez les femmes

Ce qui donne le calcul suivant :

$$60~\% \times (55~\% - 40~\%) + 40~\% \times (65~\% - 70~\%) = 9~\% - 2~\% = 7~\% $$

Première remarque : 7% + 1% = 8%, la somme de l'effet net et de l'effet de structure est bien égal à l'évolution globale du taux d'incidence de la variable étudiée.

L'effet net, indépendamment de l'évolution de la structure par sexe, est donc globalement positif de 7 points. Mais si on regarde en détail il est en fait positif de 7 points pour les hommes (dont le taux d'appréciation de la mortadelle est passé de 40% à 55%) et négatif de 2 points pour les femmes (dont le taux d'appréciation est passé de 70% à 65%).

Interprétation

On peut récapituler les effets de structure et les effets nets dans un tableau :

Effet de structureEffet netTotal
Hommes-5,5%9%3,5%
Femmes6,5%-2%4,5%
Ensemble1%7%8%

Ceci permet de mettre en évidence quelle variation est due à quel type d'effet pour chaque modalité.

Mise en oeuvre avec R

On a des données de la forme suivante, stockées dans un data.frame m :

AnnéeSexeMortadelle
1970HommeOui
1970HommeOui
1970HommeNon
1970FemmeOui
2000HommeOui
2000FemmeOui
2000FemmeNon

On peut utiliser la fonction suivante, qui renvoit un tableau tel que calculé dans l'exemple :

tab.paasche <- function (m, m1, m2, c, x) {
  c1 <- table(c[m1])
  c1 <- c1/sum(c1)
  c2 <- table(c[m2])
  c2 <- c2/sum(c2)
  t1 <- tapply(x[m1],c[m1],sum)
  t1 <- t1/table(c[m1])
  t2 <- tapply(x[m2],c[m2],sum)  
  t2 <- t2/table(c[m2])
  eff.struc <- t2*(c2-c1)
  eff.net <- c1*(t2-t1)
  tab <- cbind(eff.struc,eff.net)
  tab <- rbind(tab,apply(tab,2,sum))
  tab <- cbind(tab,apply(tab,1,sum))
  colnames(tab) <- c("Effet structure", "Effet net", "Total")
  rownames(tab) <- c(names(t2),"Ensemble")
  tab*100
}

L'appel de fonction s'effectue de la manière suivante :

tab.paasche(m, m$annee=="1970", m$annee=="2000", m$sexe, m$mortadelle=="Oui")
  • m spécifie le data.frame contenant les données
  • m1 est une condition spécifiant quelles observations sont à la date t1
  • m2 est une condition spécifiant quelles observations sont à la date t2
  • c est la variable de structure
  • x est une condition dont on veut voir l'évolution du taux d'incidence

On peut par exemple vérifier en reproduisant les données de notre exemple intelligent :

n <- 20000
m <- data.frame(annee=factor(c(rep("1970",n/2),rep("2000",n/2))))
m$sexe <- character(n)
m$sexe[m$annee=="1970"] <- sample(c("Homme","Femme"),n/2, replace=TRUE, prob=c(0.6,0.4))
m$sexe[m$annee=="2000"] <- sample(c("Homme","Femme"),n/2, replace=TRUE, prob=c(0.5,0.5))
m$mortadelle <- character(n)
selec <- m$annee=="1970" & m$sexe=="Homme"
m$mortadelle[selec] <-sample(c("Oui","Non"), sum(selec), replace=TRUE, prob=c(0.4,0.6))
selec <- m$annee=="1970" & m$sexe=="Femme"
m$mortadelle[selec] <-sample(c("Oui","Non"), sum(selec), replace=TRUE, prob=c(0.7,0.3))
selec <- m$annee=="2000" & m$sexe=="Homme"
m$mortadelle[selec] <-sample(c("Oui","Non"), sum(selec), replace=TRUE, prob=c(0.55,0.45))
selec <- m$annee=="2000" & m$sexe=="Femme"
m$mortadelle[selec] <-sample(c("Oui","Non"), sum(selec), replace=TRUE, prob=c(0.65,0.35))


tab.paasche(m, m$annee=="1970", m$annee=="2000", m$sexe, m$mortadelle=="Oui")

A priori ça a l'air bon…

Remarques et questions

  • cet indice ne prend en compte l'effet de structure que d'une variable à la fois. Or on peut avoir des effets de structure dus à l'âge, au sexe, aux PCS… le tout en même temps.
  • cet indice fait l'hypothèse que l'intensité du lien entre la variable de structure et la variable d'intérêt est constante dans le temps (à vérifier ???)
  • il peut être intéressant de regarder la décomposition effet de structure / effet net au niveau de la modalité, et pas simplement globalement au niveau de la variable.
  • pourquoi dans le calcul prend-on t1 comme référence pour l'effet net, et t2 pour l'effet de structure ? Pourquoi pas l'inverse ?
  • quel rapport exact avec l'indice des prix de Paasche décrit dans Wikipedia ?