Académique Documents
Professionnel Documents
Culture Documents
production d’escargots
Packages utilisés
rm(list=ls())
library(knitr) # pour avoir un format table dans les sorties
library(ggplot2) # pour avoir de 'beaux' graphiques
library(emmeans) # pour calculer les moyennes par groupe et faire des comparaisons 2 à 2
library(plyr) # pour produire des résumés
library(car) # pour analyse des sommes de carrés
library(faraway) # pour obtenir des données
Présentation du problème
On souhaite comprendre l’influence de la température et de l’humidité sur l’eau contenue dans les tissus
d’escargots.
data(snail)
head(snail)
##
## 45 75 100
## 20 4 4 4
## 30 4 4 4
# Quelques graphes
ggplot(snail, aes(x = tempF, y = water, colour = humidF)) +
geom_boxplot() + theme_bw()
1
100
90
humidF
water
45
75
80
100
70
20 30
tempF
2
100
90
tempF
water
20
80 30
70
45 75 100
humidF
Modélisation
mod = lm(water~humidF*tempF,data=snail)
summary(mod)
##
## Call:
## lm(formula = water ~ humidF * tempF, data = snail)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.500 -3.375 0.875 3.125 6.500
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 72.500 2.540 28.544 < 2e-16 ***
## humidF75 9.000 3.592 2.506 0.0221 *
## humidF100 24.500 3.592 6.821 2.19e-06 ***
## tempF30 -3.000 3.592 -0.835 0.4146
## humidF75:tempF30 -0.250 5.080 -0.049 0.9613
## humidF100:tempF30 3.750 5.080 0.738 0.4699
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.08 on 18 degrees of freedom
3
## Multiple R-squared: 0.8628, Adjusted R-squared: 0.8247
## F-statistic: 22.65 on 5 and 18 DF, p-value: 3.479e-07
anova(mod)
##
## Call:
## lm(formula = water ~ humidF + tempF, data = snail)
##
## Residuals:
## Min 1Q Median 3Q Max
## -8.792 -2.833 1.625 3.167 7.083
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 71.917 2.010 35.788 < 2e-16 ***
## humidF75 8.875 2.461 3.606 0.00176 **
## humidF100 26.375 2.461 10.717 9.76e-10 ***
## tempF30 -1.833 2.010 -0.912 0.37247
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.922 on 20 degrees of freedom
## Multiple R-squared: 0.8569, Adjusted R-squared: 0.8354
## F-statistic: 39.92 on 3 and 20 DF, p-value: 1.242e-08
anova(mod2)
4
## Response: water
## Df Sum Sq Mean Sq F value Pr(>F)
## humidF 2 2881.75 1440.88 59.4686 3.82e-09 ***
## tempF 1 20.17 20.17 0.8323 0.3725
## Residuals 20 484.58 24.23
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova(mod2)
##
## Call:
## lm(formula = water ~ humidF, data = snail)
##
## Residuals:
## Min 1Q Median 3Q Max
## -7.875 -3.750 1.000 2.625 8.000
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 71.000 1.733 40.961 < 2e-16 ***
## humidF75 8.875 2.451 3.621 0.0016 **
## humidF100 26.375 2.451 10.760 5.3e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.903 on 21 degrees of freedom
## Multiple R-squared: 0.851, Adjusted R-squared: 0.8368
## F-statistic: 59.95 on 2 and 21 DF, p-value: 2.089e-09
emms=emmeans(mod3, pairwise ~ humidF,adjust = "bonf")
emms
## $emmeans
## humidF emmean SE df lower.CL upper.CL
## 45 71.0 1.73 21 66.5 75.5
## 75 79.9 1.73 21 75.4 84.4
## 100 97.4 1.73 21 92.9 101.9
##
## Confidence level used: 0.95
## Conf-level adjustment: bonferroni method for 3 estimates
##
## $contrasts
5
## contrast estimate SE df t.ratio p.value
## 45 - 75 -8.88 2.45 21 -3.621 0.0048
## 45 - 100 -26.38 2.45 21 -10.760 <.0001
## 75 - 100 -17.50 2.45 21 -7.139 <.0001
##
## P value adjustment: bonferroni method for 3 tests
# Graphe
plot(emms, comparisons = TRUE)
100
humidF
75
45
70 80 90 100
emmean
Questions
1. Pourquoi a-t-on utilisé la commande as.factor ?
2. Que pouvez-vous répondre à la question initiale à partir des boxplots représentés plus haut ?
3. Quel modèle statistique est-il adapté pour répondre à la question ? Ecrivez le en précisant bien les
gammes de variation des indices et les hypothèses faites.
4. Interpréter la sortie summary(mod).
5. Que contiennent les sorties anova(mod) et Anova(mod) ? Pourquoi sont-elles identiques en termes de
p-valeurs ?
6. Au vu de ces résultats, pouvez-vous simplifier le modèle ?
7. Interpréter les résultats obtenus pour mod2.
8. Quel est le modèle finalement retenu ? Conclure.