#---Specifier le répertoire de travai
setwd("C:\\Users\\Pounie\\Documents\\Universite_Laval_21-22\\Gestion\\JeuDeDonnees\\Donnees_30mars\\fichiersR_grues\\Analyse_grues")
#---Importer les données
champs<- read.table("C:/Users/Pounie/Documents/Universite_Laval_21-22/Gestion/JeuDeDonnees/Donnees_30mars/fichiersR_grues/Champs.txt", header=TRUE)
Visualisation de la structure des données
#---Superficie ravagée
head(champs)
## Station Champs Annee Traitements Sup_tot Sup_ravage_m2 Sup_ravage_ha
## 1 1 A 1 Temoin 39 350000 35
## 2 1 B 1 Laser.et.chasse 46 220000 22
## 3 1 C 1 Laser.et.chasse 32 150000 15
## 4 2 A 1 Temoin 26 240000 24
## 5 2 B 1 Laser.et.chasse 30 170000 17
## 6 2 C 1 Laser.et.chasse 33 180000 18
summary(champs)
## Station Champs Annee Traitements
## Min. : 1.0 Length:300 Min. : 1.0 Length:300
## 1st Qu.: 3.0 Class :character 1st Qu.: 3.0 Class :character
## Median : 5.5 Mode :character Median : 5.5 Mode :character
## Mean : 5.5 Mean : 5.5
## 3rd Qu.: 8.0 3rd Qu.: 8.0
## Max. :10.0 Max. :10.0
## Sup_tot Sup_ravage_m2 Sup_ravage_ha
## Min. :21.00 Min. : 0 Min. : 0.00
## 1st Qu.:25.00 1st Qu.: 30000 1st Qu.: 3.00
## Median :32.00 Median :100000 Median :10.00
## Mean :31.93 Mean :142933 Mean :14.29
## 3rd Qu.:36.00 3rd Qu.:250000 3rd Qu.:25.00
## Max. :46.00 Max. :390000 Max. :39.00
Présentation des donnéess brutes
#---Ajouter la colonne pour la proportion de champs ravagée
champs$Ratio_Sup_ravage_ha_Sup_tot<-champs$Sup_ravage_ha/champs$Sup_to
#---Renommer colonne proportion de champs ravagée
names(champs)[names(champs) == "Ratio_Sup_ravage_ha_Sup_tot"] <- "prop_ravage"
Création d’une matrice pour la moyenne de la proportion de champs ravagée par traitement en fonction du temps
matrix<-tapply(champs$prop_ravage, list(champs$Traitements, champs$Annee), mean, na.rm=TRUE)
Présentation graphique de la proportion de champs ravagée en fonction du temps (annnées)
#--- Utlisation d'un barplot
barplot(matrix, main="Proportion de champs ravagée par traitement selon l'année",
xlab="Annees",ylab="Propotion de champs ravagée", col=c("green","yellow"),
legend = rownames(matrix), beside=TRUE)
Déterminer si la proportion de superfie ravagée est dépendante du temps
Hypothèses statistiques
HO: Pente Anneee = 0. La pente est nulle. Il n’y a pas de relation linéaire entre les variables X et Y. H1: Pente Annee n’égal pas 0. Il y a une relation linéaire entre les variables X et Y. (seuil = 0.05)
Choix de l’analyse
#---Régression linéaire simple
reg_superficie<-lm(champs$prop_ravage~champs$Annee)
summary(reg_superficie)
##
## Call:
## lm(formula = champs$prop_ravage ~ champs$Annee)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.4334 -0.3140 -0.2171 0.4551 0.6860
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.64379 0.04828 13.335 <2e-16 ***
## champs$Annee -0.03298 0.00778 -4.239 3e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3871 on 298 degrees of freedom
## Multiple R-squared: 0.05686, Adjusted R-squared: 0.0537
## F-statistic: 17.97 on 1 and 298 DF, p-value: 3.003e-05
Conditions application de la regression
#---Vérification des conditions d'application
par(mfrow= c(2,2))
plot(reg_superficie)
Résultat: violation des conditions de normalité et d’homoscedasticité ?
Transformation des données
#---Transformation logarithmique
champs$prop_ravage.sin<-sin(sqrt(champs$prop_ravage))
Régression avec données transformées
#---Régression superficie ravagée transformée
reg.champs.sin<-lm(prop_ravage.sin~Annee,data=champs)
#---Résulats de la régression tansformée
summary(reg.champs.sin)
##
## Call:
## lm(formula = prop_ravage.sin ~ Annee, data = champs)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.46910 -0.17795 -0.07443 0.21222 0.49248
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.74937 0.03053 24.547 < 2e-16 ***
## Annee -0.04004 0.00492 -8.138 1.1e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2448 on 298 degrees of freedom
## Multiple R-squared: 0.1818, Adjusted R-squared: 0.1791
## F-statistic: 66.22 on 1 and 298 DF, p-value: 1.104e-14
#---Visulation graphique des condtitions d'application suite aux transformations
par(mfrow= c(2,2))
plot(reg.champs.sin)
normalite.sup<-champs$prop_ravage
Analyse de la régression
#---Graphique
par(mfrow= c(1,1))
plot(champs$prop_ravage~champs$Annee, pch=20)
#---Droite de régression
abline(reg_superficie)
Analalyse de la régression ###sommaire des résultats
#---Fonction de régression
lm(reg_superficie)
##
## Call:
## lm(formula = reg_superficie)
##
## Coefficients:
## (Intercept) champs$Annee
## 0.64379 -0.03298
#---Sommaire des résultats
summary(reg_superficie)
##
## Call:
## lm(formula = champs$prop_ravage ~ champs$Annee)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.4334 -0.3140 -0.2171 0.4551 0.6860
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.64379 0.04828 13.335 <2e-16 ***
## champs$Annee -0.03298 0.00778 -4.239 3e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3871 on 298 degrees of freedom
## Multiple R-squared: 0.05686, Adjusted R-squared: 0.0537
## F-statistic: 17.97 on 1 and 298 DF, p-value: 3.003e-05
Lorsque le nombre d’années augmente, la superficie de champs ravagée diminue de 0.03 0.05% de la variance “proportion ravagée” est expliquée par la régression
En biologie/écologie, des analyses de régression produisant un R2>0.5 représentent des relations fortes R2 = 0.05 = relation faible
traitement<-champs[champs$Traitements=="Laser.et.chasse",]
#--- Ajout colonne proportion de ravages
names(traitement)[names(champs) == "Ratio_Sup_ravage_ha_Sup_tot"] <- "prop_ravage"
#---Régression des traitements Laser et Chasse en fonction du temps
reg_traitement<-lm(traitement$prop_ravage~traitement$Annee)
#---Graphique des traitements laser et chasse en fonction du temps
plot(traitement$prop_ravage~traitement$Annee,pch=20)
#---Réé=sultats de la régression des traitements en fonction du temps
summary(reg_traitement)
##
## Call:
## lm(formula = traitement$prop_ravage ~ traitement$Annee)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.179410 -0.049381 0.000076 0.044364 0.205606
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.485387 0.011380 42.65 <2e-16 ***
## traitement$Annee -0.052105 0.001834 -28.41 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.0745 on 198 degrees of freedom
## Multiple R-squared: 0.803, Adjusted R-squared: 0.802
## F-statistic: 807.1 on 1 and 198 DF, p-value: < 2.2e-16
Vérificationb des conditions d’application
par(mfrow=c(2,2))
plot(reg_traitement)
#---Specifier le répertoire de travai
setwd("C:\\Users\\Pounie\\Documents\\Universite_Laval_21-22\\Gestion\\JeuDeDonnees\\Donnees_30mars\\fichiersR_grues\\Analyse_grues")
#---Importer les données
grues<-read.table("C:/Users/Pounie/Documents/Universite_Laval_21-22/Gestion/JeuDeDonnees/Donnees_30mars/fichiersR_grues/denombrement_grues.txt",
header=TRUE)
Régression linéaire simple
#---Importer les données et créer un objet
grues<-read.table("C:/Users/Pounie/Documents/Universite_Laval_21-22/Gestion/JeuDeDonnees/Donnees_30mars/fichiersR_grues/denombrement_grues.txt",
header=TRUE)
#--- Régression du nombre de grues en fonction des années
lm(grues$Nombre_individus~grues$Annee)
##
## Call:
## lm(formula = grues$Nombre_individus ~ grues$Annee)
##
## Coefficients:
## (Intercept) grues$Annee
## -365.1 113.4
reg_grues<-lm(grues$Nombre_individus~grues$Annee)
Vérification des conditions d’application
#---Organisation des graphiques
par(mfrow= c(2,2))
#---Graphiques
plot(reg_grues)
Transformations
#---Transformation log 10
grues$Nombre_individus.log<-log1p(grues$Nombre_individus)
Régression avec données transformées
#---Régression
reg.grues.log<-lm(Nombre_individus.log~Annee,data=grues)
#---Résulats de la régression tansformée
summary(reg.grues.log)
##
## Call:
## lm(formula = Nombre_individus.log ~ Annee, data = grues)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.18429 -0.50730 -0.06138 0.58657 1.61939
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.20006 0.17113 -1.169 0.245
## Annee 0.69659 0.02758 25.257 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7922 on 98 degrees of freedom
## Multiple R-squared: 0.8668, Adjusted R-squared: 0.8655
## F-statistic: 637.9 on 1 and 98 DF, p-value: < 2.2e-16
#---Visulation graphique des condtitions d'application
par(mfrow= c(2,2))
plot(reg.grues.log)
Graphique du nombre de grues en fonction du temps (années)
#---Organisation des graphiques
par(mfrow= c(1,1))
#---Transformation log10
grues$Nombre_individus.log<-log1p(grues$Nombre_individus)
#---Régresion
reg.grues.log<-lm(Nombre_individus.log~Annee,data=grues)
#---Graphique du nombre de grues en fonction du temps
plot(grues$Nombre_individus.log~grues$Annee,
pch=20, ylab="Nombre de grues du Canada",
xlab="Temps écoulé (années)",
yaxt="n", main="Nombre de grues du Canada en fonction du temps (années)",cex.main=.75)
#---Ajustement des axes
axis(1,at= 1:10)
axis(side = 2,
## Rotate the labels.
las = 2,
## Adjust the label position.
mgp = c(3, 0.75, 0))
#---Ajout de la droite de régression
abline(reg.grues.log, col="red")
#---Sommaire des résultats de la régression
summary(reg_grues)
##
## Call:
## lm(formula = grues$Nombre_individus ~ grues$Annee)
##
## Residuals:
## Min 1Q Median 3Q Max
## -537.6 -251.1 -81.0 140.3 3612.0
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -365.15 108.78 -3.357 0.00112 **
## grues$Annee 113.41 17.53 6.469 3.89e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 503.5 on 98 degrees of freedom
## Multiple R-squared: 0.2993, Adjusted R-squared: 0.2921
## F-statistic: 41.85 on 1 and 98 DF, p-value: 3.888e-09