12 Régression de Poisson

Exercice 1 (Questions de cours) C, A, B, A, B, B, C, A

Exercice 2  

  • Le modèle linéaire gaussien s’écrit Yi=Xi.β+εi,   εiN(0,σ2) c’est-à-dire YiN(Xi.β,σ2) La densité en y est f(y)=12πexp((yxβ)22σ2)=exp((y(xβ)(xβ)2/2)σ212(y2σ2+log(2πσ2))) On a donc α=xβb(α)=α2/2ϕ=σ2a(ϕ)=σ2c(y,ϕ)=12(y2ϕ+log(2πϕ)). La fonction de lien canonique est par définition g(u)=(b)1(u)b(α)=(α2/2)=α L’inverse de b(.):αu=b(α)=α est donc b(.)1:uα=u, c’est le lien identité.

  • Le modèle logistique avec répétition en x~t (voir paragraphe 11.4.1, p. 270) s’écrit Y~t=y~t|X=x~tB(nt,pβ(xt))pβ(xt)=logit(xtβ). La probabilité que Y~t vaille y~t ou densité par rapport à la mesure de comptage au point y~t en s’écrit f(y~t)=P(Y~t=y~t)=(nty~t)pβ(xt)y~t(1pβ(xt))n~ty~t Si il n’y a pas de répétitions en x~t on a nt=1 et y~t=0 ou 1.

    En modèle GLM on s’intéresse non pas au comptage Y~t mais à la moyenne Y¯t=Y~t/nt, nous avons donc f(y¯t)=P(Y¯t=y¯t)=(ntnty¯t)pβ(xt)nty¯t(1pβ(xt))ntnty¯t En introduisant l’exponentielle: f(y¯t)=exp(log(ntnty¯t))exp(log(pβ(xt)nty¯t))exp(log((1pβ(xt))ntnty¯t))=exp(nty¯tlogpβ(xt)+(ntnty¯t)log(1pβ(xt))+log(ntnty¯t))=exp(nty¯t(logpβ(xt)log(1pβ(xt)))ntlog(1pβ(xt))+log(ntnty¯t))=exp(nt(y¯tlogpβ(xt)1pβ(xt)log(1pβ(xt)))+log(ntnty¯t)) Ici nous avons α= ou α=logpβ(xt)1pβ(xt)b(α)=log(1+expα)=log(1pβ(xt))ϕ=1/nta(ϕ)=ϕc(y¯t,ϕ)=log(1/ϕy¯t/ϕ). Pour calculer la fonction de lien canonique nous devons dériver b(.) et inverser la fonction b(α)=log(1+expα)=exp(α)1+expα=u(b)1(u)=logu1u=α c’est le lien logistique.

  • Le modèle de poisson s’écrit Yi=yi|X=xiP(λβ(xi)) La probabilité que Yi vaille $y_i ou densité par rapport à la mesure de comptage au point yi en s’écrit f(yi)=P(Y~i=y~i)=exp(λβ(xi))λβ(xi)yiyi!=exp(λβ(xi)+log(λβ(xi)yi)log(yi!))=exp(yilog(λβ(xi))λβ(xi)log(yi!)) Ici nous avons α=log(λβ(xi))b(α)=exp(α)=λβ(xi)ϕ=1a(ϕ)=1c(y¯t,ϕ)=log(yi!). Pour calculer la fonction de lien canonique nous devons dériver b(.) et inverser la fonction b(α)=exp(α)=u(b)1(u)=logu=α c’est le lien log.

Exercice 3  

  1. Les moments factoriels d’ordre r d’une variable aléatoire suivant une loi de Poisson valent: E[X(X1)(Xr+1)]=k=0k(k1)(kr+1)λkk!eλ=eλk=rk(k1)(kr+1)k!λk=eλλrk=r1(kr)!λkr=λr.
    1. Pour r=1 nous avons donc E(X)=λ Pour r=2 nous avons donc E(X(X1))=E(X2)E(X)=λ2E(X2)=λ2+λ Et nous avons la variance V(X)=E(X2)E(X)2=λ2+λλ2=λ.

