Vous êtes sur la page 1sur 24

Introduction

Principe
Code en python
Code en R
conclusion

Estimation non paramétrique des lois par noyaux


gaussiens et simulation
KDE

DEHMANE Malak
LACHGER Abderrazzak
AHMITO Meriem
AKIL Hajar
RAJAFALLAH Mouhcine

ENSAM-Casablanca

March 21, 2024


1 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Table de Matières

1 Introduction

2 Principe

3 Code en python

4 Code en R

5 conclusion

2 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Table of Contents

1 Introduction

2 Principe

3 Code en python

4 Code en R

5 conclusion

3 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Introduction
Au lieu de fixer des paramètres spécifiques pour décrire la
distribution des données, l’estimation non paramétrique utilise des
techniques plus flexibles qui s’adaptent aux données elles-mêmes,
comme l’exemple de l’estimation par noyau gaussien.

4 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Table of Contents

1 Introduction

2 Principe

3 Code en python

4 Code en R

5 conclusion

5 / 22
Introduction
Principe
Code en python
Code en R
conclusion

KDE

Définition
the kernel density estimation (KDE) est une méthode non
paramétrique utilisée pour estimer la densité de probabilité d’une
variable aléatoire. L’estimation de la densité est obtenue en
superposant des fonctions noyaux (ou kernels) centrées sur chaque
point de données, puis en les pondérant pour obtenir une
estimation continue

propriétés
la fonction Kernel doit être positive, symétrique,décroissante

6 / 22
Introduction
Principe
Code en python
Code en R
conclusion

KDE
idée du principe
Le principe de la Kernel Density Estimation (KDE) repose sur la
construction d’une estimation continue de la densité de probabilité
d’une variable aléatoire à partir d’un ensemble fini d’observations
en utilisant cette formule :
n  
1 X x − Xi
fˆ(x) = K
n·h h
i=1

Où :
fˆ(x) est l’estimation de la densité de probabilité à
l’emplacement x.
K est une fonction noyau.
h est la largeur de la bande. 7 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Figure: Fonction de densité de


divers noyau avec en 2D
Figure: Fonction de densité de
divers noyau avec en 3D

8 / 22
Introduction
Principe
Code en python
Code en R
conclusion

La largeur de bande optimale h

Choix de la bande h
Le choix de la largeur de bande a une influence significative sur la
fonction (KDE). La largeur de bande h contrôle le degré de lissage
de l’estimation de la densité. Une valeur plus grande de h produit
une estimation plus lisse, tandis qu’une valeur plus petite de h
donne une estimation plus granulaire avec plus de détails. Cela
signifie qu’une large valeur de h rendra la fonction de densité
estimée plus ”plate” et moins sensible aux variations locales des
données, tandis qu’une petite valeur de h la rendra plus ”pointue”
et plus sensible aux fluctuations des données.

8 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Mean Integrated Squared Error (MISE)

Définition de la MISE
La Mean Integrated Squared Error (MISE) est une mesure
couramment utilisée pour évaluer la performance de la Kernel
Density Estimation (KDE) et pour choisir la largeur de bande
optimale h par validation croisée. La formule de la MISE est la
suivante :
Z  2
MISE(h) = fˆ(x) − f (x) dx

Où :
fˆ(x) est l’estimation de la densité de probabilité.
f (x) est la vraie densité de probabilité sous-jacente.

9 / 22
Introduction
Principe
Code en python
Code en R
conclusion

L’intégration est effectuée sur tout l’espace des observations.


La MISE mesure la moyenne des erreurs quadratiques entre la
densité de probabilité estimée fˆ(x) et la vraie densité de
probabilité f (x) sur tout l’espace des observations.

10 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Problème

On ne sait pas la vraie


densité de probabilité f (x)!

11 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Règle de Silverman

Définition de la règle de Silverman


Afin de résoudre ce problème, l’une des approches les plus
couramment utilisées est la règle de Silverman, qui est une
méthode de sélection automatique de la largeur de bande
basée sur les propriétés des données. La formule de la règle de
Silverman pour le choix de h est la suivante :
 1
4 5
h= ·σ
3n

Où :
n est le nombre d’observations dans l’échantillon.
σ est l’écart-type des données.
12 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Table of Contents

1 Introduction

2 Principe

3 Code en python

4 Code en R

5 conclusion

13 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Remark
Sample text

14 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Exemple de code Python

import numpy as np
import matplotlib . pyplot as plt

def gauss_kernel ( xi , x , bandwidth ) :


return (1 / np . sqrt (2 * np . pi * bandwidth **2) ) *
np . exp ( -( xi - x ) **2 / (2 * bandwidth **2) )

def kde ( data , xi , bandwidth ) :


kde_result = np . zeros_like ( xi )
for i , xi_val in enumerate ( xi ) :
for data_point in data :
kde_result [ i ] += gauss_kernel ( xi_val ,
data_point , bandwidth )
kde_result [ i ] /= len ( data ) * bandwidth
return kde_result

15 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Exemple de code Python

np . random . seed (0)


dataSource = [93 , 93 , 96 , 100 , 101 , 102 , 102]
xiData = np . linspace (88 , 107 , 1000)

bandwidth = 2

kde_result = kde ( dataSource , xiData , bandwidth )

plt . figure ( figsize =(10 , 6) )

for data_point in dataSource :


gaussian_kernel = 0.115 * gauss_kernel ( xiData ,
data_point , bandwidth )
plt . plot ( xiData , gaussian_kernel , color = ’ orange ’ ,
linestyle = ’ -- ’)

16 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Exemple de code Python

plt . plot ( xiData , kde_result , label = ’ KDE ’ , color = ’ blue ’


, linewidth =2)
plt . scatter ( dataSource , np . zeros_like ( dataSource ) ,
label = ’ Observations ’ , color = ’ red ’ , alpha =0.5)

plt . title ( ’ Estimation de d e n s i t par noyau gaussien (


KDE ) ’)
plt . xlabel ( ’ D o n n e s ’)
plt . ylabel ( ’ D e n s i t ’)
plt . legend ()
plt . grid ( True )
plt . show ()

17 / 22
Introduction
Principe
Code en python
Code en R
conclusion

18 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Explication de code

1. Importation des bibliothèques nécessaires :

numpy est une bibliothèque Python utilisée pour effectuer des


opérations numériques, tandis que matplotlib.pyplot est utilisé pour
créer des graphiques.

19 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Table of Contents

1 Introduction

2 Principe

3 Code en python

4 Code en R

5 conclusion

20 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Exemple de code R

# Ceci est un exemple de code R


x <- 1:10
y <- x ^2
plot (x , y , type = " l " , col = " blue " )

21 / 22
Introduction
Principe
Code en python
Code en R
conclusion

Table of Contents

1 Introduction

2 Principe

3 Code en python

4 Code en R

5 conclusion

22 / 22
Introduction
Principe
Code en python
Code en R
conclusion

conclusion

22 / 22

Vous aimerez peut-être aussi