Tout d'abord: D'après ce que j'ai compris, les résidus d'amorçage fonctionnent comme suit:
- Adapter le modèle aux données
- Calculez les résidus
- Rééchantillonnez les résidus et ajoutez-les à 1.
- Ajuster le modèle au nouvel ensemble de données à partir de 3.
- Répétez les
n
temps, mais ajoutez toujours les résidus rééchantillonnés à l'ajustement à partir de 1.
Est-ce correct jusqu'à présent?
Ce que je veux faire, c'est quelque chose de légèrement différent:
Je veux estimer l'incertitude des paramètres et des prévisions pour un algorithme qui estime une variable environnementale.
Ce que j'ai, c'est une série chronologique sans erreur (à partir d'une simulation) de cette variable x_true
, à laquelle j'ajoute du bruit, x_noise
afin de générer un ensemble de données synthétique x
. J'essaie ensuite de trouver des paramètres optimaux en ajustant mon algorithme avec la somme des carrés sum((x_estimate - x_true)^2)
(! Pas x_estimate - x
!) Comme fonction objective. Afin de voir comment mon algorithme fonctionne et de créer des échantillons de la distribution de mes paramètres, je veux rééchantillonner x_noise
, l'ajouter x_true
, ajuster à nouveau mon modèle, rincer et répéter. Est-ce une approche valable pour évaluer l'incertitude des paramètres? Puis-je interpréter les ajustements aux ensembles de données amorcés comme une incertitude de prédiction, ou dois-je suivre la procédure que j'ai publiée ci-dessus?
/ edit: Je pense que je n'ai pas vraiment précisé ce que fait mon modèle. Considérez-le comme essentiellement une méthode de débruitage. Ce n'est pas un modèle prédictif, c'est un algorithme qui essaie d'extraire le signal sous-jacent d'une série chronologique bruyante de données environnementales.
/ edit ^ 2: Pour les utilisateurs de MATLAB , j'ai écrit un exemple de régression linéaire rapide et sale de ce que je veux dire.
C'est ce que je pense être l'amorçage "ordinaire" des résidus (veuillez me corriger si je me trompe): http://pastebin.com/C0CJp3d1
Voici ce que je veux faire: http://pastebin.com/mbapsz4c
la source
Réponses:
Voici l'algorithme général (semi-paramétrique-bootstrap) plus en détail:
= nombre de bootstrapsB
le modèle:
y= x β+ ϵ
laissez ε être les résidusϵ^
la source
Je ne suis pas sûr que ma compréhension soit correcte. Mais voici ma suggestion de modifier votre code ("bootstrapping ordinaire des résidus", lignes 28-34) en:
L'idée est qu'à chaque fois que vous utilisez des résidus non pas de la première exécution, mais de l'ajustement bootstrap précédent. Quant à moi, tous les autres semblent valables.
Il s'agit d'une version révisée qui a été vérifiée dans MATLAB. Deux erreurs ont été corrigées.
la source
Pour voir comment un algorithme fonctionne en termes de précision prédictive / erreur quadratique moyenne, vous avez probablement besoin du bootstrap "optimisme" Efron-Gong. Ceci est implémenté pour une utilisation facile dans le
rms
package R. Voir ses fonctionsols
,validate.ols
,calibrate
.la source