Exercice 4 (Stabilisation de la variance) Tirons notre échantillon de taille n=106 selon des loi de poisson de paramètre λ{1,2,,20}

n <- 1e7
lambdas <- 1:20
varX <- rep(0, length(lambdas))
varZ <- rep(0, length(lambdas))
for (l in 1:length(lambdas)){
    ech <- rpois(n, lambdas[l])
    varX[l] <- var(ech)
    ech <- sqrt(ech)
    varZ[l] <- var(ech)
}
print(varX)
 [1]  0.9997369  1.9997818  2.9984626  4.0031435  4.9959479  5.9992567
 [7]  7.0043691  7.9954055  8.9991719  9.9990725 10.9885709 12.0038720
[13] 12.9821786 13.9998158 14.9955777 16.0014936 16.9962143 17.9969313
[19] 19.0054412 19.9929461
print(varZ)
 [1] 0.4022116 0.3897837 0.3396863 0.3059119 0.2856383 0.2753928 0.2693276
 [8] 0.2652610 0.2629826 0.2613118 0.2598299 0.2590222 0.2578215 0.2575848
[15] 0.2568114 0.2565663 0.2560164 0.2556442 0.2554479 0.2549726

Exercice 5 (Stabilisation de la variance) Comme XiiidP(λ) nous avons par le TCL que la moyenne d’un n échantillon X¯n converge vers la loi normale et plus exactement n(X¯nλ)DN(0,λ). Posons la fonction g(.) de classe C1 et utilisons un développement de Taylor autour de λ: g(x)=g(λ)+(xλ)g(λ)+o(xλ) Ici nous nous intéressons à stabiliser X¯n et nous posons la transformation g(X¯n) ce qui donne g(X¯n)=g(λ)+(X¯nλ)g(λ)+o(X¯nλ)n(g(X¯n)g(λ))=n(X¯nλ)g(λ)+no(X¯nλ) Comme n(X¯nλ) converge en distribution donc (X¯nλ)=OP(1/n) donc no(X¯nλ)=oP(1) et donc n(g(X¯n)g(λ))=n(X¯nλ)g(λ)+oP(1) Si g(λ)0 on a n(g(X¯n)g(λ))DN(0,λg(λ)2) Pour avoir la variance unité, on choisit λg(λ)2)=1 c’est à dire g(λ)=1λg(λ)=2λ On peut donc prendre la transformée g(X)=2X (pour avoir la variance unité) ou g(X)=X et on aura une variance de 1/4.

Exercice 6  

  1. Graphique

    Malaria <- read.csv("../donnees/poissonData3.csv")
    tab <- lapply( split( Malaria$N.malaria, Malaria$Sexe ), table )
    Tab <- matrix( 0,2, max( Malaria$N.malaria )+1 )
    colnames(Tab) <- 0:max( Malaria$N.malaria )
    Tab[1, names(tab[[1]]) ] <- tab[[1]]
    Tab[2, names(tab[[2]]) ] <- tab[[2]]
    barplot( Tab, offset = -Tab[1,])

    Les barres sont superposées : les filles puis les garçons. Comme on soustrait à la hauteur totale les garçons (argument offset), on a les effectifs des filles en dessous et ceux des garçons au dessus.

  2. Les moyennes par groupe

    aggregate(Malaria$N.malaria, list(Malaria$Sexe), mean)
      Group.1        x
    1       F 4.579012
    2       M 4.794370

    et la différence des logarithme népérien

    diff(log(aggregate(Malaria$N.malaria, list(Malaria$Sexe), mean)[,"x"]))
    [1] 0.04595891
  3. Un autre code

    mm <- sapply( split( Malaria$N.malaria, list(Malaria$Sexe) ),mean,na.rm=T)
    round( c( log( mm[1] ), diff( log( mm ) ) ), 5)
          F       M 
    1.52148 0.04596 
  4. Régression de Poisson

    mod <- glm(N.malaria ~ 1 + Sexe, data=Malaria, family = poisson)
    mod
    
    Call:  glm(formula = N.malaria ~ 1 + Sexe, family = poisson, data = Malaria)
    
    Coefficients:
    (Intercept)        SexeM  
        1.52148      0.04596  
    
    Degrees of Freedom: 1626 Total (i.e. Null);  1625 Residual
    Null Deviance:      5710 
    Residual Deviance: 5706     AIC: 10510

    Nous retrouvons que le coefficient constant (Intercept) est le logarithme népérien de la moyenne du nombre de visites chez les filles. La modalité fille est la première modalité de la variable Sexe par ordre alphabétique et constitue la modalité de référence. Le coefficient constant est ici le logarithme (qui est la fonction de lien) de la moyenne du nombre de visites chez les filles. L’effet Age est ici la différence des logarithmes ce que nous retrouvons dans le second coefficient.

