Proyecto Final - Certificación Profesional en Ciencia de Datos

Autor/a

Federico Antonacci

Código
# Listado de Librerías utilizadas

library(readr)
library(dplyr)
library(ggplot2)
library(scales)
library(here)
library(glue)
library(tidyr)
library(ggthemes)
library(gghighlight)
library(gt)
library(tidyverse)
library(rpart)
library(rpart.plot)
library(caret)
library(randomForest)

# Base de datos original INE - 55.378 observaciones (Filas)
#                                 517 variables (Columnas)

data_ECH_2023 <- read.csv(here("Datos/ECH_implantacion_2023.csv"),
                          sep = ",",
                          dec = ".", 
                          fileEncoding = "latin1")   

dim_data_ECH_2023 <- dim(data_ECH_2023) 

PROYECTO FINAL

INTRODUCCIÓN

Reforma de Salud en Uruguay

La reforma de salud implementada en Uruguay a partir del año 2005 implica un proceso, en constante perfeccionamiento, y como todo proceso siempre estará en revisión.

En el año 2005, con la asunción de un nuevo Gobierno, se pone en marcha en Uruguay un proceso de reformas estructurales encaminadas a modernizar el Estado, el sistema tributario, la educación, el sistema laboral, la creación de redes integrales de protección social y la reforma del sistema de salud. Estas reformas buscan un estado de bienestar con mayor justicia social y equidad para sus habitantes.

La reforma de la salud se apoya en el cambio de tres aspectos fundamentales: el cambio del modelo de financiamiento, el cambio del modelo de gestión y el cambio en el modelo de atención.

Hasta el año 2005, nuestro sistema de salud se conformaba de subsistemas fragmentados, inequitativos y sin vínculo de complementariedad, que otorgaban cobertura como prestación de seguridad social únicamente al trabajador privado, el que recibe la cobertura a través de prestadores privados de salud. Contábamos con un modelo de atención básicamente curativo, asistencialista y hospitalocéntrico, en el que no estaban claramente determinadas las prestaciones, ni los programas de salud obligatorios.

Con la reforma de la salud del 2005, se crea un sistema nacional integrado de salud único, conformado por la articulación entre los prestadores privados y el prestador público. Con un seguro nacional de salud (SNS) que financia la cobertura tanto del trabajador como de su familia, que no desampara al trabajador al final de su etapa activa, mantiene la cobertura hasta el final de su vida. Se regula la cantidad y calidad de las prestaciones a través de la definición taxativa de un plan integral de atención de la salud (PIAS), que busca el cumplimiento del objetivo de universalidad de acceso para todos los habitantes del país a una salud basada en la integralidad y equidad.

Este trabajo aborda la posibilidad de predicción de la elección de la cobertura de prestación en salud, entre el MSP/ASSE (Ministerio de Salud Pública/Administración de los Servicios de Salud del Estado) y una IAMC (Institución de Asistencia Médica Colectiva), de un usuario en el marco del sistema nacional integrado de salud.

ANTECEDENTES

Uno de los pilares en los que se asienta la reforma y el Sistema de Salud Uruguayo, es la concepción de la salud como un derecho humano fundamental , por lo tanto, es responsabilidad del Estado. Con el derecho a la libre elección del prestador integral de salud de cada usuario surge nuestro interés en predecir esta decisión, en base a variables socioeconómicas de cada beneficiario.

Bases Jurídicas de la Reforma de la Salud en el Uruguay

La normativa que respalda y sustenta la creación del Sistema Nacional Integrado de Salud (SNIS) son la  Ley 18.211 del 05/12/2007 y su decreto reglamentario, Decreto 2/2008 del 01/01/2008, es la esencia creadora del nuevo Sistema de Salud y la base para todas las reformas planteadas.

La Ley 18.211 del 05/12/2007 creó el Sistema Nacional Integrado de Salud (SNIS) con los siguientes objetivos:

a) Alcanzar el más alto nivel posible de salud de la población mediante el desarrollo integrado de actividades dirigidas a las personas y al medio ambiente que promuevan hábitos saludables de vida, estimulando la participación ciudadana, en busca del mejoramiento de la calidad de vida de la población.

b) Implementar un modelo de atención integral basado en objetivos sanitarios que priorice al usuario y la calidad de la atención, con una estrategia sanitaria común, políticas de salud articuladas, programas integrales con actividades de promoción, protección, diagnóstico precoz, tratamiento oportuno y rehabilitación de la salud, incluyendo los cuidados paliativos.

c) Impulsar la descentralización de la ejecución en el marco de la centralización normativa, promoviendo la coordinación entre dependencias nacionales y departamentales.

d) Organizar la prestación de los servicios según niveles de complejidad definidos y áreas territoriales.

e) Lograr el aprovechamiento racional de los recursos humanos, materiales, financieros y de la capacidad sanitaria instalada y a instalarse.

f) Promover el desarrollo profesional continuo de los recursos humanos para la salud, el trabajo en equipos multidisciplinarios y la investigación científica.

g) Fomentar la participación activa de trabajadores y usuarios.

h) Establecer un financiamiento equitativo para la atención integral de la salud.

Cambio de modelo de financiamiento

El Seguro Nacional de Salud (SNS)

La Ley 18.211 creó el Seguro Nacional de Salud (SNS) como instrumento de financiamiento del SNIS, a través del Fondo Nacional de Salud (FONASA, Ley 18.131 del 18/05/2007) y con cargo al que se pagarán las cuotas salud que correspondan a los prestadores que integren el Seguro. Este se gestiona a través de la modalidad de seguro social, brindando un servicio de seguridad social a cambio del pago de aportes de sus beneficiarios, de las empresas empleadoras y del Estado.

Esta forma de financiamiento apunta a gestionar con solidaridad contributiva, eficacia sanitaria y eficiencia económica. Los beneficiarios aportan según su capacidad contributiva y reciben atención según sus necesidades de salud.

El FONASA paga a los prestadores de salud (Públicos y Privados) la cuota salud, la que se estructura a través  de dos aspectos: Uno fijo determinado por el valor definido según la edad y sexo del beneficiario llamado “Cápita”. Y un componente variable llamado “Meta”, o pago por incentivo.

La forma de financiamiento persigue alcanzar los objetivos sanitarios del sistema de salud y sociales del país, redistribuyendo ingresos, reduciendo la carga de la atención en salud. Es para la mayor parte de los habitantes al hacerla proporcional a los ingresos del núcleo familiar y solidaria con los más necesitados. Así se logra mayor equidad intergeneracional y de género, dado el pago de cuotas salud diferenciadas por edad y sexo.

Fondo Nacional de Salud, recibe:

-       Aportes del Estado,

-       Aportes de los Hogares,

-       Aportes de las Empresas.

Instituciones de Salud público y privado:

-       Reciben pago por cápita (edad y sexo) y metas.

Usuarios, tienen libre elección de su prestador de salud, reciben atención general:

-       En este punto se encuentra el núcleo de este trabajo, ya que intentaremos predecir la elección del prestador de salud entre MSP/ASSE y una IAMC.

Aportes al Fonasa:

Beneficiarios

·         3% de Aportes sobre ingresos inferiores a 2,5 BPC (Base de Prestaciones y Contribuciones), incluye la cobertura del generante y de los menores de edad y mayores con discapacidad a cargo.

·         4,5% de Aportes sobre ingresos superiores a 2,5 BPC, incluye la cobertura del generante SIN hijos y/o menores o mayores a cargo.

·         6% de Aportes sobre ingresos superiores a 2,5 BPC,  incluye la cobertura del generante CON menores de edad o mayores con discapacidad a cargo.

·         8% de Aportes sobre ingresos superiores a 2,5 BPC, incluye la cobertura del generante, de los menores y/o mayores con discapacidad a cargo y de concubino sin derecho a cobertura por el SNS.

Empleadores y Estado como empleador

El Estado, las Personas públicas no estatales y las Empresas privadas aportarán al Fondo Nacional de Salud un 5% del total de las retribuciones sujetas a montepío, que paguen a sus trabajadores amparados al Seguro Nacional de Salud y los Complementos de Cuota salud que correspondan por aplicación de la Ley 16.320 del 01/11/1992.

Aportes al FONASA:

·         Trabajadores y Jubilados: 3%, 4,5%, 6% o 8%

·         Empleadores: 5% o Complemento de cuota

·         Estado: Diferencia entre ingresos y egresos

Cambio de modelo de gestión

La Junta Nacional de Salud

La Ley 18.211 creó la Junta Nacional de Salud (JUNASA) con los cometidos de:

a)       Administrar el Seguro Nacional de Salud.

b)      Velar por los principios rectores y objetivos del SNIS.

La principal herramienta de la Junta Nacional de Salud es la firma del contrato de gestión con los prestadores integrales de servicios de salud, requisito imprescindible para formar parte del Seguro Nacional de Salud.

Estos contratos tienen como objetivo central dar un marco de obligaciones formal y claramente definido a los derechos y obligaciones establecidos en la Ley 18.211, además se consagran como la herramienta fundamental para encaminar el “cambio del modelo de atención”.

Existen dos prestadores integrales de salud, que integran el Sistema, que atienden a los colectivos del personal militar y policial y por la especialidad de la normativa que los regula, no han firmado el contrato de gestión con la JUNASA, por lo tanto no integran el Seguro Nacional de Salud (SNS), ni reciben beneficios de este. Los demás prestadores han firmado el contrato de gestión, por esto, integran el Seguro Nacional de Salud (SNS), lo que les asegura recibir del FONASA el pago de la cuota salud por la cobertura que brindan a los beneficiarios que se registren en sus padrones de usuarios. Estas prestaciones de salud no serán consideradas en nuestro trabajo al realizar la predicción en la elección de los usuarios.

En estos contratos se crean las metas asistenciales, así como se delimita su alcance y contenido.

Cambio de modelo de atención

El cambio en el modelo de atención es más complejo y de avance difícil, debido a que está unido al cambio de financiamiento de gestión, además supone un cambio cultural profundo de los sectores de trabajadores, de los usuarios del sistema y de los cuadros de gerenciamiento de las instituciones de salud.

La tarea consiste en lograr abandonar el modelo hospitalocéntrico, individualista, medicalizado, superespecializado y de medicina reparatoria, que genera inequidad, difícil acceso a los servicios y prestaciones, altos costos con bajos beneficios para convertirlo en un modelo de atención que considere de forma integral a la persona, a la familia y a la comunidad que integre el fomento de la promoción de la salud.

La Ley 18.211 establece, “El Sistema Nacional Integrado de Salud se organizará en redes por niveles de atención según las necesidades de los usuarios y la complejidad de las prestaciones. Tendrá como estrategia la atención primaria en salud y priorizará el primer nivel de atención”.

La Atención Primaria en Salud fue definida como la asistencia sanitaria esencial basada en métodos y tecnologías prácticas, científicamente fundados y socialmente aceptables, puesta al alcance de todos los individuos y familias de la comunidad mediante su plena participación y a un costo que la comunidad y el país puedan soportar, en todas y cada una de las etapas de su desarrollo con un espíritu de autorresponsabilidad y autodeterminación. La atención primaria forma parte integrante tanto del sistema nacional de salud, del que constituye la función central y el núcleo principal, como del desarrollo social y económico global de la comunidad.

La participación social

La Ley 18.211 al crear la JUNASA previó la participación de un representante de los usuarios, uno de los trabajadores y otro de las empresas del sector salud. Para integrar el Seguro Nacional de Salud es obligatorio que las instituciones de salud públicas y privadas, cuenten con Consejos Consultivos y Asesores representativos de sus trabajadores y usuarios, exceptuando exclusivamente a las que ya los tienen en sus órganos de dirección. Se establece que la Junta Nacional de Salud contará con órganos asesores departamentales y locales que replicarán su composición en todo el territorio nacional.

La Administración de los Servicios de Salud del Estado (ASSE – Prestador público de salud) tiene integrados a usuarios y trabajadores en su directorio, según lo establece su propia Ley constitutiva 18.161 del 29/07/2007.

PROBLEMA DE INVESTIGACIÓN

Libre elección de prestador integral de salud de los beneficiarios del Seguro Nacional de Salud.

Todas las personas beneficiarias del Seguro Nacional de Salud (SNS) tienen derecho a la libre elección de un prestador integral de salud entre los que conforman dicho Seguro.

El derecho a la elección podrá ser ejercido dentro del plazo de 180 días contados: a) desde la incorporación del beneficiario al SNS por primera vez, b) desde el cambio de categoría del beneficiario, son aquellas modificaciones de la situación jurídica que sustenta al amparo de dicho seguro, c) desde la reincorporación del beneficiario al SNS luego de una interrupción mayor a 180 días. El Banco de Previsión Social (BPS) dispondrá de los procedimientos y controles necesarios para el cumplimiento de la normativa vigente.

A partir del derecho a la libre elección del prestador integral de salud nos podemos plantear las siguientes preguntas:

Preguntas de investigación planteadas:

¿Qué variables son determinantes para la elección de la cobertura de salud principal entre MSP/ASSE y una IAMC?

¿Podemos predecir la elección de los usuarios sobre su cobertura de salud principal entre MSP/ASSE y una IAMC?

METODOS ESTADÍSTICOS

