Este documento presenta un trabajo final sobre la aplicación de lógica multivaluada para resolver problemas de inversión económica usando el software Matlab. Describe brevemente la lógica multivaluada y presenta un problema de inversión con variables de entrada como el nivel de dinero, horizonte de tiempo, nivel de riesgo y tipo de inversor, y una variable de salida de asesoramiento. Luego define term sets para cada variable y establece reglas para determinar el asesoramiento basado en los valores de entrada.
1. INTELIGENCIA ARTIFICIAL
Trabajo Final
APLICACIÓN DE LÓGICA MULTIVALUADA A
PROBLEMAS DE INVERSION
(Economía)
Asesoramiento para Inversores
[ºC]
Profesores:
Ing. Mario Figueroa
Ing. Pablo Rovarini
Alumnos:
José Daniel Muccela
Comisión: 5 k 2
Año 2008
Facultad Regional Tucumán
Universidad Tecnológica Nacional
2. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Trabajo Práctico Final – Asesoramiento para Inversores
Desarrollo
En el presente trabajo se tratará el tema de la lógica multivaluada (lógica
fuzzy) como solución alternativa para resolver problemas de inversión
económica. Para su desarrollo se escogió como software de soporte a la
aplicación Matlab. Se dará una breve reseña sobre el tema de la lógica
multivaluada, presentación del problema de la inversión, definición del
problema y sus variables y finalmente el uso de Matlab y como determinar la
solución con el sistema desarrollado.
Sobre la lógica multivaluada (lógica fuzzy):
Primeramente diremos que la lógica multivaluada surge como resultado
del planteamiento de cómo resolver aquellos problemas que pueden tener más
de dos posibilidades de solución (si-no, verdadero-falso), la cual se conoce
como lógica bi-valuada. De esta manera se pueden tener entonces más
posibilidades de solución. Por ejemplo, si hacemos referencia al estado del
tiempo, podríamos decir que el tiempo esta frío, muy frío, caluroso, muy
caluroso o normal. A estas posibilidades se las agrupa a un solo conjunto que
las contiene y se conoce con el nombre de Term-Set. Cada posibilidad es
entonces “un término”.
La utilización de este tipo de lógica es útil especialmente en aquellos
casos en que no se conoce con certeza un valor y su determinación pueda
llegar a prestarse a confusiones. Nuestro cerebro funciona de esta manera.
Así, cuando nos preguntan si estudiamos para el examen, respondemos por
ejemplo: “muy poco”. El conjunto completo (Term-set) de valores para esta
situación podría ser: Nada, Muy poco, Normal, Mucho, Todo.
Cabe decir que un term-set completo se aplica a cada variable
interviniente en el problema. Para cada variable se define un term-set. Tanto
para las variables de entrada como la o las de salida.
Los valores o términos correspondientes a los term-sets de las variables
de entrada nos servirán luego para combinarlos con los de otras variables de
entrada y asi poder determinar una solución al problema. Esta combinación se
logra mediante la aplicación de reglas de inferencia, donde se especifica que
1
UTN FRT
3. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
de acuerdo a determinados valores de entrada se obtendrá una salida
determinada.
Las reglas están compuestas de un antecedente y un consecuente. El
antecedente es el formado por los valores de los term-set de las variables de
entrada y el consecuente son los valores del term-set de la variable de salida.
En el desarrollo del trabajo se explica con más detalle el uso de Matlab
para el palnteo y resolución del problema, la definición de las variables, sus
term-sets, las reglas de decisión y como se determina el resultado.
Sobre el problema de la inversión:
El problema que se presenta en este trabajo es de suma importancia y
no pierde actualidad y nos referimos al tema de la Inversión. Inversión en
términos de economía.
La inversión, es el flujo de producto de un período dado que se usa para
mantener o incrementar el stock de capital de la economía. El inversionista, es
quien coloca su dinero en un título valor o alguna alternativa que le genere un
rendimiento futuro, ya sea una persona o una sociedad. La inversión es
cualquier sacrificio de recursos hoy, con la esperanza de recibir algún beneficio
en el futuro.
La definición de cuáles son los factores determinantes del nivel de
inversión es una de las cuestiones más polémicas de la economía. Para los
fines del trabajo consideraremos los siguientes factores: horizonte de tiempo
considerado, nivel de dinero, nivel de riesgo y al tipo de inversor.
En una situación normal de la economía se pueden presentar ciertas
situaciones que le puedan dar al inversor la pauta de cómo invertir. La idea que
acerca este trabajo consiste en acercar a este inversor una serie de consejos o
asesoramiento (valor de la variable de salida) a partir de ciertas situaciones
(valores de las variables de entrada).
Vamos utilizar 5 variables que son los parámetros a considerar para el
desarrollo del modelo, de las cuáles 4 de ellas serán se corresponden con
parámetros de entrada al problema y aportan datos para finalmente asesorear
al inversor sobre que camino seguir. La variable restante se corresponde con la
salida y es la que contendrá la solución encontrada luego de una serie de
cálculos con los parámetros de entrada.
2
UTN FRT
4. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Descripción de las Variables:
Variables de Entrada:
• nivel_dinero: Para esta variable consideramos 5 niveles o estados
posibles, los cuales corresponden al nivel de dinero que posee el inversor.
• horizonte_tiempo: Esta variable hace referencia al tiempo que el inversor
considera para efectuar la inversión.
• nivel_riesgo: Hace referencia al riesgo que el inversor es capaz de
soportar por una inversión que decida realizar. El nivel de riesgo de un inversor
tiene relación directa con el tipo de inversor.
• tipo_inversor: Se refiere al perfil del inversor. Hay inversores que poseen
más experiencia y por lo tanto están dispuestos a arriesgar más como se dijo
en el párrafo anterior. Lo contrario sucede con el que tiene poca experiencia
financiera. Encontramos útil encuadrar el perfil del inversor mediante cinco
tipos posibles como se verá más adelante.
Variables de Salida:
• asesoramiento: esta variable se corresponde con el consejo que se da al
inversor de acuerdo al suceso de los valores de las variables de entrada.
Consideramos que el nombre “asesoramiento” para la variable de salida es el
más adecuado ya que en la jerga financiera es el término que se utiliza. De
aquí se desprende que el “Asesor” Financiero da consejos al Inversor.
En este momento ya estamos en condiciones de presentar el diseño del
sistema.
Diseño del Sistema:
Variables del problema:
Variables de entrada: Variable de salida:
D (nivel_dinero) A (asesoramiento)
T (horizonte_tiempo)
R (nivel_riesgo)
I (tipo_inversor)
3
UTN FRT
5. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Esquemáticamente el modelo quedaría como se muestra en la siguiente
figura:
D
Sistema Experto
T Fuzzy
A
R
Sistema de
I Inversión
Ahora definiremos los Term-Set para cada variable interviniente en el
problema.
Term Set para nivel_dinero:
muy-poco – poco – medio – alto – muy-alto
%
Valores de Referencias:
muy-poco= [10 20 30]
poco= [26 36 46]
medio= [43 53 63]
alto= [60 70 80]
muy-alto= [76 88 100]
4
UTN FRT
6. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Term Set para horizonte_tiempo:
corto-plazo – medio-plazo – largo-plazo
Meses
Valores de Referencias:
corto-plazo= [0 3 5]
medio-plazo= [4 6 8]
largo-plazo= [7 9.5 12]
Term Set para nivel_riesgo:
poco – medio – mucho
nivel_riesgo
5
UTN FRT
7. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Valores de Referencias:
poco= [-0 0 2 5]
mucho= [5 8 10 +10]
Term Set para tipo_inversor:
Conservador – Prudente – Moderado – Dinámico – Agresivo
nivel_tipo_inversor
Valores de Referencias:
conservador= [0 1.25 2.5]
prudente= [2 3.25 4.5]
moderado= [4 5.25 6.5]
dinamico= [6 7.25 8.5]
agresivo= [8 9 10]
6
UTN FRT
8. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Term Set para asesoramiento:
cuentas-de-ahorro – metal-precioso – titulos-publicos –
negocio – acciones – inmuebles
%
Valores de Referencias:
cuentas-de-ahorro= [10 20 30]
metal-precioso= [25 37.5 50]
titulos-publicos= [45 52.5 60]
negocio= [57 65 73]
acciones= [70 77.5 85]
inmuebles= [80 90 100 100]
Con la información que tenemos hasta aquí estamos en condiciones de
armar una serie de reglas, necesarias para el cálculo de la solución al problema
que se plantea en el trabajo. Cuando hablamos de reglas, nos referimos a una
serie de postulados que se pueden presentar de acuerdo a los valores que
contienen las variables de entrada y la variable de salida. Esto es, que, a
ciertos valores de entrada se producirá una salida. Recordemos que estamos
tratando de resolver nuestro problema con la ayuda de la lógica.
Las reglas que vamos a utilizar están compuestas de un antecedente
formado por varias variables (pertenecientes a la entrada) y un consecuente
(perteneciente a la variable de salida). Por lo tanto, la regla que aplicaremos
tiene la forma:
7
UTN FRT
9. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Antecedente de la regla
If (variable1 is valor1 and variable2 is valor2 …..)
…….then (variable_salida is valor_variable_salida)
Consecuente de la regla
Con esta aclaración, procedemos a armar una tabla donde a partir de las
variables de entrada y sus respectivos valores encontraremos los valores de
salida para la variable asesoramiento.
Muy Poco – Poco – Medio – Alto – Muy alto
Corto-Plazo – Medio Plazo – Largo Plazo
Poco – Medio – Mucho
Conservador – Prudente – Moderado – Dinámico – Agresivo
REGLAS UTILIZADAS EN EL SISTEMA INVERSIÓN FINANCIERA
Antecedente Consecuente
nivel_dinero horizonte_tiempo nivel_riesgo tipo_inversor asesoramiento
#regla entonces
ND HT NR TI A
1 Muy Poco Corto Poco Conservador Cuenta de Ahorro
2 Poco Corto Poco Prudente Cuenta de Ahorro
3 Medio Corto Poco Moderado Títulos Públicos
4 Alto Corto Poco Dinámico Acciones
5 Muy Alto Corto Poco Agresivo Negocio
6 Muy Poco Mediano Poco Conservador Títulos Públicos
7 Poco Mediano Poco Prudente Títulos Públicos
8 Medio Mediano Poco Moderado Metal Precioso
9 Alto Mediano Poco Dinámico Negocio
10 Muy Alto Mediano Poco Agresivo Inmuebles
11 Muy Poco Largo Poco Conservador Cuenta de Ahorro
12 Poco Largo Poco Prudente Cuenta de Ahorro
13 Medio Largo Poco Moderado Acciones
14 Alto Largo Poco Dinámico Negocio
15 Muy Alto Largo Poco Agresivo Inmuebles
16 Muy Poco Corto Medio Conservador Cuenta de Ahorro
17 Poco Corto Medio Prudente Títulos Públicos
18 Medio Corto Medio Moderado Acciones
19 Alto Corto Medio Dinámico Metal Precioso
20 Muy Alto Corto Medio Agresivo Inmuebles
8
UTN FRT
10. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
21 Muy Poco Mediano Medio Conservador Cuenta de Ahorro
22 Poco Mediano Medio Prudente Cuenta de Ahorro
23 Medio Mediano Medio Moderado Títulos Públicos
24 Alto Mediano Medio Dinámico Acciones
25 Muy Alto Mediano Medio Agresivo Negocio
26 Muy Poco Largo Medio Conservador Cuenta de Ahorro
27 Poco Largo Medio Prudente Títulos Públicos
28 Medio Largo Medio Moderado Acciones
29 Alto Largo Medio Dinámico Inmuebles
30 Muy Alto Largo Medio Agresivo Metal Precioso
31 Muy Poco Corto Mucho Conservador Títulos Públicos
32 Poco Corto Mucho Prudente Cuenta de Ahorro
33 Medio Corto Mucho Moderado Acciones
34 Alto Corto Mucho Dinámico Negocio
35 Muy Alto Corto Mucho Agresivo Metal Precioso
36 Muy Poco Mediano Mucho Conservador Cuenta de Ahorro
37 Poco Mediano Mucho Prudente Títulos Públicos
38 Medio Mediano Mucho Moderado Acciones
39 Alto Mediano Mucho Dinámico Metal Precioso
40 Muy Alto Mediano Mucho Agresivo Inmuebles
41 Muy Poco Largo Mucho Conservador Cuenta de Ahorro
42 Poco Largo Mucho Prudente Títulos Públicos
43 Medio Largo Mucho Moderado Acciones
44 Alto Largo Mucho Dinámico Negocio
45 Muy Alto Largo Mucho Agresivo Metal Precioso
A partir de esta tabla y de la intersección de los estados de las variables,
encontramos las reglas que se aplicarán para el funcionamiento del sistema de
control. Estas reglas se corresponden con la variable de salida
“asesoramiento”.
Aquí hemos omitido aquellas celdas que representan los casos que
pueden no presentarse o rara vez pueden suceder.
Se encontraron 45 (cuarenta y cinco) reglas útiles.
9
UTN FRT
11. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Deducción de las reglas que se aplicarán:
Ejemplo
Nº Regla Regla
1 If ND is MA and HT IS L and NR is Mu and TI is A then A is MP
2 If ND is A and HT IS M and NR is Mu and TI is D then A is MP
3 If ND is P and HT IS C and NR is Me and TI is P then A is TP
4 If ND is MP and HT IS C and NR is P and TI is C then A is CA
.
. .........y así sucesivamente hasta agotar las posibilidades válidas
Desarrollo del modelo a través del soft:
El Software que utilizaremos para el desarrollo del modelo propuesto es
el Matlab Versión 7 - R14.
Primeramente llamamos a la herramienta Fuzzy (Fuzzy Logic Toolbox)
del Matlab a través de la ventana de comandos escribiendo fuzzy.
Al abrirse creamos un nuevo proyecto FIS y elegimos el método que se
empleará para su resolución. Por defecto lo crea con el método Mandani.
Una vez hecho esto se accede a la ventana donde se comienza a
trabajar con el sistema.
10
UTN FRT
12. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Cambiar
nombre de
variable
En esta ventana Ingresamos las variables de entrada (amarillo) y la
variable de salida (celeste)
Podemos ir agregando variables a nuestro modelo a través de la
siguiente ventana. En ella seleccionamos si queremos una variable de entrada
o de salida.
Especificamos el nombre de las variables de entrada (amarillo)
nivel_dinero, hoirizonte_tiempo, nivel_riesgo, tipo_inversor y la variable de
salida (celeste) asesoramiento.
El modelo queda como se muestra a continuación.
11
UTN FRT
13. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Antes de seguir trabajando guardamos el modelo a través del menú
File -> Export. Guardamos a Disco para poder recuperar nuestro trabajo
posteriormente.
Ahora debemos definir los Term-Set (las funciones de pertenencia) para
cada variable. Hacemos doble clic en el cuadro amarillo del modelo que
creamos. Nos lleva a la siguiente ventana.
12
UTN FRT
14. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
En esta ventana, cargamos los Term-Set correspondientes al
nivel_dinero. El nombre del mismo lo colocamos en el cuadro Name que se
encuentra a la derecha. En el cuadro Params elegimos el rango numérico del
Term-Set [valor_lateral_derecho valor_central valor_lateral_izquierdo]. El
rango que especificamos entre corchetes dependerá del tipo que
seleccionemos en Type; para el caso del tipo trimf se definen tres valores como
se explico anteriormente. A la izquierda de la ventana colocamos el rango para
todos los Term-Set que vamos a crear. En este caso de 10 a 100 %.
Para agregar un nuevo Term-Set a la variable vamos al menú Edit ->
Add Custom MF…
De la misma manera creamos los Term-Set para las otras variables.
A continuación se muestra la carga de los Term-Set para la variable
horizonte_tiempo.
13
UTN FRT
15. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Term-Set para la variable nivel_riesgo.
14
UTN FRT
16. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Term-Set para la variable tipo_inversor.
Y por ultimo, la carga de los Term-Set para la variable de salida
asesoramiento.
Luego procedemos a la carga de las reglas que se usarán para nuestro
modelo.
La ventana que se muestra a continuación se accede a través de doble
clic sobre la región blanca del modelo que creamos (inversión financiera
(Mandani)) o bien a través del menú Edit -> Rules…
15
UTN FRT
17. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
En esta ventana sólo seleccionamos de las listas de la parte inferior de
la pantalla, los estados para cada variable (antecedentes) y el estado de la
variable de salida correspondiente (consecuente), elegimos el modo del
operador booleano (And en nuestro caso) y a continuación agregamos la regla
al listado superior con Add rule. (Para lograr esto primeramente tendríamos que
haber cargado los Term-Set de las variables de entrada y de salida, de otra
manera los cuadros de selección estarían vacíos y no tendríamos opciones
para seleccionar). Así cargamos todas las reglas y una vez concluido cerramos
la ventana.
Ahora nos queda probar y visualizar los resultados del modelo que
creamos.
Podemos ver gráficamente como trabaja el sistema a través de las
reglas creadas ingresando al menú View -> Rules
No olvidar guardar el trabajo a medida que se avanza en el diseño.
16
UTN FRT
18. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Nos muestra la siguiente ventana:
En ella podemos ver los números correspondientes a las reglas y las
cinco variables que intervienen en el problema.
17
UTN FRT
19. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Probar el funcionamiento del Sistema Inversión Financiera:
En el cuadro Input podemos cargar los valores para los cuales
deseamos probar el funcionamiento del sistema, esto es, el valor numérico
para el nivel_dinero, horizonte_tiempo, nivel_riesgo y tipo_inversor. De acuerdo
a los valores que se inserten el resultado podrá visualizarse en la última
columna correspondiente a la variable de salida asesoramiento. En ella se ve el
valor en % (porcentaje) que toma el sistema cuando tiene un determinado
nivel_dinero, horizonte_tiempo, nivel_riesgo y tipo_inversor.
Otra forma de obtener una respuesta del sistema de acuerdo a las
entradas que asignemos es mover la línea vertical que aparece en la columna
que representa a cada variable (línea vertical roja) hacia derecha o izquierda
según convenga. De esta manera podrá visualizarse en la última columna
(variable de salida) los cambios que se produzcan en términos de los cambios
de las variables de entrada.
Los datos de entrada son procesados para calcular el grado de
membresía que tendrán dentro del controlador.
El dispositivo de inferencia junto con la base de conocimientos realiza la
toma de decisiones y de acuerdo a esto actúa el sistema. El método de
inferencia se basa en el grado de pertenencia de los datos de entrada en los
conjuntos difusos de los espacios correspondientes a cada uno; esto sirve para
tomar una decisión en el espacio de salida. Para llevar a cabo el proceso de
inferencia se usan distintos métodos (mínimo-máximo, máximo-producto, etc.).
Dentro del controlador hay una parte que es el defuzificador, que es
quien realiza el procesado final de los datos, con el fin de adecuar los valores
difusos obtenidos de la inferencia en valores no difusos útiles para el proceso
que queremos controlar (en esta caso nuestro sistema de inversión financiera).
Para lograr esto el sistema emplea el método del centroide o centro de área
que consiste en calcular el centro de gravedad de una figura, a partir del
polígono formado por el proceso de inferencia.
18
UTN FRT
20. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
También podemos visualizar gráficamente la superficie que se forma
como resultado del modelo planteado. Esto se logra a partir del menú View ->
Surface.
Nos muestra la siguiente ventana:
Este gráfico muestra la superficie que se forma como consecuencia de la
intersección de los valores que van tomando las variables del sistema.
Notar que como en este problema trabajamos con 4 variables de entrada
y una variable de salida (5 en total) no podrá visualizarse la combinación de
todas a la vez, ya que el gráfico se basa en un sistema de ejes tridimensional.
Por ende sólo será posible mostrar la gráfica correspondiente a 2 variables de
entrada con la variable de salida (3 en total-una para cada eje). Para visualizar
las superficies que se forman es necesario elegir desde los combos que
aparecen en la ventana, las variables que van a intervenir en la producción de
la gráfica.
19
UTN FRT
21. Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
Páginas webs consultadas:
http://www.infobae.com/notas/nota.php?Idx=250865&IdxSeccion=100799
http://www.emprendedoresnews.com/notaR/donde_y_en_que_invertir___que_s
on_los_fondos_de_inversion-2361-12.html
http://www.skandia.com.mx/html/Skandia_University/conceptos.htm
http://www.editum.org/inversinculessonlostiposdeinversinydeinversionista-p-
265.html
20
UTN FRT