Exercice 7 (Table de contingence et loi de Poisson)  

  1. Importons les données

    Malaria <- read.table("../donnees/poissonData3.csv", sep=",", header=TRUE, stringsAsFactors=TRUE)

    et le tableau de contingence est

    table(Malaria$Sexe, Malaria$Prevention)
    
        Autre Moustiquaire Rien Serpentin/Spray
      F     2          557  223              28
      M     6          543  233              35
  2. Lien entre Sexe et Prévention

    chisq.test(Malaria$Sexe,Malaria$Prevention)
    
        Pearson's Chi-squared test
    
    data:  Malaria$Sexe and Malaria$Prevention
    X-squared = 3.1452, df = 3, p-value = 0.3698

    La probabilité critique est de 0.3698 donc nous conservons H0 il y a indépendance entre Sexe et Prévention.

  3. Constitution du data-frame

    Y <- as.vector(table(Malaria$Sexe, Malaria$Prevention))
    eff <- table(Malaria$Sexe, Malaria$Prevention)
    Sexe <- factor(rep(c("F", "M"), 4))
    Prevention <- factor(rep(levels(Malaria$Prevention), each=2))
    don <- data.frame(Y, Sexe, Prevention)
  4. Modèle de Poisson avec interaction

    mod1 <- glm( Y ~ -1 + Sexe:Prevention, data=don, family=poisson)
    • Il n’y a pas de contraintes ici. On a 2×4 niveaux d’interactions et 8 coefficients estimés. Il s’agit d’une situation analogue à une analyse de variance à 2 facteurs (à 2 et 4 niveaux) avec interaction et sans répétitions. Dans chaque niveau d’interaction i×j on observe un comptage Yij (l’effectif) qui est modélisé par un modèle de Poisson. Les comptages suivent une loi de Poisson de paramètre λij dont le log est fonction du niveau de l’interaction logλij=γij En ANOVA c’est un modèle normal et le lien est l’identité.

    • Le modèle est saturé, il y a une n=8 observations et 8 points distincts dans le design: 8 niveaux d’interactions. Par ailleurs on a bien p=8 paramètres.

    • Comme le modèle est saturé nous avons que les items ci-dessous représentent la même chose:

      • les ajustements du modèle mod1
      • les observations en chaque point du design (chaque niveau d’interaction)
      • la moyenne en chaque point du design car il n’y a qu’un point par niveau d’interaction
      all(abs(fitted(mod1) - don$Y)<1e-10)
      [1] TRUE
      moyparcellule <- aggregate(don$Y, list(don$Sexe,don$Prevention), mean)[,"x"]
      all(abs(fitted(mod1) - moyparcellule)<1e-10)
      [1] TRUE

      En passant au log, les ajustements (ou les comptages, ou la moyenne par niveau) valent les coefficients βij:

      all(abs(log(don$Y) - coef(mod1))<1e-10)
      [1] TRUE
  5. Modèle de Poisson sans interaction

    mod2 <- glm( Y ~ 1 + Sexe + Prevention, data=don, family=poisson)

    Le comptage Yij (l’effectif) est modélisé par un modèle de Poisson : les comptages suivent une loi de Poisson de paramètre λij dont le log est modélisé par logλij=μ+αi+βj

    • Il y a des contraintes identifiantes qui sont celles choisies par défaut: β1=α1=0
          mod2
    
    Call:  glm(formula = Y ~ 1 + Sexe + Prevention, family = poisson, data = don)
    
    Coefficients:
                  (Intercept)                      SexeM  
                     1.381983                   0.008605  
       PreventionMoustiquaire             PreventionRien  
                     4.923624                   4.043051  
    PreventionSerpentin/Spray  
                     2.063693  
    
    Degrees of Freedom: 7 Total (i.e. Null);  3 Residual
    Null Deviance:      1998 
    Residual Deviance: 3.24     AIC: 60.92
    • Le modèle n’est pas saturé, il y a toujours 8 points distincts dans le design et p=5 paramètres.
    • Les estimations du modèle tendent à modéliser les effectifs par un effet Sexe et Prevention sans interaction.
  6. Comparaison via AIC

    AIC(mod1)
    [1] 63.67658
    AIC(mod2)
    [1] 60.91634

    Le modèle avec le plus petit AIC est retenu: le modèle sans interaction. Ce choix est en accord avec la décision prise en question 2.

