mirror of
https://github.com/BreizhHardware/TD-R.git
synced 2026-01-18 16:47:34 +01:00
feat: enhance regression analysis in Exercice 2.R with ANOVA and confidence interval calculations
This commit is contained in:
@@ -60,3 +60,72 @@ cat("\n4. Pourcentage de variation expliquée:\n")
|
||||
cat("Régression avec X1: ", round(resume1$r.squared * 100, 2), "%\n")
|
||||
cat("Régression avec X2: ", round(resume2$r.squared * 100, 2), "%\n")
|
||||
cat("Régression avec X1 et X2: ", round(resume12$r.squared * 100, 2), "%\n")
|
||||
|
||||
# 5. Compléter le tableau suivant
|
||||
cat("\n5. Carré moyen résiduel et écart-type des résidus:\n")
|
||||
cmr1 <- sum(modele1$residuals^2) / modele1$df.residual
|
||||
cmr2 <- sum(modele2$residuals^2) / modele2$df.residual
|
||||
cmr12 <- sum(modele12$residuals^2) / modele12$df.residual
|
||||
|
||||
cat("Régression due à X1: CMR =", round(cmr1, 4), ", σ =", round(sqrt(cmr1), 4), "\n")
|
||||
cat("Régression due à X2: CMR =", round(cmr2, 4), ", σ =", round(sqrt(cmr2), 4), "\n")
|
||||
cat("Régression due à (X1,X2): CMR =", round(cmr12, 4), ", σ =", round(sqrt(cmr12), 4), "\n")
|
||||
|
||||
# 6. Compléter le tableau d’analyse de la variance suivant pour la régression comportant les deux variables explicatives
|
||||
|
||||
anova_complete <- anova(modele12)
|
||||
SCR_X1X2 <- sum(anova_complete$"Sum Sq")
|
||||
SCT <- SCR_X1X2 + sum(modele12$residuals^2)
|
||||
|
||||
cat("\n6. Tableau ANOVA complet:\n")
|
||||
cat("Source de variation | Somme des carrés | Ddl | Carrés moyens | Fobs\n")
|
||||
cat("Régression due à (X1,X2) | ", round(SCR_X1X2, 4), " | ",
|
||||
anova_complete$Df[1] + anova_complete$Df[2], " | ",
|
||||
round(SCR_X1X2/(anova_complete$Df[1] + anova_complete$Df[2]), 4), " | ",
|
||||
round(resume12$fstatistic[1], 4), "\n")
|
||||
cat("Résiduelle | ", round(sum(modele12$residuals^2), 4), " | ", modele12$df.residual,
|
||||
" | ", round(cmr12, 4), " | \n")
|
||||
cat("Totale | ", round(SCT, 4), " | ", nrow(donnees)-1, " | | \n")
|
||||
|
||||
# 7. Tester au seuil de signification 5%, l’hypothèse nulle H0 : β1 = β2 = 0 contre l’hypothèse alternative H1 : au moins un des coefficients est différent de 0. Quelle est votre conclusion ?
|
||||
|
||||
cat("\n7. Test de H0: β1 = β2 = 0\n")
|
||||
f_obs <- resume12$fstatistic[1]
|
||||
f_crit <- qf(0.95, resume12$fstatistic[2], resume12$fstatistic[3])
|
||||
cat("F observé =", round(f_obs, 4), ", F critique (α=5%) =", round(f_crit, 4), "\n")
|
||||
p_value <- pf(f_obs, resume12$fstatistic[2], resume12$fstatistic[3], lower.tail = FALSE)
|
||||
cat("p-value =", format(p_value, scientific = FALSE), "\n")
|
||||
cat("Conclusion: On rejette H0, au moins un des coefficients est différent de 0.\n")
|
||||
|
||||
# 8. Dans le cas du modèle de régression linéaire ne comportant que l’épaisseur du matériau comme variable explicative, déterminer un intervalle de confiance à 95% pour <20><>1. Pouvons-nous affirmer, au seuil de signification 5%, que la régression linéaire est significative entre la résistance à la rupture et l’épaisseur du matériau ? Justifier votre conclusion.
|
||||
|
||||
cat("\n8. Intervalle de confiance pour β1:\n")
|
||||
ic_beta1 <- confint(modele1, "X1", level = 0.95)
|
||||
cat("IC à 95% pour β1 :", round(ic_beta1[1], 4), "à", round(ic_beta1[2], 4), "\n")
|
||||
|
||||
t_obs <- coef(summary(modele1))["X1", "t value"]
|
||||
t_crit <- qt(0.975, modele1$df.residual)
|
||||
p_val <- coef(summary(modele1))["X1", "Pr(>|t|)"]
|
||||
cat("t observé =", round(t_obs, 4), ", t critique (α=5%) =", round(t_crit, 4), "\n")
|
||||
cat("Conclusion: La régression linéaire entre Y et X1 est significative (p-value =",
|
||||
format(p_val, scientific = FALSE), ")\n")
|
||||
|
||||
# 9. Quel est l’apport marginal de la variable X2 lorsqu’elle est introduite à la suite de la variable X1 ?
|
||||
cat("\n9. Apport marginal de X2 après X1:\n")
|
||||
modele_seq <- anova(modele1, modele12)
|
||||
print(modele_seq)
|
||||
cat("L'apport marginal de X2 est significatif (p-value =",
|
||||
format(modele_seq[2, "Pr(>F)"], scientific = FALSE), ")\n")
|
||||
|
||||
|
||||
# 10. Nous voulons obtenir diverses estimations et prévisions de la résistance à la rupture. Quelle est, en moyenne, la résistance à la rupture de jouets dont l’épaisseur du matériau utilisé et la densité du matériau sont celles indiquées dans le tableau suivant ?
|
||||
|
||||
cat("\n10. Estimations de la résistance à la rupture:\n")
|
||||
nouvelles_donnees <- data.frame(
|
||||
X1 = c(4, 3, 4),
|
||||
X2 = c(3.8, 3.4, 2.9)
|
||||
)
|
||||
|
||||
predictions <- predict(modele12, nouvelles_donnees, interval = "confidence")
|
||||
rownames(predictions) <- c("X1=4, X2=3.8", "X1=3, X2=3.4", "X1=4, X2=2.9")
|
||||
print(round(predictions, 4))
|
||||
Reference in New Issue
Block a user