Árboles de decisión con R

Los árboles de decisión son un método usado en distintas disciplinas como modelo de predicción. Estos son similares a diagramas de flujo en los que llegamos a puntos en los que se toman decisiones de acuerdo a una regla. Los árboles de decisión o clasificación son modelos predictivos formados por reglas binarias (si/no) con los que se consiguen repartir las observaciones en función de sus atributos y predecir así el valor de la variable de respuesta.

Muchos métodos predictivos generan modelos globales en los que una única ecuación se aplica a todo el espacio muestral. Cuando el caso implica la utilización de múltiples predictores, que interaccionan entre ellos de forma compleja y no lineal, es muy difícil encontrar un único modelo global que sea capaz de reflejar la relación entre las variables. Los métodos estadísticos basados en árboles engloban a un conjunto de técnicas supervisadas no paramétricas que consiguen segmentar el espacio de los predictores en regresiones simples, es más sencillo manejar las interacciones.

Introducción a los árboles de decisión

En el campo del aprendizaje automático (machine learning) existen distintas maneras de obtener árboles de decisión, la que usaremos en este trabajo se conoce como CART: Classification and Regression Trees. Tenemos una variable objetivo (dependiente, ver Anexo 1) y nuestra meta es obtener una función que nos permite predecir, a partir de variables predictoras (independientes, ver Anexo 1), el valor de la variable objetivo para casos desconocidos (a predecir).

CART es una técnica con la que se pueden obtener árboles de clasificación y de regresión. Usamos clasificación cuando nuestra variable objetivo es discreta, mientras que usaremos regresión cuando sea continua. En nuestro trabajo tendremos una variable discreta y = Derechos Vigentes en Instituciones de Salud Principal (0 = MSP/ASSE, 1 = IAMC), realizaremos una clasificación.

La implementación particular de CART que usaremos se conoce como Recursive Partitioning and Regression Trees o RPART, de allí el nombre del paquete de R que usaremos. Este algoritmo encuentra la variable independiente que mejor separa nuestros datos en grupos, que corresponden a las categorías de la variable objetivo. Esta separación está expresada con una regla, que se corresponde con un nodo.

Los datos son separados (particionados) en grupos a partir de la regla obtenida, luego, para cada uno de los grupos resultantes se repite el mismo proceso. Se busca la variable que mejor separe los datos en grupos, se obtiene una regla y se separan los datos. Esto se realiza de manera recursiva hasta que no es posible obtener una mejor separación, cuando esto ocurre el algoritmo se detiene. Cuando un grupo no puede ser separado, se le llama nodo terminal u hoja.

Una característica muy importante en este algoritmo es que una vez que alguna variable ha sido elegida para separar los datos, ya no es usado de nuevo en los grupos que se ha creado. Se buscan variables distintas que mejoren la separación de los datos.

Supongamos después de una partición que hemos creado dos grupos A y B, es posible que para el grupo A la variable que mejor separe estos datos sea diferente a la que mejor separe los datos en el grupo B. Una vez que los grupos se han separado, el algoritmo no considera o que ocurre en el otro grupo, estos son independientes entre sí y las reglas que aplican para ellos no afectan en nada a los demás.

El resultado de todo el proceso anterior es una serie de bifurcaciones que tiene la apariencia de un árbol que va creciendo en ramas, hasta llegar a sus hojas.

Los métodos basados en árboles se han convertido en uno de los referentes dentro del ámbito predictivo debido a los buenos resultados que generan en problemas muy diversos, debido a esta característica su elección para este trabajo.

Principales ventajas de este modelo:

Su interpretabilidad, pues nos brinda un conjunto de reglas a partir de las que se puede tomar decisiones. Este es un algoritmo que no es demandante en poder de cómputo comparado con procedimientos más sofisticados, aunque tiende a dar buenos resultados de predicción para muchos tipos de datos.

-       Los árboles son fáciles de interpretar, aún cuando las relaciones entre predictores son complejas.

-       Los modelos basados en un solo árbol se pueden representar gráficamente, aún cuando el número de predicciones sea mayor a tres.

-       Los árboles pueden, en teoría, manejar tanto predictores numéricos como categóricas sin tener que crear variables dummy. En la práctica esto depende de la implementación del algoritmo que tenga cada librería.

-       Al tratarse de métodos no paramétricos, no es necesario que se cumpla ningún tipo de distribución específica.

-       En general, requieren menos trabajo de preprocesado de los datos en comparación con otros métodos de aprendizaje estadístico (por ejemplo no requieren estandarización).

-       No se ven muy influenciados por outliers.

-       Son muy útiles en la exploración de datos, permiten identificar de forma rápida y eficiente las variables (predictoras) más importantes.

-       Son capaces de seleccionar predictores de forma automática.

-       Pueden aplicarse a problemas de regresión y clasificación.

Principales desventajas de este modelo:

Cuenta con un tipo de clasificación “débil”, debido a que sus resultados pueden variar mucho dependiendo de la muestra de datos usados para entrenar (train) un modelo. Es fácil sobre ajustar los modelos, esto los hace excelentes para clasificar datos que conocemos, pero deficientes para datos desconocidos.

-       La capacidad predictiva de los modelos basados en un único árbol es bastante inferior a la conseguida con otros modelos. Esto es debido a su tendencia a sobre ajustar y alta varianza. Para esta situación existen técnicas más complejas, haciendo uso de la combinación de múltiples árboles (bagging, Random forest, boosting), que consiguen mejorar en gran medida esta situación. Debido a este punto se ejecutaran un conjunto de funciones para superar esta debilidad y evaluar la elección de nuestro árbol inicial.

-       Son sensibles a datos de entrenamiento desbalanceados (una de las clases domina sobre las demás).

-       Cuando son utilizados predictores continuos, pierden parte de su información al ser categorizados en el momento de la división de los nodos.

-       No son capaces de extrapolar fuera del rango de los predictores observados en los datos de entrenamiento.

Paquetes necesarios de R

tidyverse: Familia de paquetes tidyverse, ayudan al procesamiento de los datos.

rpart: Implementación de árboles de clasificación a utilizar.

rpart.plot: Graficar los resultado de rpart.

caret: Con utilidades para clasificación y regresión, utilizado para crear matrices de confusión.

Crear sets de entrenamiento (train) y prueba (test)

Es necesario un set de entrenamiento (train) para generar un modelo predictivo y otro set de prueba (test) para comprobar la eficacia de este modelo para nuestras predicciones.

Para obtener los sets referidos usaremos una muestra aleatorio mediante la función sample() y set.seed() para permitir la reproducibilidad de nuestro trabajo.

Entrenamiento de nuestro modelo

Para entrenar nuestro modelo usaremos la función rpart(), esta función exige una formula para especificar la variable objetivo de la clasificación, a partir de las demás variables predictoras.

Evaluación de nuestro modelo

A partir del entrenamiento de nuestro modelo obtenemos su resultado, se observa el esquema de nuestro árbol de clasificación, cada inciso indica un nodo y la regla de clasificación correspondiente. Siguiendo estos nodos podemos llegar a las hojas del árbol, esto corresponde a la clasificación de nuestros datos.

Visualización de nuestro modelo

Lo anterior resulta más claro si es visualizado mediante un gráfico usando nuestro modelo con la función rpart.plot(). En este gráfico cada uno de los rectángulos representa un nodo de nuestro árbol, con su regla de clasificación. Cada nodo es colorado de acuerdo a la categoría con mayor probabilidad de los datos que agrupa, esta será la categoría que ha predicho el modelo para ese grupo. Dentro del rectángulo de cada nodo nos indica qué proporción de casos pertenecen a cada categoría y la proporción del total de datos que han sido agrupados allí.

Árbol CART – Classification Ad Regression Trees fue diseñado por Breiman et al (1984), con este algoritmo se generan árboles de decisión binarios, lo que implica que cada nodo se divide en exactamente dos ramas.

En los árboles de decisión se encuentran los siguientes componentes: nodos, ramas y hojas. Los nodos son las variables de entrada, las ramas representan los posibles valores de las variables de entrada y las hojas son los posibles valores de la variable de salida. El primer elemento de un árbol de decisión es el nodo raíz, que representa la variable de mayor relevancia en el proceso de clasificación.

Una vez que los datos son separados (particionados) en grupos a partir de la regla obtenida, luego para cada uno de los grupos resultantes se repite el mismo proceso. Se busca la variable que mejor separa los datos en grupos, se obtiene una regla y se separan los datos. Se realiza de manera recursiva hasta que es imposible obtener una mejor separación, cuando esto ocurre el algoritmo se detiene. Cuando un grupo no puede ser particionado de una mejor manera, se le llama nodo terminal u hoja.

Una característica muy importante de este algoritmo es que una vez que alguna variable ha sido elegida para separar los datos ya no es usada de nuevo en los grupos que ha creado. Se buscan variables distintas que mejoren la separación de los datos.

Cada nodo está coloreado de acuerdo a la categoría mayoritaria entre los datos que se agrupa, esta es la categoría que ha predicho el modelo para este grupo. Dentro del rectángulo de cada nodo se muestra que proporción de casos pertenecen a cada categoría y la proporción del total de datos que han sido agrupados allí.

Se utilizará la función predict() con nuestro set de prueba (test) para generar un vector con los valores predichos por el modelo que hemos entrenado (train), debemos especificar el parámetro type = “class”.

A partir del cruce entre los datos reales de nuestro set de prueba (test) se genera una una matriz de confusión, usando confusionMatrix() del paquete caret.

El árbol que hemos generado ha realizado predicciones a partir de los datos de entrenamiento empleados. Si nuestros datos cambian, la variable que hace la mejor separación también podrá cambiar, por lo tanto, los grupos que resulte de esta separación serán diferentes, resultando en un modelo que puede ser diferente al que hemos obtenido con nuestro set de entrenamiento original.

Al generar un nuevo set de entrenamiento será diferente con respecto al anterior, se podrá modificar el orden en que fueron hechas las particiones, podrán o no coincidir las variables usadas para separar los grupos. Esto ejemplifica la desventaja mencionada anteriormente.

¿Cómo elegimos un modelo?

La elección del modelo depende de nuestros objetivos y de qué tanta precisión nos interesa en nuestras predicciones. Una manera de elegir un modelo es creando múltiples modelos y compararlos entre sí. Se podrán crear k cantidad de árboles con los mismos datos y después se podrán analizar los modelos que tienen más éxito para clasificar, para determinar cuáles variables son la que mejor separan los datos, y en que rangos se encuentran los valores de las reglas. Este el principio del método Random Forest.

Es muy probable que si repetimos este ejercicio, el de repetir múltiples modelos suficientes veces, encontraremos más regularidades como estas. Este ejercicio será realizado mediante un conjunto de funciones en este trabajo, para sistematizar el análisis.

Sistematizar el análisis

Podemos sistematizar la generación de árboles de manera repetida mediante un grupo de funciones.

Las funciones que utilizaremos para generar árboles incluyen ajustes de parámetros que nos ayudan a perfeccionar nuestros modelos de predicción con árboles de clasificación.

ANÁLISIS DE LOS DATOS

Encuesta Continua de Hogares, Año 2023 ECH_implantacion_2023

Base de datos inicial – original “ECH_implantacion_2023”

La Encuesta Continua de Hogares (ECH) es una encuesta multipropósito que el Instituto Nacional de Estadística realiza sin interrupciones durante todo el año, desde el año 1968. Su origen, al igual que muchas encuesta de hogares de los países americanos, constituyen el “Modelo Atlántida” diseñado por el Bureau of Censual de Estados Unidos de América.

La Encuesta Continua de Hogares 2023 tiene como objetivos: Estimar las tasas de actividad, de empleo y desempleo de la población y Estimar el ingreso de los hogares y de las personas. También aporta información básica para el estudio de las características socioeconómicas de la población del país.

Los datos de la ECH son obtenidos por muestreo. La encuesta va dirigida a la población que reside en viviendas particulares y que integran hogares particulares, por lo que quedan excluidos tanto las viviendas como los hogares colectivos (hoteles, conventos, cuarteles, hospitales). No obstante, a lo establecido en el punto anterior, se incluyen los hogares que formando un grupo independiente, residen en estos establecimientos, como puede ser el caso de los encargados, caseros, porteros.

La unidad geográfica de la ECH cubre Montevideo, las localidades urbanas de 5.000 habitantes o más, las localidades urbanas de menos de 5.000 habitantes y el área rural.

El universo de estudio de la ECH 2023 es la totalidad de los hogares particulares que habitan viviendas particulares en el territorio nacional.

Procedimiento de muestreo: La condición de elegibilidad, para participar de la ECH, es que debe residir el hogar en una vivienda particular ubicada en cualquier parte del territorio nacional.

Diseño muestral: Para la selección de la ECH se utiliza como marco muestral el censo de viviendas, hogares y población del año 2011 realizado por el INE. Debido a que el censo es una “fotografía” del stock de viviendas en el año 2011, el mismo como es natural tiene un proceso de desactualización. Esto provoca que el marco muestral tenga problemas de cobertura, es decir, hay unidades (viviendas particulares ocupadas) pertenecientes a la población que no se encuentran incluidas en el marco muestral. El INE actualiza de forma periódica dicho marco en base a fuentes administrativas como son los registros de construcción del Banco de Previsión Social. Si bien este complemento de información para la conformación final del marco muestral busca reducir los problemas de cobertura, las viviendas construidas de forma irregular posterior a la realización del censo pueden encontrarse en menor o mayor medida “sub representadas” en el marco muestral.

