Existe-t-il une bande passante optimale pour un estimateur de densité de noyau de dérivés?


14

J'ai besoin d'estimer la fonction de densité sur la base d'un ensemble d'observations à l'aide de l'estimateur de densité du noyau. Sur la base du même ensemble d'observations, j'ai également besoin d'estimer les première et deuxième dérivées de la densité en utilisant les dérivées de l'estimateur de densité du noyau. La bande passante aura certainement un grand effet sur le résultat final.

Tout d'abord, je sais qu'il existe quelques fonctions R qui donnent la bande passante de KDE. Je ne sais pas lequel est le plus préféré. Quelqu'un peut-il recommander une de ces fonctions R pour la bande passante de KDE?

Deuxièmement, pour le dérivé de KDE, dois-je choisir la même bande passante?


Pour une densité, le choix de la bande passante est toujours quelque peu subjectif. Il s'agit de ce qui est trop étroit et provoque donc une variation de la courbe qui suit essentiellement le bruit vs trop large où la courbe est trop lisse et manque certaines caractéristiques réelles de la courbe. Mais vous estimez la densité pour découvrir la forme. Il n'est donc pas facile de savoir dans quelle mesure l'estimation doit être fluide. Pour les dérivés, je pense que cela dépend de la caractéristique du dérivé que vous souhaitez connaître.
Michael R. Chernick

Réponses:


15

La largeur de bande optimale pour l'estimation dérivée sera différente de la largeur de bande pour l'estimation de densité. En général, chaque caractéristique d'une densité a son propre sélecteur de bande passante optimal.

Si votre objectif est de minimiser l'erreur quadratique moyenne intégrée (qui est le critère habituel), cela n'a rien de subjectif. Il s'agit de dériver la valeur qui minimise le critère. Les équations sont données dans la section 2.10 de Hansen (2009) .

La partie délicate est que la bande passante optimale est fonction de la densité elle-même, donc cette solution n'est pas directement utile. Il existe un certain nombre de méthodes pour tenter de résoudre ce problème. Celles-ci se rapprochent généralement de certaines fonctionnelles de la densité en utilisant des approximations normales. (Remarque: il n'y a pas d'hypothèse que la densité elle-même est normale. L'hypothèse est que certaines fonctionnelles de la densité peuvent être obtenues en supposant la normalité.)

L'endroit où les approximations sont imposées détermine la qualité du sélecteur de bande passante. L'approche la plus grossière est appelée "règle de référence normale" qui impose l'approximation à un niveau élevé. La fin de la section 2.10 dans Hansen (2009) donne la formule utilisant cette approche. Cette approche est implémentée dans la hns()fonction du kspackage sur CRAN. C'est probablement le meilleur que vous obtiendrez si vous ne voulez pas écrire votre propre code. Vous pouvez donc estimer la dérivée d'une densité comme suit (en utilisant ks):

library(ks)
h <- hns(x,deriv.order=1)
den <- kdde(x, h=h, deriv.order=1)

Une meilleure approche, généralement connue sous le nom de sélecteur "plug-in direct", impose l'approximation à un niveau inférieur. Pour une estimation droite de la densité, il s'agit de la méthode Sheather-Jones, implémentée dans R using density(x,bw="SJ"). Cependant, je ne pense pas qu'il existe une fonction similaire disponible dans un package R pour l'estimation des dérivés.

Plutôt que d'utiliser une estimation directe du noyau, vous pourriez être mieux avec un estimateur polynomial local. Cela peut être fait en utilisant la locpoly()fonction du kspackage dans R. Encore une fois, aucune sélection de bande passante optimale n'est implémentée, mais le biais sera plus petit que pour les estimateurs du noyau. par exemple,

den2 <- locpoly(x, bandwidth=?, drv=1) # Need to guess a sensible bandwidth

Merci mille fois, Rob. J'utiliserai probablement la bande passante SJ pour l'estimation de la densité.
user13154

Pour l'estimation dérivée, si j'utilise h <- hns (x); den <- kdde (x, h = h, dérivé.order = 1), est h la bande passante optimale utilisée pour l'estimation. Je pose cette question parce que h <- hns (x) est choisi sans spécifier l'ordre dérivé. Merci.
user13154

J'ai vérifié la formule donnée à la fin de la section 2.10 dans Hansen (2009). Il semble que la bande passante dépend de l'ordre de la dérivée, disons rème dérivée. h <- hns (x) ne semble pas dépendre du r.
user13154

Je viens de découvrir que la fonction hns a un argument dériv.order où je peux spécifier l'ordre des dérivées. Merci encore beaucoup, Rob.
user13154

Pardon. J'ai laissé ça de côté. Maintenant corrigé.
Rob Hyndman
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.