En primer lugar: por lo que entendí, los residuos de arranque funcionan de la siguiente manera:
- Ajustar modelo a datos
- Calcular los residuos
- Vuelva a muestrear los residuos y agréguelos a 1.
- Ajustar modelo al nuevo conjunto de datos de 3.
- Repita los
n
tiempos, pero siempre agregue los residuos muestreados al ajuste desde 1.
¿Es eso correcto hasta ahora?
Lo que quiero hacer es algo ligeramente diferente:
Quiero estimar la incertidumbre de parámetros y predicciones para un algoritmo que estima alguna variable ambiental.
Lo que tengo es una serie de tiempo libre de errores (de una simulación) de esa variable x_true
, a la que agrego algo de ruido, x_noise
para generar un conjunto de datos sintético x
. Luego trato de encontrar parámetros óptimos ajustando mi algoritmo con la suma de cuadrados sum((x_estimate - x_true)^2)
(! No x_estimate - x
!) Como una función objetivo. Para ver cómo funciona mi algoritmo y crear muestras de las distribuciones de mis parámetros, quiero volver a muestrear x_noise
, agregarlo x_true
, ajustar mi modelo nuevamente, enjuagar y repetir. ¿Es ese un enfoque válido para evaluar la incertidumbre de los parámetros? ¿Puedo interpretar los ajustes a los conjuntos de datos de bootstrap como incertidumbre de predicción, o tengo que seguir el procedimiento que publiqué anteriormente?
/ edit: Creo que realmente no he dejado claro lo que hace mi modelo. Piense en ello esencialmente como un método de eliminación de ruido. No es un modelo predictivo, es un algoritmo que intenta extraer la señal subyacente de una serie temporal ruidosa de datos ambientales.
/ edit ^ 2: Para los usuarios de MATLAB , escribí un ejemplo de regresión lineal rápido y sucio de lo que quiero decir.
Esto es lo que creo que es el arranque "ordinario" de residuos (corríjame si me equivoco): http://pastebin.com/C0CJp3d1
Esto es lo que quiero hacer: http://pastebin.com/mbapsz4c
fuente
Respuestas:
Aquí está el algoritmo general (semi-paramétrico-bootstrap) con más detalle:
el modelo:
y=xβ+ϵ
deja que sean los residuosϵ^
fuente
No estoy seguro de que mi comprensión sea correcta. Pero aquí está mi sugerencia para modificar su código ("arranque ordinario de residuos", líneas 28-34) en:
La idea es que cada vez que use residuos no de la primera ejecución, sino del ajuste previo de arranque. En cuanto a mí, todo lo demás parece ser válido.
Esta es una versión revisada que se ha verificado en MATLAB. Se han corregido dos errores.
fuente
Para ver cómo funciona un algoritmo en términos de precisión predictiva / error cuadrático medio, es probable que necesite el arranque de "optimismo" de Efron-Gong. Esto se implementa para facilitar su uso en el
rms
paquete R. Ver sus funcionesols
,validate.ols
,calibrate
.fuente