J'ai un vecteur X
d' N=900
observations qui est mieux modélisé par un estimateur de densité de bande passante globale (les modèles paramétriques, y compris les modèles de mélange dynamique, se sont avérés ne pas être de bons ajustements):
Maintenant, je veux simuler à partir de ce KDE. Je sais que cela peut être réalisé par bootstrap.
Dans R, tout se résume à cette simple ligne de code (qui est presque un pseudo-code): x.sim = mean(X) + { sample(X, replace = TRUE) - mean(X) + bw * rnorm(N) } / sqrt{ 1 + bw^2 * varkern/var(X) }
où le bootstrap lissé avec correction de variance est implémenté et varkern
est la variance de la fonction de noyau sélectionnée (par exemple, 1 pour un noyau gaussien ).
Ce que nous obtenons avec 500 répétitions est le suivant:
Cela fonctionne, mais j'ai du mal à comprendre comment mélanger les observations (avec un peu de bruit supplémentaire) est la même chose que simuler à partir d'une distribution de probabilité? (la distribution étant ici le KDE), comme avec le Monte Carlo standard. De plus, l'amorçage est-il le seul moyen de simuler à partir d'un KDE?
EDIT: veuillez consulter ma réponse ci-dessous pour plus d'informations sur le bootstrap lissé avec correction de variance.
Réponses:
Voici un algorithme pour échantillonner à partir d'un mélange arbitrairef(x)=1N∑Ni=1fi(x) :
Il doit être clair que cela produit un échantillon exact.
Une estimation de la densité du noyau gaussien est un mélange1N∑Ni=1N(x;xi,h2) . Vous pouvez donc prendre un échantillon de tailleN en choisissant un tas de xi s et en ajoutant un bruit normal avec une moyenne et une variance nulles h2 à elle.
Votre extrait de code sélectionne un groupe dexi s, mais il fait quelque chose de légèrement différent:
Nous pouvons voir que la valeur attendue d'un échantillon selon cette procédure est
Je ne pense pas que la distribution d'échantillonnage soit la même, cependant.
la source
Pour éliminer toute confusion quant à savoir s'il est possible ou non de tirer des valeurs de KDE en utilisant une approche bootstrap, il est possible . Le bootstrap ne se limite pas à estimer les intervalles de variabilité.
Ci-dessous, un bootstrap lissé avec algorithme de correction de variance qui génère des valeurs synthétiquesY′is d'un KDE K de fenêtre h . Il provient de cet ouvrage de Silverman, voir page 25 de ce document , section 6.4.1 "Simulation à partir d'estimations de densité". Comme indiqué dans le livre, cet algorithme permet de trouver des réalisations indépendantes à partir d'un KDEy^ , sans exiger de savoir y^ explicitement:
Pour générer une valeur synthétiqueY (à partir d'un ensemble de formation {X1,...Xn} ):
OùX¯ et σX2 sont la moyenne et la variance de l'échantillon, et σK2 est la variance de K (c.-à-d. 1 pour un gaussien K ). Comme expliqué par Dougal, la valeur attendue des réalisations estX¯ . Grâce à la correction de variance, la variance estσX2 (d'autre part, le bootstrap lissé sans correction de variance, où l'étape 3 est simplement Y=Xi+h.ϵ , gonfle la variance).
L'extrait de code R dans ma question ci-dessus suit strictement cet algorithme.
Les avantages du bootstrap lissé par rapport au bootstrap sont:
la source