From c2abd92f57673970ab60c74db649acaa4e7c56ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20MARQUET?= Date: Wed, 12 Mar 2025 09:11:37 +0100 Subject: [PATCH] feat: add simulations and visualizations for normalized means and Cauchy distributions --- Big Data/TP1/Exercice2.R | 50 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Big Data/TP1/Exercice2.R diff --git a/Big Data/TP1/Exercice2.R b/Big Data/TP1/Exercice2.R new file mode 100644 index 0000000..a48a3d1 --- /dev/null +++ b/Big Data/TP1/Exercice2.R @@ -0,0 +1,50 @@ +# Création d'un vecteur pour stocker les 10 000 moyennes normalisées +ms=numeric(10000); +# Définition des paramètres: p=probabilité de succès, x=séquence pour le tracé de la courbe normale +p=0.75; x=seq(-4,4,0.025); +# Boucle principale qui effectue 50 itérations avec taille d'échantillon croissante +for (j in(1:50)){ + # k = taille d'échantillon (j²), donc de 1 à 2500 + k=j*j; for (i in (1:10000)){ + # Calcul des paramètres théoriques d'une proportion: moyenne et écart-type + sig=sqrt(p*(1-p)/k); mu=p; + # Génération de k essais de Bernoulli, calcul de leur moyenne, + # puis normalisation: (moyenne-mu)/sigma + ms[i]=(mean(rbinom(k,1,p))-mu)/sig } + # Tracé de l'histogramme des moyennes normalisées + hist(ms, breaks=41, xlab="x-variable", xlim=c(-4,4), prob=TRUE, main=sprintf("normal curve over +histogram, n = %d",k)) + # Superposition de la courbe de densité normale standard N(0,1) + curve(dnorm(x), col="darkblue", lwd=2, add=TRUE, yaxt="n")} + + +# Définition de la séquence pour le tracé des courbes +x = seq(-5, 5, 0.025) + +# Boucle principale qui effectue 50 itérations avec taille d'échantillon croissante +for (j in (1:50)) { + # k = taille d'échantillon (j²), donc de 1 à 2500 + k = j*j + + for (i in (1:10000)) { + # Génération de k variables Cauchy et calcul de leur moyenne + ms[i] = mean(rcauchy(k)) + } + + # Pour éviter que les valeurs extrêmes ne déforment l'histogramme + valid_range = ms > -5 & ms < 5 + + # Tracé de l'histogramme des moyennes + hist(ms[valid_range], breaks=41, xlab="x-variable", xlim=c(-5, 5), + prob=TRUE, main=sprintf("Distribution des moyennes de Cauchy, n = %d", k)) + + # Superposition de la courbe de densité normale standard N(0,1) + curve(dnorm(x), col="darkblue", lwd=2, add=TRUE, yaxt="n") + + # Superposition de la courbe de densité Cauchy standard + curve(dcauchy(x), col="darkred", lwd=2, add=TRUE, yaxt="n") + + # Légende + legend("topright", legend=c("Normale N(0,1)", "Cauchy"), + col=c("darkblue", "darkred"), lwd=2) +} \ No newline at end of file