post list
QuantDare
categories
all

Neural Networks

alarije

all

Foreseeing the future: a user’s guide

Jose Leiva

all

Stochastic portfolio theory, revisited!

P. López

all

“Past performance is no guarantee of future results”, but helps a bit

ogonzalez

all

Playing with Prophet on Financial Time Series (Again)

rcobo

all

Interviewing prices: Don’t settle for less

jramos

all

The Simpson Paradox

kalinda

all

Seeing the market through the trees

xristica

all

Shift or Stick? Should we really ‘sell in May’?

jsanchezalmaraz

all

What to expect when you are the SPX

mrivera

all

K-Means in investment solutions: fact or fiction

T. Fuertes

all

Lévy Flights. Foraging in a Finance blog. Part II

mplanaslasa

all

How to… use bootstrapping in Portfolio Management

psanchezcri

all

What is the difference between Artificial Intelligence and Machine Learning?

ogonzalez

all

Playing with Prophet on Financial Time Series

rcobo

all

Prices Transformation Cheat Sheet

fjrodriguez2

all

Dual Momentum Analysis

J. González

all

Random forest: many are better than one

xristica

all

Non-parametric Estimation

T. Fuertes

all

Classification trees in MATLAB

xristica

all

Using Multidimensional Scaling on financial time series

rcobo

all

Applying Genetic Algorithms to define a Trading System

aparra

all

Graph theory: connections in the market

T. Fuertes

all

Lévy flights. Foraging in a finance blog

mplanaslasa

all

Data Cleansing & Data Transformation

psanchezcri

all

Principal Component Analysis

j3

all

Comparing ETF Sector Exposure Using Chord Diagrams

rcobo

all

Learning with kernels: an introductory approach

ogonzalez

all

SVM versus a monkey. Make your bets.

P. López

all

Clustering: “Two’s company, three’s a crowd”

libesa

all

Euro Stoxx Strategy with Machine Learning

fjrodriguez2

all

Visualizing Fixed Income ETFs with T-SNE

j3

all

Hierarchical clustering, using it to invest

T. Fuertes

all

Lasso applied in Portfolio Management

psanchezcri

all

Markov Switching Regimes say… bear or bullish?

mplanaslasa

all

Exploring Extreme Asset Returns

rcobo

all

Playing around with future contracts

J. González

all

“K-Means never fails”, they said…

fjrodriguez2

all

What is the difference between Bagging and Boosting?

xristica

all

BETA: Upside Downside

j3

all

Outliers: Looking For A Needle In A Haystack

T. Fuertes

all

Autoregressive model in S&P 500 and Euro Stoxx 50

psanchezcri

all

“Let’s make a deal”: from TV shows to identifying trends

mplanaslasa

all

Machine Learning: A Brief Breakdown

libesa

all

Approach to Dividend Adjustment Factor Calculation

J. González

all

Are Low-Volatility Stocks Expensive?

jsanchezalmaraz

all

Predict returns using historical patterns

fjrodriguez2

all

Dream team: Combining classifiers

xristica

all

Stock classification with ISOMAP

j3

all

Could the Stochastic Oscillator be a good way to earn money?

T. Fuertes

all

Central Limit Theorem: Visual demonstration

kalinda

all

Sir Bayes: all but not naïve!

mplanaslasa

all

Returns clustering with k-Means algorithm

psanchezcri

all

Correlation and Cointegration

j3

all

Momentum premium factor (II): Dual momentum

J. González

all

Dynamic Markowitz Efficient Frontier

plopezcasado

all

Confusion matrix & MCC statistic

mplanaslasa

all

Prices convolution, a practical approach

fuzzyperson

all

‘Sell in May and go away’…

jsanchezalmaraz

all

S&P 500 y Relative Strength Index II

Tech

all

Performance and correlated assets

T. Fuertes

all

Reproducing the S&P500 by clustering

fuzzyperson

all

Retrocesos y Extensiones de Fibonacci

fjrodriguez2

all

Size Effect Anomaly

T. Fuertes

all

Predicting Gold using Currencies

libesa

all

La Paradoja de Simpson

kalinda

all

Inverse ETFs versus short selling: a misleading equivalence

J. González

all

Random forest vs Simple tree

xristica

all

S&P 500 y Relative Strength Index

Tech

all

Efecto Herding

alarije

all

Cointegración: Seguimiento sobre cruces cointegrados

T. Fuertes

all

Seasonality systems

J. González

all

Una aproximación Risk Parity

mplanaslasa

all

Números de Fibonacci

fjrodriguez2

all

Using Decomposition to Improve Time Series Prediction

libesa

all

Las cadenas de Markov

j3

all

Clasificando el mercado mediante árboles de decisión

xristica

all

Momentum premium factor sobre S&P 500

J. González

all

Árboles de clasificación en Matlab

xristica

all

Fractales y series financieras II

Tech

all

Redes Neuronales II

alarije

all

El gestor vago o inteligente…

jsanchezalmaraz

all

In less of a Bayes haze…

libesa

all

Teoría de Valores Extremos II

kalinda

all

De Matlab a Octave

fuzzyperson

all

Cointegración

T. Fuertes

all

Cópulas: una alternativa en la medición de riesgos

mplanaslasa

all

¿Por qué usar rendimientos logarítmicos?

jsanchezalmaraz

all

Análisis de Componentes Principales

j3

all

Vecinos cercanos en una serie temporal

xristica

all

Redes Neuronales

alarije

all

Fuzzy Logic

fuzzyperson

all

El filtro de Kalman

mplanaslasa

all

Fractales y series financieras

Tech

all

In a Bayes haze…

libesa

all

Volatility of volatility. A new premium factor?

J. González

all

Caso Práctico: Multidimensional Scaling

rcobo

all

Teoría de Valores Extremos

kalinda

all

Estimación no paramétrica

2
Estimación no paramétrica

¿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!

Tweet about this on TwitterShare on LinkedInShare on FacebookShare on Google+Email this to someone

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