Vous êtes sur la page 1sur 6

TD 4 : Influence de la température et de l’humidité sur la

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)

## water temp humid


## 1 76 20 45
## 2 64 20 45
## 3 79 20 45
## 4 71 20 45
## 5 72 20 75
## 6 82 20 75
str(snail)

## 'data.frame': 24 obs. of 3 variables:


## $ water: int 76 64 79 71 72 82 86 86 100 96 ...
## $ temp : int 20 20 20 20 20 20 20 20 20 20 ...
## $ humid: int 45 45 45 45 75 75 75 75 100 100 ...
snail$tempF=as.factor(snail$temp)
snail$humidF=as.factor(snail$humid)
table(snail$tempF,snail$humidF)

##
## 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

ggplot(snail, aes(x = humidF, y = water, fill = tempF)) +


geom_boxplot() + theme_bw()

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)

## Analysis of Variance Table


##
## Response: water
## Df Sum Sq Mean Sq F value Pr(>F)
## humidF 2 2881.75 1440.88 55.8358 1.914e-08 ***
## tempF 1 20.17 20.17 0.7815 0.3883
## humidF:tempF 2 20.08 10.04 0.3891 0.6832
## Residuals 18 464.50 25.81
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova(mod)

## Anova Table (Type II tests)


##
## Response: water
## Sum Sq Df F value Pr(>F)
## humidF 2881.75 2 55.8358 1.914e-08 ***
## tempF 20.17 1 0.7815 0.3883
## humidF:tempF 20.08 2 0.3891 0.6832
## Residuals 464.50 18
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
mod2 = lm(water~humidF+tempF,data=snail)
summary(mod2)

##
## 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)

## Analysis of Variance Table


##

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)

## Anova Table (Type II tests)


##
## Response: water
## Sum Sq Df F value Pr(>F)
## humidF 2881.75 2 59.4686 3.82e-09 ***
## tempF 20.17 1 0.8323 0.3725
## Residuals 484.58 20
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
mod3 = lm(water~humidF,data=snail)
summary(mod3)

##
## 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.

Vous aimerez peut-être aussi