17 Estimateurs à noyau et k plus proches voisins

Exercice 1 (Questions de cours)  

  1. A
  2. B
  3. A

Exercice 2 (Estimateur de Nadaraya-Watson) Il suffit de dériver la quantité à minimiser par rapport à β1 et la valeur de β1 qui annule cette dérivée : 2i=1n(yiβ1)pi(x)=0β^1(x)=i=1nyipi(x)i=1npi(x).

Exercice 3 (Polynômes locaux)  

Exercice 4 (Estimateur à noyau uniforme dans Rp)  

  1. En annulant la dérivée par rapport à a, on obtient m^(x)=i=1nyiK(xixh)i=1nK(xixh).

  2. On a V[m^(x)]=σ2i=1nK(xixh) et E[m^(x)]m(x)=i=1n(m(xi)m(x))K(xixh)i=1nK(xixh).

  3. On a maintenant |m(xi)m(x)|Lxix. Or K(xixh) est non nul si et seulement si xixh. Donc pour tout i=1,,n LxixK(xixh)LhK(xixh). D’où le résultat.

  4. On a V[m^(x)]=σ2i=1nK(xixh)=σ2i=1n1Bh(xix). Or i=1n1Bh(xix)C1nVol(Bh)C1γdnhdγd=πd/2/Γ(d/2+1). On a donc V[m^(x)]σ2C1γdnhd=C2σ2nhd avec C2=1/(C1γd).

  5. On déduit E[(m^(x)m(x))2]L2h2+C2σ2nhd.

  6. Soit M(h) le majorant ci-dessus. On a M(h)=2hL2C2σ2dnhd1. La dérivée s’annule pour hopt=2L2C2σ2dn1d+2. Lorsque h=hopt l’erreur quadratique vérifie E[(m^(x)m(x))2]=O(n2d+2). La vitesse diminue lorsque la dimension d augmente, c’est le fléau de la dimension.

Exercice 5 (Vitesse de la régression univariée en design equi-espacé)  

  1. β^ minimise i=1n(Yiβxi)2. On a donc β^=i=1nxiYii=1nxi2.

  2. On déduit E[β^]=βetV(β^)=σ2i=1nxi2.

  3. Comme i=1nxi2=(n+1)(2n+1)6n, on obtient le résultat demandé.

Exercice 6 (Critère LOO)  

  1. On désigne par F^h le vecteur (f^h(xi),i=1,,n), F^k le vecteur (f^k(xi),i=1,,n) et Y=(y1,,yn). On voit facilement que F^h=ShYetF^k=SkYSh et Sk sont des matrices n×n dont le terme général est défini par Sij,h=K((xixj)/h)lK((xixl)/h)etSij,k={1/k si xj est parmi les k-ppv de xi0 sinon.

  2. Pour simplifier on note Kij=K((xixj)/h) On a f^hi(xi)=jiKijyjjiKij. Par conséquent f^hi(xi)[j=1nKijKii]=jiKijyj. On obtient le résultat demandé en divisant tout j=1nKij. Pour l’estimateur de plus proches voisins, on remarque que, si on enlève la ième observation alors l’estimateur des k plus proches voisins de xi s’obtient à partir ce celui des k+1 plus proches voisins avec la ième observation de la façon suivante : f^ki(xi)=k+1kjiSij,k+1yj. On obtient le résultat demandé on observant que Sii,k+1=1/(k+1) et donc 11Sii,k+1=k+1k.

  3. On obtient pour l’estimateur à noyau LOO(f^h)=1ni=1n(yif^hi(xi))2=1ni=1n(yiSii,hyijiSij,hyj1Sii,h)2=1ni=1n(yif^h(xi)1Sii,h)2. Le calcul est similaire pour l’estimateur des plus proches voisins.

Exercice 7 (Caret et kppv) On importe les données et on ne garde que les deux variables demandées :

ozone <- read.table("../donnees/ozone.txt",header=TRUE,sep=";")
df <- ozone[,c("O3","T12")]

On construit la grille de plus proches voisins candidats :

grille <- data.frame(k=1:40)

On indique à caret qu’on veut faire de la validation croisée 10 blocs :

library(caret)
ctrl <- trainControl(method="cv")

On lance la validation croisée avec la fonction train :

set.seed(1234)
sel.k <- train(O3~.,data=df,method="knn",trControl=ctrl,tuneGrid=grille)
sel.k
k-Nearest Neighbors 

50 samples
 1 predictor

No pre-processing
Resampling: Cross-Validated (10 fold) 
Summary of sample sizes: 44, 46, 45, 44, 45, 45, ... 
Resampling results across tuning parameters:

  k   RMSE      Rsquared   MAE     
   1  25.39941  0.2777479  21.83800
   2  20.89184  0.3784027  17.05972
   3  17.81455  0.5039548  14.88541
   4  16.49216  0.5636676  14.01838
   5  16.75867  0.5579746  14.33716
   6  16.76845  0.5384320  13.92737
   7  16.11270  0.5792998  13.77474
   8  15.96855  0.5992164  13.64931
   9  16.48290  0.5679445  14.13226
  10  16.89146  0.5572318  14.62217
  11  17.14669  0.5541549  14.68934
  12  17.69184  0.5469553  15.27732
  13  17.41791  0.5668045  15.10278
  14  17.53775  0.5484378  15.17445
  15  17.61846  0.5669393  15.35179
  16  17.89693  0.5550383  15.60799
  17  18.08559  0.5579067  15.72184
  18  18.25932  0.5655324  15.89826
  19  18.84244  0.5402343  16.27675
  20  19.08747  0.5429639  16.30312
  21  19.44070  0.5266746  16.57676
  22  19.66410  0.5196443  16.65315
  23  19.69539  0.5339187  16.60436
  24  19.94851  0.5245251  16.73931
  25  20.04650  0.5072557  16.78093
  26  20.14871  0.5013264  16.78305
  27  20.28257  0.5036138  16.89089
  28  20.45060  0.4988594  16.89900
  29  20.54389  0.5105147  16.92002
  30  20.79567  0.5080200  17.12472
  31  20.96099  0.5014461  17.25705
  32  21.14524  0.4891512  17.23304
  33  21.38173  0.4875148  17.38980
  34  21.59260  0.4810615  17.43883
  35  21.83266  0.4707654  17.67392
  36  22.06004  0.4448406  17.74640
  37  22.34462  0.4236828  17.95419
  38  22.54304  0.3999950  18.11507
  39  22.61034  0.4147744  18.15091
  40  22.68049  0.4296545  18.23871

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was k = 8.

On sélectionnera

sel.k$bestTune
  k
8 8

plus proches voisins.