Selección de las viviendas en la muestra: Las viviendas incluidas en la muestra, en cada uno de los estratos de diseño, no son seleccionadas directamente. En una primera etapa son seleccionadas áreas pequeñas, bien definidas, las que se denominan unidades primarias de muestreo (UPM). Las UPM corresponden a las zonas censales (conglomerados o grupos de viviendas). Estas tienen como mínimo 20 viviendas particulares y como máximo 80 viviendas. Esto implica que algunas zonas censales que originalmente eran pequeñas fueran conglomeradas con zona censales vecinas para llegar al mínimo requerido por el diseño de la encuesta y que, por otra parte, aquellas zonas censales extremadamente grandes sean particionadas de forma de reducir la heterogeneidad entre los tamaño de las UPM lo que tiende a repercutir en el error estándar de las estimaciones. Luego, dentro de cada una de las UPM seleccionadas en la primera etapa, se seleccionan de forma aleatoria viviendas particulares. La estrategia de selección de las UPM tiene en cuentan los seis grupos de rotación que conforman un mes de estimación de la ECH. Esto se debe a que los grupos de rotación al momento del nacimiento son utilizados para producir el resto de los indicadores que aborda la ECH y que son relevados en el formulario de implantación (por ejemplo ingresos y condiciones de vida). Para logar lo anterior, cada estrato de diseño es dividido en forma aleatoria utilizando un muestreo sistemático ordenado de las UPM por tamaño, en base a la cantidad de viviendas, en seis grupos que tienen aproximadamente la misma cantidad de UPM y viviendas.

Las UPM son seleccionadas con probabilidad al tamaño utilizando como media de tamaño la cantidad de viviendas particulares según el Censo del año 2011. La muestra luego de su permanencia durante seis meses en la ECH es reemplazada por otra muestra del mismo tamaño y seleccionada bajo el mismo mecanismo de selección. Posteriormente, en la segunda etapa dentro de cada una de las UPM seleccionadas, se sortean 15 viviendas con igual probabilidad de selección bajo un muestreo aleatorio simple sin reposición.

El objetivo de la ECH sería realizar al momento de la implantación, es decir en el nacimiento del grupo de rotación, aproximadamente 10 encuestas por UPM (elegibles respondentes) en las áreas urbanas y 5 encuestas por UPM en los estratos rurales. Teniendo en cuenta que en el marco muestral utilizado para la selección de la muestra hay viviendas que no cumplen los criterios de elegibilidad (ejemplo viviendas desocupadas) y que también pueden existir hogares, que si bien cumplen los criterios de elegibilidad, no se pueda obtener respuesta (elegibles no respondientes), el tamaño de muestra a nivel de UPM se incrementó a 15 y 10, para urbanas y rurales respectivamente. A su vez y de forma de mantener la aleatoriedad lo máximo posible, las viviendas seleccionadas dentro de cada UPM son numeradas al azar. Los encuestadores deben seguir dicho orden aleatorio en campo hasta intentar llegar al tamaño de muestra esperado.

Tamaño de la muestra: El tamaño de la muestra esperado de cada grupo de rotación al momento de su implantación es de 2.000 hogares aproximadamente. Esto implica que en el año se encuestan a 24.000 hogares distintos. Cada uno de estos hogares, una vez implantados, permanecen en la encuesta durante cinco meses más y se releva información únicamente referida al mercado laboral para los integrantes de 14 o más años. Esto da como resultado que la estimaciones mensuales se realicen con aproximadamente 10.000 hogares efectivos si se tiene en cuenta la tasa de respuesta.

La fecha de recolección de los datos es, con fecha de inicio 01/01/2023 y fecha de finalización 30/06/2023.

El método de recolección de datos es cara a cara o entrevista telefónica asistida por computadora.

Tipo de instrumento de investigación: Se utilizó un cuestionario precodificado, excepto en las preguntas referidas al curso o carrera educativa, a la ocupación de las personas ocupadas y a la actividad económica que desarrollan.

Nuestra base de datos inicial es la ECH_implantacion_2023 cuenta con 55378 observaciones (Filas) y 517 variables (Columnas).

No esta permitido ser usuario FONASA de dos prestadoras integrales distintas al mismo tiempo. Tampoco podrán existir casos de doble cobertura donde una de las que participa es una afiliación gratuita en ASSE, ya que para acceder a este beneficio no se debe tener otra cobertura integral de ningún tipo.

Transformaciones realizadas a la Base de datos inicial – original “ECH_implantacion_2023”

Seleccionamos las variables indicadas en Anexo 1 para crear el data.frame data_previa

Código
# Transformaciones a la Base de Datos inicial dataset: data_previa

# De la Base de datos original que cuenta con 517 Variables, vamos a seleccionar Class variables que según los antecedentes vistos pueden llegar a tener influencia en la toma de decisión de cada individuo sobre su cobertura de salud MSP/ASSE o IAMC

vars_ECH <- c("e45_cv","dpto","nom_dpto","d25","e26","e27","e45_1_1_cv","e45_2_1_cv",   
              "e46_cv","e48","e51_2","e51_4_a","e51_4_b","e51_5","e51_6","e51_8","e51_9","e51_10",
              "e51_11","e559","f269","f85","f99","g126_1","g126_2","g126_3","g126_4",
              "g134_1","g134_2","g134_3","g134_4","g_it_1","g148_1_1","g148_1_2",
              "g148_1_3","g148_1_5","g148_1_6","g148_1_7","g148_1_8","g148_1_9","g148_1_10",
              "g148_1_11","g148_1_12","g_it_2","g148_2_1","g148_2_2","g148_2_3","g148_2_5","g148_2_6",
              "g148_2_7","g148_2_8","g148_2_9","g148_2_10","g148_2_11","g148_2_12","g154","g154_1",
              "eg_ps3","eg_ps7","eg_ps1","PT1","PT2","PT4","pobre06","indig06")


data_previa <- data_ECH_2023 %>% 
  select(all_of(vars_ECH)) %>% 
  mutate(años_educ = e51_2 + e51_4_a + e51_4_b + e51_5 + e51_6 + e51_8 + e51_9 + e51_10 + e51_11,
         Ing_Act_Pri = g126_1 + g126_2 + g126_3 + g126_4,
         Ing_Act_Sec = g134_1 + g134_2 + g134_3 + g134_4,
         Jub_Ing = g148_1_1 + g148_1_2 + g148_1_3 + g148_1_5 + g148_1_6 + 
           g148_1_7 + g148_1_8 + g148_1_9 + g148_1_10 + g148_1_11 + g148_1_12,
         Pen_Ing = g148_2_1 + g148_2_2 + g148_2_3 + g148_2_5 + g148_2_6 +
           g148_2_7 + g148_2_8 + g148_2_9 + g148_2_10 + g148_2_11 + g148_2_12) %>% 
  mutate(y = e45_cv,
         X1 = dpto,
         X2 = nom_dpto,
         X3 = d25,
         X4 = e26,
         X5 = e27,
         X6 = e45_1_1_cv,
         X7 = e45_2_1_cv,  
         X8 = e46_cv,
         X9 = e48,
         X10 = años_educ,
         X11 = e559,
         X12 = f269,
         X13 = f85,
         X14 = f99,
         X15 = Ing_Act_Pri,
         X16 = Ing_Act_Sec,
         X17 = g_it_1,
         X18 = Jub_Ing,
         X19 = g_it_2,
         X20 = Pen_Ing,
         X21 = g154,
         X22 = g154_1,
         X23 = eg_ps3,
         X24 = eg_ps7,
         X25 = eg_ps1,
         X26 = PT1,
         X27 = PT2,
         X28 = PT4,
         X29 = pobre06,
         X30 = indig06) %>% 
  select(y,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16,
         X17,X18,X19,X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30)


# Consideramos en Conjunto los Ingresos de todos los individuos en las Observaciones

# X15 = Ing_Act_Prim + Ing_Act_Sec + Jub_Ing + Pen_Ing
# X15 =       X15    +     X16     +    X18  +   X20

data_previa <- data_previa %>% 
  mutate( X15 = X15 + X16 + X18 + X20) %>% 
  select(-X16, -X18, -X20)

# Descartamos X6,X7,X26,X27,X28: Variables que indican de forma directa la Cobertura

data_previa <- data_previa %>% 
  select(-X6, -X7, -X26, -X27, -X28)  

dim_data_previa <- dim(data_previa) 

Consideramos en forma conjunta el Ingreso Total de los individuos (X15), para esto, definimos esta variable como la suma del Ingreso de actividad principal (X15), Ingreso de actividad secundaria (X16), Jubilaciones recibidas (X18) y Pensiones recibidas (X20) - (Ver Anexo 1).

Las Variables X6 y X7 serán descartadas, ya que determinan de forma directa la cobertura a MSP/ASSE o a una IAMC, indica el mecanismo de acceso correspondiente a cada una (Ver Anexo 1).

Las Variables X26, X27 y X28 serán descartadas, se encontraron observaciones con problemas en su formato numérico, imposibilita su utilización (Ver Anexo 1).

Creamos la Tabla: Tabla_data_previa1

Código

# Tabla con las coberturas de la Base original

tabla_data_previa1 <- data_previa %>% 
  select(y, X1, X2, X8, X15, X25, X29) %>% 
  group_by(y) %>% 
  summarise(
    Cantidad = n()) %>% 
  mutate( Coberturas = c("MSP/ASSE",
                         "IAMC",
                         "SEGURO MEDICO PRIVADO",
                         "HOSPITAL POLICIAL O INTERIOR",
                         "AREA SALUD BPS",
                         "POLICLINICA MUNICIPAL",
                         "SIN COBERTURA")) %>% 
  select(Coberturas, Cantidad) %>% 
  mutate( Porcentaje = round((Cantidad / sum(Cantidad)*100),2))

En nuestro proyecto final, consideramos como variable de interés la elección de los uruguayos de su institución de salud principal, para esta decisión, la ECH consulta a cada individuo con la siguiente pregunta: ¿En cuál de las siguientes instituciones de salud cuenta con derechos vigentes?. En el dataset original corresponde a la variable e45_cv, esta hace referencia al tipo de cobertura de salud y su forma de acceso.

Creamos la Tabla: data_previa1 con la función gt()

Código
tabla_data_previa1 %>% 
  gt() %>% 
  tab_header(title = md("*Individuos por Cobertura de Salud*"),
             subtitle = "Datos Base de datos original" ) %>% 
  tab_source_note(
    source_note = md("**ECH_implementacion_2023 (Completa)**")) %>% 
  tab_footnote(
    footnote = "MSP/ASSE - Cobertura considerada en nuestro análisis",
    locations = cells_body(columns= Coberturas, rows = 1)) %>% 
  tab_footnote(
    footnote = "IAMC - Cobertura considerada en nuestro análisis",
    locations = cells_body(columns=Coberturas, rows = 2)) %>% 
  tab_style(
    list(
      cell_fill(color = "#ffb554"),
      cell_text(color = "white")),
    locations = cells_body(rows = Coberturas == "MSP/ASSE")) %>% 
  tab_style(
    list(
      cell_fill(color = "#6cc0a1"),
      cell_text(color = "white")),
    locations = cells_body(rows = Coberturas == "IAMC")) %>% 
  cols_label(
    Coberturas = "COBERTURAS",
    Cantidad = "CANTIDAD",
    Porcentaje = "%")

Individuos por Cobertura de Salud

Datos Base de datos original
COBERTURAS CANTIDAD %
MSP/ASSE1 17825 32.19
IAMC2 33268 60.07
SEGURO MEDICO PRIVADO 1517 2.74
HOSPITAL POLICIAL O INTERIOR 2242 4.05
AREA SALUD BPS 4 0.01
POLICLINICA MUNICIPAL 10 0.02
SIN COBERTURA 512 0.92

ECH_implementacion_2023 (Completa)

1 MSP/ASSE - Cobertura considerada en nuestro análisis
2 IAMC - Cobertura considerada en nuestro análisis
Tabla 1: Datos con Coberturas de salud, de Base original

Las clasificaciones de nuestra variable objetivo y “original” corresponden a las categorías y cantidades de usuarios indicadas en la Tabla 1

Un caso particular dentro del SNIS es el que se genera con los beneficiarios de la  Sanidad Militar y la Sanidad Policial. Incluso luego de la creación del FONASA, el sistema de salud sigue presentando cierta segmentación, mientras que, el Ministerio de Defensa y el Ministerio del Interior, por ejemplo, continúan resolviendo la cobertura en salud de sus funcionarios, activos y pasivos y familiares por fuera del SNIS. El financiamiento de la Sanidad Militar y la Sanidad Policial tienen básicamente dos componentes: el que surge del Presupuesto que ambos ministerios destinan a la misma y la cuota parte contributiva de los funcionarios. No integran el Seguro Nacional de Salud (SNS), pero en el marco del SNIS coordinan sus prestaciones realizando la atención a sus usuarios en sus propias instalaciones en Montevideo o a través de convenios en el interior del país, con ASSE para el caso de Sanidad Militar y con IAMC y ASSE en el caso de Sanidad Policial (según la persona sea funcionario o familiar del funcionario beneficiario).

