Inteligencia Artificial - Inversiones

21
INTELIGENCIA ARTIFICIAL Trabajo Final 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 APLICACIÓN DE LÓGICA MULTIVALUADA A PROBLEMAS DE INVERSION (Economía) Asesoramiento para Inversores [ºC]

description

Este trabajo se refiere al análisis de inversiones de acuerdo a ciertos comportamientos de ciertas variables. Esto se logra usando inteligencia artificial (especificamente Logica Fuzzy) De acuerdo a ciertos valores de las variables de entrada el sistema arrojará uno u otro resultado. El rersultado dirá en qué conviene invertir el dinero.

Transcript of Inteligencia Artificial - Inversiones

Page 1: Inteligencia Artificial - Inversiones

INTELIGENCIA ARTIFICIAL

Trabajo Final

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

APLICACIÓN DE LÓGICA MULTIVALUADA A PROBLEMAS DE INVERSION

(Economía)

Asesoramiento para Inversores

[ºC]

Page 2: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 1

Trabajo Práctico Final – Asesoramiento para Inverso res

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

Page 3: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 2

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.

Page 4: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 3

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) � T (horizonte_tiempo) � R (nivel_riesgo) � I (tipo_inversor)

� A (asesoramiento)

Page 5: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 4

Esquemáticamente el modelo quedaría como se muestra en la siguiente figura:

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]

Sistema Experto Fuzzy

Sistema de Inversión

D

T A

R

I

%

Page 6: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 5

Term Set para horizonte_tiempo:

corto-plazo – medio-plazo – largo-plazo

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

Meses

nivel_riesgo

Page 7: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 6

Valores de Referencias: poco= [-0 0 2 5] mucho= [5 8 10 +10] Term Set para tipo_inversor:

Conservador – Prudente – Moderado – Dinámico – Agresivo

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]

nivel_tipo_inversor

Page 8: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 7

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:

%

Page 9: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 8

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

#regla nivel _dinero ND

horizonte_tiempo HT

nivel_riesgo NR

tipo_inversor TI entonces asesoramiento

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

If (variable 1 is valor1 and variable 2 is valor2 ….. )

…….then (variable_salida is valor _variable_salida)

Antecedente de la regla

Consecuente de la regla

Page 10: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 9

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.

Page 11: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 10

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 posib ilidades 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.

Page 12: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 11

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.

Cambiar nombre de

variable

Page 13: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 12

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.

Page 14: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 13

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.

Page 15: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 14

Term-Set para la variable nivel_riesgo.

Page 16: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 15

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…

Page 17: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 16

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.

Page 18: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 17

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.

Page 19: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 18

Probar el funcionamiento del Sistema Inversión Fina nciera: 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.

Page 20: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 19

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.

Page 21: Inteligencia Artificial - Inversiones

Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel

UTN FRT 20

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