Un exemple de régression poissoniènne Une expérience sur la variation de la richesse spécifique d'une parcelle en fonction de la biomasse végétale de cette parcelle et du pH des sols donne les résultats ci-dessous. On désire expliquer le nombre d'espèce observé en fonction de la biomasse de la parcelle. pH Biomass Species # mid 0.175762697 29 # mid 1.376778303 30 # mid 2.551042556 21 ... # mid 1.158068376 27
Un exemple de régression poissoniènne > richess = read.table("Exemple_PoissonR.dat",header=T) > attach(richess) > names(richess) [1] "pH" "Biomass" "Species"
Un exemple de régression poissoniènne > biomas = Biomass[pH=="mid"]; espece = Species[pH=="mid"] > plot(biomas,espece,type="n") > points(biomas,espece) > abline(lm(espece~biomas))
Un exemple de régression poissoniènne > mod1 = glm(espece~biomas,poisson) > summary(mod1) Call: glm(formula = espece ~ biomas, family = poisson) Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) 3.43666 0.06862 50.081 < 2e-16 *** biomas -0.13902 0.01940 -7.165 7.79e-13 *** --- Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1 Null deviance: 71.426 on 29 degrees of freedom Residual deviance: 16.538 on 28 degrees of freedom AIC: 163.76
Un exemple de régression poissoniènne > pred_r = predict(mod1,type="response"); pred_r 1 2 3 4 5 6 30.332695 25.668353 21.802191 20.482226 15.715891 14.788133 ……… 23 24 25 26 27 28 25.308858 20.670209 19.092997 16.357246 14.078641 13.324425 29 30 28.083055 26.460797
Un exemple de régression poissoniènne > plot(biomas,espece) > points(biomas,pred_r,pch="+") > abline(lm(espece~biomas))
Un exemple de régression poissoniènne Explication des calculs de déviance Null deviance: 71.426 on 29 degrees of freedom Residual deviance: 16.538 on 28 degrees of freedom AIC: 163.76 > # calcul de la LogVraisemblence du modèle saturé > # à chaque y(i) est associé une valeur calculée > # avec une loi de poisson de paramètre y(i) > # ==> dpois(espece,espece) > LVsat = sum(log(dpois(espece,espece))) [1] -71.61052
Un exemple de régression poissoniènne Explication des calculs de déviance Null deviance: 71.426 on 29 degrees of freedom Residual deviance: 16.538 on 28 degrees of freedom AIC: 163.76 > # calcul de la LogVraisemblence du modèle null > # à chaque y(i) est associé une valeur calculée > # avec une loi de poisson de paramètre mean(y(i)) > # ==> dpois(espece,mean(espece)) > m = mean(espece) [1] 20 > LV0 = sum(log(dpois(espece,m))) [1] -107.3234 > # déviance du modèle null > dev0 = -2*(LVsat-LV0) [1] 71.42582
Un exemple de régression poissoniènne Explication des calculs de déviance Null deviance: 71.426 on 29 degrees of freedom Residual deviance: 16.538 on 28 degrees of freedom AIC: 163.76 > # calcul de la LogVraisemblence du modèle > # à chaque y(i) est associé une valeur calculée > # avec une loi de poisson de paramètre m_pred prédit > # par le modèle de régression ==> dpois(espece,m_pred) > m_pred = predict(mod1,type="response") > LVx = sum(log(dpois(espece,m_pred))) [1] -79.87956 > # déviance du modèle > devx = -2*(LVsat-LVx) [1] 16.53809 > # calcul de l’AIC = 2LVx + 2p > AICx = -2*LVx + 2*2 [1] 163.7591
Un exemple de régression poissoniènne > par(mfcol=c(2,2)) > plot(mod1)
Un exemple de régression poissoniènne