La existencia de múltiples coberturas en el sistema de salud es un fenómeno conocido desde siempre y de no fácil solución. Desde el punto de vista de la eficiencia del gasto público en salud podría decirse que existe cierta ineficiencia si se tienen en cuenta las múltiples coberturas entre FONASA y Sanidad Militar o Policial. No obstante, cabe aclarar que el derecho a la cobertura FONASA se genera a partir del aporte del beneficiario al SNIS y, por otro lado, en la cobertura Militar o Policial también existe un aporte del funcionario.

Si se estableciera que toda persona con cobertura de FONASA, o los familiares del militar o policial que tengan cobertura FONASA, no pudieran hacer uso de otra cobertura en salud esto no necesariamente implica, que en las condiciones actuales se redujera el financiamiento a Sanidad Militar o Policial. Los presupuestos asignados a ambos hospitales, al no estar afectados al gasto per cápita de su población no sufriría variaciones, salvo que se estableciera una reducción de ambos presupuestos.

Otra posibilidad, es que toda la Sanidad Militar y la Sanidad Policial pasan a ser parte del SNS y por otra parte reciban las cápitas ajustadas por edad y sexo por cada uno de sus afiliados. Una medida de este tipo implica otro tipo de acuerdos y decisiones  de economía política.

Pasos seguidos en la modificación de nuestra base de datos inicial - original

Código
# Para nuestro análisis solo consideramos en la Variable Objetivo y, las coberturas de salud 1 = MSP/ASSE y 2 = IAMC

data_previa2 <- data_previa %>% 
  filter(y == 1 | y == 2)      # Filtramos solo MSP/ASSE O IAMC

dim_data_previa2 <- dim(data_previa2) 

# Factorizamos la variable y - Variable a predecir - MSP/ASSE = 0 , IAMC = 1
data_previa2$y <- as.factor(ifelse(data_previa2$y == 1,0,1))

# Cambiamos los nombres de los departamento con problemas de escritura

aux_X2 <- data_previa2 %>% select(X2) %>% 
  transmute(X2 = case_match(X2,
                         "Paysandú" ~ "Paysandu",
                         "Río Negro" ~ "Rio Negro",
                         "San José" ~ "San Jose",
                         "Tacuarembó" ~ "Tacuarembo",
                         "Artigas" ~ "Artigas",
                         "Canelones" ~ "Canelones",
                         "Cerro Largo" ~ "Cerro Largo",   
                         "Colonia" ~ "Colonia",
                         "Durazno" ~ "Durazno", 
                         "Flores" ~ "Flores",
                         "Florida" ~ "Florida",
                         "Lavalleja" ~ "Lavalleja",
                         "Maldonado" ~ "Maldonado",
                         "Montevideo" ~ "Montevideo",            
                         "Rivera" ~ "Rivera",          
                         "Rocha" ~ "Rocha",          
                         "Salto" ~ "Salto",                 
                         "Soriano" ~ "Soriano",    
                         "Treinta y Tres" ~ "Treinta y Tres")) 

# La variable X2 nombre de los departamentos la convertimos en  clase factor

data_previa2$X2 <- as.factor(aux_X2$X2)

# La variable X1 número asignado a los departamentos la convertimos en clase factor

data_previa2$X1 <- as.factor(data_previa2$X1)

# La variable X8 indica Afiliación a Emergencia Móvil (1=Si, 2 = No)

data_previa2$X8 <- as.factor(data_previa2$X8)

# La variable X29 indica Pobreza según Metodología 2006 (0 = No Pobreza, 1 = Si Pobreza)

data_previa2$X29 <- as.factor(data_previa2$X29)

# La Variable X10 tiene 19 NA´s -> Serán eliminadas estas observaciones, corresponden a 19 observaciones en la Variable e51_2 que figruan con NA (LOS DESCARTAMOS)

# Calculamos el número de NAs por cada Variable
na_counts <- sapply(data_previa2, function(x) sum(is.na(x)))

# Converimos el Resultado en una Tabla
na_table <- data.frame(Variable = names(na_counts), NAs = na_counts)

#     Variable NAs
# X10      X10  19

data_previa2 <- na.omit(data_previa2)         # Eliminamos los NA´s 


#### Debemos Ajustar nuestra Base con las Variables a considerar

data <- data_previa2 %>% 
  select(-X2)             # No consideramos X2 es análoga a X1


dim_data <- dim(data) 

No es evidente la mejor estrategia para reducir la ineficiencia de múltiples prestaciones de salud que generan más de una cobertura, de forma que tenga un impacto de magnitud en el gasto público realizado, estos comentarios son realizados a efectos de describir de forma clara el sistema nacional integrado de salud, en este trabajo realizamos una simplificación al considerar solamente las coberturas prestadas por MSP/ASSE y las IAMC, representa en conjunto el 92% del total de observaciones originales.

Nuestro trabajo intenta determinar qué variables son determinantes para la elección de la cobertura de salud principal entre MSP/ASSE y una IAMC, corresponden a un total de 51074 registros, representan el 92% del total de observaciones (55378). Consideraremos estas observaciones en nuestro dataset, filtramos la variable objetivo (y) por las categorías MSP/ASSE (y=0) o IAMC (y=1).

Buscamos clasificar a los usuarios, según determinadas variables socioeconómicas, en su elección sobre una cobertura de salud principal entre MSP/ASSE o una IAMC. Nuestra variable dependiente (variable a predecir), será una variable dicotómica (Dummy), a partir de la variable e45_cv, que llamaremos: y = Derechos Vigentes en Instituciones de Salud Principal (0 = MSP/ASSE , 1 = IAMC).

La base de datos para nuestro análisis (dataset: data) se construyó a partir de la Encuesta Continua de Hogares de implantación del año 2023 ECH_implantacion_2023 . Se realizan los siguientes ajustes:

  • Filtramos la Variable Objetivo y por las coberturas MSP/ASSE o IAMC,

  • Factorizamos la Variable y - Variable a predecir - y la convertimos en una Dummy con MSP/ASSE = 0 , IAMC = 1,

  • Cambiamos los nombres de los departamentos con problemas de escritura,

  • La variable X2 nombre de los departamentos lo convertimos en clase factor,

  • La variable X1 número asignado a los departamentos lo convertimos en clase factor,

  • La variable X8 que indica Afiliación a Emergencia Móvil (1=Si, 2 = No) la convertirnos en clase factor,

  • La variable X29 que indica Pobreza según Metodología 2006 (0 = No Pobreza, 1 = Si Pobreza) la convertirnos en clase factor,

  • Chequeamos la cantidad de NA´s en nuestra base de datos. La Variable X10 tiene 19 NA´s . Estas observaciones serán eliminadas, corresponden a 19 observaciones en la Variable e51_2 que figuran con NA (LAS DESCARTAMOS),

  • Calculamos el número de NAs para cada Variable, convertimos el Resultado en una Tabla

Variable NAs
X10 19

,

  • Eliminamos los NA´s,

  • Llegamos a nuestra Base de datos: data (Trabajaremos a partir de esta Base). Contiene información sobre la cobertura de salud MSP/ASSE e IMAC junto a las variables socioeconómicas que consideramos relevantes para nuestro modelo de clasificación. Las variables socioeconómicas las explicitamos en el Anexo 1: Variables – Problema de Clasificación.

    Creamos la Tabla: tabla_data

Código
# Tabla con las coberturas de nuestra Base (data)

tabla_data <- data %>% 
  group_by(y) %>% 
  summarise(
    Cantidad = n()) %>% 
  mutate( Coberturas = c("MSP/ASSE",
                         "IAMC")) %>% 
  select(Coberturas, Cantidad) %>% 
  mutate( Porcentaje = round((Cantidad / sum(Cantidad)*100),2))

Creamos la Tabla: data_previa2 con la función gt()

Código
tabla_data %>% 
  gt() %>% 
  tab_header(title = md("*Individuos por Cobertura de Salud*"),
             subtitle = "Datos con nuestra Base de trabajo") %>% 
  tab_source_note(
    source_note = md("**ECH_implementacion_2023 (Modificada)**")) %>% 
  tab_footnote(
    footnote = "MSP/ASSE - Casos de la base original",
    locations = cells_body(columns= Coberturas, rows = 1)) %>% 
  tab_footnote(
    footnote = "IAMC - Casos de la base original",
    locations = cells_body(columns=Coberturas, rows = 2)) %>% 
  tab_style(
    list(
      cell_fill(color = "#ffb554"),
      cell_text(color = "white")),
    locations = cells_body(rows = Coberturas == "MSP/ASSE")) %>% 
  tab_style(
    list(
      cell_fill(color = "#6cc0a1"),
      cell_text(color = "white")),
    locations = cells_body(rows = Coberturas == "IAMC")) %>% 
  cols_label(
    Coberturas = "COBERTURAS",
    Cantidad = "CANTIDAD",
    Porcentaje = "%")

cant_asse <- tabla_data %>% filter( Coberturas == "MSP/ASSE") %>% select(Cantidad)
cant_iamc <- tabla_data %>% filter( Coberturas == "IAMC") %>% select(Cantidad)
cant_total <- cant_asse + cant_iamc

Individuos por Cobertura de Salud

Datos con nuestra Base de trabajo
COBERTURAS CANTIDAD %
MSP/ASSE1 17815 34.88
IAMC2 33259 65.12

ECH_implementacion_2023 (Modificada)

1 MSP/ASSE - Casos de la base original
2 IAMC - Casos de la base original
Tabla 2: Datos con Coberturas MSP/ASSE e IAMC - Variables a Clasificar, previo al algoritmo del Árbol de decisiones

La Tabla 2 resume la cantidad de registros por prestador de salud (MSP/ASSE o IAMC), es nuestra base de datos, previa a la clasificación del algoritmo Árbol de decisiones.

Esta base data contiene 51074 observaciones (Filas) y 22 variables (Columnas).

Se observa que los usuarios de las IAMC presentan la mayor proporción de usuarios con cobertura, representan el 65% del total de observaciones.

17815 usuarios con cobertura MSP/ASSE,

33259 usuarios con cobertura IAMC.

RESULTADOS

Aplicamos el Modelo arboles de decisión

Crear sets de entrenamiento (train) y prueba (test)

Subdividimos el dataset en 80% Entrenamiento - train y 20% Prueba - test

Código
set.seed(2024)                 # Seteamos la semilla para permitir la Reproducibilidad del trabajo

sample <- sample(seq_len(nrow(data)), size = 0.80 * nrow(data))

train <- data[sample, ]
test <- data[-sample, ]

dim_train <- dim(train)
dim_test <- dim(test)
t1 <- dim_train[1] + dim_test[1]

train: contiene 40859 filas, representa el 80% del total de observaciones.

test: contiene 10215 filas, representa el 20% del total de observaciones.

Entrenamiento de nuestro modelo

Definimos los parámetros de modelo, profundidad Máxima 5, consideramos en principio todas las variables de nuestra base de datos: data (51074 observaciones (Filas) y 22 variables (Columnas))

Código
# Definimos los Parámetros de control, incluyendo la profundidad máxima

control_params <- rpart.control(maxdepth = 5)    # Profundiad Máxima 5

cobertura_tree_previo <- rpart( formula = y ~ .,
                         data = train, 
                         method = "class",
                         control = control_params)

cobertura_tree_previo
#> n= 40859 
#> 
#> node), split, n, loss, yval, (yprob)
#>       * denotes terminal node
#> 
#>  1) root 40859 14199 1 (0.3475122 0.6524878)  
#>    2) X8=2 29390 13476 1 (0.4585233 0.5414767)  
#>      4) X15< 21825 20408  8895 0 (0.5641415 0.4358585)  
#>        8) X25< 1.5 9513  2667 0 (0.7196468 0.2803532) *
#>        9) X25>=1.5 10895  4667 1 (0.4283616 0.5716384)  
#>         18) X1=2,6,7,8,11,12,15,16,18,19 3733  1532 0 (0.5896062 0.4103938) *
#>         19) X1=1,3,4,5,9,10,13,14,17 7162  2466 1 (0.3443172 0.6556828)  
#>           38) X29=1 519   132 0 (0.7456647 0.2543353) *
#>           39) X29=0 6643  2079 1 (0.3129610 0.6870390) *
#>      5) X15>=21825 8982  1963 1 (0.2185482 0.7814518) *
#>    3) X8=1 11469   723 1 (0.0630395 0.9369605) *

A partir de los resultados obtenidos con nuestro modelo completo, restringimos el mismo a las siguientes variables:

Variable Dependiente – Explicada:

y = e45_cv = Derechos Vigentes en Instituciones de Salud Principal

·  Dummy: Tipo de cobertura de Salud =

0        MSP/ASSE

1         IAMC – Instituciones de Asistencia Médica Colectiva

Variables Independientes – Explicativas:

X1 = dpto = Número asignado al Departamento

X8 = e46_cv = Afiliación a Emergencia Móvil (1 = Si, 2 = No)

X15 = Ingreso total de los individuos = X15 + X16 + X18 + X25

