Analyse statistique BDD coprogroupe

data <- read.csv2(
  "coprogroupe(2).csv",
  header = TRUE,
  stringsAsFactors = FALSE,
  na.strings = c("", "NA"))

dim(data)
[1] 168 185
names(data)
  [1] "Mois"       "SGIMultiSP" "SGIPrimiSP" "SGILOTSP"   "SGINulliSP"
  [6] "SGLMultiSP" "SGLPrimiSP" "SGLLOTSP"   "SGLNulliSP" "TRIMultiSP"
 [11] "TRIPrimiSP" "TRILOTSP"   "TRINulliSP" "SKJMultiSP" "SKJPrimiSP"
 [16] "SKJLOTSP"   "SKJNulliSP" "MONMultiSP" "MONPrimiSP" "MONLOTSP"  
 [21] "MONNulliSP" "COCMultiSP" "COCPrimiSP" "COCLOTSP"   "COCNulliSP"
 [26] "GDDMultiSP" "GDDPrimiSP" "GDDLOTSP"   "GDDNulliSP" "PTDMultiSP"
 [31] "PTDPrimiSP" "PTDLOTSP"   "PTDNulliSP" "PARMultiSP" "PARPrimiSP"
 [36] "PARLOTSP"   "PARNulliSP" "MUEMultiSP" "MUEPrimiSP" "MUELOTSP"  
 [41] "MUENulliSP" "EFFMultiSP" "EFFPrimiSP" "EFFTotSP"   "CharSAUSP" 
 [46] "CharSFPSP"  "SGIMultiDP" "SGIPrimiDP" "SGILOTDP"   "SGINulliDP"
 [51] "SGLMultiDP" "SGLPrimiDP" "SGLLOTDP"   "SGLNulliDP" "TRIMultiDP"
 [56] "TRIPrimiDP" "TRILOTDP"   "TRINulliDP" "SKJMultiDP" "SKJPrimiDP"
 [61] "SKJLOTDP"   "SKJNulliDP" "MONMultiDP" "MONPrimiDP" "MONLOTDP"  
 [66] "MONNulliDP" "COCMultiDP" "COCPrimiDP" "COCLOTDP"   "COCNulliDP"
 [71] "GDDMultiDP" "GDDPrimiDP" "GDDLOTDP"   "GDDNulliDP" "PTDMultiDP"
 [76] "PTDPrimiDP" "PTDLOTDP"   "PTDNulliDP" "PARMultiDP" "PARPrimiDP"
 [81] "PARLOTDP"   "PARNulliDP" "MUEMultiDP" "MUEPrimiDP" "MUELOTDP"  
 [86] "MUENulliDP" "EFFMultiDP" "EFFPrimiDP" "EFFTotDP"   "CharSAUDP" 
 [91] "CharSFPDP"  "SGITOTDB"   "SGIMultiDB" "SGIPrimiDB" "SGILOTDB"  
 [96] "SGINulliDB" "SGLTOTDB"   "SGLMultiDB" "SGLPrimiDB" "SGLLOTDB"  
[101] "SGLNulliDB" "TRITOTDB"   "TRIMultiDB" "TRIPrimiDB" "TRILOTDB"  
[106] "TRINulliDB" "SKJTOTDB"   "SKJMultiDB" "SKJPrimiDB" "SKJLOTDB"  
[111] "SKJNulliDB" "MONTOTDB"   "MONMultiDB" "MONPrimiDB" "MONLOTDB"  
[116] "MONNulliDB" "COCTOTDB"   "COCMultiDB" "COCPrimiDB" "COCLOTDB"  
[121] "COCNulliDB" "GDDTOTDB"   "GDDMultiDB" "GDDPrimiDB" "GDDLOTDB"  
[126] "GDDNulliDB" "PTDTOTDB"   "PTDMultiDB" "PTDPrimiDB" "PTDLOTDB"  
[131] "PTDNulliDB" "PARTOTDB"   "PARMultiDB" "PARPrimiDB" "PARLOTDB"  
[136] "PARNulliDB" "MUETOTDB"   "MUEMultiDB" "MUEPrimiDB" "MUELOTDB"  
[141] "MUENulliDB" "EFFMultiDB" "EFFPrimiDB" "EFFTOTDB"   "CharSAUDB" 
[146] "CharSFPDB"  "OesoT"      "TeladoT"    "HaemoT"     "OesoDP"    
[151] "TeladoDP"   "HaemoDP"    "OesoSP"     "TeladoSP"   "HaemoSP"   
[156] "NECSternDB" "NECSternDP" "NECSternSP" "NECLombDB"  "NECLombDP" 
[161] "NECLombSP"  "PoidDB"     "PoidDP"     "PoidSP"     "EffTrSP"   
[166] "ProdCTRLSP" "ProdSP"     "ProdMSP"    "EffTrDP"    "ProdCTRLDP"
[171] "ProdDP"     "ProdMDP"    "EffTrDB"    "ProdCTRLDB" "ProdDB"    
[176] "ProdMDB"    "TempsDP"    "NombreJDP"  "TempsSP"    "NombreJSP" 
[181] "RR_CM"      "TM_MM"      "TN_MM"      "TX_MM"      "RGC_CM"    
# Extraction robuste de l'année à partir de Mois
annee <- 2000 + as.numeric(sub("^[^0-9]+", "", data$Mois))

# Extraction du mois
mois_txt <- tolower(sub("[0-9]+$", "", data$Mois))

