From 390af617d483d90e656817bdb36311f06ba1539e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20MARQUET?= Date: Fri, 14 Mar 2025 11:03:29 +0100 Subject: [PATCH] feat: add hypothesis testing and visualization for thickness data in R script --- TP5/Exercice1.R | 82 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 TP5/Exercice1.R diff --git a/TP5/Exercice1.R b/TP5/Exercice1.R new file mode 100644 index 0000000..7a01ef3 --- /dev/null +++ b/TP5/Exercice1.R @@ -0,0 +1,82 @@ +# Définition des données d'épaisseur en millimètres +epaisseurs <- c(6.47, 7.02, 7.15, 7.22, 7.44, 6.99, 7.47, 7.61, 7.32, 7.22, + 7.52, 6.92, 7.28, 6.69, 7.24, 7.19, 6.97, 7.52, 6.22, 7.13, + 7.32, 7.67, 7.24, 6.21) + +# Paramètres du problème +n <- length(epaisseurs) # Taille de l'échantillon +mu0 <- 7.3 # Moyenne annoncée par le fournisseur +sigma <- 0.38 # Écart-type connu +alpha <- 0.05 # Niveau de signification 5% + +# Calcul des statistiques de base +moyenne <- mean(epaisseurs) +ecart_type_echantillon <- sd(epaisseurs) + +# Calcul de la statistique du test z +z_stat <- (moyenne - mu0) / (sigma / sqrt(n)) +p_value <- 2 * pnorm(-abs(z_stat)) # Test bilatéral + +# Valeur critique pour un test bilatéral avec α = 0.05 +z_critique <- qnorm(1 - alpha/2) + +# Affichage des résultats +cat("Analyse des épaisseurs des composants isolants\n") +cat("---------------------------------------------\n") +cat(sprintf("Nombre d'observations: %d\n", n)) +cat(sprintf("Moyenne des épaisseurs: %.4f mm\n", moyenne)) +cat(sprintf("Écart-type échantillon: %.4f mm\n", ecart_type_echantillon)) +cat(sprintf("Écart-type connu: %.4f mm\n", sigma)) +cat("\nTest d'hypothèse\n") +cat(sprintf("H0: μ = %.1f mm (le fournisseur respecte ses engagements)\n", mu0)) +cat(sprintf("H1: μ ≠ %.1f mm (le fournisseur ne respecte pas ses engagements)\n", mu0)) +cat(sprintf("Statistique z calculée: %.4f\n", z_stat)) +cat(sprintf("Valeur critique (α = %.2f): ±%.4f\n", alpha, z_critique)) +cat(sprintf("p-value: %.4f\n", p_value)) + +# Conclusion +cat("\nConclusion:\n") +if (abs(z_stat) > z_critique) { + cat(sprintf("Comme |z| = %.4f > %.4f et p-value = %.4f < %.2f, nous rejetons H0.\n", + abs(z_stat), z_critique, p_value, alpha)) + cat("L'entreprise peut affirmer, avec un risque faible de se tromper, que le fournisseur ne respecte pas ses engagements.\n") +} else { + cat(sprintf("Comme |z| = %.4f < %.4f et p-value = %.4f > %.2f, nous ne pouvons pas rejeter H0.\n", + abs(z_stat), z_critique, p_value, alpha)) + cat("L'entreprise ne peut pas affirmer, avec un risque faible de se tromper, que le fournisseur ne respecte pas ses engagements.\n") +} + +# Représentation graphique +hist(epaisseurs, + breaks = "FD", + col = "lightblue", + main = "Distribution des épaisseurs des composants", + xlab = "Épaisseur (mm)", + ylab = "Fréquence") + +# Ajout de lignes verticales pour la moyenne échantillon et la moyenne annoncée +abline(v = moyenne, col = "red", lwd = 2) +abline(v = mu0, col = "blue", lwd = 2, lty = 2) + +# Ajout de la courbe de densité normale estimée +curve(dnorm(x, mean = moyenne, sd = sigma), + add = TRUE, + col = "darkgreen", + lwd = 2) + +# Légende +legend("topright", + legend = c(paste("Moyenne échantillon:", round(moyenne, 4), "mm"), + paste("Moyenne annoncée:", mu0, "mm"), + "Densité normale estimée"), + col = c("red", "blue", "darkgreen"), + lwd = c(2, 2, 2), + lty = c(1, 2, 1)) + +# Intervalle de confiance pour la moyenne +marge_erreur <- z_critique * sigma / sqrt(n) +IC_inf <- moyenne - marge_erreur +IC_sup <- moyenne + marge_erreur + +cat(sprintf("\nIntervalle de confiance à %.0f%% pour la moyenne: [%.4f, %.4f]\n", + (1-alpha)*100, IC_inf, IC_sup)) \ No newline at end of file