X15 = Ing_Act_Pri (X15) + Ing_Act_Sec (X16) + Jub_Ing (X18) + Pen_Ing (X20)

X15 = Ing_Act_Pri  = Ingreso de Actividad Principal = Sumatoria de  Ingresos i

     g126_1 = Sueldos o Jornales líquidos recibidos, mes anterior, por Actividad Principal

     g126_2 = Comisiones, Incentivos, Horas Extras, mes anterior, por Actividad Principal

     g126_3 = Viáticos en Actividad Principal

     g126_4 = Propinas en Actividad Principal

X16 = Ing_Act_Sec = Ingreso de Actividad Secundaria = Sumatoria de Ingresos i

     g134_1 = Sueldos o Jornales líquidos recibidos, mes anterior, por Actividad Secundaria

     g134_2 = Comisiones, Incentivos, Horas Extras, mes anterior, por Actividad Secundaria

     g134_3 = Viáticos en Actividad Secundaria

     g134_4 = Propinas en Actividad Secundaria

X18 = Jub_Ing  = Jubilaciones recibidas = Sumatoria Ingresos Jubilaciones i

     g148_1_1 = Jubilaciones BPS – Caja Industria y Comercio

     g148_1_2 = Jubilaciones BPS – Caja Civil y Escolar

     g148_1_3 = Jubilaciones BPS – Caja Rural y Servicio Doméstico

     g148_1_5 = Jubilaciones Policial

     g148_1_6 = Jubilaciones Militar

     g148_1_7 = Jubilaciones Profesional

     g148_1_8 = Jubilaciones Notarial

     g148_1_9 = Jubilaciones Bancarías

     g148_1_10 = Jubilaciones Otra

     g148_1_11 = Jubilaciones Otro País

     g148_1_12 = Jubilaciones AFAP

X20 = Pen_Ing  = Pensiones recibidas = Sumatoria Ingresos Pensiones i

     g148_2_1 = Pensiones BPS – Caja Industria y Comercio

     g148_2_2 = Pensiones BPS – Caja Civil y Escolar

     g148_2_3 = Pensiones BPS – Caja Rural y Servicio Doméstico

     g148_2_5 = Pensiones Policiales

     g148_2_6 = Pensiones Militares

     g148_2_7 = Pensiones Profesional

     g148_2_8 = Pensiones Notarial

     g148_2_9 = Pensiones Bancarias

     g148_2_10 = Pensiones Otra

     g148_2_11 = Pensiones Otro País

     g148_2_12 = Pensiones AFAP

X25 = eg_ps1 = Considera que su Hogar es Pobre. Percepción del informante en relación al ingreso para satisfacer las necesidades del Hogar (1 = Si, 2 = No)

X29 = pobre06 = Pobreza según Metodología 2006 (0 = No Pobreza, 1 = Si Pobreza)

A partir del modelo y = f(X1, X8, X15, X25, X29) comenzamos a responder nuestra primer pregunta de investigación, aplicando el algoritmo Árbol de decisiones, a partir de la base de datos y con los sets seleccionados, estas son las variables determinantes para la elección de cobertura de salud en los usuarios (debemos considerar las limitaciones del modelo).

Código
data <- data_previa2 %>% 
  select(y, X1, X2, X8, X15, X25, X29)

dim_data <- dim(data)  

# Definimos los Parámetros de control, incluyendo la profundidad máxima

control_params <- rpart.control(maxdepth = 5)    # Profundiad Máxima 5

cobertura_tree <- rpart( formula = y ~ .,
                         data = train, 
                         method = "class",
                         control = control_params)

cobertura_tree
#> n= 40859 
#> 
#> node), split, n, loss, yval, (yprob)
#>       * denotes terminal node
#> 
#>  1) root 40859 14199 1 (0.3475122 0.6524878)  
#>    2) X8=2 29390 13476 1 (0.4585233 0.5414767)  
#>      4) X15< 21825 20408  8895 0 (0.5641415 0.4358585)  
#>        8) X25< 1.5 9513  2667 0 (0.7196468 0.2803532) *
#>        9) X25>=1.5 10895  4667 1 (0.4283616 0.5716384)  
#>         18) X1=2,6,7,8,11,12,15,16,18,19 3733  1532 0 (0.5896062 0.4103938) *
#>         19) X1=1,3,4,5,9,10,13,14,17 7162  2466 1 (0.3443172 0.6556828)  
#>           38) X29=1 519   132 0 (0.7456647 0.2543353) *
#>           39) X29=0 6643  2079 1 (0.3129610 0.6870390) *
#>      5) X15>=21825 8982  1963 1 (0.2185482 0.7814518) *
#>    3) X8=1 11469   723 1 (0.0630395 0.9369605) *

dataset: data (51074 observaciones (Filas) y 7 variables (Columnas))

Explicación del Resultado de cobertura_tree: Se muestra el esquema de nuestro árbol de clasificación, cada inciso indica un nodo y la regla de clasificación que le corresponde. Siguiendo estos nodos podremos llegar a las hojas del árbol, que corresponde a la clasificación de nuestros datos (y = 0 MSP/ASSE o y = 1 IAMC).

Esto resulta más claro si lo visualizamos, mediante un gráfico usando nuestro modelo con la función rpart.plot().

Evaluación de nuestro modelo

Código
# Hacer Predicciones en el Conjunto de prueba - test
predictions <- predict(cobertura_tree, test, type = "class")
table(predictions)              # Indica las Predicciones
#> predictions
#>    0    1 
#> 3564 6651


# Matriz de Confusion
confusion_matrix <- table(predictions, test$y)


tabla_confusion <- data.frame(
  Predicciones = c("Predecir y = 0 ASSE",
                   "Predecir y = 1 IAMC"),
  Real_0_ASSE = c(confusion_matrix[1,1],
                  confusion_matrix[2,1]),
  Real_1_IAMC = c(confusion_matrix[1,2],
                  confusion_matrix[2,2])
) %>% 
  gt() %>% 
tab_header(title = md("*Predicciones con Árbol de Decisiones*"),
           subtitle = "Modelos basado en nuestra base: data") %>% 
  tab_source_note(
    source_note = md("**Predicciones de elección de coberturas de salud**")) %>% 
  tab_footnote(
    footnote = "Verdadero Negativo - Predicciones Verdaderas de ASSE",
    locations = cells_body(columns = Real_0_ASSE, rows = 1)) %>% 
  tab_footnote(
    footnote = "Verdadero Positivo - Predicciones Verdaderas de IAMC",
    locations = cells_body(columns = Real_1_IAMC, rows = 2)) %>% 
  tab_footnote(
    footnote = "Falso Negativo - Predicciones Incorrectas de ASSE",
    locations = cells_body(columns = Real_0_ASSE, rows = 2)) %>% 
  tab_footnote(
    footnote = "Falso Positivo - Predicciones Incorrestas de IAMC",
    locations = cells_body(columns = Real_1_IAMC, rows = 1)) %>% 
  tab_style(
    list(
      cell_fill(color = "#ffb554"),
      cell_text(color = "white")),
    locations = cells_body(rows = Predicciones == "Predecir y = 0 ASSE")) %>% 
  tab_style(
    list(
      cell_fill(color = "#6cc0a1"),
      cell_text(color = "white")),
    locations = cells_body(rows = Predicciones == "Predecir y = 1 IAMC")) %>% 
  cols_label(
    Predicciones = "PREDICCIONES DEL MODELO",
    Real_0_ASSE = "VALORES REALES 0 ASSE",
    Real_1_IAMC = "VALORES REALES 1 IAMC")

tabla_confusion


# Métricas de Clasificación - Modelo  de Decisión Tree

# Calculamos la precisión - accuracy
# accuracy = (TP + TN) / (TP + FP + TN + FN)

accuracy <- (confusion_matrix[1, 1] + confusion_matrix[2, 2]) / 
  (confusion_matrix[1, 1] + confusion_matrix[1, 2] + 
     confusion_matrix[2, 1] + confusion_matrix[2, 2])

print(paste("Accuracy: Precisión Golbal del modelo del", round(accuracy*100,2),"%"))
#> [1] "Accuracy: Precisión Golbal del modelo del 77.5 %"

#                         Real
#                    0            1
#   
#   P       0       TN           FP
#   r
#   e
#   d       1       FN           TP
#   


# Calculamos la Precisión, Recall y F1 Score - Para 1 (IAMC) y 0 (MSP/ASSE)
# Precision = TP / (TP + FN)
# Recall = TP / (TP + FP)
# F1 Score = 2*Precision*Recall / (Precision + Recall)

# Para 1 (IAMC)

precision_1 <- confusion_matrix[2, 2] / 
  (confusion_matrix[2, 1] + confusion_matrix[2, 2]) 

recall_1 <- confusion_matrix[2, 2] /
  (confusion_matrix[2, 2] + confusion_matrix[1, 2])

f1_score_1 <- 2 * precision_1 * recall_1 / (precision_1 + recall_1)

# Para 0 (MSP/ASSE)

precision_0 <- confusion_matrix[1, 1] / 
  (confusion_matrix[1, 1] + confusion_matrix[1, 2]) 

recall_0 <- confusion_matrix[1, 1] /
  (confusion_matrix[1, 1] + confusion_matrix[2, 1])

f1_score_0 <- 2 * precision_0 * recall_0 / (precision_0 + recall_0)



confusionMatrix(predictions, test[["y"]])
#> Confusion Matrix and Statistics
#> 
#>           Reference
#> Prediction    0    1
#>          0 2441 1123
#>          1 1175 5476
#>                                           
#>                Accuracy : 0.775           
#>                  95% CI : (0.7668, 0.7831)
#>     No Information Rate : 0.646           
#>     P-Value [Acc > NIR] : <2e-16          
#>                                           
#>                   Kappa : 0.5065          
#>                                           
#>  Mcnemar's Test P-Value : 0.2874          
#>                                           
#>             Sensitivity : 0.6751          
#>             Specificity : 0.8298          
#>          Pos Pred Value : 0.6849          
#>          Neg Pred Value : 0.8233          
#>              Prevalence : 0.3540          
#>          Detection Rate : 0.2390          
#>    Detection Prevalence : 0.3489          
#>       Balanced Accuracy : 0.7524          
#>                                           
#>        'Positive' Class : 0               
#> 

Predicciones con Árbol de Decisiones

Modelos basado en nuestra base: data
PREDICCIONES DEL MODELO VALORES REALES 0 ASSE VALORES REALES 1 IAMC
Predecir y = 0 ASSE 1 2441 2 1123
Predecir y = 1 IAMC 3 1175 4 5476

Predicciones de elección de coberturas de salud

1 Verdadero Negativo - Predicciones Verdaderas de ASSE
2 Falso Positivo - Predicciones Incorrestas de IAMC
3 Falso Negativo - Predicciones Incorrectas de ASSE
4 Verdadero Positivo - Predicciones Verdaderas de IAMC
Tabla 3: Matriz de Confusión con las predicciones del Árbol de decisiones, con nuestro modelo

En la tabla Tabla 3 se observan las predicciones de nuestro modelo, realizadas con el algoritmo Árbol de decisiones, con el dataset de prueba (test).

Métricas de Clasificación - Modelo de Decisión Tree

Precisión global del modelo:

Accuracy: Precisión Golbal del modelo del 77.5 %

Precisión Para y = 0 - Cobertura MSP/ASSE - Precisión, Recall y F1 Score

Precisión_0: 68.49 %

Recall_0: 67.51 %

F1 Score_0: 67.99 %

Precisión Para y = 1 - Cobertura IAMC - Precisión, Recall y F1 Score

Precisión_1: 82.33 %

Recall_1: 82.98 %

F1 Score_1: 82.66 %

Se observa que nuestro modelo presenta mayores niveles de precisión (tanto para Precisión, Recall y F1 Score) para predecir la elección de cobertura médica de las IAMC, es decir, para y = 1.

Visualización de nuestro modelo

Código
# Plot del árbol de decisión

rpart.plot(cobertura_tree, 
                  type = 4)
Figura 1: Gráfico de árbol de decisión - con nuestro modelo

En la Figura 1 cada uno de los rectángulos representa un nodo de nuestro árbol de decisión, con su regla de clasificación. Cada nodo está coloreado de acuerdo a la categoría mayoritaria entre los datos que agrupa. Esta es la categoría que ha predicho el modelo para ese grupo.

Dentro del rectángulo de cada nodo nos muestra qué proporción de casos pertenecen a cada categoría y la proporción del total de datos que han sido agrupados allí.

¿Cómo elegimos un modelo?

La elección del modelo depende de nuestros objetivos y de qué tanta precisión nos interesa o es necesaria para nuestras predicciones. Podríamos elegir un modelo a partir de la creación de múltiples modelos y compararlos entre sí. Es muy probable que si repetimos este ejercicio, el de repetir múltiples modelos suficientes veces, encontraremos más regularidades, en el siguiente punto mediante funciones de R (“Árboles de decisión con R – Clasificación”. Juan Bosco Mendoza Vega. Abril 2018) intentaremos sistematizar el análisis de modelos.

Sistematizar el análisis

Código
# Sistematizando el análisis  

# Se puede crear un grupo de funciones que generen árboles de manera repetida

