21 Aug

Modeloff 2015 - Campeonato mundial de Excel

ModelOff-201511

Este año se celebra la cuarta versión del campeonato mundial de modelación financiera en Excel Modeloff. El campeonato cuenta cada vez con más adeptos, solo en su versión del año 2014 participaron cerca de 4,000 concursantes provenientes de 110 países vinculados a las disciplinas de finanzas, banca, contabilidad, seguros, actuaría, ingeniería y consultoría.

Al igual que el año anterior (ver post) el concurso se realizará en tres fases, las dos primeras en línea (sábado octubre 17 y sábado octubre 31) cada una con duración máxima de 2 horas. Los 16 mejores resultados llegarán a la final que se realizará en la ciudad de Londres (UK) los días 3 y 4 de diciembre de este año.

El siguiente video hace parte de la campaña promocional del concurso. Si usted es un apasionado por las finanzas aplicadas en Excel, este es concurso es recomendado.

 

13 Aug

Macro para obtener historico de precios de una accion en Excel

[ File # csp9666250, License # 2222627 ] Licensed through http://www.canstockphoto.com in accordance with the End User License Agreement (http://www.canstockphoto.com/legal.php) (c) Can Stock Photo Inc. / bbbar

[ File # csp9666250, License # 2222627 ]
Licensed through http://www.canstockphoto.com in accordance with the End User License Agreement (http://www.canstockphoto.com/legal.php)
(c) Can Stock Photo Inc. / bbbar

Este programa permite descargar cualquier serie de precios disponible Yahoo Finanzas directamente a Excel con solo conocer el símbolo de la acción. Antes de comenzar es importante adicionar la referencia Microsoft XML en el módulo VBA accediendo con el método abreviado Alt+F11, luego haciendo click en Tools + Reference y buscar la referencia (ver imagen) la cuál permite importar y manipular archivos en formato XML.

ReferencesYahooFinances

La macro central de este programa se compone de varios elementos. El primero es la subrutina que genera la consulta llamada GetYahooFinanceTable (ver código a continuación).

La macro obtiene la información utilizando APIs de Yahoo Finanzas (lea aquí el wiki de los APIs de Yahoo finanzas). Un API que traducido al español significa Interfaz de programación de aplicaciones, es un conjunto de subrutinas predefinidas que puede ser utilizado por otro software de manera abreviada (Wikipedia API) en este caso para descargar datos de Yahoo (lea aquí un blog sobre como utilizar el API de Yahoo finanzas para archivos CSV).

Para utilizar el API simplemente construimos el query con los parámetros deseados, en este caso solamente necesitamos el código de la acción almacenado en la celda J2 (2, 10). Utilizemos como ejemplo la acción de 3M (MMM). El comando requerido por el API será http://ichart.finance.yahoo.com/table.txt?s=mmm. Si usted introduce este código en su explorador podrá descargar un archivo de texto con el histórico de precios.

GetYahooFinanceTable ejecuta a su vez la función GetHTTPResult y la subrutina UpdatePriceData. La función permite crear la consulta (query) en formato XMLHTTP y lanzarla a la web.

La subrutina UpdatePriceData prepara y llena los vectores con el resultado de la consulta. Para ello llama a la función GetQuoteXmlFromWeb y la subrutina GetQuoteFromXml.

La función GetQuoteXmlFromWeb es la que descarga la información en archivo XML y lo traduce. Un archivo XML es una estructura anidada de datos (padre e hijo) lo que permite manipular múltiples dimensiones y gran cantidad de información. Desafortunadamente no es tan simple descifrar la estructura por lo que utilizamos una función para descifrar la relación jerárquica de datos (ver función FindChildNodeName al final).

 

Finalmente, la función GetQuoteFromXml es una adición que bien puede ser opcional. Su utilidad es lanzar una nueva consulta que permite conocer los datos básicos de la acción, como el nombre, el último volumen transado, el mayor y menor valor de transacción del día, el último valor de transacción y la última hora de actualización. Si bien una buena parte de la información se encuentra en la serie de precios, esta función es útil cuando se tiene el símbolo y no se conoce el nombre exacto, o cuando se lanza la consulta y los mercados están aún abiertos por tanto no se conoce el precio de cierre de la acción. La siguiente es la función:

Lo demás es estético y a gusto del usuario, una vez la serie se carga en la hoja de cálculo se pueden crear gráficos, estadísticas y demás. Usted puede descargar una versión comprimida de esta macro con algunas adiciones en el siguiente link. Una vez funcional la macro usted tendrá un reporte como el presentado a continuación.

quote

 

Comentarios finales:

06 Aug

Ingeniosos CV's (hojas de vida)

La revista electrónica Business Insider publicó recientemente un artículo donde resaltaba como ejemplo el mejor resumen (hoja de vida) para cargos medios a ejecutivos por su consistencia y sencillez (ver imagen siguiente).

bi_graphics_goodresume_midlevel

 

En síntesis el artículo resalta la facilidad para encontrar la información en una sola página, la lista concreta de competencias, los logros cuantificados obtenidos en cada rol de la experiencia y la educación que se recomienda mover al final de la hoja de vida (Lea también 19 razones por las cuales este es un excelente resumen).

La empresa Career cup también hace un análisis similar listando 11 puntos claves para la elaboración de hojas de vida (ver link).

Continue reading

06 Aug

El movimiento global de los migrantes

El centro Wittgenstein para la demografía y el capital humano global (Wittgenstein Centre for Demography and Global Human Capital) publico recientemente un artículo en la reconocida revista Science sobre los movimientos migratorios entre países. El infograph que resume los resultados puede ser descargado en el siguiente link.

El estudio concluye que en los últimos anos las migraciones han alcanzado un ciclo estable en periodos de 5 años en los cuales el 0.6% de la población mundial migra entre países, al tiempo que prevé que las migraciones más altas en los próximos años ocurrirán entre los países del sur y oeste asiático, así como entre Latinoamérica y Norteamérica. Finalmente prevé una gran migración entre países africanos.

En el continente americano los países con mayor emigración son México, Perú, Brasil y Argentina, mientras que los que más inmigrantes reciben son Estados Unidos, Canadá, Costa Rica y Chile.

Adicionalmente los autores han desarrollado una entretenida herramienta de visualización interactiva que permite a los usuarios consultar información de países puntuales. La herramienta fue desarrollada utilizando la librería D3.js (basada en javascript). A continuación presentamos este interesante recurso:

 

The global flow of people

 

02 Aug

AnyLogic versión 7.2

Finalmente el pasado 30 de Julio de 2015 fue lanzado oficialmente la versión 7.2 de AnyLogic. Como se pudo prever en la versión beta que circula hace poco menos de un mes la nueva edición cuenta con dos principales innovaciones, la librería de fluídos que integra elementos de simulación continua (desplazamiento de fluídos) con los eventos discretos, y la base de datos incorporada que permite manipular datos más rápidamente. Esto es perticulamente útil cuando se carga gran cantidad de información al principio de la simulación o se colectan estadísticas durante la simulación para ser transferidas al final. Ambas actividades requerían antes de la utilización de colecciones locales o de archivos de texto temporales, ahora simplemente puede almacenarse la información en tablas de la base de datos local a una mayor velocidad con menor consumo de memoria. Otra ventaja de la base de datos incorporada es la portabilidad, es decir que no se requiere software adicional para la creación y manipulación de las tablas al desplazar el modelo entre ordenadores.

Otras adiciones son las colas y escaleras no lineales (librería de peatones), integración de los sistemas geográficos (GIS) a la librería de trenes, la conversión de archivos ESRI Shapefile a marcadores de posición lo que permite personalizar layouts con geometrías complejas que marcan recorridos y fronteras (como importar un camino de un mapa y convertirlo en una carretera o una via férrea), y la ventana de ayuda que aparece en cada elemento al posar el cursor del mouse por cierto tiempo sobre él.

AL72Features

 

El consultor y blogista Benjamin Schumann hace un completo review de la nueva versión en su blog Simulación e Innovación, vale la pena leerlo.

27 Jul

Cuanto gana un desarrollador de software Colombiano? (infograph)

La empresa de servicios informáticos Bunny Inc (fundada por colombianos, con alto componente de ingenieros latinos y basada en San Francisco) ha hecho un interesante estudio sobre cuánto gana realmente un desarrollador de software colombiano basado en encuestas hechas a sus aplicantes. El panorama no es muy alentador, en general muestra que los desarrolladores colombianos ganan menos de la mitad en Colombia de lo que harían fuera. Al mismo tiempo muestra que el estudio no necesariamente es un factor significativo en el salario y que pesa mas la experiencia.

Vale la pena ver este infograph al momento de elegir caminos profesionales (y tal vez la geografia).

survey-results-how-much-colombian-software-engineers-really-make_54e3734ca223f_w1500

Read the full article: Infograph: How much Colombian software developers really make

Polémica

Luego de la publicación de este estudio a comienzos de 2015, se generó cierta controversia sobre la validez y credibilidad de las encuestas, sobre todo por que publicaciones de reconocimiento como Portafolio lo utilizaron para titular que los desarrolladores colombianos ganan en promedio 6 millones de pesos (ver link) lo cual es una interpretación sesgada del infograph. Por fortuna los datos fueron publicados en Github y son de acceso público.

Algunos blogueros han realizado análisis estadísticos más detallados a partir de esta información. Un ejemplo es el blog Medium Colombia donde David Przybilla hace un estudio a profundidad sobre los resultados encontrando que el rango salarial de 1000 a 1999 USD es el que mas agrupa respuestas pero al mismo tiempo es el rango medio de salarios mas común en Colombia, lo que genera ambigüedad en los resultados (link). En cualquier caso el tope máximo de este rango equivaldría a unos 5,200,000 COP lo que en todo caso estaría muy por debajo de un promedio de 6 millones.

Algunos análisis sugieren que trabajar para multinacionales reduce el salario real. Esto podría ser cierto en algunos casos como en empresas que deciden crear sedes en américa latina en busca de reducir costos mediante el uso de mano de obra barata y de calidad, sin embargo no creo se deba incluir a todas las multinacionales en esta categoría.

Otros blogs como Isabel Yepes de Hacemos Contacto (link) y Miguel Cabrera también de Medium Colombia (link) han también publicado entradas al respecto.

Que piensan ustedes? Importa mas la experiencia que los estudios en el salario? Pagan mejor o peor las multinacionales?

11 Jul

Algunos recursos para el aprendizaje de AnyLogic

Los siguientes son algunos de los sitios donde se puede encontrar información para el aprendizaje de AnyLogic:

  1. Recursos oficiales de AnyLogic
    1. Libro AnyLogic en 3 días: Buena guía para el aprendizaje de modelos básicos. El libro se puede descargar gratis luego de diligenciar algunos datos en el formulario de contacto.
    2. El gran libro de la simulación: Un muy buen libro para el aprendizaje de la teoría en general, escrito por Andrei Borshchev, con aplicaciones en muchos campos. Todos los ejemplos fueron desarrollados en AnyLogic 6, sin embargo varios de ellos requieren de modificaciones menores para ser transferidos a las versiones actuales (8.x). Para los apasionados de la simulación, este libro es de lectura obligatoria. El libro se consigue en Amazon.
      Nota adicional: En la conferencia anual de 2018 se anunció que se está trabajando en una nueva versión de este libro, posiblemente muy pronto tengamos un relanzamiento.
    3. Canal Youtube de AnyLogic: Tutoriales cortos y bien elaborados sobre casos específicos.
    4. Video tutoriales: Dictados por el profesor Johan Joubert de la universidad de Pretoria, basados en su curso sobre modelación y simulación.
  2. Nathaniel Osgood: Profesor del MIT y de la universidad de Saskatchewan. Enfoca buena parte de su investigación en el sector de la salud. Basa buena parte de sus modelos son en AnyLogic. Tiene la ventaja que muchas de sus clases demostrando la aplicación de la simulación en salud y la construcción de modelos han sido grabadas y publicadas en la web.
    1. Cursos en el MIT
    2. Página en la universidad de Saskatchewan
    3. Canal Youtube
  3. Peer-Olaf Siebers: Profesor de la universidad de Nottingham (UK) dicta un curso llamado Simulación para el soporte en las decisiones. Al igual que el profesor Osgood enfoca parte de su investigación en salud, sin embargo tiene otras aplicaciones en la parte de poblaciones, crecimiento, economía. Sus presentaciones y material de apoyo está disponible en línea.
  4. Curso de AnyLogic en línea dictado por Felipe Haro: Un curso muy completo útil para usuarios de cualquier nivel que quieran profundizar sus conocimientos en el software y el desarrollo de modelos completos. Contiene muchos recursos, como tutoriales, videos y ejercicios.
  5. Blogs:
    1. Stuart Rossiter - Ciencia y Software
    2. Benjamin Schumann -  Simulación para innovación
    3. Maksim Rojkov - Análisis y Simulación
    4. Noorjax Consulting - Blog de Felipe Haro
    5. Alvaro Gil (este blog) - Simulación y Analytics
06 Jul

Patient Flow RX

Patient Flow es un software creado por Promodel Corporation que sirve como soporte en la toma de decisiones en la admisión y salida (discharge) de pacientes en clínicas y hospitales.

patientFlowStudio

La magia destrás de esta herramienta es la simulación. El sistema se configura para conectarse con el sistema de información hospitalario capturando indicadores claves como la utilización histórica, la duración promedio de pacientes por servicio (LOS por sus siglas en inglés Length of Stay) y el flujo de admisión y salida con sus respectivos tiempos estandar. La herramienta analiza entonces el histórico de cada serie estableciendo la distribución estadística más apropiada y posteriormente simula múltiples escenarios aleatorios (repeticiones) emulando las distribuciones, esto es lo que se conoce como técnica de Monte Carlo.

Los resultados de aplicación de este sistema han sido hasta ahora bien recibidos en el sector de la salud, varios hospitales en Estados Unidos han adoptado con éxito la herramienta, lo que ha permitido mejorar la gestión de admisiones, urgencias y demás servicios hospitalarios gracias a la correcta estimación de camas disponibles por servicio.

Lo curioso es que esta herramienta es increiblemente sencilla y bien podría implementarse en una simple hoja de cálculo, solo basta con conocer la distribución de probabilidad asociada con cada sub-proceso y simular una serie relativamente larga de casos, creando así ciclos completos de proceso, finalmente promediar los resultados y obtener las respectivas variabilidades. En un próximo post haré un ejemplo aplicado de esta técnica.

Implementaciones más completas también pueden incluir la combinación de esta técnica con otras simulaciones de procesos puntuales como el triage en urgencias. El resultado puede ser la simulación completa de un hospital donde los usuarios puedan variar parámetros que repercutan en indicadores claves como el tiempo medio de atención, la espera por paciente y su relación costo beneficio.

03 Jul

Versión 7.2 Beta de AnyLogic disponible

Como lo anunciamos en previamente, la versión 7.2 de AnyLogic estará disponible para finales de este verano. Por lo pronto, los usuarios pueden descargar una versión Beta para pruebas en el siguiente link.

grain terminal

 

Esta versión incluye entre otras lo siguiente:

  • Base de datos incorporada: Las bases de datos quedan incorporadas como una clase más dentro del modelo de simulación, de manera que al exportar la solución bien sea como un Java Applet o como un Stand-Alone Application la base de datos se compacta y se exporta dentro de la librería, haciendo más eficiente la utilización de memoria, más rápido el acceso a datos y por ende la simulación. Esta alternativa permite también una mayor portabilidad de las simulaciones.
  • Librería de fluidos: Esta librería permite la creación de tanques, tuberías, uniones y separaciones de fluídos y similares tales como granos, arena, etc. El ejemplo presentado en la imagen es de hecho un terminal de recepción y despacho de granos. Esta librería permite entre otras la creación de modelos más complejos en el sector sanitario (acueductos, bases de tratamiento, etc.), hidrocarburos, energético, etc. En cuanto al aspecto técnico, la librería incorpora elementos de simulación discreta y de sistemas dinámicos, aplicando ecuaciones diferenciales para balancear la masa a lo largo de los componentes (por ejemplo un tubo requiere de ecuaciones diferenciales de fluído para determinar cuanto volumen ha pasado luego de cierto tiempo a una tasa específica). Las ecuaciones se aplican por defecto cada 0.01 unidades de tiempo de simulación. La utilización de esta librería ante múltiples agentes puede disminuir la velocidad de la simulación.
  • Otras mejoras:
    • Escaleras y colas no lineales (zig-zag) en la librería peatonal
    • Incorporación de GIS a la librería de trenes
    • Conversión de figuras (shapefiles) al layout, útil principalmente en la librerìa peatonal y en la de trenes.
    • Ventana de ayuda contextual sobre los elementos del menú al pasar el puntero del mouse sobre ellos.

Los invito a probar la nueva versión en su edición gratuita PLE (Personal Learning Edition).

 

%d bloggers like this: