Vous êtes sur la page 1sur 4

STAT-F-427 - Méthode non paramétriques : Simulation

Techniques: Some Basic Ideas


Ismail El Kadiri

Mai 2023

1 Première exercice
L’objectif de cet exercice est de simuler la distribution de la moyenne X, calculée à partir d’échantillon de valeur
Xi avec i ∈ {1, 2, . . . , 100} générer à partir d’une loi normale de moyenne nulle et de variance égale à 1. Autrement
dit, nous recherchons la loi de X quand nous générons les valeurs comme suit :

∀i ∈ {1, 2, . . . , 100}, Xi ∼ N (0, 1)

Nous allons procéder comme suit :

1. Nous allons générer un échantillon de taille 100 à partir de la loi ci-dessus;

2. Nous allons calculer la moyenne arithmétique des valeurs de l’échantillon générer;

3. Nous allons recommencer les étapes (1) et (2) 5000 fois.

Après exécution des trois étapes, nous avons une liste de valeurs des moyennes de taille 5000. À partir de cette liste,
nous avons les valeurs suivantes :
       
XnB XnB XnB XnB
   
E T =, Var T =, b T = et MSE T =

où T XnB est notre statistique (estimateur) avec n = 100 et B = 5000. Nous allons analyser l’histogramme des


valeurs moyennes générer (notre liste des 5000 valeurs) en superposant la réelle distribution de X. Nous savons par
le Théorème centrale limite que :
1
 
X ∼ N 0,
100
Nous avons le schéma ci-dessous reprenant notre estimation par histogramme de la réelle distribution :

Nous observons clairement que notre histogramme épouse assez bien la forme de la réelle distribution de la moyenne
X. Nous allons déterminer un intervalle de confiance, au niveau de confiance de 95%, pour la moyenne-population µ,
en utilisant les quantiles empiriques d’ordres 0.025 et 0.975 de la distribution des 5000 valeurs simulées de X. Pour
y parvenir, nous devons calculer les quantiles empiriques d’ordre 0,025 et 0,975 à partir de notre histogramme. Nous
avons obtenu les valeurs suivantes :
q̂0.025 = et q̂0.975 =
Nous avons donc l’intervalle de confiance suivant :
 
q̂0.025 ; q̂0.975 =

1
Dans notre cas, nous savons que la moyenne X suit une loi normale et donc nous avons aussi l’intervalle de confiance
suivant : s s
        
E T XnB ; E T XnB
   
− z0.975 Var T XnB + z0.975 Var T XnB =

Nous avons aussi un intervalle de confiance, au niveau de confiance de 95%, pour la moyenne-population µ, en utilisant
la formule relative à la distribution normale :
   s     s  
   
E T Xn − z0.975 Var T Xn ; E T Xn + z0.975 Var T Xn =

Nous observons clairement que nous n’avons pas les mêmes résultats lorsque nous recommençons toutes les procédures
de cet exercice, ceci s’explique par le fait que nous générons pas à chaque fois le même échantillon dû au fait qu’il
soit généré de manière pseudo-aléatoire. Pour garder le même échantillon, nous devons utiliser la fonction set.seed(p)
de R (avec p fixée).

Supposons maintenant que nous générons 5000 échantillons pseudo-aléatoire de taille 100 comme suit :

∀i ∈ {1, 2, . . . , 100}, Xi ∼ χ25

Pour ce faire, nous allons procéder avec le même modus operandi que la première partie de cet exercice et nous
obtenons les résultats suivants :
       
E T XnB Var T XnB b T XnB MSE T XnB
   
=, =, = et =

Nous allons analyser l’histogramme des valeurs moyennes générer (notre liste des 5000 valeurs) en superposant la
réelle distribution de X. Nous savons par le Théorème centrale limite que :

1
 
X ∼ N 5,
10

Nous avons le schéma ci-dessous reprenant notre estimation par histogramme de la réelle distribution :

Nous observons clairement que notre histogramme épouse assez bien la forme de la réelle distribution de la moyenne
X. Nous allons déterminer un intervalle de confiance, au niveau de confiance de 95%, pour la moyenne-population µ,
en utilisant les quantiles empiriques d’ordres 0.025 et 0.975 de la distribution des 5000 valeurs simulées de X. Pour
y parvenir, nous allons calculer les quantiles empiriques d’ordre 0,025 et 0,975 à partir de notre histogramme. Nous
avons obtenu les valeurs suivantes :
q̂0.025 = et q̂0.975 =
et donc nous avons l’intervalle de confiance suivant :
 
;

que nous allons comparer à l’intervalle de confiance avec la réelle distribution de X :


 
;

