Coder Social home page Coder Social logo

die-bg / hemi.jl Goto Github PK

View Code? Open in Web Editor NEW
3.0 0.0 8.0 8.48 MB

Herramienta de evaluación estadística de medidas de inflación subyacente utilizando el lenguaje de programación Julia.

Home Page: https://die-bg.github.io/HEMI.jl/dev

Julia 100.00%
inflation simulation julia

hemi.jl's People

Contributors

d100fuegos avatar djgabrielm avatar edwincal avatar emlf avatar guiselaha avatar m4wnn avatar marianojgm86 avatar r2cp avatar rafaelchp avatar

Stargazers

 avatar  avatar  avatar

hemi.jl's Issues

Escenario E de subyacente MAI

Escenario E: obtención de medidas para evaluación fuera de muestra.

  • Obtener la medida óptima.
  • Documentación de resultados.

Los parámetros de configuración en este caso son los siguientes:

  1. Período de Evaluación:
    • Diciembre 2001 - Diciembre 2018, ff = Date(2018, 12)
  2. Trayectoria de inflación paramétrica
    • Con cambios de base cada 5 años, [InflationTotalRebaseCPI(60)].
  3. Método de remuestreo Remuestreo bloques estacionarios, [ResampleSBB(36)], con tamaño de bloque esperado igual a 36.
  4. Muestra completa para evaluación [SimConfig].
  5. Tendencia: caminata aleatoria.
  6. Sí se deben obtener parámetros óptimos para estimadores.

Determinación del número de simulaciones

Realizar un script para determinar el número de simulaciones del ejercicio base utilizando los siguientes parámetros:

  • Parámetro de variación interanual del IPC con cambio de base sintético cada 5 años.
  • Metodología de remuestreo de bloques de tamaño esperado 36.
  • Tendencia estocástica de caminata aleatoria.

Percentiles equiponderados y ponderados

Implementación de la función de inflación para percentiles equiponderados y ponderados.

Actualmente existe una versión implementada para percentiles equiponderados que funciona bastante bien. De manera similar, se debe implementar la versión ponderada

Agregar períodos de evaluación en SimConfig

Agregar opción en SimConfig y tipos para implementar evaluación en diferentes períodos en evalsim. La implementación debe ser transparente para lo implementado hasta el momento, a menos que se desee configurar los períodos manualmente.

Escenario E de medias truncadas

Escenario E: obtención de medidas para evaluación fuera de muestra.

  • Obtener la medida óptima.
  • Documentación de resultados.

Los parámetros de configuración en este caso son los siguientes:

  1. Período de Evaluación:
    • Diciembre 2001 - Diciembre 2018, ff = Date(2018, 12)
  2. Trayectoria de inflación paramétrica
    • Con cambios de base cada 5 años, [InflationTotalRebaseCPI(60)].
  3. Método de remuestreo Remuestreo bloques estacionarios, [ResampleSBB(36)], con tamaño de bloque esperado igual a 36.
  4. Muestra completa para evaluación [SimConfig].
  5. Tendencia: caminata aleatoria.
  6. Sí se deben obtener parámetros óptimos para estimadores.

Quitar dependencias de bootstrap

El proyecto de DependentBootstrap.jl está agregado con un fork de @r2cp, porque el proyecto original mantiene el manifiesto y no permite actualizar los paquetes. Debido a que este paquete, como el de Bootstrap.jl se utilizaron en la etapa de investigación de métodos de remuestreo, se propone quitarlos del proyecto principal y crear un ambiente separado en el directorio de investigación de métodos de bootstrap.

Exclusión fija de gastos básicos

Implementación de la función de inflación de exclusión fija de gastos básicos. Se puede utilizar como parámetros los números de gastos básicos a excluir. Estos números corresponden a la columnas en las matrices v de los tipos VarCPIBase.

  • Recordar que esta medida utiliza la fórmula de cómputo del IPC, es decir, opera con índices de precios y no con las variaciones intermensuales.

Escenario E de metodología de exclusión fija

Escenario E: obtención de medidas para evaluación fuera de muestra.

  • Obtener la medida óptima.
  • Documentación de resultados.

