diff --git a/TP5/Exercice2.R b/TP5/Exercice2.R index e611d15..80b0c8e 100644 --- a/TP5/Exercice2.R +++ b/TP5/Exercice2.R @@ -102,11 +102,6 @@ cat("\nRésultat avec la fonction intégrée chisq.test():\n") chitest <- chisq.test(observed_counts, p = expected_probs, rescale.p = TRUE) print(chitest) -# Note sur la fiabilité du test avec petit échantillon -cat("\nNote sur la fiabilité: Avec seulement 12 observations, le test du chi-deux\n") -cat("peut manquer de puissance. Vérifiez que chaque classe contient au moins\n") -cat("5 observations attendues pour une meilleure fiabilité.\n") - # Afficher les effectifs par classe cat("\nEffectifs par classe:\n") for(i in seq_along(observed_counts)) { diff --git a/TP6/Exercice1.R b/TP6/Exercice1.R new file mode 100644 index 0000000..898c3f8 --- /dev/null +++ b/TP6/Exercice1.R @@ -0,0 +1,67 @@ +# Données observées +observed <- c(B = 84, J = 79, R = 75, O = 40, V = 36, D = 47) +total <- sum(observed) + +# Proportions attendues selon le responsable de communication +expected_props <- c(B = 0.3, J = 0.2, R = 0.2, O = 0.1, V = 0.1, D = 0.1) + +# Calcul des effectifs attendus +expected <- total * expected_props + +# Test du chi-deux +chi_squared <- sum((observed - expected)^2 / expected) +degrees_freedom <- length(observed) - 1 +p_value <- pchisq(chi_squared, df = degrees_freedom, lower.tail = FALSE) + +# Valeur critique pour alpha = 0.05 +alpha <- 0.05 +critical_value <- qchisq(1 - alpha, df = degrees_freedom) + +# Affichage des résultats +cat("Analyse de la distribution des couleurs des bonbons Yopy\n") +cat("--------------------------------------------------\n") +cat(sprintf("Nombre total de bonbons: %d\n\n", total)) + +# Tableau des effectifs observés et attendus +colors <- c("Brun", "Jaune", "Rouge", "Orange", "Vert", "Doré") +cat("Couleur Observé Attendu Ecart (%) \n") +cat("--------------------------------\n") +for (i in seq_along(observed)) { + ecart <- sqrt(((observed[i] - expected[i])^2 / expected[i]) * 100) + cat(sprintf("%-8s %4d %5.1f %6.3f\n", + colors[i], observed[i], expected[i], ecart)) +} + +# Résultats du test +cat("\nTest du chi-deux\n") +cat("--------------\n") +cat("H0: La distribution suit les proportions annoncées.\n") +cat("H1: La distribution ne suit pas les proportions annoncées.\n\n") +cat(sprintf("Chi-deux calculé: %.3f\n", chi_squared)) +cat(sprintf("Degrés de liberté: %d\n", degrees_freedom)) +cat(sprintf("Valeur critique (α = %.2f): %.3f\n", alpha, critical_value)) +cat(sprintf("p-value: %.6f\n\n", p_value)) + +# Conclusion +cat("Conclusion:\n") +if (chi_squared > critical_value) { + cat(sprintf("Comme χ² = %.3f > %.3f et p-value = %.6f < %.2f, nous rejetons H0.\n", + chi_squared, critical_value, p_value, alpha)) + cat("On peut affirmer, avec un risque de 5%, que le responsable de la communication a tort.\n") +} else { + cat(sprintf("Comme χ² = %.3f < %.3f et p-value = %.6f > %.2f, nous ne pouvons pas rejeter H0.\n", + chi_squared, critical_value, p_value, alpha)) + cat("On ne peut pas affirmer que le responsable de la communication a tort.\n") +} + +# Vérification avec la fonction intégrée +cat("\nRésultat avec la fonction intégrée chisq.test():\n") +print(chisq.test(observed, p = expected_props)) + +# Graphique comparatif +barplot_data <- rbind(observed, expected) +colnames(barplot_data) <- colors +barplot(barplot_data, beside = TRUE, col = c("lightblue", "lightgreen"), + main = "Distribution des couleurs des bonbons Yopy", + ylab = "Nombre de bonbons", ylim = c(0, max(barplot_data) * 1.2)) +legend("topright", legend = c("Observé", "Attendu"), fill = c("lightblue", "lightgreen")) \ No newline at end of file