2 Deuxième exercice

2
3 Code source R

1 # ### Exercice 1 - Partie 1


2
3 n <- 100
4 mean _ vector <- vector ( " numeric " , length = 0)
5 for ( i in 1:5000) {
6 x _ norm <- rnorm (n , 0 , 1)
7 mean _ norm <- mean ( x _ norm )
8 mean _ vector <- c ( mean _ vector , mean _ norm )
9 }
10
11 # ### 1.1) Calcul biais , variance & MSE
12
13 bias _ vector <- mean ( mean _ vector )
14 var _ vector <- var ( mean _ vector )
15 mse _ vector <- var _ vector + bias _ vector ^2
16
17 # ### 1.2) Histogramme des valeurs moyennes & Densite de Xbar
18
19 hist _ data <- hist ( mean _ vector , breaks = 20 , probability = TRUE , main = " Histogramme
des moyennes "
20 , xlab = " Valeur de la moyenne " , ylab = " Densite relative " )
21 curve ( dnorm (x , mean = 0 , sd = 1 / 10) , add = TRUE , col = " blue " , lwd = 2)
22

23 # ### 1.3) Intervalle de confiance ( avec les echantillons simules )


24
25 cumul _ freq <- cumsum ( hist _ data $ counts )
26
27 quantile _ empirique <- function ( hist _ data , quantile ) {
28 # Trouver la classe correspondante au quantile empirique
29 class _ index <- min ( which ( cumsum ( hist _ data $ counts ) >= sum ( hist _ data $ counts ) *
quantile ) )
30
31 # Approximation du quantile empirique en utilisant les limites de classe
32 class _ limits <- hist _ data $ breaks
33 quantile _ value <- class _ limits [ class _ index ]
34
35 return ( quantile _ value )
36 }
37
38 # Utilisation de la fonction pour estimer les quantiles empiriques
39
40 quantile _ 025 _ 1 <- quantile _ empirique ( hist _ data , 0.025)
41 quantile _ 97 _ 1 <- quantile _ empirique ( hist _ data , 0.975)

3
1 # ### Exercice 1 - Partie 3
2
3
4 mean _ vector _ 2 <- vector ( " numeric " , length = 0)
5 for ( i in 1:5000) {
6 x _ chi2 <- rchisq (n , 5)
7 mean _ chi2 <- mean ( x _ chi2 )
8 mean _ vector _ 2 <- c ( mean _ vector _ 2 , mean _ chi2 )
9 }
10

11 bias _ vector _ 2 <- mean ( mean _ vector _ 2)


12 var _ vector _ 2 <- var ( mean _ vector _ 2)
13 mse _ vector _ 2 <- var _ vector _ 2 + bias _ vector _ 2^2
14
15 hist _ data _ 2 <- hist ( mean _ vector _ 2 , breaks = 20 , probability = TRUE , main =
" Histogramme des moyennes "
16 , xlab = " Valeur de la moyenne " , ylab = " Densite relative " )
17 curve ( dnorm (x , mean = 5 , sd = 0.3162278) , add = TRUE , col = " blue " , lwd = 2)
18 cumul _ freq _ 2 <- cumsum ( hist _ data _ 2 $ counts )
19
20 quantile _ 025 _ 2 <- quantile _ empirique ( hist _ data _ 2 , 0.025)
21 quantile _ 975 _ 2 <- quantile _ empirique ( hist _ data _ 2 , 0.975)

1 # ### Exercice 2 ( Regression polynomiale d ’ ordre 2)


2
3 install . packages ( " truncnorm " )
4 library ( truncnorm )
5
6 x _ max <- vector ( " numeric " , length = 0)
7 for ( i in 1:5000) {
8 beta _ 1 <- rnorm (n , mean = 20.04 , sd = sqrt (2) / 2)
9 beta _ 2 <- rtruncnorm (n , a = -Inf , b = 0 , -1 , sqrt (2) / 2)
10 beta _ 1 _ mean <- mean ( beta _ 1)
11 beta _ 2 _ mean <- mean ( beta _ 2)
12 x _ max <- c ( x _ max , - beta _ 1 _ mean / 2 * beta _ 2 _ mean )
13 }
14
15 hist _ data _ 3 <- hist ( x _ max , breaks = 20 , main = " Histogramme des valeurs maximum "
16 , xlab = " Valeur du maximum " , ylab = " Frequence " )
17

18 quantile _ 025 _ 3 <- quantile _ empirique ( hist _ data _ 3 , 0.025)


19 quantile _ 975 _ 3 <- quantile _ empirique ( hist _ data _ 3 , 0.975)

Vous aimerez peut-être aussi