Los parámetros de configuración en este caso son los siguientes:

  1. Período de Evaluación:
    • Diciembre 2001 - Diciembre 2018, ff = Date(2018, 12)
  2. Trayectoria de inflación paramétrica
    • Con cambios de base cada 5 años, [InflationTotalRebaseCPI(60)].
  3. Método de remuestreo Remuestreo bloques estacionarios, [ResampleSBB(36)], con tamaño de bloque esperado igual a 36.
  4. Muestra completa para evaluación [SimConfig].
  5. Tendencia: caminata aleatoria.
  6. Sí se deben obtener parámetros óptimos para estimadores.

Evaluación de metodología de exclusión dinámica

Evaluación de metodología basada en el método de exclusión dinámica de gastos básicos utilizando los siguientes criterios:

Período de evaluación: completo
Período final de evaluación: diciembre de 2020
Estadístico de evaluación: MSE
Número de simulaciones: 125,000
Función de tendencia: caminata aleatoria calibrada
Trayectoria de inflación paramétrica: Variación interanual del IPC con cambios de base
Método de remuestreo: block bootstrap estacionario con tamaño de bloque 36 y metodología de remuestreo por meses de ocurrencia.

Consistencia en el idioma

Actualmente, en types.jl los tipos concretos de AbstractCPIBase utilizan el campo de de fechas en español, mientras que la mayoría de funciones y tipos están en inglés. Algunos comentarios al inicio del proyecto están en inglés, mientras que otros están en español. Sería bueno definir concretamente el estilo del código. Se podría utilizar el siguiente esquema de reglas para el código:

  • Definición de tipos, métodos y variables principalmente en inglés. Se podrían utilizar abreviaturas en español en donde sea conveniente, por ejemplo: gentrayinfl podría ser un poco más legible que gentrajinfl.
  • Comentarios de documentación del código podrían ir en español para construir automáticamente el manual.

Son bienvenidos los comentarios.

Evaluación de Medidas basadas en Exclusión Fija

Evaluación de medidas de exclusión fija (05/08/2021):

  • - Escenario A: Replicar el trabajo efectuado en 2020 - criterios básicos a dic-19

    • Datos hasta dic-19
    • Remuestreo por meses de ocurrencia
    • Parámetro (legacy): 2 cambios de base cada 3 años
    • Tendencia: Random Walk
    • Período completo
    • No hay que optimizar, solo replicar resultados de la página EMI-docs.
  • - Escenario B: Extender el trabajo efectuado en 2020 - criterios básicos a dic-20

    • Datos hasta dic-20
    • Remuestreo por meses de ocurrencia
    • Parámetro legacy: 2 cambios de base cada 3 años
    • Tendencia: Random Walk
    • Período completo
    • Sí hay que optimizar, al cambiar los datos pudieron cambiar óptimas
  • - Escenario C: Evaluación de criterios básicos a dic-20 - cambio de parámetro

    • Datos hasta
      • dic-19,
      • dic-20
    • Remuestreo por meses de ocurrencia
    • Parámetro cambios de base cada 5 años
    • Tendencia: Random Walk
    • Período completo
    • Sí hay que optimizar, al cambiar los datos pudieron cambiar óptimas.
  • - Escenario D: Evaluación de criterios básicos a dic-20 - remuestreo de bloques

    • Datos hasta
      • dic-19,
      • dic-20
    • Remuestreo bloques estacionarios
    • Parámetro:
      • legacy: 2 cambios de base cada 3 años,
      • cambios de base cada 5 años
    • Tendencia: Random Walk
    • Período completo
    • Sí hay que optimizar, al cambiar los datos pudieron cambiar óptimas.

Media simple

Construcción de la medida de inflación de media simple de las variaciones intermensuales de índices de precios.

Evaluación de percentiles con métodos de bloques (escenario D)

  • Escenario D: Evaluación de criterios básicos a dic-20 - remuestreo de bloques

  • Documentación de resultados

  • URLs amigables en archivos de documentación de percentiles

    • Datos hasta
      • dic-19,
      • dic-20
    • Remuestreo bloques estacionarios
    • Parámetro:
      • legacy: 2 cambios de base cada 3 años,
      • cambios de base cada 5 años
    • Tendencia: Random Walk
    • Período completo
    • Sí hay que optimizar, al cambiar los datos pudieron cambiar óptimas.

Subyacente MAI

Implementación de la función de inflación subyacente MAI. Debido a que esta medida es más compleja, podría ser buena idea utilizar un módulo dentro de InflationFunctions para implementar todas las funciones y solamente reexportar la medida de inflación final.

Replicar combinación lineal óptima v2019