crear_sets <- function(data, proporcion = 0.8) {
  sets <- list()
  
  sets[["train"]] <- sample_frac(data, proporcion)
  sets[["test"]] <- setdiff(data, sets[["train"]])
  
  sets
}

entrenar_arbol <- function(sets, objetivo, predictores = ".", mi_cp = 0.1) {
  if(length(predictores > 1)) {
    predictores <- paste0(predictores, collapse = "+")
  }
  mi_formula <- paste0(objetivo, "~", predictores) %>% as.formula()
  
  arbol <- list()
  arbol[["modelo"]] <-
    rpart(data = sets[["train"]], formula = mi_formula,
          control = rpart.control(cp = mi_cp, xval = 35, minsplit = 5))
  arbol[["prediccion"]] <- predict(arbol[["modelo"]], sets[["test"]], type = "class")
  arbol[["referencia"]] <- sets[["test"]][[objetivo]]
  
  arbol
}

obtener_diagnostico <- function(arbol, objetivo, mi_cp = 0.01) {
  diagnostico <- list()
  diagnostico[["matriz"]] <- confusionMatrix(data = arbol[["prediccion"]],
                                             reference = arbol[["referencia"]])
  
  cp <- with(arbol[["modelo"]], cptable[which.min(cptable[, "xerror"]), "CP"])
  cp_original <- mi_cp
  podar <- if(cp < mi_cp) "SI" else "NO"
  diagnostico[["mincp"]] <- data.frame("CP minimo" = cp, "CP original" = cp_original,
                                       "Podar" = podar)
  
  diagnostico
  
}


crear_arbol <- function(datos, objetivo, predictores = ".", mi_cp = 0.01) {
  resultado <- list()
  resultado[["sets"]] <- crear_sets(data)
  resultado[["arbol"]] <- entrenar_arbol(resultado[["sets"]], objetivo, predictores,
                                         mi_cp)
  resultado[["diagnostico"]] <- obtener_diagnostico(resultado[["arbol"]], objetivo,
                                                    mi_cp)
  resultado
}

set.seed(2024)

unarbol <- crear_arbol(data, "y", mi_cp = 0.005)

unarbol[["diagnostico"]]
#> $matriz
#> Confusion Matrix and Statistics
#> 
#>           Reference
#> Prediction   0   1
#>          0 194 108
#>          1 231 646
#>                                           
#>                Accuracy : 0.7125          
#>                  95% CI : (0.6857, 0.7382)
#>     No Information Rate : 0.6395          
#>     P-Value [Acc > NIR] : 6.725e-08       
#>                                           
#>                   Kappa : 0.3343          
#>                                           
#>  Mcnemar's Test P-Value : 3.446e-11       
#>                                           
#>             Sensitivity : 0.4565          
#>             Specificity : 0.8568          
#>          Pos Pred Value : 0.6424          
#>          Neg Pred Value : 0.7366          
#>              Prevalence : 0.3605          
#>          Detection Rate : 0.1645          
#>    Detection Prevalence : 0.2561          
#>       Balanced Accuracy : 0.6566          
#>                                           
#>        'Positive' Class : 0               
#>                                           
#> 
#> $mincp
#>   CP.minimo CP.original Podar
#> 1     0.005       0.005    NO

precision_mul <- round(unarbol[["diagnostico"]]$matriz[3]$overall[1]*100,2)
dif_ar <- round((accuracy*100- precision_mul),2)

El resultado de sistematizar el análisis en nuestro modelo, con la utilización de múltiples árboles, es una Accuracy - Precisión global del modelo del 71.25 %.

CONCLUSIÓN

Con el objetivo de contestar nuestras preguntas de investigación:

¿Qué variables son determinantes para la elección de la cobertura de salud principal entre MSP/ASSE y una IAMC?

¿Podemos predecir la elección de los usuarios sobre su cobertura de salud principal entre MSP/ASSE y una IAMC?

Obtuvimos un dataset data, que cuenta con 7 Variables (Columnas), las que son determinadas por el algoritmo árbol de decisiones:

y = Derechos Vigentes en Instituciones de Salud Principal (y = 0 MSP/ASSE, y = 1 IAMC)

X1 = Número asignado al Departamento [1:19]

X8 = Afiliación a Emergencia Móvil (1 = Si, 2 = No)

X15 = Ingreso total de los individuos = X15 + X16 + X18 + X20

X15 = Ing_Act_Pri (X15) + Ing_Act_Sec (X16) + Jub_ing (X18) + Pen_Ing (X20)

X25 = Considera que su Hogar es Pobre. Percepción del informante en relación al ingreso para satisfacer las necesidades del Hogar (1 = Si, 2 = No)

X29 = Pobreza según Metodología 2006 (0 = No Pobreza, 1 = Si Pobreza)

Estas son las variables que determinan la elección de la cobertura de salud principal de los usuarios entre MSP/ASSE y una IAMC, según el algoritmo utilizado en este trabajo (Árbol de decisión) y el dataset utilizado.

El dataset data, cuenta con 51074 Observaciones (Filas):

Código
# Relación entre la cantidad de usuarios IAMC / ASSE

cant_0 <- data_previa2 %>% 
  filter(y == 0) %>% 
  dim()

cant_1 <- data_previa2 %>% 
  filter(y == 1) %>% 
  dim()

Se observa en el gráfico de la Figura 2 la cantidad de usuarios, según su cobertura de salud a nivel de todo el país, la relación entre IAMC/ASSE es de 1.87 veces, lo que indica mayor cantidad de usuarios de las IAMC con relación al MSP/ASSE.

Código
gr_1 <- ggplot( data = data_previa2, aes( x = y, fill = y)) +
  geom_bar() + 
  scale_fill_manual( values = c("#ffb554", "#6cc0a1")) +
  labs( title = "Cantidad de Usuarios - (ASSE o IAMC)",
        x = "Cobertura: 0 = ASSE - 1 = IAMC",
        y = "Cantidad",
        fill = "Cobertura")+
  theme_bw(base_size = 12) +
  geom_text(aes(label=..count..), stat='count',     
            position=position_dodge(1),
            vjust= 4, 
            size=5.0)

gr_1
#> Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
#> ℹ Please use `after_stat(count)` instead.
Figura 2: Cantidad de usuarios por cobertura médica, ASSE o alguna IAMC

Lo observado en el punto anterior, lo desglosaremos en el gráfico de la Figura 3 para cada departamento, del total de 19 a nivel país, solo en 7 de ellos la cantidad de usuarios con cobertura de MSP/ASSE es mayor a los de alguna IAMC, esto ocurre en:

  • Artigas

  • Cerro Largo

  • Paysandu

  • Rio Negro

  • Salto

  • Tacuarembo

  • Treinta y Tres

Código
# Gráfico de Barras por Departamento según cobertura de salud

gr_2 <- data_previa2 %>%
  ggplot() +
  geom_bar(aes( x = fct_infreq(X2), fill = y)) +
  scale_fill_manual( values = c("#ffb554", "#6cc0a1")) + 
  labs(title = "Cantidad ordenada de usuarios por Departamento",
       subtitle = "Comparativo Usuarios en ASSE o en una IAMC",
       y="Frecuencia de Cobertura", 
       x= NULL, 
       fill = "Cobertura: 0 = ASSE o 1 = IAMC") +
  theme_bw() +
  theme( axis.text.x = element_text( angle = 90, hjust = 1, size = 7),
         axis.text.y = element_text( size = 8),
         legend.position = "bottom")

gr_2
Figura 3: Cantidad de usuarios por cobertura médica, entre MSP/ASSE o una IAMC para cada departamento

Otra de las variables determinantes para la toma de decisión de los usuarios es su Ingreso total, por este motivo, en el gráfico de caja de la Figura 4 notamos como el ingreso promedio de los usuarios con cobertura IAMC es mayor al de MSP/ASSE, pero lo relevante es que esto se cumple en todos los departamentos del país, esta información la consideramos muy importante al momento de diferenciar a los usuarios en su cobertura de salud. Para calcular el gráfico de la Figura 4 solo consideramos a los individuos con ingreso mayor a cero (dejamos afuera a los desempleados, menores de 14 años que no son consultados sobre su trabajo, personas sin ingresos) y no consideramos los valores atípicos (se utilizó el criterio de Tukey para calcular los valores atípicos).

En las tablas Tabla 4 y Tabla 5 se observa que el ingreso promedio es superior en todos los departamentos para los usuarios con cobertura en alguna IAMC, (en las tablas referidas se consideran todas las observaciones, no excluimos los de ingreso nulo ni los casos atípicos).

Código
# Gráfico de Caja del Ingreso según su cobertura

# Graficamos sin valores atípicos (Sin Ingreso con valor 0)

# Valores atípicos - Se calculan según el Criterio de Tukey

data_0 <- data %>% 
  select(y, X15) %>% 
  filter( y == 0) %>% 
  filter(X15 > 0)       # Consideramos solo los que tienen ingreso > 0
  

data_1 <- data %>% 
  select(y, X15) %>% 
  filter( y == 1) %>% 
  filter(X15 >0)        # Consideramos solo los que tienen ingreso > 0


# Atpicos para y = 0 MSP/ASSE
q1_0 <- quantile(data_0$X15, probs = 0.25) #Calculo del cuartil 1  de MSP/ASSE
q3_0 <- quantile(data_0$X15, probs = 0.75) #Calculo del cuartil 3  de MSP/ASSE
iqr_0 <- IQR(data_0$X15)  #Calculo del rango intercuartílico (q3 - q1) (IQR)


Li0 <- q1_0 - 1.5 * iqr_0 #límite inferior a menos 1.5 veces el IQR del primer cuartil (q1).
Ls0 <- q3_0 + 1.5 * iqr_0  #Límite superior a mas de 1.5 veces el IQR del tercer cuartil (q3).


# Atpicos para y = 1 IAMC
q1_1 <- quantile(data_1$X15, probs = 0.25) #Calculo del cuartil 1  de IAMC
q3_1 <- quantile(data_1$X15, probs = 0.75) #Calculo del cuartil 3  de IAMC
iqr_1 <- IQR(data_1$X15)  #Calculo del rango intercuartílico (q3 - q1) (IQR)


Li1 <- q1_1 - 1.5 * iqr_1 #límite inferior a menos 1.5 veces el IQR del primer cuartil (q1).
Ls1 <- q3_1 + 1.5 * iqr_1  #Límite superior a mas de 1.5 veces el IQR del tercer cuartil (q3).


data_0 <- data_0 %>% 
  filter(X15>=Li0 & X15<=Ls0)

data_1 <- data_1 %>% 
  filter(X15>=Li1 & X15<=Ls1)

gr_3 <- ggplot() +
  geom_boxplot(data = data_0, aes(x = "ASSE", y = X15), color = c("#ffb554")) +
  geom_boxplot(data = data_1, aes(x = "IAMC", y = X15), color = c("#6cc0a1")) +
  labs( title = "Gráfico de Caja - Ingreso Total",
        subtitle = "Usuarios en ASSE o en una IAMC",
        x = "Cobertura: ASSE o una IAMC",
        y = "Ingreso Actividad Principal") +
  theme_bw(base_size = 12)

gr_3
Figura 4: Gráfico de Caja para observar el Ingreso Total de los individuos, según su cobertura de salud

Para fundamentar nuestras comentarios y conclusiones resumimos datos con el fin de obtener información a ser utilizada, (en función de la variables determinantes en la toma de decisión de los usuarios sobre su cobertura de salud), que sistematizamos en las tablas: Tabla 4 y Tabla 5.

Tabla resumen de los usuarios con cobertura de salud en MSP/ASSE:
Código
# Tabla con las relaciones de variables de nuestro modelo

# Tabla ASSE

tabla_ASSE <- data %>%
  filter( y == 0) %>% 
  mutate( X2 = as.character(X2),
          Pobres = as.numeric(X29),
          Emerg = as.numeric(X8)) %>% 
  mutate( Pobres = ifelse(Pobres == 1,0,1),
          Emerg = ifelse(Emerg == 1,1,0)) %>% 
  group_by(X2) %>% 
  summarise(
    Cantidad = n(),
    Pobres = sum(Pobres),
    Emerg = sum(Emerg),
    Ingreso_medio = round(mean(X15),0)) %>% 
  mutate( Por_Pob = round(Pobres / sum(Pobres)*100,2),
          Por_Eme = round(Emerg / sum(Emerg)*100,2)) %>% 
  select(X2, Cantidad, Ingreso_medio, Pobres, Por_Pob, Emerg, Por_Eme)


media_ASSE <- round(mean(tabla_ASSE$Ingreso_medio),0)


