> library(tidyverse)
> data <- [Link]("[Link]", fileEncoding = "UTF-8-BOM")
> names(data) <- gsub("-", "_", names(data)) # Renommer DIAM-M3 -> DIAM.M3
> str(data)
'[Link]': 707 obs. of 14 variables:
$ Clones1: chr "PK1" "PK1" "PK1" "PK1" ...
$ Blocs : int 1 1 1 1 1 1 1 2 2 2 ...
$ Clones : int 1 1 1 1 1 1 1 11 11 11 ...
$ Ht : num 11.2 12.1 13.6 13.1 12.8 12.2 9.8 11.8 12.3 10.8 ...
$ BD : num 37.3 35.2 37.8 41.7 38.2 39.8 33.5 34.2 34.2 35 ...
$ DBH : num 35.2 35 36.6 39.4 33.7 36.8 32.5 34.1 33.1 34.4 ...
$ DIAM.M3: num 34.5 34.3 28.1 38.2 28.3 34.3 30.1 28.6 28.4 24.6 ...
$ BTH : num 7.48 7.5 8.72 5.5 6.75 ...
$ SSD : num 1.73 1.73 1.73 1.73 2 ...
$ BA : int 170 160 140 160 115 165 160 150 150 85 ...
$ CB : num 4.81 4.27 4.46 5.4 3.87 ...
$ CH : num 8.8 10.2 11.3 10.6 10.1 9.9 7.3 8.3 10 8.4 ...
$ BNN : num 2.4 2.6 3.4 2.2 3.2 3.2 3 2.4 1.8 2 ...
$ Vol. : num 0.558 0.593 0.723 0.809 0.579 ...
Nbr. of observations
Nbr. of missing values
Sum of weights
Minimum
Maximum
Freq. of minimum
Freq. of maximum
Range
1st Quartile
Median
3rd Quartile
Sum
Mean
Variance (n)
Variance (n-1)
Standard deviation (n)
Standard deviation (n-1)
Variation coefficient (n)
Variation coefficient (n-1)
Skewness (Pearson)
Skewness (Fisher)
Skewness (Bowley)
Kurtosis (Pearson)
Kurtosis (Fisher)
Standard error of the mean
Lower bound on mean (95%)
Upper bound on mean (95%)
Standard error of the variance
Lower bound on variance (95%)
Upper bound on variance (95%)
Standard error(Skewness (Fisher))
Standard error(Kurtosis (Fisher))
Mean absolute deviation
Median absolute deviation
Geometric mean
Geometric standard deviation
Harmonic mean
DIAM.M
Ht BD DBH 3 BTH SSD BA CB CH BNN Vol.
############################
setwd("D:/BUREAU/Unikin2024/Analyse des donnees ecologiques/Data")
# Charger les packages nécessaires
[Link]("tidyverse")
[Link]("psych")
[Link]("moments")
[Link]("ggpubr")
library(ggpubr)
library(tidyverse)
library(moments) # Pour skewness et kurtosis
library(psych) # Pour [Link] et [Link]
# 1. Charger les données
data <- [Link]("[Link]", fileEncoding = "UTF-8-BOM")
# 2. Nettoyer les noms de colonnes
names(data) <- gsub("-", ".", names(data))
# 3. Définir les variables et facteurs
variables <- c('Ht', 'BD', 'DBH', 'DIAM.M3', 'BTH', 'SSD', 'BA', 'CB', 'CH', 'BNN', 'Vol.')
factors <- c('Clones1', 'Blocs')
# 4. Créer une fonction de calcul des statistiques
calculate_stats <- function(x) {
x <- [Link](x)
n <- length(x)
list(
`Nbr. of observations` = n,
`Nbr. of missing values` = sum([Link](x)),
`Sum of weights` = n,
Minimum = min(x),
Maximum = max(x),
`Freq. of minimum` = sum(x == min(x)),
`Freq. of maximum` = sum(x == max(x)),
Range = max(x) - min(x),
`1st Quartile` = quantile(x, 0.25),
Median = median(x),
`3rd Quartile` = quantile(x, 0.75),
Sum = sum(x),
Mean = mean(x),
`Variance (n)` = var(x) * (n-1)/n,
`Variance (n-1)` = var(x),
`Standard deviation (n)` = sqrt(var(x) * (n-1)/n),
`Standard deviation (n-1)` = sd(x),
`Variation coefficient (n)` = sqrt(var(x) * (n-1)/n)/mean(x),
`Variation coefficient (n-1)` = sd(x)/mean(x),
`Skewness (Pearson)` = (mean(x) - median(x))/sd(x),
`Skewness (Fisher)` = skewness(x),
`Skewness (Bowley)` = (quantile(x, 0.75) + quantile(x, 0.25) - 2*median(x))/(quantile(x,
0.75) - quantile(x, 0.25)),
`Kurtosis (Fisher)` = kurtosis(x),
`Standard error of the mean` = sd(x)/sqrt(n),
`Lower bound on mean (95%)` = mean(x) - qt(0.975, n-1)*sd(x)/sqrt(n),
`Upper bound on mean (95%)` = mean(x) + qt(0.975, n-1)*sd(x)/sqrt(n),
`Standard error of the variance` = var(x)*sqrt(2/(n-1)),
`Lower bound on variance (95%)` = (n-1)*var(x)/qchisq(0.975, n-1),
`Upper bound on variance (95%)` = (n-1)*var(x)/qchisq(0.025, n-1),
`Mean absolute deviation` = mean(abs(x - mean(x))),
`Median absolute deviation` = median(abs(x - median(x))),
`Geometric mean` = [Link](x),
`Geometric standard deviation` = exp(sd(log(x))),
`Harmonic mean` = [Link](x)
)
}
# 5. Calculer les statistiques globales
global_stats <- data %>%
select(all_of(variables)) %>%
map_df(~[Link](t(calculate_stats(.x))), .id = "Variable")
# 6. Calculer les statistiques par groupe
group_stats <- data %>%
group_by(across(all_of(factors))) %>%
group_map(~{
map_df(variables, function(var) {
stats <- calculate_stats(.x[[var]])
[Link](stats) %>% mutate(Variable = var)
})
}, .keep = TRUE)
# 7 Afficher les résultats
print(global_stats)
print(group_stats)
# Pour chaque colonne, si elle est une liste, la convertir en chaîne de caractères
global_stats[] <- lapply(global_stats, function(col) {
if ([Link](col)) sapply(col, function(x) paste(x, collapse = ", ")) else col
})
# 8 Exporter ensuite
[Link](global_stats, "global1_stats.csv", [Link] = FALSE)
# 9 Si group_stats est une liste de [Link], les combiner
group_stats_df <- [Link](rbind, group_stats)
# Même conversion si besoin
group_stats_df[] <- lapply(group_stats_df, function(col) {
if ([Link](col)) sapply(col, function(x) paste(x, collapse = ", ")) else col
})
# 10 Pour visualiser vos resultats
data$Blocs <- [Link](data$Blocs)
ggboxplot(data, x = "Clones1", y = "Ht", color = "Blocs",
add = "mean_se",
palette = "jco") +
labs(title = "Distribution de Ht par Clones1 et Blocs",
x = "Clones1", y = "Ht") +
theme_minimal()
ggboxplot(data, x = "Clones1", y = "DBH", color = "Blocs",
add = "mean_se",
palette = "jco") +
labs(title = "Distribution de DBH par Clones1 et Blocs",
x = "Clones1", y = "DBH") +
theme_minimal()
#11 Pour generer les graphiques pour chaque variable sumultanement.....
# Convertir Blocs en facteur pour que la couleur soit discrète
data$Blocs <- [Link](data$Blocs)
variables <- c("Ht", "DBH", "DIAM.M3", "BTH", "SSD", "BA", "CB", "CH", "BNN", "Vol.")
for (variable in variables) {
p <- ggboxplot(data, x = "Clones1", y = variable, color = "Blocs",
add = "mean_se",
palette = "jco") +
labs(title = paste("Distribution de", variable, "par Clones1 et Blocs"),
x = "Clones1", y = variable) +
theme_minimal()
print(p)
}
pairs(data %>% select(all_of(variables)),
main = "Matrice de scatterplots des variables quantitatives",
pch = 10, col = "black")
library(corrplot)
cor_matrix <- cor(data %>% select(all_of(variables)), use = "[Link]")
corrplot(cor_matrix, method = "circle", type = "upper", [Link] = "black",
[Link] = "black", [Link] = 45)
library(gridExtra)
plots <- lapply(variables, function(var) {
ggplot(data, aes_string(x = var)) +
geom_histogram(bins = 30, fill = "skyblue", color = "black") +
geom_density(color = "red", size = 1) +
labs(title = paste("Histogramme et densité de", var)) +
theme_minimal()
})
[Link]([Link], c(plots, ncol = 2))
###########################################################################
Réaliser une régression linéaire bivariée en R
###################################################
Multiple Linear Regression
######################
Partial Linear Regression
# 1. Charger les données
data <- [Link]("[Link]", fileEncoding = "UTF-8-BOM")
# 2. Nettoyer les noms de colonnes (remplacer "-" par ".")
names(data) <- gsub("-", ".", names(data))
# 3. Définir les variables quantitatives (exclure Clones1 et Blocs)
variables <- c('Ht', 'BD', 'DBH', 'DIAM.M3', 'BTH', 'SSD', 'BA', 'CB', 'CH', 'BNN')
# 4. Boucle pour réaliser une régression linéaire bivariée pour chaque variable explicative
for (var in variables) {
formule <- [Link](paste("Vol. ~", var))
modele <- lm(formule, data = data)
cat("Régression linéaire : Vol. en fonction de", var, "\n")
print(summary(modele))
cat("\n---------------------------------------\n\n")
}
library(ggplot2)
library(ggpubr)
# Variables explicatives
variables <- c('Ht', 'BD', 'DBH', 'DIAM.M3', 'BTH', 'SSD', 'BA', 'CB', 'CH', 'BNN')
# Convertir les variables facteurs si besoin (ex. Clones1, Blocs)
# data$Clones1 <- [Link](data$Clones1)
# data$Blocs <- [Link](data$Blocs)
for (var in variables) {
p <- ggplot(data, aes_string(x = var, y = "Vol.")) +
geom_point(alpha = 0.6) +
geom_smooth(method = "lm", se = TRUE, color = "blue", formula = y ~ x) +
stat_regline_equation(
aes(label = paste(..[Link].., ..[Link].., sep = "~~~")),
formula = y ~ x,
[Link] = "left", [Link] = 0.9,
size = 5, color = "black"
)+
stat_cor(
aes(label = ..[Link]..),
method = "pearson",
[Link] = "left", [Link] = 0.8,
size = 5, color = "black"
)+
labs(
title = paste("Régression linéaire de Vol. en fonction de", var),
x = var,
y = "Vol."
)+
theme_minimal()
print(p)
}
#Pour générer les graphiques de régression linéaire entre Vol. (Y) et chaque variable
explicative (X) avec l’équation de la droite de régression
#et le coefficient de détermination R carre affichés sur chaque graphique, vous pouvez
utiliser la fonction stat_regline_equation() et stat_cor() du package ggpubr.
library(ggplot2)
library(ggpubr)
variables <- c('Ht', 'BD', 'DBH', 'DIAM.M3', 'BTH', 'SSD', 'BA', 'CB', 'CH', 'BNN')
for (var in variables) {
p <- ggplot(data, aes_string(x = var, y = "Vol.")) +
geom_point(alpha = 0.6) +
geom_smooth(method = "lm", se = TRUE, color = "blue", formula = y ~ x) +
stat_regline_equation(
aes(label = paste(after_stat([Link]), after_stat([Link]), sep = "~~~")),
formula = y ~ x,
[Link] = "left", # position horizontale : gauche
[Link] = "top", # position verticale : haut
size = 5,
color = "black",
hjust = 0 # alignement à gauche du texte
)+
labs(
title = paste("Régression linéaire de Vol. en fonction de", var),
x = var,
y = "Vol."
)+
theme_minimal()
print(p)
}
###########################################################################
#Pour réaliser une régression linéaire multiple en R, en utilisant la base data avec Vol.
comme variable dépendante et les autres variables quantitatives sont les prédicteurs.
# 1. Charger les données
data <- [Link]("[Link]", fileEncoding = "UTF-8-BOM")
# 2. Nettoyer les noms de colonnes (remplacer "-" par ".")
names(data) <- gsub("-", ".", names(data))
# 3. Définir les variables quantitatives (exclure Clones1 et Blocs)
variables <- c('Ht', 'BD', 'DBH', 'DIAM.M3', 'BTH', 'SSD', 'BA', 'CB', 'CH', 'BNN')
# 4. Construire la formule de régression multiple
formule <- [Link](paste("Vol. ~", paste(variables, collapse = " + ")))
# 5. Ajuster le modèle de régression linéaire multiple
modele <- lm(formule, data = data)
# 6. Afficher le résumé du modèle
summary(modele)
library(ggplot2)
# 1. Charger les données
data <- [Link]("[Link]", fileEncoding = "UTF-8-BOM")
names(data) <- gsub("-", ".", names(data))
variables <- c('Ht', 'BD', 'DBH', 'DIAM.M3', 'BTH', 'SSD', 'BA', 'CB', 'CH', 'BNN')
formule <- [Link](paste("Vol. ~", paste(variables, collapse = " + ")))
modele <- lm(formule, data = data)
summary_modele <- summary(modele)
# Construire l'équation sous forme de texte
coeffs <- coef(modele)
# Formater les coefficients avec 3 décimales
coeffs_fmt <- format(round(coeffs, 3), nsmall = 3)
# Construire l'équation en texte
eq_text <- paste0("Vol. = ", coeffs_fmt[1])
for(i in 2:length(coeffs_fmt)) {
signe <- ifelse(substr(coeffs_fmt[i], 1, 1) == "-", " - ", " + ")
eq_text <- paste0(eq_text, signe, abs([Link](coeffs_fmt[i])), " * ", names(coeffs)[i])
}
# Ajouter R2 formaté
r2_text <- paste0("R² = ", round(summary_modele$[Link], 3))
# Créer un graphique simple avec Vol. en fonction d'une variable explicative (exemple Ht)
# Pour visualiser la relation principale, on peut choisir un prédicteur (ex: Ht)
ggplot(data, aes(x = Ht, y = Vol.)) +
geom_point(alpha = 0.6) +
geom_smooth(method = "lm", formula = y ~ x, se = TRUE, color = "blue") +
annotate("text", x = Inf, y = Inf, label = eq_text, hjust = 1.1, vjust = 2, size = 4, color =
"black") +
annotate("text", x = Inf, y = Inf, label = r2_text, hjust = 1.1, vjust = 3.5, size = 4, color =
"black") +
labs(title = "Régression linéaire multiple : Vol. en fonction des variables",
x = "Ht", y = "Vol.") +
theme_minimal()
library(ggplot2)
# 1. Charger les données
data <- [Link]("[Link]", fileEncoding = "UTF-8-BOM")
names(data) <- gsub("-", ".", names(data))
# 2. Variables explicatives
variables <- c('Ht', 'BD', 'DBH', 'DIAM.M3', 'BTH', 'SSD', 'BA', 'CB', 'CH', 'BNN')
# 3. Ajuster le modèle multiple complet
formule <- [Link](paste("Vol. ~", paste(variables, collapse = " + ")))
modele <- lm(formule, data = data)
summary_modele <- summary(modele)
# 4. Construire l'équation complète du modèle multiple
coeffs <- coef(modele)
coeffs_fmt <- format(round(coeffs, 3), nsmall = 3)
eq_text <- paste0("Vol. = ", coeffs_fmt[1])
for(i in 2:length(coeffs_fmt)) {
signe <- ifelse(substr(coeffs_fmt[i], 1, 1) == "-", " - ", " + ")
eq_text <- paste0(eq_text, signe, abs([Link](coeffs_fmt[i])), " * ", names(coeffs)[i])
}
r2_text <- paste0("R² = ", round(summary_modele$[Link], 3))
# 5. Boucle pour tracer la relation Vol. ~ chaque variable X avec annotation de l’équation
multiple
for (var in variables) {
p <- ggplot(data, aes_string(x = var, y = "Vol.")) +
geom_point(alpha = 0.6) +
geom_smooth(method = "lm", se = TRUE, color = "blue", formula = y ~ x) +
annotate("text", x = Inf, y = Inf, label = eq_text, hjust = 1.1, vjust = 2, size = 4, color =
"black") +
annotate("text", x = Inf, y = Inf, label = r2_text, hjust = 1.1, vjust = 3.5, size = 4, color =
"black") +
labs(title = paste("Régression multiple : Vol. vs", var),
x = var, y = "Vol.") +
theme_minimal()
print(p)
}
##################################
# Installer et charger le package car si besoin
if (!require(car)) [Link]("car")
library(car)
# Charger les données
data <- [Link]("[Link]", fileEncoding = "UTF-8-BOM")
names(data) <- gsub("-", ".", names(data))
# Définir variables quantitatives
variables <- c('Ht', 'BD', 'DBH', 'DIAM.M3', 'BTH', 'SSD', 'BA', 'CB', 'CH', 'BNN')
# Construire la formule de régression multiple
formule <- [Link](paste("Vol. ~", paste(variables, collapse = " + ")))
# Ajuster le modèle linéaire multiple
modele <- lm(formule, data = data)
# Afficher les partial regression plots (added variable plots)
avPlots(modele, ask = FALSE)
######################################
# Installer et charger mgcv si nécessaire
if (!require(mgcv)) [Link]("mgcv")
library(mgcv)
# Charger les données
data <- [Link]("[Link]", fileEncoding = "UTF-8-BOM")
names(data) <- gsub("-", ".", names(data))
# Variables quantitatives explicatives
variables <- c('Ht', 'BD', 'DBH', 'DIAM.M3', 'BTH', 'SSD', 'BA', 'CB', 'CH', 'BNN')
# Construire la formule GAM avec fonctions spline lisses pour chaque variable
# Exemple : Vol. ~ s(Ht) + s(BD) + ...
formule_gam <- [Link](
paste("Vol. ~", paste(paste0("s(", variables, ")"), collapse = " + "))
)
# Ajuster le modèle additif généralisé
gam_modele <- gam(formule_gam, data = data, method = "REML")
# Résumé du modèle
summary(gam_modele)
# Tracer les effets lisses
plot(gam_modele, pages = 1, shade = TRUE, seWithMean = TRUE)
library(mgcv)
data <- [Link]("[Link]", fileEncoding = "UTF-8-BOM")
names(data) <- gsub("-", ".", names(data))
variables <- c('Ht', 'BD', 'DBH', 'DIAM.M3', 'BTH', 'SSD', 'BA', 'CB', 'CH', 'BNN')
# Construire la formule GAM en fixant k = 5 pour chaque terme lisse
formule_gam <- [Link](
paste("Vol. ~", paste(paste0("s(", variables, ", k=5)"), collapse = " + "))
)
formule_gam <- [Link](
paste("Vol. ~",
paste(c(
"s(Ht, k=5)",
"s(BD, k=4)",
"s(DBH, k=5)",
"s(DIAM.M3, k=3)",
"s(BTH, k=4)",
"s(SSD, k=3)",
"s(BA, k=5)",
"s(CB, k=4)",
"s(CH, k=3)",
"s(BNN, k=4)"
), collapse = " + "))
)
# Ajuster le modèle GAM avec méthode REML
gam_modele <- gam(formule_gam, data = data, method = "REML")
# Résumé du modèle
summary(gam_modele)
# Tracer les effets lisses
plot(gam_modele, pages = 1, shade = TRUE, seWithMean = TRUE)
> data$clones <- [Link](data$Clones1)
> model <- lm(Vol. ~ Ht + BD + DBH + DIAM.M3 + BTH + SSD + BA + CB + CH + BNN + Clones1,
+ data = data)
> summary(model)
Call:
lm(formula = Vol. ~ Ht + BD + DBH + DIAM.M3 + BTH + SSD + BA +
CB + CH + BNN + Clones1, data = data)
Residuals:
Min 1Q Median 3Q Max
-0.110757 -0.011112 -0.001991 0.008315 0.116243
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -9.600e-01 2.364e-02 -40.601 < 2e-16 ***
Ht 4.230e-02 2.013e-03 21.015 < 2e-16 ***
BD 2.883e-04 5.188e-04 0.556 0.57865
DBH 2.969e-02 7.756e-04 38.284 < 2e-16 ***
DIAM.M3 -1.010e-04 5.893e-04 -0.171 0.86403
BTH -5.571e-04 7.035e-04 -0.792 0.42874
SSD 2.654e-04 6.778e-03 0.039 0.96878
BA 2.856e-05 4.819e-05 0.593 0.55361
CB -4.030e-03 1.918e-03 -2.101 0.03609 *
CH 2.350e-03 1.943e-03 1.210 0.22696
BNN -9.926e-04 1.483e-03 -0.669 0.50353
Clones1PK10 -3.322e-03 1.461e-02 -0.227 0.82020
Clones1PK100 -1.227e-02 1.479e-02 -0.830 0.40705
Clones1PK101 1.797e-02 1.297e-02 1.386 0.16636
Clones1PK102 -7.314e-03 2.110e-02 -0.347 0.72899
Clones1PK103 2.598e-02 2.141e-02 1.213 0.22547
Clones1PK104 8.004e-02 1.374e-02 5.827 9.29e-09 ***
Clones1PK105 5.053e-02 1.340e-02 3.770 0.00018 ***
Clones1PK106 2.798e-02 1.478e-02 1.893 0.05880 .
Clones1PK107 -4.463e-03 1.542e-02 -0.289 0.77239
Clones1PK108 -6.071e-03 1.373e-02 -0.442 0.65856
Clones1PK109 3.845e-03 1.338e-02 0.287 0.77399
Clones1PK11 -9.627e-03 1.254e-02 -0.767 0.44314
Clones1PK110 9.870e-03 1.384e-02 0.713 0.47597
Clones1PK12 6.046e-03 1.326e-02 0.456 0.64852
Clones1PK13 -1.080e-02 1.463e-02 -0.738 0.46070
Clones1PK14 1.192e-02 1.299e-02 0.918 0.35900
Clones1PK15 -7.845e-03 1.461e-02 -0.537 0.59152
Clones1PK16 -7.172e-03 1.324e-02 -0.542 0.58809
Clones1PK17 -4.352e-03 1.356e-02 -0.321 0.74836
Clones1PK18 -3.451e-04 1.406e-02 -0.025 0.98044
Clones1PK19 -1.158e-02 1.558e-02 -0.743 0.45762
Clones1PK2 -5.287e-03 1.359e-02 -0.389 0.69730
Clones1PK20 1.805e-02 1.552e-02 1.163 0.24529
Clones1PK21 1.040e-02 1.552e-02 0.670 0.50318
Clones1PK22 -4.811e-03 1.329e-02 -0.362 0.71755
Clones1PK23 -1.995e-02 1.370e-02 -1.457 0.14575
Clones1PK24 -1.123e-02 1.823e-02 -0.616 0.53800
Clones1PK25 -7.468e-03 1.657e-02 -0.451 0.65242
Clones1PK26 5.007e-03 1.413e-02 0.354 0.72318
Clones1PK27 -6.294e-03 1.821e-02 -0.346 0.72969
Clones1PK28 1.102e-02 1.545e-02 0.714 0.47577
Clones1PK29 -1.159e-02 1.402e-02 -0.826 0.40903
Clones1PK3 -1.179e-02 1.406e-02 -0.839 0.40185
Clones1PK30 -1.347e-02 1.547e-02 -0.871 0.38427
Clones1PK31 7.228e-03 1.643e-02 0.440 0.66019
Clones1PK32 2.004e-02 1.823e-02 1.099 0.27208
Clones1PK33 1.353e-02 1.827e-02 0.740 0.45935
Clones1PK34 -5.501e-03 1.403e-02 -0.392 0.69512
Clones1PK35 -1.536e-02 1.556e-02 -0.987 0.32392
Clones1PK36 7.543e-03 1.539e-02 0.490 0.62430
Clones1PK37 1.397e-02 1.538e-02 0.908 0.36424
Clones1PK38 1.792e-03 1.664e-02 0.108 0.91425
Clones1PK39 6.838e-04 1.815e-02 0.038 0.96996
Clones1PK4 -8.907e-03 1.544e-02 -0.577 0.56422
Clones1PK40 -5.046e-03 1.466e-02 -0.344 0.73081
Clones1PK41 7.642e-03 1.381e-02 0.553 0.58033
Clones1PK42 -1.227e-03 1.543e-02 -0.079 0.93667
Clones1PK43 8.628e-03 1.415e-02 0.610 0.54235
Clones1PK44 9.598e-03 1.476e-02 0.650 0.51589
Clones1PK45 -5.051e-03 1.474e-02 -0.343 0.73204
Clones1PK46 -5.848e-04 1.470e-02 -0.040 0.96828
Clones1PK47 2.212e-02 1.543e-02 1.433 0.15236
Clones1PK48 -1.256e-02 1.466e-02 -0.856 0.39215
Clones1PK49 -2.672e-03 1.815e-02 -0.147 0.88301
Clones1PK5 -7.824e-03 1.361e-02 -0.575 0.56551
Clones1PK50 1.834e-03 1.545e-02 0.119 0.90553
Clones1PK51 -5.086e-03 1.367e-02 -0.372 0.71005
Clones1PK52 -1.160e-02 1.335e-02 -0.869 0.38525
Clones1PK53 -1.316e-02 1.375e-02 -0.957 0.33905
Clones1PK54 -1.100e-02 1.369e-02 -0.804 0.42187
Clones1PK55 -9.965e-03 1.549e-02 -0.643 0.52017
Clones1PK56 -2.820e-03 1.303e-02 -0.217 0.82865
Clones1PK57 -1.720e-02 1.562e-02 -1.101 0.27125
Clones1PK58 -1.008e-02 1.302e-02 -0.774 0.43921
Clones1PK59 4.247e-02 1.559e-02 2.724 0.00664 **
Clones1PK6 -1.255e-02 1.412e-02 -0.889 0.37428
Clones1PK60 -1.027e-02 1.307e-02 -0.786 0.43223
Clones1PK61 1.466e-02 1.543e-02 0.950 0.34251
Clones1PK62 -1.322e-02 1.652e-02 -0.800 0.42379
Clones1PK63 1.288e-03 1.663e-02 0.077 0.93831
Clones1PK64 -6.137e-03 1.508e-02 -0.407 0.68411
Clones1PK65 -1.142e-02 1.329e-02 -0.859 0.39057
Clones1PK66 -6.111e-03 1.660e-02 -0.368 0.71289
Clones1PK67 1.693e-03 1.329e-02 0.127 0.89863
Clones1PK68 -2.120e-02 1.555e-02 -1.363 0.17325
Clones1PK69 -2.164e-02 1.551e-02 -1.395 0.16343
Clones1PK7 -4.882e-03 1.360e-02 -0.359 0.71971
Clones1PK70 -1.467e-02 1.645e-02 -0.892 0.37285
Clones1PK71 3.363e-02 1.393e-02 2.414 0.01608 *
Clones1PK72 -4.400e-03 1.544e-02 -0.285 0.77583
Clones1PK73 1.769e-03 1.307e-02 0.135 0.89240
Clones1PK74 6.036e-02 1.484e-02 4.068 5.40e-05 ***
Clones1PK75 8.957e-03 1.307e-02 0.685 0.49346
Clones1PK76 6.808e-03 1.271e-02 0.536 0.59238
Clones1PK77 3.349e-03 1.420e-02 0.236 0.81363
Clones1PK78 -1.022e-02 1.374e-02 -0.744 0.45733
Clones1PK79 2.074e-02 1.663e-02 1.247 0.21295
Clones1PK8 -9.560e-03 1.402e-02 -0.682 0.49554
Clones1PK80 3.447e-03 2.105e-02 0.164 0.86997
Clones1PK81 4.105e-02 1.325e-02 3.098 0.00204 **
Clones1PK82 5.529e-03 1.659e-02 0.333 0.73901
Clones1PK83 4.447e-02 1.491e-02 2.984 0.00297 **
Clones1PK84 2.901e-02 1.667e-02 1.740 0.08247 .
Clones1PK85 2.652e-02 1.425e-02 1.861 0.06319 .
Clones1PK86 -3.280e-03 1.358e-02 -0.242 0.80923
Clones1PK87 4.948e-02 1.509e-02 3.280 0.00110 **
Clones1PK88 -1.091e-02 1.341e-02 -0.814 0.41612
Clones1PK89 -6.180e-03 1.463e-02 -0.422 0.67294
Clones1PK9 -8.839e-04 1.320e-02 -0.067 0.94665
Clones1PK90 2.758e-03 1.473e-02 0.187 0.85152
Clones1PK91 1.235e-02 1.825e-02 0.677 0.49883
Clones1PK92 -1.186e-02 1.823e-02 -0.651 0.51560
Clones1PK93 -4.649e-05 1.487e-02 -0.003 0.99751
Clones1PK94 -6.207e-03 1.304e-02 -0.476 0.63429
Clones1PK95 -1.190e-02 1.652e-02 -0.720 0.47175
Clones1PK96 -6.585e-03 1.368e-02 -0.481 0.63043
Clones1PK97 2.085e-02 1.488e-02 1.402 0.16156
Clones1PK98 -7.705e-04 1.386e-02 -0.056 0.95570
Clones1PK99 -6.749e-03 1.370e-02 -0.493 0.62234
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.02611 on 587 degrees of freedom
Multiple R-squared: 0.9827, Adjusted R-squared: 0.9792
F-statistic: 279.9 on 119 and 587 DF, p-value: < 2.2e-16
> par(mfrow = c(2,2))
> plot(model)
> summary(data$Vol.)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.1114 0.3947 0.5136 0.5201 0.6236 1.2559
# Charger les packages nécessaires
library(tidyverse)
# Importer les données (adapter le nom du fichier si besoin)
data <- [Link]("[Link]", fileEncoding = "UTF-8-BOM")
# Nettoyer les noms de colonnes (remplacer '-' par '.')
names(data) <- gsub("-", ".", names(data))
# Convertir Clones1 et Blocs en facteurs
data$Clones1 <- [Link](data$Clones1)
data$Blocs <- [Link](data$Blocs)
# Variables quantitatives à analyser
variables <- c('Ht', 'BD', 'DBH', 'DIAM.M3', 'BTH', 'SSD', 'BA', 'CB', 'CH', 'BNN')
# Liste pour stocker les résultats
anova_results <- list()
# Boucle pour faire une ANOVA pour chaque variable quantitative
for (var in variables) {
formula <- [Link](paste(var, "~ Clones1 + Blocs"))
# Ajuster le modèle ANOVA
model <- aov(formula, data = data)
# Stocker le résumé de l'ANOVA
anova_results[[var]] <- summary(model)
# Afficher le résultat
cat("\nANOVA pour la variable :", var, "\n")
print(summary(model))
ANOVA pour la variable : Ht
Df Sum Sq Mean Sq F value Pr(>F)
Clones1 109 603.2 5.534 2.749 8.08e-15 ***
Residuals 597 1201.8 2.013
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
ANOVA pour la variable : BD
Df Sum Sq Mean Sq F value Pr(>F)
Clones1 109 7314 67.10 3.911 <2e-16 ***
Residuals 597 10243 17.16
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
ANOVA pour la variable : DBH
Df Sum Sq Mean Sq F value Pr(>F)
Clones1 109 6852 62.86 4.313 <2e-16 ***
Residuals 597 8703 14.58
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
ANOVA pour la variable : DIAM.M3
Df Sum Sq Mean Sq F value Pr(>F)
Clones1 109 6229 57.15 3.696 <2e-16 ***
Residuals 597 9230 15.46
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
ANOVA pour la variable : BTH
Df Sum Sq Mean Sq F value Pr(>F)
Clones1 109 487.4 4.472 1.633 0.000193 ***
Residuals 597 1634.6 2.738
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
ANOVA pour la variable : SSD
Df Sum Sq Mean Sq F value Pr(>F)
Clones1 109 4.108 0.03769 0.976 0.553
Residuals 597 23.065 0.03863
ANOVA pour la variable : BA
Df Sum Sq Mean Sq F value Pr(>F)
Clones1 109 115647 1061.0 2.098 2.07e-08 ***
Residuals 597 301968 505.8
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
ANOVA pour la variable : CB
Df Sum Sq Mean Sq F value Pr(>F)
Clones1 109 65.2 0.5982 1.5 0.00179 **
Residuals 597 238.1 0.3988
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
ANOVA pour la variable : CH
Df Sum Sq Mean Sq F value Pr(>F)
Clones1 109 595.1 5.460 2.663 6.16e-14 ***
Residuals 597 1224.2 2.051
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
ANOVA pour la variable : BNN
Df Sum Sq Mean Sq F value Pr(>F)
Clones1 109 93.5 0.8581 1.425 0.00565 **
Residuals 597 359.6 0.6023
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>