Exercice 8 (Table de contingence et probabilité)  

  1. La probabilité d’être une femme π1.=Pr(F)=Pr(FAutre)+Pr(FMoust+Pr(FRien+Pr(FSer/Sp=j=14π1j
  2. La probabilité d’utiliser au moyen Autre est π.1=Pr(Autre)=Pr(FAutre)+Pr(MAutre)=i=12πi1 Toutes les autres lignes ou colonnes sont traitées de manière similaire.
  3. Contraintes Il s’agit de probabilité donc leur somme vaut 1: π.1+π.2+π.3+π.4=1π1.+π2.=1 On a aussi d’autres probabilités : i,jπij=1iπi|j=1,j{1,2,3,4}jπj|i=1,i{1,2}
  4. Indépendance πij=Pr(Sexe=iPrévention=j)=Pr(Sexe=i)Pr(Prévention=j)πi.π.j
  5. On part de l’écart proposé et on multiplie par N: πij=πi.π.jπijπi.π.jNπij=Nπi.Nπ.jNπijNπi.Nπ.jlog(Nπij)=logNπi.+logNπ.j+logNπijNπi.Nπ.jlog(λij)=αi+βj+γij. On a comme contrainte π1.+π2.=1=1N(exp(α1)+exp(α2))π.1+π.2+π.3+π.4=1=1N(j=14exp(α1π.j) On peut aussi exprimer les contraintes sur les {γij} avec les contraintes sur les probabilités conditionnelles.

Exercice 9 (Loi Multinomiale) Soit N qui suit une multinomiale : Pr(N1=n1,,NK=nK)=n!n1!nK!k=1Kπknk. en introduisant l’exponentielle f(n1,,nK)=exp(log(n!n1!nK!))exp(log(k=1Kπknk))f(n1,,nK)=exp(k=1Knklogπk+log(n!n1!nK!))

Exercice 10  

  1. Nous souhaitons modéliser des effectifs répartis dans des cases i×j ce qui représente le champs d’action de la loi multinomiale.

    • Un premier modèle possible est de modéliser toute la table d’un coup. On désigne par Nij,i{1,2},j{1,2,3} l’effectif (aléatoire) du croisement (i,j) et par πij la probabilité (inconnue) d’appartenir à ce croisement (voir le tableau de l’énoncé). Ainsi N1,3 correspondra par exemple au croisement (,). Nous avons donc l’effectif total de la table n=631 et nous utilisons toute la table d’un coup et nous modélisons les effectifs Nij par une loi multinomiale M(n,π11,π12,,π23). Pour une case i,j nous avons pour les probabilités: Pr(Gr=i,In=j)=πij. Si nous soupçonnons qu’il n’y ait pas de lien entre Groupe et Intention nous pouvons simplifier le modèle via l’indépendance et avoir pour une case i,j Pr(Gr=i,In=j)=Pr(Gr=i)Pr(In=j)=πi.π.j. Cette approche est celle du test du χ2 et nous ne la développerons pas dans cet exercice.
    • Une seconde approche (utilisée ici) est de modéliser chaque ligne du tableau.
      • Si nous soupçonnons qu’il n’y ait pas de lien entre Groupe et Intention nous pouvons dire que chaque ligne est modélisée par une loi multinomiale M(ni,π.1,π.2,π.3). D’une ligne à l’autre la loi est presque la même (l’effectif ni change): la répartition dans les cases suit les mêmes probabilité puisque l’on soupçonne qu’il n’y a pas de lien entre Groupe et Intention.
      • Si nous soupçonnons qu’il y ait un lien entre Groupe et Intention nous pouvons dire que chaque ligne est modélisée par une loi multinomiale M(ni,πi1,πi2,πi3). D’une ligne à l’autre la loi est différente: l’effectif ni change et la répartition dans les cases (πi1,πi2,πi3) change aussi ; c’est l’objet de la question 2.

    Pour la ligne i on a comme observation les effectifs (d’une multinomiale) ni1,ni2,ni3. Leur somme vaut ni.. On doit répartir dans 3 groupes mais les probabilités de répartitions sont les mêmes d’une ligne à l’autre elles sont notées π.j. On a donc la probabilité d’observer ni1,ni2,ni3: Pr(Ni1=ni1,Ni2=ni2,Ni3=ni3)=ni.!ni1!ni1!ni3!j(π.j)nij. Pour toutes les données nous avons alors Pr(N11=n11,N12=n12,,N13=n13)Pr(N21=n11,N22=n22,N23=n23)==i=12ni.!ni1!ni1!ni3!j(π.j)nij.

  2. Le modèle avec lien entre Groupe et Intention permet d’écrire la probabilité de l’échantillon comme: Pr(N11=n11,N12=n12,,N13=n13)Pr(N21=n11,N22=n22,N23=n23)==i=12ni.!ni1!ni1!ni3!j(πij)nij.

  3. Calculons les log-vraisemblances pour les deux modèles.

    • Modèle sans effet Groupe: L(Y,πij)=i,jnijlogπ.j+cte. sous les contraintes jπ.j=1 et les probabilités sont positives. La positivité peut être imposée en écrivant π.j=exp(μj) et la somme à 1 impose alors π.j=exp(μj)jexp(μj). En utilisant cette paramétrisation nous avons L(Y,μj)=i,jnijμji,jnijlog(jexp(μj))+cteL(Y,μj)=jni.μjini.log(jexp(μj))+cte

    • Modèle avec effet Groupe: L(Y,π)=i,jnijlogπij+i,jlog(n!)i,jlog(nij!)=i,jnijlogπij+cte., sous les contraintes jπij=1,i et les probabilités sont positives. La positivité peut être imposée en écrivant πij=exp(ηij) et la somme à 1 impose alors πij=exp(ηij)jexp(ηij). En utilisant cette paramétrisation nous avons (1)L(Y,ηij)=i,jnijηiji,jnijlog(jexp(ηij))+cteL(Y,ηij)=jnijηijini.log(jexp(ηij))+cte

  4. Le modèle de poisson complet est YP(λij)log(λij)=μ+αi+βj+γij Ce modèle est sur-paramétré et nécessite des contraintes pour être estimable. On peut choisir α1=0,β1=0,γ11=γ12==γ31=0 Il donne les mêmes prévisions que le modèle plus simple suivant: YP(λij)log(λij)=μ+αi+γij Ce modèle est sur-paramétré et nécessite des contraintes pour être estimable. On peut choisir $$% α1=0,γ11=γ12==γ31=0γ11=γ21=0

    Ils donnent les mêmes prévisions que le modèle sans contraintes suivant: YP(λij)log(λij)=mij Pour ce dernier modèle, nous avons l’écriture suivante (qui correspond bien à l’écriture de l’équation ci-dessus) et où l’on voit apparaître sous forme matricielle le modèle saturé (la matrice de design est 6×6 et de plein rang): [log(λ11)log(λ21)log(λ12)log(λ22)log(λ13)log(λ23)]=[100000010000001000000100000010000001][m11m21m12m22m13m23] Pour le second modèle nous avons [log(λ11)log(λ21)log(λ12)log(λ22)log(λ13)log(λ23)]=[100000110000101000110100100010110001][μα2γ12γ22γ13γ23]=[μ+α1+γ11μ+α1+γ21μ+α2+γ12μ+α2+γ22μ+α2+γ13μ+α3+γ23] Pour le premier modèle nous avons [log(λ11)log(λ21)log(λ12)log(λ22)log(λ13)log(λ23)]=[100000110000101000111010100100110101][μα2β2β3γ13γ23]=[μ+α1+β1+γ11μ+α1+β2+γ21μ+α2+β3+γ12μ+α2+β1+γ22μ+α2+β2+γ13μ+α3+β3+γ23]

  5. Calculons la vraisemblance du modèle avec contrainte pour les observations {nij}: i,jeλijλijnijnij dont le logarithme est L(n,λ)=i,jλij+i,jnijlogλij+cte. Comme log(λij)=μ+αi+γij, on en déduit L(n,μ,αi,γij)=ijexp(μ+αi+γij)+i,jnij(μ+αi+γij)+cte. Posons τi=jexp((μ+αi)+γij) et on a donc L(n,μ,τi,γij)=iτi+i,jnij(μ+αi)+i,jnijγij+cte. Exprimons (μ+αi) en fonction de τi: τi=jexp((μ+αi)+γij)=exp(μ+αi)jexp(γij)exp(μ+αi)=τijexp(γij)μ+αi=logτijexp(γij)=logτilog(jexp(γij)) et nous introduisons cette dernière équation dans la log-vraisemblance: L(n,μ,τi,γij)=iτi+i,jnij(logτilog(jexp(γij)))+i,jnijγij+cteL(n,μ,τi,γij)=i(ni.logτiτi)+i,jnijγijini.log(jexp(γij))+cte. La vraisemblance est séparée en 2 parties: le premier terme i(ni.logτiτi) dépend de τi alors que les 2 derniers dépendent de γij. On reconnaît dans les 2 derniers termes la vraisemblance de la modélisation multinomiale avec effet Groupe (). La maximisation donnerait les mêmes γij si il n’y avait pas les contraintes… Regardons cela:

    • Du côté de la régression Poisson on a pour chaque cellule (i,j) la modélisation μ+αi+γij avec comme contrainte par exemple α1=0,β1=0,γ11=γ12=γ21=γ22=0 Pour passer sur l’échelle des probabilités on utilise toujours l’exponentielle et on divise par la somme sur chaque ligne i (les probabilités doivent sommer à 1 pour chaque ligne) πij=exp(μ+αi+γij)jexp(μ+αi+γij)
    • Du côté de la régression Multinomiale on a pour chaque cellule (i,j) directement γij et pour passer sur l’échelle des probabilités on utilise toujours l’exponentielle et on divise par la somme sur chaque ligne i (les probabilités doivent sommer à 1 pour chaque ligne) πij=exp(γij)jexp(γij)

    Le même calcul que ci-dessus peut être conduit avec le modèle sans contrainte avec les mij et on obtient (non demandé) L(n,mij)=i,jexp(mij)+i,jnijmij+cte Pour passer sur l’échelle des probabilités on utilise toujours l’exponentielle et on divise par la somme sur chaque ligne i (les probabilités doivent sommer à 1 pour chaque ligne) πij=exp(mij)jexp(mij)