Utilizar las medidas óptimas del escenario A para replicar los ponderadores y la trayectoria subyacente óptima MSE 2019.

Incluir:

  • Script de generación de las medidas óptimas de cada metodología.
  • Script de combinación de las medidas y su evaluación con las distintas métricas.
  • Documentar los resultados de evaluación: resultados principales, métricas y trayectoria observada.

Evaluación de metodologías de inflación total y rezagos

Evaluación de metodologías de inflación total utilizando los siguientes criterios:

Período de evaluación: completo
Período final de evaluación: diciembre de 2020
Estadístico de evaluación: MSE
Número de simulaciones: 125,000
Función de tendencia: caminata aleatoria calibrada
Trayectoria de inflación paramétrica: Variación interanual del IPC con cambios de base
Método de remuestreo: block bootstrap estacionario con tamaño de bloque 36 y metodología de remuestreo por meses de ocurrencia.

  • Variación interanual del IPC
  • Media ponderada interanual
  • Media simple interanual
  • Medias móviles utilizando 2 a 12 elementos en el promedio.

Utilizar StableRNGs

Se propone utilizar un generador de números aleatorios estable en versión para que al cambiar de versiones de Julia se puedan reproducir los resultados.

Warning al construir documentación

Warning al construir documentación, nombre de las imágenes no coincide con nombre indicado en archivo de Markdown. Cambiar nombre a los archivos de imágenes o en el markdown de resultados de la medida de exclusión fija.

Exclusión dinámica

Implementar función de inflación para obtener la medida de exclusión dinámica de productos, tomando en cuenta dos límites que indican el número de desviaciones estándar respecto del promedio de cada mes.

Wrapper de suavizamiento exponencial

Se propone construir una medida de inflación que funcione como una envolvente (wrapper) de otra medida de inflación y compute una media móvil aplicando la metodología de suavizamiento exponencial. La medida debe recibir otra función de inflación y el parámetro de suavizamiento, por ejemplo:

inflfn = InflationExpSmoothing(InflationTotalCPI(), 0.75)

Con la metodología de la HEMI se puede encontrar el parámetro de suavizamiento óptimo.

Cambiar promedios mensuales por promedios históricos

Las dos técnicas para obtener los promedios históricos en ResampleSBB son:

  • Utilizar los promedios mensuales observados en las series de tiempo, que genera 12 valores de promedios mensuales por serie de tiempo.
  • Utilizar el promedio histórico de la serie de tiempo, que genera un valor único promedio por serie de tiempo.

La aproximación de promedio único tiene la ventaja de ser inmediatamente extensible al agregar una nueva base a un CountryStructure.

Media truncada ponderada

Implementación de las función de inflación para obtener la media truncada ponderada con recortes especificados.

Evaluación de método de exclusión fija con bloques estacionarios (escenario D)

  • Escenario D: Evaluación de criterios básicos a dic-20 - remuestreo de bloques

  • Documentación de resultados.

    • Datos hasta
      • dic-19,
      • dic-20
    • Remuestreo bloques estacionarios
    • Parámetro:
      • legacy: 2 cambios de base cada 3 años,
      • cambios de base cada 5 años
    • Tendencia: Random Walk
    • Período completo
    • Sí hay que optimizar, al cambiar los datos pudieron cambiar óptimas.

Escenario E de exclusión dinámica

Escenario E: obtención de medidas para evaluación fuera de muestra.

  • Obtener la medida óptima.
  • Documentación de resultados.

Los parámetros de configuración en este caso son los siguientes:

  1. Período de Evaluación:
    • Diciembre 2001 - Diciembre 2018, ff = Date(2018, 12)
  2. Trayectoria de inflación paramétrica
    • Con cambios de base cada 5 años, [InflationTotalRebaseCPI(60)].
  3. Método de remuestreo Remuestreo bloques estacionarios, [ResampleSBB(36)], con tamaño de bloque esperado igual a 36.
  4. Muestra completa para evaluación [SimConfig].
  5. Tendencia: caminata aleatoria.
  6. Sí se deben obtener parámetros óptimos para estimadores.

Evaluación de metodología de subyacente MAI

Evaluación de metodología basada en el método de muestra ampliada utilizando los siguientes criterios:

