18 votos

Arranque de residuos: Estoy haciendo lo correcto?

Primero de todo: De lo que he entendido, el arranque de residuos funciona de la siguiente manera:

  1. Ajuste del modelo a los datos
  2. Calcular los residuos
  3. Volver a muestrear los residuos y agregarlos a 1.
  4. Modelo de ajuste para el nuevo conjunto de datos de 3.
  5. Repita n de veces, pero siempre agregar el remuestreada residuos para el ajuste a partir del 1 de.

Es eso correcto?


Lo que quiero hacer es algo ligeramente diferente:

Quiero estimación de parámetros y la predicción de la incertidumbre para un algoritmo que estima alguna variable ambiental.

Lo que tengo es un error-libre de series de tiempo (a partir de una simulación) de esa variable, x_true, a la que añado un poco de ruido, x_noise, con el fin de generar una síntesis de conjunto de datos x. Yo, a continuación, tratar de encontrar los parámetros óptimos con el montaje de mi algoritmo con la suma de los cuadrados sum((x_estimate - x_true)^2) (! no x_estimate - x !) como función objetivo. Con el fin de ver cómo mi algoritmo realiza y para crear muestras de mi parámetros de las distribuciones, quiero volver a muestrear x_noise, agregarlo a x_true, que se adapte a mi modelo nuevo, enjuague y repita. Es que un enfoque válido para evaluar la incertidumbre de los parámetros? Puedo interpretar los ajusta a las bootstrap conjuntos de datos y de predicción de la incertidumbre, o ¿tengo que seguir el procedimiento que he publicado anteriormente?

Lo siento si no soy muy claro con la terminología, el inglés no es mi primera lengua y yo soy bastante nuevo en esto.

/edit: creo que no he dejado claro lo que mi modelo no. Piense en ello como algo esencialmente como un de-noising método. No es un modelo de predicción, es un algoritmo que intenta extraer el subyacente de la señal de un ruidoso de series de tiempo de datos ambientales.

/edit^2: Para el MATLAB-los Usuarios por ahí, escribí algunas rápida y sucia de regresión lineal ejemplo de lo que quiero decir.

Esto es lo que yo creo "ordinario" bootstrapping de residuos es (por favor corríjanme si estoy equivocado): http://pastebin.com/C0CJp3d1

Esto es lo que quiero hacer: http://pastebin.com/mbapsz4c

15voto

Oscar Del Ben Puntos 171

Aquí está el general (semi-paramétrico de bootstrap) algoritmo en más detalle:

$\text{B}$ = número de zapatos

el modelo:
$y = x\beta + \epsilon$

vamos a e_hat ser los residuos

  1. Realizar la regresión y obtener el estimador(s) $\hat\beta$ y los residuos de $\hat\epsilon$.
  2. Volver a muestrear los residuos con reemplazo y obtener el bootstrap residual de vectores $\hat\epsilon\text{B}$.
  3. Obtener el bootstrap de la variable dependiente multiplicando el estimador(s) de la (1) con el original de los regresores y la adición de la bootstrapped residual: $y_B = x\hat\beta + \hat\epsilon\text{B}$.
  4. Realizar la regresión con el bootstrap de las variables dependientes y el original de regresores, se obtiene el estimador bootstrap. La regresión $y_B$$x$, esto le da a $\hat\beta\text{B}$.
  5. Repita el B-veces yendo de nuevo a (2).

2voto

dan90266 Puntos 609

Para ver cómo un algoritmo realiza en términos de la precisión predictiva/error cuadrático medio, es probable que necesite la Efron-Gong "optimismo" bootstrap. Esto se lleva a cabo para el uso fácil en el R rms paquete. Vea sus funciones ols, validate.ols, calibrate.

1voto

mathgirl Puntos 31

No estoy seguro de que mi interpretación es correcta. Pero aquí está mi sugerencia para modificar el código ("corriente de arranque de los residuos", líneas 28-34) en:

for i = 2:n_boot  
x_res_boot = x_residuals( randi(n_data,n_data,1) );  
x_boot = x_res_boot+ x_best_fit;  
p_est(:, i) = polyfit( t, x_boot, 1 );  
x_best_fit2 = polyval( p_est(:, i), t );  
x_residuals = x_best_fit2 - x_boot;
x_best_fit=x_best_fit2;
end  

La idea es que cada vez que usted está utilizando residuos no desde la primera carrera, pero a partir de la anterior bootstrap ajuste. En cuanto a mí, todos los demás parece ser válida.

Esta es la versión revisada que se ha comprobado en MATLAB. Dos errores han sido corregidos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X