post list
QuantDare
categories
asset management

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

ogonzalez

asset management

Playing with Prophet on Financial Time Series (Again)

rcobo

asset management

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

jsanchezalmaraz

asset management

What to expect when you are the SPX

mrivera

asset management

K-Means in investment solutions: fact or fiction

T. Fuertes

asset management

How to… use bootstrapping in Portfolio Management

psanchezcri

asset management

Playing with Prophet on Financial Time Series

rcobo

asset management

Dual Momentum Analysis

J. González

asset management

Random forest: many is better than one

xristica

asset management

Using Multidimensional Scaling on financial time series

rcobo

asset management

Comparing ETF Sector Exposure Using Chord Diagrams

rcobo

asset management

Euro Stoxx Strategy with Machine Learning

fjrodriguez2

asset management

Hierarchical clustering, using it to invest

T. Fuertes

asset management

Lasso applied in Portfolio Management

psanchezcri

asset management

Markov Switching Regimes say… bear or bullish?

mplanaslasa

asset management

Exploring Extreme Asset Returns

rcobo

asset management

Playing around with future contracts

J. González

asset management

BETA: Upside Downside

j3

asset management

Approach to Dividend Adjustment Factor Calculation

J. González

asset management

Are Low-Volatility Stocks Expensive?

jsanchezalmaraz

asset management

Predict returns using historical patterns

fjrodriguez2

asset management

Dream team: Combining classifiers

xristica

asset management

Stock classification with ISOMAP

j3

asset management

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

T. Fuertes

asset management

Correlation and Cointegration

j3

asset management

Momentum premium factor (II): Dual momentum

J. González

asset management

Dynamic Markowitz Efficient Frontier

plopezcasado

asset management

‘Sell in May and go away’…

jsanchezalmaraz

asset management

S&P 500 y Relative Strength Index II

Tech

asset management

Performance and correlated assets

T. Fuertes

asset management

Reproducing the S&P500 by clustering

fuzzyperson

asset management

Size Effect Anomaly

T. Fuertes

asset management

Predicting Gold using Currencies

libesa

asset management

Inverse ETFs versus short selling: a misleading equivalence

J. González

asset management

S&P 500 y Relative Strength Index

Tech

asset management

Seasonality systems

J. González

asset management

Una aproximación Risk Parity

mplanaslasa

asset management

Using Decomposition to Improve Time Series Prediction

libesa

asset management

Las cadenas de Markov

j3

asset management

Momentum premium factor sobre S&P 500

J. González

asset management

Fractales y series financieras II

Tech

asset management

El gestor vago o inteligente…

jsanchezalmaraz

asset management

¿Por qué usar rendimientos logarítmicos?

jsanchezalmaraz

asset management

El filtro de Kalman

mplanaslasa

asset management

Fractales y series financieras

Tech

asset management

Volatility of volatility. A new premium factor?

J. González

asset management

Fuzzy Logic

fuzzyperson

30/03/2014

No Comments
Fuzzy Logic

En este artículo sentaremos las bases para explorar la toma de decisiones de inversión aplicando mecanismos de la lógica difusa, el objetivo es comprender mejor qué es la lógica difusa.

Entenderlo nos sirve para:

  • Buscar una mejor aproximación a la toma de decisiones, en particular decisiones financieras.
  • Abstraer mecanismos de toma de decisiones más similares a la humana (que tengan en cuenta información difusa, veremos esto más adelante).
  • Tomar decisiones en entornos cambiantes con reglas de decisión poco claras y que pueden cambiar en el tiempo.
  • Determinar en qué, cuánto y cuándo invertir.

Primero debemos definir qué es la lógica difusa y qué ventajas aporta frente a la lógica matemática clásica. Para ello empezaremos viendo como trabaja la lógica clásica. Ésta define 2 valores de verdad (cierto Τ / falso ⊥) y establece un conjunto de operaciones (unión, intersección, diferencia, etc.) para operar con variables lógicas que pueden ciertas o falsas.

Veamos un ejemplo:

Sea H la altura de una persona en cm, podemos definir 2 conjuntos: H>175 y el conjunto H<175. Hemos definido una variable bivalente X: X→ H>175, entonces: ∀ persona, ∃ X  X ∈ (T ⋃ ⊥) , así dado un conjunto de persona tenemos el conjunto de X y podemos hablar de personas altas o no en función de si X es cierta o falsa. Sin embargo, no siempre queda claro cuando una persona es alta o no, depende de con qué población se la compare. Una persona de 180 cm será alta según el ejemplo anterior, pero si todas las otras personas midieran 200 cm entonces la consideraríamos baja.

La lógica difusa intenta reducir la diferencia entre el mecanismo natural de pensamiento del hombre (donde la persona es alta o baja según con qué se la compare) y la lógica clásica (donde la persona es alta si X es cierto, es decir la persona es alta si H > 175), para conseguir esto se basa en un mecanismo que se denomina fuzzification.

Teoría básica

La idea tras la lógica difusa no es determinar si la variable X es cierta o falsa, sino que se pretende determinar en qué grado ∈ [0,1] es cierta. A este grado de certeza le denominamos grado de pertenencia, aunque en algunos textos se le denomina posibilidad y en este caso se suele hacer especial hincapié en la diferencia entre probabilidad (medida empírica de la frecuencia con que se repite una observación en un conjunto de medidas) y posibilidad (grado de pertenencia de una observación a un conjunto difuso), también se habla de nivel de confianza ya que es el grado en el que confiamos que la observación pertenezca al conjunto definido. El grado de pertenencia se asigna mediante la función de pertenencia (f : X → R) , por ejemplo:

Dada la siguiente función de pertenencia al conjunto de personas altas y una persona con una altura de 180 cm, considerando que personas por encima de 200 cm tienen un grado de pertenencia de 1 (son altas sin duda) y por debajo de 120 cm el grado de pertenencia es 0 (no son altas sin duda), tenemos que a = 120 y b = 200 y con x ∈ (100,220), entonces:

smf

Esa persona tendrá una posibilidad de pertenencia al conjunto de personas altas de 0.875.

El proceso de fuzzification consiste en determinar la posibilidad de pertenencia al conjunto difuso. Podemos definir entonces el conjunto difuso como el conjunto de observaciones sobre las que se aplica la misma función de pertenencia, este concepto también aparece en los textos como número difuso, y al igual que en la lógica clásica, el conjunto lleva asociada un álgebra que nos permite definir ciertas operaciones entre conjuntos difusos, estas operaciones son:

Classic Fuzzy
OR: A ⋃ B Max(A,B)
AND: A ⋂ B Min(A,B)
NOT: ¬ A 1-A
logic_graphs_2.fw

Con esto ya tenemos las herramientas básicas para empezar a trabajar con lógica difusa, por un lado el proceso de fuzzification, asignación de un grado de pertenencia de una observación al conjunto difuso, y por otro lado las operaciones elementales con las que podremos formular enunciados lógicos más complejos.

Razonamiento difuso

El siguiente paso sería buscar procedimientos para combinar los grados de confianza de distintas variables observadas y tomar una decisión en base a esto de forma similar a lo que se conoce como razonamiento lógico. Un razonamiento lógico combina 2 premisas para obtener una conclusión, de la siguiente forma:  A · B → C, de igual forma podemos combinar 2 números difusos para obtener una conclusión: Θ · Φ → Ψ.

Mientras que en el caso de la lógica clásica se combinaban los valores de verdad para obtener la conclusión, en la lógica difusa se combinan los grados de pertenencia para llegar a la conclusión que a su vez puede ser un conjunto difuso o un valor discreto. Este proceso se denomina sistema de inferencia.

