Vous êtes sur la page 1sur 6

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 = 0.001124, Var T = 0.0101613, b T = 0.001124 et MSE T = 0.0101626

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 :

1
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 = −0.2 et q̂0.975 = 0.15
Nous avons donc l’intervalle de confiance suivant :
   
q̂0.025 ; q̂0.975 = − 0.2; 0.15

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    
B  B 
E T Xn − z0.975 Var T XnB ; E T Xn + z0.975 Var T XnB = − 0.197; 0.199

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 = − 0.198; 0.198

Le première intervalle de confiance est quasi complètement inclus dans les deux autres intervalles de confiances. Nous
avons aussi une valeur estimé µ̂ inclus dans chacun des intervalles de confiance, ce qui nous réconforte dans l’idée que
nous avons de bons estimateurs.

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 :
       
XnB XnB XnB XnB
   
E T = 5.006711, Var T = 0.09811, b T = 5.006711 et MSE T = 25.1652

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

2
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 = 4.3 et q̂0.975 = 5.6
et donc nous avons l’intervalle de confiance suivant :
 
4.3; 5.6

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


 
4.38; 5.62

Les deux intervalles de confiance coïncident de très près, ce qui nous réconforte dans l’idée d’une bonne estimation.
De plus, notre valeur estimée de la moyenne est dans nos deux intervalles de confiance.

3
2 Deuxième exercice
L’objectif de cet exercice est de simuler la distribution de la quantité suivante :
−β1
xmax =
2β2
Dans un premier temps, nous avons étudions la relations quadratique entre une variable aléatoire Y et X. La relation
est de la forme suivante :
Y = β0 + β1 X + β2 X 2 + ε
où β2 < 0 et ε ∼ N (0, σ 2 ). Après OLS, nous avons obtenu les valeurs suivantes :
1
β̂0 = 0.2, β̂1 = 20.4, β̂2 = −1 xmax = 10.2 et σ̂ 2 =
2
Nous allons générer un échantillon de taille 5000 contenant les résidus comme suit :

1
 
εi ∼ N 0,
2

Nous allons à partir de l’échantillon des résidus générer des valeurs de ymax et établir l’histogramme de ces valeurs.
Il est clair que l’histogramme approxime la loi de ymax étant :

1
 
ymax ∼ N 104.2,
2

car lorsque x = 10.2, nous avons y = 104.2. L’histogramme ci-dessous montre bien le résultat attendu :

Nous avons donc l’intervalle de confiance, au niveau 95% suivant :


 
102.8; 105.6

et nous avons bien que ymax = 104.2 correspondant au xmax = 10.2 appartenant à notre intervalle de confiance, ce
qui nous réconforte avec l’idée d’une bonne estimation.

4
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)

5
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 beta _ 0 <- 0.2
4 beta _ 1 <- 20.4
5 beta _ 2 <- -1
6 sigma _ est <- 0.5
7
8 x _ value <- 10.2
9 y _ value <- vector ( " numeric " , length = 0)
10 esp <- rnorm (5000 , mean = 0 , sd = sqrt ( sigma _ est ) )
11 for ( i in 1:5000) {
12 y _ value <- c ( y _ value , beta _ 0 + beta _ 1 * x _ value + beta _ 2 * ( x _ value ) ^2 + esp [ i ])
13 }
14 hist _ data _ 3 <- hist ( y _ value , breaks = 20 , probability = TRUE , main = " Histogramme
des valeurs maximum "
15 , xlab = " ymax " , ylab = " Densite relative " )
16 curve ( dnorm (x , mean = 104.2 , sd = sqrt ( sigma _ est ) ) , add = TRUE , col = " blue " , lwd =
2)
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