Git Product home page Git Product logo

modeladobetageneralizadaii's Introduction

Stochasticity

Modelado de datos con distribución Beta Generalizada de Tipo II

El objetivo del proyecto es la simulación de variables aleatorias con algunas distribuciones para modelado de los datos con la distribución Beta Generalizada de Tipo II, así como el modelado (con la misma distribución) de ciertos datos reales obtenidos del INEGI, del Módulo de Condiciones Socioeconómicas de la ENIGH (MCS-ENIGH) 2014. Dichos datos son los Ingresos y percepciones financieras y de capital de cada uno de los integrantes del hogar. (Un descriptor sobre estos datos puede ser encontrado en la página del INEGI.)

El presente repositorio contiene scripts en R para: (i) simular variables aleatorias con distribuciones Beta Generalizada de Tipo II, Lognormal y mezcla de Lognormales; (ii) modelar las simulaciones y los datos reales del INEGI; y (iii) validar los ajustes de modelo para ver si el modelado de los datos con la distrubición Beta Generalizada de Tipo II resulta adecuada.

Requerimientos

Además de tener R instalado, necesitarás instalar...

Dichas librerías pueden fácilmente ser instaladas con el gestor de paquetes de RStudio.

Contenido

Para correr los scripts en el orden adecuado y obtener los resultados deseados, se anexa una descripción de cada script así como los pasos a seguir para correr el código. Todos los scripts se encuentran en la carpeta scripts.

1. simulations.R

Este script crea 10000 simulaciones de variables aleatorias con distribuciones Beta Generalizada de Tipo II (𝑎=3.25, 𝑏=17000, 𝑝=0.8, 𝑞=0.35), Lognormal (𝜇=11.04465, 𝜎=1.180168) y mezcla de Lognormales (𝜇1=11.04465, 𝜎1=1.180168; 𝜇2=15, 𝜎2=0.7). Las simulaciones se guardan respectivamente en los archivos sim_GB2.csv, sim_LNorm.csv y sim_LNormMix.csv dentro de la carpeta csv.

Además, crea plots de los histogramas correspondientes, que pueden ser encontrados en la carpeta plots.

2. subsampling.R

Este script submuestrea de manera aleatoria a partir de las simulaciones y de los datos reales del INEGI (mcs_ingresos_2014_concil_2010_csv.csv), guardando las muestras en archivos csv para posterior apertura por el script que hace un ajuste de parámetros de la distribución Beta Generalizada de Tipo II.

Las longitudes de los vectores de las submuestras son de 𝑛=200 y 𝑛=500. Los submuestreos se guardan en los archivos csv: samp_GB2_200.csv, samp_GB2_500.csv, samp_LNorm_200.csv, samp_LNorm_500.csv, samp_LNormMix_200.csv, samp_LNormMix_500.csv, samp_RealData_200.csv y samp_RealData_500.csv dentro de la carpeta csv.

Además, crea histogramas de las submuestras, que pueden encontrarse en la carpeta plots.

3. fitting.R

Este script utiliza la función mlfit.gb2 de la librería GB2 para obtener los parámetros de la distribución Beta Generalizada de Tipo II que mejor se ajustan a los submuestreos de 200 y 500 utilizando Máxima Verosimilitud, de acuerdo a la documentación oficial de la librería GB2.

Los parámetros obtenidos se guardaron en los archivos fit_GB2_200.txt, fit_GB2_500.txt, fit_LNorm_200.txt, fit_LNorm_500.txt, fit_LNormMix_200.txt, fit_LNormMix_500.txt, fit_RealData_200.txt y fit_RealData_500.txt. Dichos fits se encunetran dentro de la carpeta fits.

4. validation.R

Este script valida el fit obtenido por la función mlfit.gb2 de la librería GB2. Los métodos utilizados para validar son: (i) la gráfica de la Función de Distribución Empírica (FDE) vs. la Función de Distribución Teórica (FDT), (ii) la gráfica Cuantil-Cuantil (QQ) y (iii) la gráfica de densidad con los parámetros obtenidos sobre el histograma.

Cabe mencionarse que los parámetros deben ser escritos manualmente en el script. Estos parámetros pueden encontrarse en los archivos fit para cada uno de los casos, dentro de la carpeta fits.

Dichas gráficas pueden encontrarse dentro de la carpeta plots.

Instrucciones

Si se utilizará RStudio para trabajar los scripts, como primer acción debe establecerse el directorio de trabajo al de los archivos fuente, como se muestra a continuación:

Stochasticity

Para trabajar en los scripts de R anteriormente descritos, basta abrirlos en RStudio y correrlos en el siguiente orden:

Paso 1. simulations.R
Paso 2. subsampling.R
Paso 3. fitting.R
Paso 4. validation.R

La idea general es simular primero el total de datos (paso 1) para posteriormente tomar submuestras de estas simulaciones, así como de los datos reales (paso 2) para posteriormente realizar el ajuste del modelo (paso 3) y validar dicho ajuste (paso 4).

Interpretación de resultados

La manera correcta de interpretar los resultados tras correr los scripts es con las gráficas que validan el fit obtenido por la función mlfit.gb2 de la librería GB2. De las gráficas obtenidas, (i) la gráfica de la Función de Distribución Empírica (FDE) vs. la Función de Distribución Teórica (FDT) debe mostrar que las curvas están casi encima, (ii) la gráfica Cuantil-Cuantil (QQ) debe mostrar que los valores deben estar en su mayoría sobre la recta identidad y (iii) la gráfica de densidad con los parámetros obtenidos sobre el histograma debe quedar por encima del histograma, ajustándose a su forma.

Si las condiciones anteriores se cumplen todas a la vez, podemos afirmar que la estimación de parámetros permite que el modelo se ajuste a los datos.

Ejemplo: Resultados del modelado con la distribución Beta Generalizada de Tipo II de 500 datos simulados con la distribución Beta Generalizada de Tipo II pueden apreciarse a continuación.

FDE vs FDT
QQ
DH

modeladobetageneralizadaii's People

Watchers

 avatar  avatar

Forkers

mariaoros

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.