Files
TD-R/TP6/Exercice1.R

67 lines
2.7 KiB
R
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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"))