Sin embargo si la conclusión es a su vez un conjunto difuso, el sistema de inferencia se vuelve más complejo que el razonamiento clásico. Planteemos el siguiente caso: ¿Cuánta propina dejar en un restaurante? la propina puede ser poco o muy generosa, según la generosidad, esta variable es un conjunto difuso. Por otro lado, nos basaremos en la calidad del servicio y de la comida para determinar cuánto dejaremos de propina, la calidad de ambos conceptos son también conjuntos difusos, puede ser mucha calidad o poca calidad, en definitiva tenemos las siguientes variables:

variables

variables2

El razonamiento tendría la siguiente forma: servicio · comida  propina, así para un servicio y una comida dados podemos calcular sus grados de pertenencia a sus respectivos conjuntos, como vemos a continuación:

En este caso para combinar ambos grados de pertenencia escogeremos la operación OR (max(0.0,0.7)), es decir en este caso 0.7. Sin embargo, esto no resuelve el problema pues la variable de salida es a su vez un conjunto difuso y tenemos que decidir una cantidad concreta de propina a dejar.

Esto nos lleva a definir 2 etapas más en el razonamiento, la implicación y la defuzzification.

implication

La etapa de implicación consiste en combinar las premisas y el conjunto de salida, en nuestro ejemplo, teníamos: servicio · comida  propina, tras la implicación: (servicio · comida ) · propina. Como vemos el resultado de las premisas se combina con el de la conclusión utilizando operaciones de la lógica difusa (OR, AND, NOT), dando lugar al siguiente conjunto difuso:

El siguiente paso es la deffuzification, consiste en tomar el valor más representativo del conjunto difuso de salida, existen varias formas de proceder, desde elegir el centroide (centro de masas del área del conjunto difuso), pasando por tomar el primer, el último o el punto intermedio máximo de la función de pertenencia de salida, etc. En definitiva consiste en tomar el valor que mayor posibilidad tiene o más representativo resulta del conjunto difuso obtenido tras la implicación.

El funcionamiento del razonamiento difuso recuerda al de una red neuronal en el sentido que el sistema recibe por entrada las observaciones de las premisas sobre sus conjuntos difusos y las combina para obtener una salida, por eso este sistema se denomina también ANFIS (Adaptative Neuro-Fuzzy Inference System) se suele hablar de adaptative porque en la práctica las funciones de pertenencia son revisadas a lo largo del tiempo y corregidas si es necesario, así como de neuro ya que el sistema combina funciones de entrada en una red como si de una red de neuronas se tratara.

En la práctica existen 2 versiones de ANFIS ampliamente extendidas, la versión de Mamdani y la de Sugeno. La descripción que hemos dado hasta del proceso de razonamiento se corresponde con la versión de Mamdani. La versión de Sugeno es similar, pero en este caso se prescinde la implicación y la deffuzification ya que la variables de salida no posee un conjunto difuso conocido. En este caso la salida es una combinación lineal de los grados de pertenencia de las premisas.

Aplicando uno de los dos procesos (bien la versión de Mamdani o la de Sugeno) podemos combinar un número indeterminado de variables difusas para tomar una decisión.

Aplicaciones prácticas

Una vez introducidos los mecanismos de la lógica difusa, estamos en posición de aplicarlos a la toma de decisiones financieras. El primer aspecto en que aplicaremos estos procesos es en la evaluación de indicadores técnicos para invertir en un activo concreto. En una primera aproximación lo aplicaremos sobre un par de medias móviles de distinto plazo de una serie, simulando un modelos técnico de cruces de medias.

Las reglas de operación del modelo son sencillas:

  • Si la media movil corta > media móvil larga  invertimos 100%
  • Si la media movil corta < media móvil larga  invertimos 0%

Como vemos el modelo se basa en la posición relativa de ambas medias para tomar una decisión. En esta primera aproximación tomaremos la distancia de ambas medias como un conjunto difuso, obteniendo las siguientes reglas difusas:

  • Si distancia muy alta  invertimos mucho
  • Si distancia alta o distancia baja  invertimos medio
  • Si distancia muy baja  invertimos poco

En próximas entradas analizaremos con mayor detalle los resultados de este método así como otras aplicaciones posibles.

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

add a comment

wpDiscuz