# on lit les données arbres <- read.table("eucalyptus.txt"); #représentation de la hauteur en fonction de la circonférence plot(arbres$circ, arbres$ht) # on commence par une régression linéaire simple mod0 <- lm(ht ~ circ, data=arbres).html summary(mod0) # on trouve R2=0.7683, R2 ajusté = 0.7682 abline(mod0, col="red") # on fait ensuite une régression qui prend en compte la légère concavité qu'on peut deviner dans la relation entre circ et ht mod1 <- lm(ht ~ circ + I(sqrt(circ)), data=arbres).html summary(mod1) #l'analyse suggère que tous les coefficients sont utiles, et que ce modèle est meilleur (R2 ajusté = 0.7919) points(arbres$circ, mod1$fitted.values, col="green") # on peut faire de même les autres régressions, et comparer les R2 ajustés mod2 <- lm(log(ht) ~ circ, data=arbres).html # R2 = 0.7454, moins bien mod3 <- lm(ht ~ circ + I(sqrt(circ)) + I(circ^2), data=arbres).html #R2 ajuste = 0.7937, pas vraiment mieux, circ^2 n'apporte pas grand chose même s'il est significatif # pour finir, on effectue la régression estimant une pente par bloc arbres[,"bloc"]<- as.factor(arbres[,"bloc"]) mod4 <- lm(ht ~ bloc:circ, data=arbres).html summary(mod4) #tous les coefficients ont l'air significatif anova(mod4, mod0) # conclusion sans appel : il faut garder une pente par bloc plot(mod4) # validation du modèle