150 likes | 271 Views
Un exemple de régression multiple. 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.
E N D
Un exemple de régression multiple 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 #1 5.9 6.1 3.0 0.7 1.23 1 #2 3.5 5.1 1.9 3.2 1.33 0 #3 116. 9.1 44.1 128.3 0.04 0 # ... # ... # ... #52 17.3 5.2 3.0 2.6 0.25 1 #53 71.8 7.9 20.5 8.8 0.27 1 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 -0.42466 -0.19055 -0.08163 0.14430 0.62360
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) 1.0132843 0.2517117 4.026 0.000206 *** Alcalinite -0.0054637 0.0020951 -2.608 0.012177 * Calcium 0.0040874 0.0027243 1.500 0.140211 pH -0.0481113 0.0467279 -1.030 0.308465 Chlorophylle -0.0023270 0.0016403 -1.419 0.162598 Age -0.0001375 0.1043476 -0.001 0.998954 Residual standard error: 0.2653 on 47 degrees of freedom Multiple R-Squared: 0.453, Adjusted R-squared: 0.3948 F-statistic: 7.785 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 1 2.1312 2.1312 30.2784 1.511e-06 *** Calcium 1 0.1730 0.1730 2.4574 0.12368 pH 1 0.2679 0.2679 3.8064 0.05703 . Chlorophylle 1 0.1677 0.1677 2.3824 0.12941 Age 1 1.222e-07 1.222e-07 1.737e-06 0.99895 Residuals 47 3.3081 0.0704 --- Signif. codes: 0 `***' 0.001 `**' 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 = -135.02 Mercure ~ Alcalinite + Calcium + pH + Chlorophylle + Age Df Sum of Sq RSS AIC - Age 1 1.222e-07 3.308 -137.017 - pH 1 0.075 3.383 -135.835 <none> 3.308 -135.017 - Chlorophylle 1 0.142 3.450 -134.795 - Calcium 1 0.158 3.467 -134.538 - Alcalinite 1 0.479 3.787 -129.855
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 = -137.02 Mercure ~ Alcalinite + Calcium + pH + Chlorophylle Df Sum of Sq RSS AIC - pH 1 0.084 3.392 -137.688 <none> 3.308 -137.017 - Calcium 1 0.164 3.472 -136.449 - Chlorophylle 1 0.168 3.476 -136.396 - Alcalinite 1 0.509 3.817 -131.438
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 = -137.69 Mercure ~ Alcalinite + Calcium + Chlorophylle Df Sum of Sq RSS AIC <none> 3.392 -137.688 - Calcium 1 0.186 3.578 -136.864 - Chlorophylle 1 0.352 3.744 -134.461 - Alcalinite 1 0.907 4.299 -127.131
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 -0.38739 -0.18508 -0.07106 0.14511 0.61425
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) 0.744429 0.052408 14.205 < 2e-16 *** Alcalinite -0.006482 0.001791 -3.619 0.000698 *** Calcium 0.004330 0.002644 1.638 0.107909 Chlorophylle -0.003038 0.001348 -2.254 0.028731 * Residual standard error: 0.2631 on 49 degrees of freedom Multiple R-Squared: 0.4391, Adjusted R-squared: 0.4048 F-statistic: 12.79 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 1 2.1312 2.1312 30.7849 1.152e-06 *** Calcium 1 0.1730 0.1730 2.4985 0.12039 Chlorophylle 1 0.3516 0.3516 5.0786 0.02873 * Residuals 49 3.3922 0.0692 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 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) 1 47 3.3081 49 3.3922 -2 -0.0840 0.5969 0.5546 > # 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)