Período de evaluación: completo
Período final de evaluación: diciembre de 2020
Estadístico de evaluación: MSE
Número de simulaciones: 125,000
Función de tendencia: caminata aleatoria calibrada
Trayectoria de inflación paramétrica: Variación interanual del IPC con cambios de base
Método de remuestreo: block bootstrap estacionario con tamaño de bloque 36 y metodología de remuestreo por meses de ocurrencia.

Tipos para especificar variantes de simulación

  • Crear tipos en InflationEvalTools para especificar las variantes de simulación de manera más compacta.
  • Implementar los métodos apropiados de DrWatson para utilizar savename con este tipo para generar nombres de archivos de resultados.

Evaluación de percentiles equiponderados y ponderados

Evaluación de metodologías basadas en percentiles utilizando los siguientes criterios:

  • Período de evaluación: completo
  • Período final de evaluación: diciembre de 2020
  • Estadístico de evaluación: MSE
  • Número de simulaciones: 125,000
  • Función de tendencia: Caminata aleatoria calibrada
  • Trayectoria de inflación paramétrica: Variación interanual del IPC con cambios de base
  • Método de remuestreo: Block bootstrap estacionario con tamaño de bloque 36 y metodología de remuestreo por meses de ocurrencia.

Directorio de documentación

  • Agregar directorio de documentación al proyecto con Documenter.jl
  • Agregar el flujo de trabajo para que se construya al hacer confirmaciones.

Función para obtener todos los estadísticos de evaluación

Implementar una función que reciba las trayectorias de simulación y la trayectoria paramétrica, o bien, generar la trayectoria paramétrica con #30. El resultado de dicha función deben ser los estadísticos de evaluación:

  • MSE (error cuadrático medio) y su descomposición aditiva (sesgo, varianza y correlación).
  • ME (error medio).
  • RMSE (raíz del error cuadrático medio).
  • MAE (error absoluto medio).
  • Correlación con la trayectoria paramétrica.

Los estadísticos de evaluación se deben obtener en la muestra de simulación. Posiblemente se tendrá que implementar otra función para obtener los estadísticos de evaluación en los períodos utilizados para el proceso de validación cruzada.

Script de evaluación con criterios básicos

Realizar un programa de evaluación utilizando criterios básicos:

  • Función de tendencia de caminata aleatoria
  • Función de remuestreo con Stationary Block Bootstrap
  • Métrica de evaluación: MSE
  • Trayectoria paramétrica: variación interanual del IPC con cambio de base
  • Número de simulaciones: por definir

Lista de tareas:

  • Generar la configuración de simulación
  • Generar las trayectorias de simulación
  • Obtener los resultados de la métrica de evaluación en cada subperíodo de evaluación

Evaluación de medias truncadas

Evaluación de metodologías basadas en medias truncadas utilizando los siguientes criterios:

  • Período de evaluación: completo
  • Período final de evaluación: diciembre de 2020
  • Estadístico de evaluación: MSE
  • Número de simulaciones: 125,000
  • Función de tendencia: Caminata aleatoria calibrada
  • Trayectoria de inflación paramétrica: Variación interanual del IPC con cambios de base
  • Método de remuestreo: Block bootstrap estacionario con tamaño de bloque 36 y metodología de remuestreo por meses de ocurrencia.

Agregar Literate.jl a la documentación

  • Agregar Literate.jl para construir ejemplos en la documentación.
  • Generar un conjunto de datos para la documentación.
  • Construir un ejemplo del flujo de trabajo con la HEMI.

Guía:

Escenario E de percentiles

Escenario E: obtención de medidas para evaluación fuera de muestra.

  • Obtener la medida óptima.
  • Documentación de resultados.

Los parámetros de configuración en este caso son los siguientes:

  1. Período de Evaluación:
    • Diciembre 2001 - Diciembre 2018, ff = Date(2018, 12)
  2. Trayectoria de inflación paramétrica
    • Con cambios de base cada 5 años, [InflationTotalRebaseCPI(60)].
  3. Método de remuestreo Remuestreo bloques estacionarios, [ResampleSBB(36)], con tamaño de bloque esperado igual a 36.
  4. Muestra completa para evaluación [SimConfig].
  5. Tendencia: caminata aleatoria.
  6. Sí se deben obtener parámetros óptimos para estimadores.

Añadir otros parámetros al SimConfig

¿Se pueden añadir otros parámetros al SimConfig ?

Esto para queevalsim, makesim y run_batch puedan recibir un diccionario con variantes que incluyan la data, parámetro de inflación y semilla.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.