On souhaite analyser les concentrations de mercure (ppm) dans les chaires de poissons carnivores des lacs de l'est de Etats- Unis. On espère trouver une relation statistique en fonction de paramètres de qualité des eaux des lacs considérés. # Alcalinité pH Calcium Chorophylle Mercure Age # # # #... # # Reconstruire le meilleur modèle de régression pour décrire (et prédire) les concentrations de mercure Un exemple de régression multiple
> # lecture des data > merc = read.table("Exemple_MulipleR.dat",header=TRUE) > # attachement des variables du fichier > attach(merc) > names(mercur.pois) [1] "Num" "Alcalinite” "pH" "Calcium" "Chlorophylle" "Mercure" "Age"
Un exemple de régression multiple > # tracer des data > pairs(merc,gap=0,cex.label=1.2)
Un exemple de régression multiple > # le modèle de régression > reg1 = lm(Mercure~Alcalinite+Calcium+pH+Chorophylle+Age) > summary(reg1) lm(formula = Mercure ~ Alcalinite + Calcium + pH + Chlorophylle + Age) Residuals: Min 1Q Median 3Q Max
Un exemple de régression multiple > # le modèle de régression > reg1 = lm(Mercure~Alcalinite+Calcium+pH+Chorophylle+Age) > summary(reg1) Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) *** Alcalinite * Calcium pH Chlorophylle Age Residual standard error: on 47 degrees of freedom Multiple R-Squared: 0.453,Adjusted R-squared: F-statistic: on 5 and 47 DF, p-value: 2.114e-05
Un exemple de régression multiple > # la table d’ANOVA de la régression > anova(reg1) Analysis of Variance Table Response: Mercure Df Sum Sq Mean Sq F value Pr(>F) Alcalinite e-06 *** Calcium pH Chlorophylle Age e e e Residuals Signif. codes: 0 `***' `**' 0.01 `*' 0.05 `.' 0.1
Un exemple de régression multiple > # on peut utiliser ue procédure automatique qui va nous > # permettre de choisir le modele de taille minimale du modèle > # qui expliquera au mieux les data > step(reg1) Start: AIC = Mercure ~ Alcalinite + Calcium + pH + Chlorophylle + Age Df Sum of Sq RSS AIC - Age e pH Chlorophylle Calcium Alcalinite
Un exemple de régression multiple > # on peut utiliser ue procédure automatique qui va nous > # permettre de choisir le modele de taille minimale du modèle > # qui expliquera au mieux les data > step(reg1) Step: AIC = Mercure ~ Alcalinite + Calcium + pH + Chlorophylle Df Sum of Sq RSS AIC - pH Calcium Chlorophylle Alcalinite
Un exemple de régression multiple > # on peut utiliser ue procédure automatique qui va nous > # permettre de choisir le modèle de taille minimale du modèle > # qui expliquera au mieux les data > step(reg1) # voir aussi stepAIC(reg1) Step: AIC = Mercure ~ Alcalinite + Calcium + Chlorophylle Df Sum of Sq RSS AIC Calcium Chlorophylle Alcalinite
Un exemple de régression multiple > # le modèle optimal > reg2 = lm(Mercure~Alcalinite+Calcium+Chorophylle) > summary(reg1) lm(formula = Mercure ~ Alcalinite + Calcium + Chlorophylle) Residuals: Min 1Q Median 3Q Max
Un exemple de régression multiple > # le modèle optimal > reg2 = lm(Mercure~Alcalinite+Calcium+Chorophylle) > summary(reg1) Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) < 2e-16 *** Alcalinite *** Calcium Chlorophylle * Residual standard error: on 49 degrees of freedom Multiple R-Squared: ,Adjusted R-squared: F-statistic: on 3 and 49 DF, p-value: 2.709e-06
Un exemple de régression multiple > # la table d’ANOVA de la régression > anova(reg2) Analysis of Variance Table Response: Mercure Df Sum Sq Mean Sq F value Pr(>F) Alcalinite e-06 *** Calcium Chlorophylle * Residuals Signif. codes: 0 ‘***’ ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Un exemple de régression multiple > # Comparaison des 2 modèles > anova(reg1,reg2) Analysis of Variance Table Model 1: Mercure ~ Alcalinite + Calcium + pH + Chlorophylle + Age Model 2: Mercure ~ Alcalinite + Calcium + Chlorophylle Res.Df RSS Df Sum of Sq F Pr(>F) > # Ces 2 modèles ne sont pas différents. > # On prend le plus simple !
Un exemple de régression multiple > # et les residus !!! > par(mfcol=c(2,2)) > plot(reg2)
Un exemple de régression multiple