all

Estimación no paramétrica

T. Fuertes

28/03/2014

2

¿Cómo predecir el rendimiento futuro de una serie? Muchas series contienen suficiente información en sus datos pasados como para poder predecir el siguiente dato, pero ¿cuánta información es aprovechable y qué datos son los mejores para predecir?

¿Solo con los datos inmediatamente anteriores es suficiente? ¿Cuánta información podemos extraer de los datos pasados?

Una vez contestadas todas estas preguntas debemos plantear qué modelo es el que mejor se ajusta a nuestros datos, y después estimar sus parámetros para poder predecir. Es decir, cada vez añadimos más pasos hasta llegar a lo que nos interesa: la predicción. ¿Por qué no evitar incluir la estimación de parámetros en la complicada tarea en sí de predecir? Además, al estimar los parámetros del modelo corremos el riesgo de sobreajuste a la historia. Una alternativa: estimación no paramétrica. La idea general de la estimación no paramétrica es usar la información del pasado que más se parezca a la actual sin establecer ningún modelo concreto de predicción.

bloque_referencia

Supongamos que tenemos una serie con un grado de autorregresión de 3, es decir, las tres observaciones anteriores a hoy tienen la información suficiente como para predecir el dato actual. A este conjunto de observaciones le llamamos bloque de referencia. Ahora, comparamos cuánto se parecen los bloques de tres observaciones a lo largo de la historia con el bloque de referencia. Consideramos que cuanto más se parezcan los bloques más se van a parecer el dato siguiente a cada bloque.

¿Cómo decidimos cuánto de parecidos son los bloques?

Ésta es la decisión más importante. Si le pedimos que se parezcan mucho, va a ser difícil encontrar bloques parecidos al de referencia, y si le damos demasiada holgura todos los bloques se considerarán parecidos. Necesitamos encontrar un equilibrio.

Para establecer el equilibrio se usa un parámetro llamado ventana de suavizado, h. Nos da unas bandas alrededor del bloque de referencia. Si un bloque a comparar está dentro de esas bandas se tendrá en cuenta en la predicción y si no está se obviará. En el ejemplo anterior, vemos que hay dos bloques parecidos al bloque de referencia, los dos encerrados en las bandas que proporciona la ventana de suavizado, así que estos dos bloques se tendrán en cuenta en la predicción del siguiente dato de la serie.

ventana_suavizado

La elección de este parámetro es muy importante para la estimación y existen varios métodos para obtenerlos: validación cruzada o métodos empíricos. Pero existe una aproximación bastante buena es:

h=σn·n-1/(k+4)   

donde σn es la desviación típica de la serie, y n el número de datos de la serie.

¿Cómo predecimos?

Una vez determinado cómo consideramos si un bloque es parecido al de referencia, nos fijamos en el dato que sigue a cada bloque y hacemos una media ponderada. Cuanto más se parezcan los bloques más peso le daremos a la observación siguiente. Los pesos los determinamos con la función de suavizado o kernel. Hay varios tipos de funciones (Uniforme, Gaussiano, Epanechnikov, Dirichlet,…), y no se encuentran diferencias en las predicciones al cambiar de función. Elegimos el kernel gaussiano por ser el más popular.

fun_gaussiano

Necesitaremos la versión k-dimensional de la función, donde k es el número de retardos establecidos para nuestra serie, es decir, el tamaño de los bloques. Cuanto más se parezcan lo bloques mayor será el peso asignado al dato.

Ejemplo práctico

Tomamos la serie del oro en rendimientos semanales. Tomamos rendimientos para conseguir datos estacionarios, es decir, con media y varianza constante en el tiempo. Consideramos 12 retardos, es decir, vamos a tomar bloques de dimensión 12.

Utilizando la aproximación que hemos establecido antes para la ventana de suavizado obtenemos un valor de h=0.0176.

Nos planteamos si es necesario usar toda la muestra disponible hasta el momento, o si por el contrario, existe un número óptimo de bloques hacia atrás sobre los que basar nuestra predicción. Vemos que las predicciones que hacemos no son muy buenas (entorno al 50% de acierto en el signo del rendimiento), pero encontramos una cantidad de periodos óptima entre el porcentaje de veces que acertamos el signo del rendimiento y el error de la predicción (el acierto debe ser el mayor posible y el error lo más pequeño).

aciertoECM2

El mayor equilibrio se da para 261 bloques, con un acierto del 52% y un error menor que 0.0009. Las estimaciones obtenidas con 261 bloques y con toda la muestra hacia atrás son muy parecidas, pero vemos una relación un poco superior usando 261 bloques.

predicción

Read me in English!

add a comment

Me ha parecido un tema muy interesante y bien explicado. Los gráficos y el ejemplo práctico han sido muy eficaces en apoyar el mensaje. Tengo dos dudas, 1) si has usado el logaritmo de la serie de oro en la predicción y 2) los detalles en el cálculo de pesos. Y, ¿crees que sería interesante probarlo con otros valores de h? Gracias!

Muchas gracias por el comentario. En cuanto a las dudas que me planteas. 1) efectivamente he usado rendimientos logarítmicos; 2) para calcular los pesos de cada dato hacemos una ponderación en función del valor de la función de suavizado, cuanto más cercanos son los bloques (variable independiente de la función) mayor valor obtenemos con esta función y por tanto mayor peso se le asigna al dato; 3) sería interesante ver cómo varían los resultados al variar el valor de h, ya que es el parámetro más importante de la estimación, además ahora estoy usando toda la muestra para determinar el… Read more »
wpDiscuz