# Correction des accents
mois_txt[mois_txt == "février"] <- "fevrier"
mois_txt[mois_txt == "août"] <- "aout"
mois_txt[mois_txt == "décembre"] <- "decembre"

mois_num <- match(
  mois_txt,
  c("janvier", "fevrier", "mars", "avril", "mai", "juin",
    "juillet", "aout", "septembre", "octobre", "novembre", "decembre"))

table(annee, useNA = "ifany")
annee
2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 
  12   12   12   12   12   12   12   12   12   12   12   12   12   12 
table(mois_num, useNA = "ifany")
mois_num
   1    2    3    4    5    6    7    8    9   10   11   12 <NA> 
  14   14   14   14   14   14   14   14   14   14   14   13    1 

Analyses statistiques :

Analyses descriptives

resume <- function(x) {
  x <- x[is.finite(x)]
  c(
    Effectif = length(x),
    Moyenne = mean(x),
    Mediane = median(x),
    Ecart_type = sd(x),
    Minimum = min(x),
    Maximum = max(x))}

SP <- data$SGILOTSP[!is.na(data$SGILOTSP)]
DP <- data$SGILOTDP[!is.na(data$SGILOTDP)]
DB <- data$SGILOTDB[!is.na(data$SGILOTDB)]

cat("Lot SP\n")
Lot SP
print(resume(SP))
  Effectif    Moyenne    Mediane Ecart_type    Minimum    Maximum 
  150.0000   448.0747   350.0000   425.2526     0.0000  2428.0000 
cat("\nLot DP\n")

Lot DP
print(resume(DP))
  Effectif    Moyenne    Mediane Ecart_type    Minimum    Maximum 
  151.0000   180.9073   139.0000   161.9680     0.0000   700.0000 
cat("\nLot DB\n")

Lot DB
print(resume(DB))
  Effectif    Moyenne    Mediane Ecart_type    Minimum    Maximum 
 147.00000   10.84218    0.00000   27.59300    0.00000  122.00000 

Histogrammes et courbes de lois normales

par(mfrow = c(1, 2))
# SP
hist(SP,freq = FALSE,col = "red")
curve(dnorm(x,mean(SP),sd(SP)),add=T,lwd=3)

# DP
hist(DP,freq = FALSE,col = "gold")
curve(dnorm(x,mean(DP),sd(DP)),add=T,lwd=3)

Les histogrammes et les courbes de lois sont bien différents. On peut donc dire que les SGI ne sont pas distribué normalement.

Méthode de Henry

par(mfrow = c(1, 2))
qqnorm(SP,main = "Graphique de Henry - SP")
qqline(SP, col = "red", lwd = 2)

qqnorm(DP,main = "Graphique de Henry - DP")
qqline(DP, col = "gold", lwd = 2)

Les nuages de point des diagrammes quantile-quantile sont éloignié des droites de Henry. On peut donc considérer que les strongles ne sont pas distribuées normalement.

Test de shapiro-Wilk

On pose :

-H0 : Les valeurs sont distribuées normalement.

-H1 : Les valeurs ne sont pas distribuées normalement.

shapiro.test(SP)

    Shapiro-Wilk normality test

data:  SP
W = 0.80937, p-value = 1.062e-12
shapiro.test(DP)

    Shapiro-Wilk normality test

data:  DP
W = 0.90308, p-value = 1.822e-08

Les p-valeur sont bien inférieures à 0.01, on peut donc considérer que les différences sont hautement significative avec H0.

Au vu des échantillons, on peut considérer que la distribution des masses des SGI est “anormale”.

Mise à la racine carré

d’après le rapport de Meghan GONZALEZ

SP_racine <- sqrt(SP)
DP_racine <- sqrt(DP)
DB_racine <- sqrt(DB)

Histogrammes et courbes de loi normale

par(mfrow = c(1, 2))
# SP
hist(SP_racine,freq = FALSE,col = "red")
curve(dnorm(x,mean(SP_racine),sd(SP_racine)),add=T,lwd=3)

# DP
hist(DP_racine,freq = FALSE,col = "gold")
curve(dnorm(x,mean(DP_racine),sd(DP_racine)),add=T,lwd=3)

Les histogrammes et les courbes de lois sont bien similaires. On peut donc dire que les SGI sont distribué normalement.

Méthode de Henry

par(mfrow = c(1, 2))
qqnorm(SP_racine,main = "Graphique de Henry - SP")
qqline(SP_racine, col = "red", lwd = 2)

qqnorm(DP_racine,main = "Graphique de Henry - DP")
qqline(DP_racine, col = "gold", lwd = 2)

Les nuages de point des diagrammes quantile-quantile sont proches des droites de Henry. On peut donc considérer que les strongles sont distribuées normalement.

Test de Shapiro-Wilk

On pose :

-H0 : Les valeurs sont distribuées normalement.

-H1 : Les valeurs ne sont pas distribuées normalement.

shapiro.test(SP_racine)

    Shapiro-Wilk normality test

data:  SP_racine
W = 0.97787, p-value = 0.01599
shapiro.test(DP_racine)

    Shapiro-Wilk normality test

data:  DP_racine
W = 0.96768, p-value = 0.001277

Les p-valeur sont supérieurs à 0.001, on peut donc considérer qu’il n’y a pas de différences avec H0.

Au vu des échantillons, on peut considérer que la distribution des SGI est normale.