0% found this document useful (0 votes)
4 views21 pages

Rcode

The document outlines a comprehensive R script for data analysis, including loading datasets, cleaning column names, and calculating various statistical metrics. It also covers the creation of visualizations and the implementation of linear regression models, both bivariate and multiple, to analyze relationships between variables. The script utilizes several R packages such as tidyverse, ggpubr, and psych for data manipulation and visualization.

Uploaded by

bricemilo15
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views21 pages

Rcode

The document outlines a comprehensive R script for data analysis, including loading datasets, cleaning column names, and calculating various statistical metrics. It also covers the creation of visualizations and the implementation of linear regression models, both bivariate and multiple, to analyze relationships between variables. The script utilizes several R packages such as tidyverse, ggpubr, and psych for data manipulation and visualization.

Uploaded by

bricemilo15
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

> 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

>

You might also like