tbl_ASSE <- tabla_ASSE %>% 
  gt() %>% 
  tab_header(title = md("*Individuos con Cobertura MSP/ASSE*"),
             subtitle = "Datos solo con Cobertura ASSE") %>% 
  tab_source_note(
    source_note = md("**ECH_implementacion_2023 (Modificada)**")) %>% 
   tab_style(
    list(
      cell_fill(color = "#ffb554"),
      cell_text(color = "white")),
    locations = cells_body(rows = X2 == X2)) %>% 
    cols_label(
    X2 = "DEPARTAMENTOS",
    Cantidad = "CANTIDAD",
    Ingreso_medio = "ING. MEDIO",
    Pobres = "CANT. POBRES",
    Por_Pob = "%_POB",
    Emerg = "CANT. EMERG",
    Por_Eme = "%_EME") %>% 
  tab_spanner(label = "POBRES",
              columns = Pobres:Por_Pob) %>%  
  tab_spanner(label = "EMERG. MOVIL",
              columns = Emerg:Por_Eme) %>% 
  tab_footnote(
  footnote = "Ingreso Medio del total de ingresos de los individuos",
  locations = cells_column_labels(columns = Ingreso_medio)) %>% 
  tab_footnote(
    footnote = "Cantidad de Pobres - según Metodología Año 2006",
    locations = cells_column_labels(columns = Pobres)) %>% 
  tab_footnote(
    footnote = "Porcentaje de Pobres - según Metodología Año 2006 sobre total de Cobertura",
    locations = cells_column_labels(columns = Por_Pob)) %>% 
  tab_footnote(
    footnote = "Cantidad con Afiliación a Emergencia Movil",
    locations = cells_column_labels(columns = Emerg)) %>% 
  tab_footnote(
    footnote = "Porcentaje con Afilación a Emergencia Móvil sobre total de Cobertura",
    locations = cells_column_labels(columns = Por_Eme))

tbl_ASSE

Individuos con Cobertura MSP/ASSE

Datos solo con Cobertura ASSE
DEPARTAMENTOS CANTIDAD ING. MEDIO1 POBRES EMERG. MOVIL
CANT. POBRES2 %_POB3 CANT. EMERG4 %_EME5
Artigas 865 7088 175 4.62 8 0.90
Canelones 2276 7945 395 10.44 178 20.05
Cerro Largo 880 5555 242 6.39 4 0.45
Colonia 526 11340 21 0.55 17 1.91
Durazno 513 9966 74 1.96 4 0.45
Flores 268 11190 12 0.32 0 0.00
Florida 461 11904 60 1.59 10 1.13
Lavalleja 450 10283 56 1.48 8 0.90
Maldonado 990 8746 104 2.75 37 4.17
Montevideo 3877 7859 1508 39.84 406 45.72
Paysandu 1028 8413 159 4.20 36 4.05
Rio Negro 796 11416 101 2.67 4 0.45
Rivera 742 4966 235 6.21 22 2.48
Rocha 554 8960 101 2.67 6 0.68
Salto 1090 7233 253 6.68 72 8.11
San Jose 517 10180 34 0.90 6 0.68
Soriano 632 10079 59 1.56 19 2.14
Tacuarembo 835 9312 97 2.56 42 4.73
Treinta y Tres 515 8573 99 2.62 9 1.01

ECH_implementacion_2023 (Modificada)

1 Ingreso Medio del total de ingresos de los individuos
2 Cantidad de Pobres - según Metodología Año 2006
3 Porcentaje de Pobres - según Metodología Año 2006 sobre total de Cobertura
4 Cantidad con Afiliación a Emergencia Movil
5 Porcentaje con Afilación a Emergencia Móvil sobre total de Cobertura
Tabla 4: Tabla resumen de variables relevantes en nuestro modelo para los ususarios con cobertura MSP/ASSE
Tabla resumen de los usuarios con cobertura de salud en alguna IAMC:
Código

# Tabla IAMC
tabla_IAMC <- data %>%
  filter( y == 1) %>% 
  mutate( X2 = as.character(X2),
          Pobres = as.numeric(X29),
          Emerg = as.numeric(X8)) %>% 
  mutate( Pobres = ifelse(Pobres == 1,0,1),
          Emerg = ifelse(Emerg == 1,1,0)) %>% 
  group_by(X2) %>% 
  summarise(
    Cantidad = n(),
    Pobres = sum(Pobres),
    Emerg = sum(Emerg),
    Ingreso_medio = round(mean(X15),0)) %>% 
  mutate( Por_Pob = round(Pobres / sum(Pobres)*100,2),
          Por_Eme = round(Emerg / sum(Emerg)*100,2)) %>% 
  select(X2, Cantidad, Ingreso_medio, Pobres, Por_Pob, Emerg, Por_Eme)


media_IAMC <- as.integer(mean(tabla_IAMC$Ingreso_medio))


tbl_IAMC <- tabla_IAMC %>% 
  gt() %>% 
  tab_header(title = md("*Individuos con Cobertura IAMC*"),
             subtitle = "Datos solo con Cobertura IAMC") %>% 
  tab_source_note(
    source_note = md("**ECH_implementacion_2023 (Modificada)**")) %>% 
  tab_style(
    list(
      cell_fill(color = "#6cc0a1"),
      cell_text(color = "white")),
    locations = cells_body(rows = X2 == X2)) %>% 
  cols_label(
    X2 = "DEPARTAMENTOS",
    Cantidad = "CANTIDAD",
    Ingreso_medio = "ING. MEDIO",
    Pobres = "CANT. POBRES",
    Por_Pob = "%_POB",
    Emerg = "CANT. EMERG",
    Por_Eme = "%_EME") %>% 
  tab_spanner(label = "POBRES",
              columns = Pobres:Por_Pob) %>%  
  tab_spanner(label = "EMERG. MOVIL",
              columns = Emerg:Por_Eme) %>% 
  tab_footnote(
    footnote = "Ingreso Medio del total de ingresos de los individuos",
    locations = cells_column_labels(columns = Ingreso_medio)) %>% 
  tab_footnote(
    footnote = "Cantidad de Pobres - según Metodología Año 2006",
    locations = cells_column_labels(columns = Pobres)) %>% 
  tab_footnote(
    footnote = "Porcentaje de Pobres - según Metodología Año 2006 sobre total de Cobertura",
    locations = cells_column_labels(columns = Por_Pob)) %>% 
  tab_footnote(
    footnote = "Cantidad con Afiliación a Emergencia Movil",
    locations = cells_column_labels(columns = Emerg)) %>% 
  tab_footnote(
    footnote = "Porcentaje con Afilación a Emergencia Móvil sobre total de Cobertura",
    locations = cells_column_labels(columns = Por_Eme))

tbl_IAMC

Individuos con Cobertura IAMC

Datos solo con Cobertura IAMC
DEPARTAMENTOS CANTIDAD ING. MEDIO1 POBRES EMERG. MOVIL
CANT. POBRES2 %_POB3 CANT. EMERG4 %_EME5
Artigas 294 19557 5 0.64 12 0.09
Canelones 5234 23929 66 8.40 1964 14.73
Cerro Largo 689 18869 14 1.78 16 0.12
Colonia 1273 22766 8 1.02 399 2.99
Durazno 692 23029 13 1.65 409 3.07
Flores 365 25026 0 0.00 5 0.04
Florida 758 24251 5 0.64 612 4.59
Lavalleja 589 23570 8 1.02 84 0.63
Maldonado 2305 24517 5 0.64 430 3.23
Montevideo 14393 31538 584 74.30 8036 60.29
Paysandu 974 24295 11 1.40 188 1.41
Rio Negro 482 25354 0 0.00 32 0.24
Rivera 756 19135 12 1.53 42 0.32
Rocha 906 24397 8 1.02 14 0.11
Salto 908 23101 21 2.67 187 1.40
San Jose 1094 24711 10 1.27 657 4.93
Soriano 694 21649 5 0.64 93 0.70
Tacuarembo 489 22249 5 0.64 102 0.77
Treinta y Tres 364 23756 6 0.76 48 0.36

ECH_implementacion_2023 (Modificada)

1 Ingreso Medio del total de ingresos de los individuos
2 Cantidad de Pobres - según Metodología Año 2006
3 Porcentaje de Pobres - según Metodología Año 2006 sobre total de Cobertura
4 Cantidad con Afiliación a Emergencia Movil
5 Porcentaje con Afilación a Emergencia Móvil sobre total de Cobertura
Tabla 5: Tabla resumen de variables relevantes en nuestro modelo para los ususarios con cobertura IAMC
  • El promedio del ingreso total para los usuarios con cobertura en alguna IAMC es de 23457 , mientras que el promedio para los usuarios del MSP/ASSE es de 9000, lo que implica una relación de 2.61 (IAMC/ASSE) mayor para los usuarios con cobertura en alguna IAMC. Es claro el mayor ingreso promedio del que disponen los usuarios con cobertura IAMC, esta situación se observa de forma gráfica en la Figura 4 .

  • El promedio de pobres, según la Metodología 2006, para los usuarios con cobertura en MSP/ASSE es de 199 mientras que el promedio para los usuarios de alguna IAMC es de 41, lo que implica una relación de 4.85 (ASSE/IMAC) mayor para los usuarios con cobertura en MSP/ASSE. Es clara la mayor cantidad promedio de pobres, según la Metodología 2006, en los usuarios con cobertura MSP/ASSE.

  • El promedio de afiliaciones a emergencia móvil en los usuarios con cobertura en alguna IAMC es de 702 mientras que el promedio para los usuarios del MSP/ASSE es de 47, lo que implica una relación de 14.94 (IAMC/ASSE) mayor para los usuarios con cobertura en alguna IAMC. Es clara la mayor cantidad promedio de usuarios con afiliación a emergencia móvil de usuarios con cobertura IAMC. Esto se puede asociar con el mayor ingreso promedio de esta categoría, disponen de más posibilidades para ampliar su cobertura de salud, (emergencia móvil, pago de copagos), se observa con esta información la importancia de la variable X8 = Afiliación a Emergencia Móvil (1 = Si, 2 = No), es el primer nodo seleccionado por el algoritmo en nuestro modelo, se aprecia claramente en la Figura 1

Observamos, en base a los datos resumidos en las tablas Tabla 4 y Tabla 5, que las IAMC cuentan con mayor cantidad de usuarios en 12 de los 19 departamentos, tienen en promedio un ingreso total mayor en todos los departamentos y también cuentan con mayor cantidad de usuarios con afiliación a emergencia móvil también en todo el país con relación a los usuarios de MSP/ASSE. Por su parte el MSP/ASSE cuenta con mayor cantidad de usuarios clasificados como pobres, según la Metodología 2006, en todos los departamentos con relación a los usuarios de las IMAC.

Podemos concluir, en base a la información analizada, sobre las prestadoras de cobertura de salud analizadas:

  • que las IAMC tienen mayor cantidad de usuarios en relación al MSP/ASSE, a nivel país y en 12 de los 19 departamentos,

  • que las IAMC cuentan con usuarios de mayor nivel de ingreso promedio en relación al MSP/ASSE, para todo el país,

  • que las IAMC cuentan con mayor cantidad de usuarios con afiliación a emergencia móvil en relación al MSP/ASSE, para todo el país, esta variable es muy significativa en la caracterización de los usuarios, y

  • que el MSP/ASSE cuenta con mayor cantidad de usuarios clasificados pobres, según Metodología 2006, en relación a las IAMC, para todo el país.

Es evidente que para cada individuo es sustantivo su nivel de ingresos al momento de tomar la decisión sobre su prestadora de salud, algo que es totalmente intuitivo, y se materializa en los datos analizados.

Como resultado de este trabajo y respuesta a nuestra segunda pregunta, concluimos que podemos predecir la elección de los usuarios sobre su cobertura de salud principal entre MSP/ASSE y una IAMC, con el algoritmo Árbol de decisiones, con una Accuracy: Precisión Global del modelo del 77.5 %. A partir de sistematizar el modelo planteado, la Acurracy - Precisión global obtenida es del 71.25%. El nivel de precisión obtenido con nuestro modelo con un solo árbol es similar al obtenido luego de combinar múltiples árboles (con un solo árbol se obtiene 6.25% mayor precisión global, con respecto al obtenido con múltiples árboles), con esto podemos validar nuestro modelo inicial, para este nivel de precisión, y salvar la primer desventaja planteada con el algoritmo Árbol de decisiones, para los niveles de precisión indicados anteriormente. Se intenta demostrar que nuestro modelo con un solo árbol no tiene tendencia a sobre ajustar, a partir del dataset de entrenamiento, es comparable a los resultados obtenidos con múltiples árboles.

Estar dispuesto o no a utilizar el modelo planteado en este trabajo dependerá de la tolerancia a los niveles de precisión necesarios al realizar las predicciones, nuestro modelo a partir de un algoritmo de Árbol de decisiones puede ofrecer una Accuracy: Precisión Global del modelo del 77.5 %. El modelo presenta mayores niveles de precisión (tanto para Precisión, Recall y F1 Score) para predecir la elección de cobertura médica de las IAMC, es decir, para y = 1, esto se observa claramente en la Tabla 6 .

Código
# Tabla de Comparativas de  Precisión (Precision, Recall y F1_Score) para ambas Coberturas de Salud

tbl_precision <- data.frame(
  Precision = c("Precision", "Recall", "F1_score"),
  Cob_ASSE =round(c(precision_0, recall_0, f1_score_0)*100,2),
  Cob_IAMC =round(c(precision_1, recall_1, f1_score_1)*100,2),
  Dif = round((c(precision_1, recall_1, f1_score_1) -
         c(precision_0, recall_0, f1_score_0))*100,2))


