Análisis de datos aplicado a la escasez de medicamentos
Equipo
Jhoan Canchila Lázaro
Camila Andrea Leaño Duarte
María Carmenza Paipa Lara
Oscar Darío Villada Sánchez
Analitica de datos
Asignatura
Gabriel Enrique Beltran Ibarra
Ingeniero
D.C. Bogotá
2025
Página 1 | 24
Contenido
Introducción ............................................................................................................................. 3
Objetivos ................................................................................................................................... 4
1. Metodología utilizada .......................................................................................................... 5
2. Fuentes de datos utilizadas para el análisis descriptivo ................................................... 6
3. Resultado del análisis y modelo predictivo ........................................................................ 9
3.1. Conclusión del análisis: ............................................................................................ 19
4. Propuesta para mitigar la escasez de medicamentos en colombia: ......................... 20
Conclusión: ....................................................................................................................... 23
Página 2 | 24
Introducción
La escasez de medicamentos no solo en Colombia, sino en muchos países, se
convierte en una preocupación de salud pública y afecta el acceso a los tratamientos
esenciales y al sistema de asistencia de salud en general. En Colombia, la escasez ha sido un
tema de gran preocupación que ha mostrado una tendencia creciente desde 2009 con un
aumento sostenido de la falta de acceso a ciertos medicamentos. Las causas de la escasez
pueden ser de naturaleza diversa: cuestión económica, condición del sistema de distribución,
regulación del mercado y el hecho de que la mayoría de ingredientes activos provienen de
proveedores extranjeros.
En este informe, se realiza un análisis completo de la escasez de medicamentos en
Colombia utilizando los cuatro tipos de análisis de datos: descriptivo, diagnóstico, predictivo
y prescriptivo. Basado en la evidencia, el enfoque no solo está destinado a ayudar a
comprender la magnitud del problema y la dinámica de su evolución durante un período de
tiempo específico, sino que también se aplica para identificar las causas principales, predecir
las tendencias futuras de la propagación del fenómeno y proporcionar una serie de
recomendaciones sobre cómo mitigar su efecto en la población.
El análisis descriptivo se utiliza para interactuar con los datos y comprender mejor la
escasez de medicamentos. Se basa en los detalles de la información histórica. Más allá, el
análisis predictivo se utiliza para predecir tendencias futuras. Después, el análisis prescriptivo
proporciona recomendaciones sobre los hallazgos.
Este ejercicio tiene como objetivo principal contribuir a la toma de decisiones informadas por
parte de las autoridades sanitarias y demás actores involucrados del sector, con el fin de
mejorar la disponibilidad de medicamentos y garantizar el derecho a la salud de la población.
Página 3 | 24
Objetivos
Objetivo General
Analizar y evaluar de manera integral la problemática de la escasez de medicamentos en
el sistema de salud pública, utilizando técnicas de análisis de datos descriptivo,
diagnóstico, predictivo y prescriptivo para identificar causas, consecuencias y proponer
soluciones efectivas.
Objetivos específicos
- Recopilar y analizar datos sobre la disponibilidad de medicamentos a lo largo del
tiempo, identificando patrones de escasez en diferentes contextos y regiones, así como
características demográficas de las poblaciones afectadas. Esto permitirá establecer un
panorama claro sobre la magnitud del problema.
- Investigar las causas subyacentes de la escasez de medicamentos mediante técnicas de
correlación y comparación.
- Utilizar modelos estadísticos y de machine learning para prever tendencias futuras en
la escasez de medicamentos.
- Desarrollar y evaluar estrategias y políticas basadas en los hallazgos del análisis
anterior.
Página 4 | 24
1. Metodología utilizada
La metodología utilizada en este estudio combina un enfoque cuantitativo, descriptivo
y predictivo. Se basa en la recopilación, procesamiento y análisis de datos numéricos para
identificar patrones y tendencias relacionadas con la escasez de medicamentos en Colombia.
Con el uso de técnicas estadísticas y modelos de aprendizaje automático (machine learning),
el objetivo es entender cómo interactúan la oferta y la demanda de medicamentos, además de
anticipar posibles escenarios de desabastecimiento en el futuro.
El enfoque cuantitativo permite dimensionar el alcance del problema, ofreciendo
datos concretos sobre el número de medicamentos en escasez, los principios activos más
afectados y cómo esta problemática ha evolucionado en el tiempo. A su vez, el componente
descriptivo se enfoca en detallar la situación actual. Por medio de herramientas como gráficos
y tablas, se logra presentar los resultados de manera clara y accesible.
Finalmente, el análisis predictivo utiliza algoritmos avanzados de inteligencia
artificial para reconocer patrones en los datos históricos y construir modelos que permitan
prever posibles faltantes de medicamentos. Estas proyecciones no solo ayudan a prevenir
futuras crisis, sino que también sirven para tomar decisiones más informadas y diseñar
estrategias efectivas dentro del sector salud.
Página 5 | 24
2. Fuentes de datos utilizadas para el análisis descriptivo
MEDICAMENTOS VITALES NO DISPONIBLES | Datos abiertos Colombia. (2025, 21
enero). https://www.datos.gov.co/Salud-y-Protecci-n-Social/MEDICAMENTOS-VITALES-
NO-DISPONIBLES/sdmr-tfmf/about_data
Datos Abiertos Colombia. (s. f.). La Plataforma de Datos Abiertos del Gobierno Colombiano.
https://www.datos.gov.co/browse?q=Clicsalud%20-
%20Term%C3%B3metro%20de%20Precios%20de%20Medicamentos&sortBy=relevance
en la gráfica que se relaciona a continuación se realiza un análisis para ver si la escasez de
medicamentos se debe al precio del medicamento relacionado con los años teniendo la suma
de” número de factor” que nos indica en que rango esta el medicamento en precios alto,
medio o bajo y la suma de todos los medicamentos solicitados por año se puede identificar
que el costo del medicamento no es el factor principal que afecta la adquisición del mismo
por lo cual deben haber otras causales que estén afectando la adquisición .
Página 6 | 24
En el siguiente gráfico podemos observar desde la fecha en que se obtuvo la autorización
según el diagnóstico de la enfermedad y el tipo de solicitud que el promedio no varía mucho
entre los tipos de solicitudes y el medicamento y la variación es muy poca entre el
diagnóstico y el tipo de solicitud que son las urgencias, los pacientes específicos y los que
son solicitados por más de un paciente, teniendo claro que todos los tipos de pacientes son
afectados sin importar el diagnóstico que se tenga ya sea grave o no .
Página 7 | 24
En es diagrama se puede visualizar el aumento de la cantidad de medicamentos faltantes que
ha incrementado en el transcurso de los últimos años se toman como medidas las urgencias
clínicas y los pacientes específicos para tener un percepción más clara de lo que a ocurrido en
el transcurso del tiempo si analizamos durante el 2019 y 2020 se mantuvo estable pero a
partir del 2021 comenzó el aumento nuevamente.
Página 8 | 24
3. Resultado del análisis y modelo predictivo
Gráfico top 10 escasez de medicamentos Nombre comercial
Página 9 | 24
Código fuente
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Cargar los datos
url = 'https://www.datos.gov.co/api/views/sdmr-tfmf/rows.csv?accessType=DOWNLOAD'
df = pd.read_csv(url)
# Mostrar las primeras filas
print(df.head())
# Filtrar valores que no reportan información
# Eliminar filas donde 'NOMBRE_COMERCIAL_' sea "NO REPORTA" o similar
df_filtrado = df[~df['NOMBRE_COMERCIAL_'].str.contains('NO REPORTA', case=False,
na=False)]
# Contar la frecuencia de cada medicamento
medicamentos_escasean = df_filtrado['NOMBRE_COMERCIAL_'].value_counts().head(10)
# Top 10 medicamentos que más escasean
# Crear el gráfico de barras
plt.figure(figsize=(10, 6))
sns.barplot(x=medicamentos_escasean.values, y=medicamentos_escasean.index,
palette='viridis')
plt.title('Top 10 Medicamentos que más Escasean', fontsize=16)
plt.xlabel('Frecuencia', fontsize=12)
plt.ylabel('Medicamento', fontsize=12)
plt.show()
Página 10 | 24
Página 11 | 24
Código fuente
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Cargar los datos
url = 'https://www.datos.gov.co/api/views/sdmr-tfmf/rows.csv?accessType=DOWNLOAD'
df = pd.read_csv(url)
# Mostrar las primeras filas
print(df.head())
# Filtrar valores que no reportan información
# Eliminar filas donde 'DIAGNOSTICO_CIE-1NO REPORTA' sea "NO REPORTA" o
similar
df_filtrado = df[~df['DIAGNOSTICO_CIE-1NO REPORTA'].str.contains('NO REPORTA',
case=False, na=False)]
# Contar la frecuencia de cada enfermedad
enfermedades_afectadas = df_filtrado['DIAGNOSTICO_CIE-1NO
REPORTA'].value_counts().head(10) # Top 10 enfermedades más afectadas
# Crear el gráfico de barras
plt.figure(figsize=(10, 6))
sns.barplot(x=enfermedades_afectadas.values, y=enfermedades_afectadas.index,
palette='magma')
plt.title('Top 10 Enfermedades más Afectadas por la Escasez de Medicamentos', fontsize=16)
plt.xlabel('Frecuencia', fontsize=12)
plt.ylabel('Enfermedad', fontsize=12)
plt.show()
Página 12 | 24
Página 13 | 24
Código fuente
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Cargar los datos
url = 'https://www.datos.gov.co/api/views/sdmr-tfmf/rows.csv?accessType=DOWNLOAD'
df = pd.read_csv(url)
# Mostrar las primeras filas
print(df.head())
# Filtrar valores que no reportan información en la columna 'PRINCIPIO_ACTIVO1'
df_filtrado = df[~df['PRINCIPIO_ACTIVO1'].str.contains('NO REPORTA', case=False,
na=False)]
# Contar la frecuencia de cada principio activo
principios_activos_escasean = df_filtrado['PRINCIPIO_ACTIVO1'].value_counts().head(10)
# Top 10 principios activos que más escasean
# Crear el gráfico de barras
plt.figure(figsize=(10, 6))
sns.barplot(x=principios_activos_escasean.values, y=principios_activos_escasean.index,
palette='viridis')
plt.title('Top 10 Principios Activos que más Escasean', fontsize=16)
plt.xlabel('Frecuencia', fontsize=12)
plt.ylabel('Principio Activo', fontsize=12)
plt.show()
Página 14 | 24
Página 15 | 24
Código fuente
Página 16 | 24
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
from sklearn.preprocessing import LabelEncoder
# Cargar los datos
url = 'https://www.datos.gov.co/api/views/sdmr-tfmf/rows.csv?accessType=DOWNLOAD'
df = pd.read_csv(url)
# Mostrar las primeras filas
print(df.head())
# Filtrar valores que no reportan información
df_filtrado = df[~df['NOMBRE_COMERCIAL_'].str.contains('NO REPORTA', case=False,
na=False)]
df_filtrado = df_filtrado[~df_filtrado['DIAGNOSTICO_CIE-1NO
REPORTA'].str.contains('NO REPORTA', case=False, na=False)]
# Seleccionar columnas relevantes para el análisis predictivo
columnas = ['NOMBRE_COMERCIAL_', 'DIAGNOSTICO_CIE-1NO REPORTA',
'PRINCIPIO_ACTIVO1', 'FORMA_FARMACÉUTICA', 'CANTIDAD_SOLICITADA']
df_filtrado = df_filtrado[columnas]
# Manejo de valores faltantes
# Para columnas numéricas, rellenar con 0
# Para columnas categóricas, rellenar con 'Desconocido'
for col in df_filtrado.columns:
if df_filtrado[col].dtype == 'float64':
df_filtrado[col] = df_filtrado[col].fillna(0) # Rellenar NaN en columnas numéricas con
0
else:
df_filtrado[col] = df_filtrado[col].fillna('Desconocido') # Rellenar NaN en columnas
categóricas con 'Desconocido'
# Limitar el número de clases (medicamentos) para simplificar el problema
top_medicamentos =
df_filtrado['NOMBRE_COMERCIAL_'].value_counts().nlargest(10).index # Seleccionar los
10 medicamentos más frecuentes
df_filtrado['NOMBRE_COMERCIAL_'] = df_filtrado['NOMBRE_COMERCIAL_'].where(
df_filtrado['NOMBRE_COMERCIAL_'].isin(top_medicamentos), 'Otros'
Página 17 | 24
)
# Convertir variables categóricas a numéricas
label_encoders = {}
for col in df_filtrado.select_dtypes(include=['object']).columns:
le = LabelEncoder()
df_filtrado[col] = le.fit_transform(df_filtrado[col].astype(str))
label_encoders[col] = le
# Definir variables independientes (X) y dependiente (y)
X = df_filtrado.drop('NOMBRE_COMERCIAL_', axis=1) # Características
y = df_filtrado['NOMBRE_COMERCIAL_'] # Etiqueta (medicamento)
# Dividir los datos en conjuntos de entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Crear y entrenar el modelo
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# Predecir en el conjunto de prueba
y_pred = model.predict(X_test)
# Matriz de confusión
cm = confusion_matrix(y_test, y_pred)
disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=model.classes_)
disp.plot(cmap='Blues')
plt.title('Matriz de Confusión (Top 10 Medicamentos)')
plt.show()
# Importancia de las características
feature_importances = model.feature_importances_
features = X.columns
importance_df = pd.DataFrame({'Feature': features, 'Importance': feature_importances})
importance_df = importance_df.sort_values(by='Importance', ascending=False)
# Gráfico de importancia de características
plt.figure(figsize=(10, 6))
sns.barplot(x='Importance', y='Feature', data=importance_df, palette='viridis')
plt.title('Importancia de las Características en la Predicción de Escasez')
plt.show()
Página 18 | 24
3.1. Conclusión del análisis:
Las gráficas muestran que los medicamentos que más escasean están relacionados con
enfermedades huérfanas, como la distrofia muscular y la fibrosis quística. Esta escasez está
directamente vinculada a los principios activos de sus componentes principales, los cuales
son difíciles de obtener debido a los altos costos de producción y los problemas en la cadena
de suministro.
La matriz de confusión revela cuántas predicciones fueron correctas e incorrectas para
los 10 medicamentos más frecuentes, destacando las características clave utilizadas en la
predicción de la escasez.
En conclusión, los medicamentos de alto costo destinados a enfermedades raras son
los más afectados por la escasez, principalmente por la complejidad y el costo de sus
principios activos, así como por las dificultades en la producción y distribución. Esto subraya
la necesidad de implementar medidas que garanticen su disponibilidad para los pacientes que
los necesitan.
Página 19 | 24
4. Propuesta para mitigar la escasez de medicamentos en colombia:
Tras un análisis detallado, se han identificado diversas estrategias que podrían ayudar
a enfrentar la escasez de medicamentos en Colombia. Estas propuestas buscan fortalecer la
cadena de suministro, optimizar las regulaciones existentes y fomentar la producción local,
con el objetivo de garantizar un acceso equitativo a los medicamentos esenciales para la
población.
Una de las claves para resolver la escasez de medicamentos en el país es optimizar la
cadena de suministro. Para ello, se sugiere implementar sistemas de monitoreo en tiempo real
que permitan detectar posibles desabastecimientos y actuar antes de que se conviertan en un
problema mayor. También es esencial fortalecer la infraestructura de distribución para
garantizar que los medicamentos lleguen a tiempo a hospitales, farmacias y centros de salud.
Esto no sólo reduciría las demoras y pérdidas en logística, sino que también permitiría una
respuesta rápida ante cualquier problema de abastecimiento, asegurando que los
medicamentos esenciales estén disponibles cuando se necesiten.
Otro paso importante es facilitar la importación de medicamentos esenciales. Esto
podría lograrse mediante la creación de un marco regulatorio que simplifique los trámites
para importar medicamentos en riesgo de escasez, sin comprometer su calidad o seguridad. A
la par, se propone establecer acuerdos comerciales con otros países para obtener principios
activos difíciles de conseguir, diversificando así las fuentes de abastecimiento y
disminuyendo la dependencia de mercados específicos. Con esta estrategia, Colombia sería
menos vulnerable ante problemas de producción en el extranjero y se ampliará el acceso a
medicamentos que actualmente son complicados de adquirir.
Respecto a la regulación de precios, es necesario revisar las políticas vigentes para garantizar
que los costos reflejen de manera justa los procesos de producción y distribución. Esto podría
Página 20 | 24
incluir ajustes en los precios regulados para ciertos medicamentos esenciales y la creación de
incentivos fiscales para que las farmacéuticas nacionales produzcan medicamentos de alto
costo. Estas medidas no solo promoverán la autosuficiencia en el sector, sino que también
aseguran que los pacientes puedan acceder a los medicamentos sin enfrentarse a costos
exorbitantes.
Fomentar la producción local es otra acción imprescindible. Para lograrlo, se deben
implementar programas que apoyen la investigación y la fabricación de medicamentos en el
país, con un enfoque en el desarrollo de principios activos clave. Además, ofrecer incentivos
económicos y regulatorios a las empresas que apuesten por esta producción local puede
ayudar a reducir la dependencia de importaciones y garantizar una oferta más estable,
fortaleciendo al mismo tiempo la industria farmacéutica nacional.
En cuanto a la gestión del abastecimiento, es fundamental reforzar las estrategias de
compra y almacenamiento. Por ejemplo, las compras conjuntas entre diferentes entidades de
salud podrían generar ahorros significativos, mientras que la creación de reservas estratégicas
de medicamentos esenciales garantizaran que el país esté preparado para enfrentar
emergencias sanitarias o picos inesperados de demanda. Así, se evitarían situaciones de
desabastecimiento crítico.
Por último, es vital promover el uso adecuado y racional de los medicamentos. Para
ello, se deben impulsar programas educativos tanto para médicos como para pacientes, que
fomenten una prescripción responsable y el uso eficiente de los fármacos. Además, adoptar
un sistema de prescripción basado en denominaciones comunes internacionales ofrecería
alternativas terapéuticas más accesibles, reduciendo la escasez de ciertos productos y
promoviendo su uso eficaz.
Página 21 | 24
La tecnología también juega un papel esencial en la prevención del
desabastecimiento. Con la ayuda de inteligencia artificial, sería posible desarrollar modelos
predictivos para anticipar crisis en la cadena de suministro y tomar medidas correctivas con
tiempo. Asimismo, la integración de bases de datos nacionales permitiría monitorear en
tiempo real la disponibilidad de medicamentos, garantizando respuestas rápidas y eficientes
ante cualquier eventualidad.
Página 22 | 24
Conclusión:
El análisis realizado muestra que la escasez de medicamentos en Colombia no tiene
una relación directa con su precio, sino con otros factores cruciales como la cadena de
suministro, la disponibilidad de principios activos y los procesos regulatorios. Esto evidencia
la necesidad de adoptar un enfoque integral que permita abordar esta problemática de manera
efectiva.
Se destaca que las enfermedades huérfanas y crónicas son las más afectadas por esta
escasez, debido a la limitada producción de medicamentos específicos y a los altos costos
asociados con su fabricación. Además, los datos reflejan un incremento de la escasez en los
últimos años, lo que resalta la urgencia de tomar medidas inmediatas para revertir esta
tendencia.
Para mitigar este problema, resulta esencial implementar estrategias que optimicen la
gestión de medicamentos, mejorar las regulaciones existentes y fomentar la producción local.
Estas acciones son clave para minimizar el impacto de la escasez y garantizar que todos los
pacientes tengan acceso a los tratamientos esenciales.
Asimismo, la creación de un Sistema Nacional de Abastecimiento de Medicamentos
se perfila como una solución estructural y sostenible. Este sistema permitiría que los
medicamentos lleguen de manera oportuna a quienes los necesitan, además de fortalecer la
seguridad sanitaria del país en el largo plazo.
Página 23 | 24
Bibliografía
1. MEDICAMENTOS VITALES NO DISPONIBLES | Datos abiertos Colombia. (2025,
21 enero).
2. Datos Abiertos Colombia. (s. f.). La Plataforma de Datos Abiertos del Gobierno
Colombiano.
Página 24 | 24