tbl_precision %>% 
  gt() %>% 
  tab_header(title = md("*Tabla comparativa de precison de Predicción*"),
             subtitle = "Predicción entra ASSE y alguna IAMC" ) %>% 
  tab_source_note(
    source_note = md("**Cuadro comparativa de precisiones**")) %>% 
  tab_footnote(
    footnote = "Tipo de precisión calculada para cada cobertura de salud",
    locations = cells_column_labels(columns = Precision)) %>% 
  tab_footnote(
    footnote = "Precisiones calculadas para la Predicción de ASSE",
    locations = cells_column_labels(columns = Cob_ASSE)) %>% 
  tab_footnote(
    footnote = "Precisiones calculadas para la Predicción de alguna IAMC",
    locations = cells_column_labels(columns = Cob_IAMC)) %>% 
  tab_footnote(
    footnote = "Diferencias de Precisiones entre (IAMC - ASSE)",
    locations = cells_column_labels(columns = Dif)) %>% 
  cols_label(
    Precision = "Tipo de Precisión",
    Cob_ASSE = "PrecIsión ASSE",
    Cob_IAMC = "Precisión IAMC",
    Dif = "(IAMC-ASSE)") %>% 
  tab_style(
    list(
      cell_fill(color = "#ffb554"),
      cell_text(color = "white")),
    locations = cells_body(columns = Cob_ASSE)) %>% 
  tab_style(
    list(
      cell_fill(color = "#6cc0a1"),
      cell_text(color = "white")),
    locations = cells_body(columns = Cob_IAMC)) %>% 
   tab_spanner(label = "Cálculo de Precisiones en %",
              columns = Cob_ASSE:Dif)  

Tabla comparativa de precison de Predicción

Predicción entra ASSE y alguna IAMC
Tipo de Precisión1 Cálculo de Precisiones en %
PrecIsión ASSE2 Precisión IAMC3 (IAMC-ASSE)4
Precision 68.49 82.33 13.84
Recall 67.51 82.98 15.48
F1_score 67.99 82.66 14.66

Cuadro comparativa de precisiones

1 Tipo de precisión calculada para cada cobertura de salud
2 Precisiones calculadas para la Predicción de ASSE
3 Precisiones calculadas para la Predicción de alguna IAMC
4 Diferencias de Precisiones entre (IAMC - ASSE)
Tabla 6: Tabla resumen comparativa de las precisiones para predecir las Coberturas de salud en MSP/ASSE o alguna IAMC

Nuestro modelo brinda mayor precisión para la predicción de los usuarios con cobertura de salud en alguna IAMC, es decir, las y = 1, se evidencia en la Tabla 6 .

Consideramos que, más allá del nivel de precisión obtenido en el modelo, es relevante destacar que:

  • la ubicación del usuario en el país (X1), ¿Dónde viven los individuos?

  • su afiliación o no a una Emergencia móvil (X8), ¿Cuentan con afiliación a una emergencia móvil?

  • su nivel de ingreso total (X15), ¿Qué nivel de ingreso total liquido perciben?

  • considerar que su hogar es pobre o no en relación al ingreso para satisfacer las necesidades de su hogar (X25), ¿Considera que su hogar es pobre en relación al ingreso para satisfacer las necesidades de su hogar? y

  • ser pobre o no (según Metodología 2006) (X29), ¿Son clasificados como pobres, según la Metodología 2006?.

Son las variables socioeconómicas determinantes en la elección de los usuarios sobre su cobertura de salud, la respuesta a nuestra primer pregunta, y aplicando a nuestro modelo las respuestas a la preguntas asociadas a cada variable explicativa (predictora) este nos brindará una predicción sobre la variable objetivo de este trabajo con una Accuracy: Precisión Global del modelo del 77.5 %.

Planteamos como hipótesis que la situación descrita en este trabajo se debe a los mayores costos asociados la cobertura de salud en las IAMC, por ejemplo, debido a los copagos asociados a las instituciones privadas y las características de nuestro Estado con relación a la cobertura de salud brindada (concepción de la salud como un derecho humano fundamental). A mayor nivel de ingresos de los usuarios estos optaran por alguna IAMC, ya que podrán cubrir los mayores costos asociadas a las mismas. Para validar esta respuesta tentativa se deberán realizar estudios más profundos.

BIBLIOGRAFÍA

-       “Árboles de decisión con R – Clasificación”. Juan Bosco Mendoza Vega. Abril 2018. https://pubs.com/jboscomendoza/arboles_decision_clasificacion

-       “Árboles de decisión”. Jairo A. Ayala Godoy. https://rpubs/JairoAyala/AD

-       “Catalogo central de datos”. https://www4.ine.gub.uy/Anda5/index.php/catalog  -“Fuente: INE-ECH 2022”. Instituto Nacional  de Estadística – República Oriental del Uruguay.

-       “El Proceso de reforma de la salud en el Uruguay: Pasado, presente y futuro”. Luis Enrique Gallo. Enero – Junio 2015 – Monitor Estratégico, Número 7. Superintendencia Nacional de Salud.

-       “Informe Múltiple Cobertura en el SNIS a diciembre 2023”. Área Economía de la Salud – Ministerio de Salud Pública. Agosto 2024.

ANEXOS

Anexo 1: Variables – Problema de Clasificación

Encuesta Continua de Hogares 2023 – ECH_implantacion_2023

Variable Dependiente – Explicada:

y = e45_cv = Derechos Vigentes en Instituciones de Salud Principal

·  Dummy: Tipo de cobertura de Salud =

0        MSP/ASSE

1         IAMC – Instituciones de Asistencia Médica Colectiva

·  Descripción del código - Base Original:

1 MSP/ASSE

2 IAMC

3 Seguro Médico Privado

4 Hospital Policial o Militar

5 Área Salud BPS

6 Policlínica Municipal

7 Sin Cobertura

Variables Independientes – Explicativas:

X1 = dpto = Número asignado al Departamento

X2 = nom_dpto = Nombre del Departamento

Correspondencia entre Número (X1) y Nombre (X2) del Departamento

1         Montevideo

2         Artigas

3         Canelones

4         Cerro Largo

5         Colonia

6         Durazno

7         Flores

8         Florida

9         Lavalleja

10       Maldonado

11       Paysandu

12       Rio Negro

13       Rivera

14       Rocha

15       Salto

16       San Jose

17       Soriano

18       Tacuarembo

19       Treinta y Tres

X3 = d25 = Total de personas que residen en el Hogar

X4 = e26 = Sexo al nacer ( 1 = Hombre, 2 = Mujer)

X5 = e27 = Años de edad (0 = Menor de un año, 98 = Desde los 98 años en adelante)

Variables X6 y X7 determinan el mecanismo de acceso a ASSE o a una IAMC, no podrán ser considerados en nuestro modelo inicial, ya que es la respuesta directa a nuestra pregunta.

X6 = e45_1_1_cv = Mecanismo de acceso a ASSE (0 = No tiene ASSE, 1 = A través de FONASA, miembro de este Hogar, 2 = Por Bajos Recursos, 3 = Pagando Arancel, 4 = A través de FONASA, miembro de otro Hogar, 5= A través de un miembro de este hogar, 6 = A través de otro que no es miembro de este Hogar)

X7 = e45_2_1_cv = Mecanismo de acceso a IAMC (0 = No tiene IAMC, 1 = A través de FONASA, miembro de este Hogar, 2 = Paga un miembro de este Hogar, 3 = A través de otro que no es miembro de este Hogar, 5 = Paga el empleador de un miembro del Hogar, 6 = A través de FONASA, miembro de otro Hogar)

X8 = e46_cv = Afiliación a Emergencia Móvil (1 = Si, 2 = No)

X9 = e48 = Sabe leer y escribir (1 = Sabe leer y escribir, 2 = No sabe leer o escribir)

X10 = años_educ = Años de Educación = Sumatoria Años aprobados de educación i

     e51_2 = Años aprobados en Primaria común

     e51_4_a = Años aprobados en Educación Media – Liceo

     e51_4_b = Años aprobados en Educación Media Básica – CETP

     e51_5 = Años aprobados en Bachillerato

     e51_6 = Años aprobados en Bachillerato Tecnológico

     e51_8 = Años aprobados en Magisterio o Profesorado

     e51_9 = Años aprobados en Universidad o similar

     e51_10 = Años aprobados en Terciario no Universitario

     e51_11 = Años aprobados en Estudios de Posgrado

X11 = e559 = Concurrencia a Comedor (1 = Si, 2 = No)

X12 = f269 = Trabajó la semana pasada (0 = Menor a 14 años, 1 = Si, 2 = No)

X13 = f85 = Horas trabajadas por Semana

X14 = f99 = Busca otro trabajo (0 = No trabaja, 1 = Si, 2 = No)

X15 = Ingreso total de los individuos = X15 + X16 + X18 + X25

X15 = Ing_Act_Pri (X15) + Ing_Act_Sec (X16) + Jub_Ing (X18) + Pen_Ing (X20)

X15 = Ing_Act_Pri  = Ingreso de Actividad Principal = Sumatoria de  Ingresos i

     g126_1 = Sueldos o Jornales líquidos recibidos, mes anterior, por Actividad Principal

     g126_2 = Comisiones, Incentivos, Horas Extras, mes anterior, por Actividad Principal

     g126_3 = Viáticos en Actividad Principal

     g126_4 = Propinas en Actividad Principal

X16 = Ing_Act_Sec = Ingreso de Actividad Secundaria = Sumatoria de Ingresos i

     g134_1 = Sueldos o Jornales líquidos recibidos, mes anterior, por Actividad Secundaria

     g134_2 = Comisiones, Incentivos, Horas Extras, mes anterior, por Actividad Secundaria

     g134_3 = Viáticos en Actividad Secundaria

     g134_4 = Propinas en Actividad Secundaria

X17 = g_it_1 = Percibió ingresos por concepto de Jubilaciones (0 = No corresponde, 1 = Si, 2 = No)

X18 = Jub_Ing  = Jubilaciones recibidas = Sumatoria Ingresos Jubilaciones i

     g148_1_1 = Jubilaciones BPS – Caja Industria y Comercio

     g148_1_2 = Jubilaciones BPS – Caja Civil y Escolar

     g148_1_3 = Jubilaciones BPS – Caja Rural y Servicio Doméstico

     g148_1_5 = Jubilaciones Policial

     g148_1_6 = Jubilaciones Militar

     g148_1_7 = Jubilaciones Profesional

     g148_1_8 = Jubilaciones Notarial

     g148_1_9 = Jubilaciones Bancarías

     g148_1_10 = Jubilaciones Otra

     g148_1_11 = Jubilaciones Otro País

     g148_1_12 = Jubilaciones AFAP

X19 = g_it_2 = Percibe ingresos por concepto de Pensiones (0 = No corresponde, 1 = Si, 2 = No)

X20 = Pen_Ing  = Pensiones recibidas = Sumatoria Ingresos Pensiones i

     g148_2_1 = Pensiones BPS – Caja Industria y Comercio

     g148_2_2 = Pensiones BPS – Caja Civil y Escolar

     g148_2_3 = Pensiones BPS – Caja Rural y Servicio Doméstico

     g148_2_5 = Pensiones Policiales

     g148_2_6 = Pensiones Militares

     g148_2_7 = Pensiones Profesional

     g148_2_8 = Pensiones Notarial

     g148_2_9 = Pensiones Bancarias

     g148_2_10 = Pensiones Otra

     g148_2_11 = Pensiones Otro País

     g148_2_12 = Pensiones AFAP

X21 = g154 = Recibe otros Ingresos Corrientes (0 = No corresponde, 1 = Si, 2 = No)

X22 = g154_1 = Monto de Otros Ingresos Corrientes o en especie percibidos en forma habitual

X23 = eg_ps3 = Gasto Mensual en Alimentos. Percepción del Ingreso en relación a los Gastos (1 = Insuficiente para las Necesidades de su Hogar, 2 = Suficientes para las Necesidades de su Hogar, 3 = Más que suficiente para las Necesidades de su Hogar, 4 = No corresponde)

X24 = eg_ps7 = Gasto Mensual en Salud. Percepción del Ingreso en relación a los Gastos  (1 = Insuficiente para las Necesidades de su Hogar, 2 = Suficientes para las Necesidades de su Hogar, 3 = Más que suficiente para las Necesidades de su Hogar, 4 = No corresponde)

X25 = eg_ps1 = Considera que su Hogar es Pobre. Percepción del informante en relacion al ingreso para satisfacer las necesidades del Hogar (1 = Si, 2 = No)

Variables X26, X27, X28, no podrán ser consideradas fueron encontradas observaciones con formatos numéricos con problemas, imposibilita su utilización.

X26 = PT1 = Total de Ingresos Personales. Ingreso por todo concepto, trabajo, transferencias, otros ingresos, tanto del país como del exterior declarado por el entrevistado

X27 = PT2 = Ingresos por la Ocupación Principal. Ingresos por Ocupación Principal (trabajo asalariado público, trabajo asalariado privado o trabajo en la ocupación no dependiente)

X28 = PT4 = Total de Ingresos por trabajo. Todos los ingresos de la persona por concepto de trabajo

X29 = pobre06 = Pobreza según Metodología 2006 (0 = No Pobreza, 1 = Si Pobreza)

X30 = indig06 = Indigencia según Metodología 2006 (0 = No Indigencia, 1 = Si Indigencia)