En Colombia, el acceso a medicamentos representa un desafío crítico de salud pública. El mismo medicamento con idéntico principio activo puede presentar variaciones de precio de hasta 500% dependiendo de:
Este análisis utiliza datos oficiales del Termómetro de Precios de Medicamentos 2024 (Ministerio de Salud - datos.gov.co) para identificar patrones, factores determinantes y generar recomendaciones accionables.
Los objetivos de este análisis siguiendo la metodología CRISP-DM son:
1. Comprensión del Negocio: Problema de variabilidad
de precios
2. Comprensión de los Datos: Exploración del Termómetro
2024
3. Preparación de Datos: Limpieza, transformación,
feature engineering
4. Modelación: Random Forest, SVM, Regresión Logística,
K-Means, PCA
5. Evaluación: Métricas de desempeño y validación
6. Implementación: Recomendaciones y próximos pasos
## 'data.frame': 12534 obs. of 12 variables:
## $ expediente_invima : int 103795 104739 104739 10815 111057 111057 113757 11415 11416 11416 ...
## $ principio_activo : chr "Midazolam" "Acido Valproico" "Acido Valproico" "Fluoxetina" ...
## $ concentracion : chr "Midazolam 15 mg" "Divalproato Sodico 500 mg" "Divalproato Sodico 500 mg" "Fluoxetina 20 mg" ...
## $ unidad_base : chr "ml" "mg" "mg" "mg" ...
## $ unidad_de_dispensacion: chr "Ampolla" "Tableta" "Tableta" "Capsula" ...
## $ nombre_comercial : chr "Dormicum" "Valcote" "Valcote" "Fluoxetina" ...
## $ fabricante : chr "Siegfried" "Lafrancol" "Lafrancol" "Genfar" ...
## $ medicamento : chr "Dormicum (Siegfried) - Ampolla 3 ml - Cada 3 ml contiene: Midazolam 15 mg" "Valcote (Lafrancol) - Cada Tableta contiene: Divalproato Sodico 500 mg" "Valcote (Lafrancol) - Cada Tableta contiene: Divalproato Sodico 500 mg" "Fluoxetina (Genfar) - Cada Capsula contiene: Fluoxetina 20 mg" ...
## $ canal : chr "Institucional" "Comercial" "Institucional" "Comercial" ...
## $ precio_por_tableta : num 11200 3753 1777 329 64185 ...
## $ factoresprecio : chr "Alto" "Medio" "Medio" "Medio" ...
## $ numerofactor : int 3 2 2 2 2 2 2 1 3 1 ...
## expediente_invima principio_activo concentracion unidad_base
## Min. : 3521 Length:12534 Length:12534 Length:12534
## 1st Qu.:19935780 Class :character Class :character Class :character
## Median :20004997 Mode :character Mode :character Mode :character
## Mean :16656166
## 3rd Qu.:20082399
## Max. :20235810
## unidad_de_dispensacion nombre_comercial fabricante
## Length:12534 Length:12534 Length:12534
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
## medicamento canal precio_por_tableta factoresprecio
## Length:12534 Length:12534 Min. : 0 Length:12534
## Class :character Class :character 1st Qu.: 1018 Class :character
## Mode :character Mode :character Median : 3891 Mode :character
## Mean : 155408
## 3rd Qu.: 18072
## Max. :257103178
## numerofactor
## Min. :1.000
## 1st Qu.:2.000
## Median :2.000
## Mean :2.001
## 3rd Qu.:2.000
## Max. :3.000
La distribución de precios muestra:
| Categoría | N | Promedio | Mediana | Mínimo | Máximo | Desv. Std | % Total |
|---|---|---|---|---|---|---|---|
| Bajo | 1,892 | 233 | 229 | 0 | 500 | 142 | 15 |
| Medio | 2,740 | 1,150 | 1,100 | 500 | 2,000 | 431 | 22 |
| Alto | 7,902 | 246,051 | 11,418 | 2,000 | 257,103,178 | 3,275,007 | 63 |
| Canal | Precio Promedio | Precio Mediano | N° Medicamentos |
|---|---|---|---|
| INSTITUCIONAL | 283,397 | 3,129 | 5,752 |
| COMERCIAL | 46,858 | 4,421 | 6,782 |
###Interpretación
El ranking de los principios activos más costosos revela que ciertos medicamentos presentan precios promedio significativamente superiores al resto del mercado, incluso cuando se analiza el precio por unidad.
Este comportamiento puede estar asociado a medicamentos especializados, tratamientos de nicho o principios activos con menor competencia de genéricos, lo cual limita la presión competitiva sobre los precios.
###Interpretación. La forma de dispensación tiene un impacto significativo en el precio del medicamento. Las presentaciones inyectables y en solución tienden a presentar precios promedio más altos en comparación con tabletas o cápsulas.
Este comportamiento puede atribuirse a mayores costos de producción, requerimientos de conservación, logística y control sanitario más estrictos.
## Variables removidas por sd=0: es_generico, forma_suspension
| variable | IQR | Z-Score | MAD |
|---|---|---|---|
| expediente_invima | 2132 | 0 | 2132 |
| precio_por_tableta | 2000 | 38 | 3016 |
| numerofactor | 5448 | 0 | 0 |
| concentracion_numerica | 1779 | 22 | 3181 |
| es_generico | 0 | 0 | 0 |
| log_precio | 294 | 96 | 188 |
| es_comercial | 0 | 0 | 0 |
| forma_tableta | 0 | 0 | 0 |
| forma_capsula | 1252 | 1252 | 0 |
| forma_suspension | 0 | 0 | 0 |
| forma_inyectable | 657 | 657 | 0 |
| forma_solucion | 37 | 37 | 0 |
##
## ### MODELO 1: RANDOM FOREST ###
## Variables removidas por NZV: es_generico, forma_suspension
##
## Entrenando Random Forest...
## Confusion Matrix and Statistics
##
## Reference
## Prediction Bajo Medio Alto
## Bajo 143 93 76
## Medio 113 153 127
## Alto 116 291 1321
##
## Overall Statistics
##
## Accuracy : 0.6646
## 95% CI : (0.6455, 0.6834)
## No Information Rate : 0.6264
## P-Value [Acc > NIR] : 4.738e-05
##
## Kappa : 0.329
##
## Mcnemar's Test P-Value : 4.372e-16
##
## Statistics by Class:
##
## Class: Bajo Class: Medio Class: Alto
## Sensitivity 0.38441 0.28492 0.8668
## Specificity 0.91800 0.87342 0.5523
## Pos Pred Value 0.45833 0.38931 0.7645
## Neg Pred Value 0.89203 0.81176 0.7121
## Prevalence 0.15290 0.22072 0.6264
## Detection Rate 0.05878 0.06289 0.5430
## Detection Prevalence 0.12824 0.16153 0.7102
## Balanced Accuracy 0.65120 0.57917 0.7095
##
## **Métricas principales:**
## - Accuracy: 0.6646
## - Kappa: 0.329
| Bajo | Medio | Alto | MeanDecreaseAccuracy | MeanDecreaseGini | Variable | |
|---|---|---|---|---|---|---|
| forma_tableta | 63.668 | 50.684 | 61.203 | 76.084 | 682.802 | forma_tableta |
| forma_capsula | 54.826 | 59.030 | 12.461 | 69.166 | 227.265 | forma_capsula |
| concentracion_numerica | 19.493 | 19.156 | 25.494 | 45.266 | 209.470 | concentracion_numerica |
| numerofactor | 49.968 | 20.653 | 64.630 | 73.311 | 189.556 | numerofactor |
| es_comercial | 36.015 | 21.677 | 39.376 | 47.559 | 84.831 | es_comercial |
| forma_inyectable | 45.113 | 29.129 | -2.842 | 39.902 | 80.159 | forma_inyectable |
##
## ### MODELO 2: REGRESIÓN LOGÍSTICA MULTINOMIAL ###
## Entrenando Regresión Logística...
## Confusion Matrix and Statistics
##
## Reference
## Prediction Bajo Medio Alto
## Bajo 79 33 25
## Medio 165 160 149
## Alto 128 344 1350
##
## Overall Statistics
##
## Accuracy : 0.6531
## 95% CI : (0.6338, 0.672)
## No Information Rate : 0.6264
## P-Value [Acc > NIR] : 0.003314
##
## Kappa : 0.2763
##
## Mcnemar's Test P-Value : < 2.2e-16
##
## Statistics by Class:
##
## Class: Bajo Class: Medio Class: Alto
## Sensitivity 0.21237 0.29795 0.8858
## Specificity 0.97186 0.83439 0.4807
## Pos Pred Value 0.57664 0.33755 0.7409
## Neg Pred Value 0.87239 0.80755 0.7152
## Prevalence 0.15290 0.22072 0.6264
## Detection Rate 0.03247 0.06576 0.5549
## Detection Prevalence 0.05631 0.19482 0.7489
## Balanced Accuracy 0.59211 0.56617 0.6833
##
## **Métricas principales:**
## - Accuracy: 0.6531
## - Kappa: 0.2763
##
## ### MODELO 3: SVM (Support Vector Machine) ###
## Entrenando SVM...
## Confusion Matrix and Statistics
##
## Reference
## Prediction Bajo Medio Alto
## Bajo 163 122 105
## Medio 80 103 87
## Alto 129 312 1332
##
## Overall Statistics
##
## Accuracy : 0.6568
## 95% CI : (0.6376, 0.6757)
## No Information Rate : 0.6264
## P-Value [Acc > NIR] : 0.0009795
##
## Kappa : 0.306
##
## Mcnemar's Test P-Value : < 2.2e-16
##
## Statistics by Class:
##
## Class: Bajo Class: Medio Class: Alto
## Sensitivity 0.4382 0.19181 0.8740
## Specificity 0.8899 0.91192 0.5149
## Pos Pred Value 0.4179 0.38148 0.7513
## Neg Pred Value 0.8977 0.79935 0.7091
## Prevalence 0.1529 0.22072 0.6264
## Detection Rate 0.0670 0.04233 0.5475
## Detection Prevalence 0.1603 0.11097 0.7287
## Balanced Accuracy 0.6640 0.55186 0.6944
##
## **Métricas principales:**
## - Accuracy: 0.6568
## - Kappa: 0.306
| Modelo | Accuracy | Kappa |
|---|---|---|
| Random Forest | 0.6646 | 0.3290 |
| Regresión Logística | 0.6531 | 0.2763 |
| SVM | 0.6568 | 0.3060 |
##
## ### MODELO DE REGRESIÓN: RANDOM FOREST ###
## Entrenando Random Forest para Regresión...
##
## **Métricas de Regresión:**
## - RMSE: 1,287,859 COP
## - MAE: 233,433 COP
## - R²: 0.0275
##
## ### CLUSTERING K-MEANS ###
###Interpretación
El análisis de clustering mediante K-Means permite identificar cuatro segmentos diferenciados de medicamentos, caracterizados por patrones de precio y concentración distintos.
Esta segmentación sugiere que el mercado farmacéutico colombiano no es homogéneo, sino que está compuesto por grupos bien definidos, lo cual puede facilitar estrategias de regulación, compra y negociación diferenciadas.
##
## **Tamaño de clusters:**
## [1] 2650 9510 9 1
##
## **Resumen por Cluster:**
## # A tibble: 4 × 5
## Cluster n precio_promedio precio_mediano concentracion_promedio
## <fct> <int> <dbl> <dbl> <dbl>
## 1 1 2650 98318. 6044. 7952.
## 2 2 9510 146613. 3296. 4797.
## 3 3 9 12661. 9950. 14444444.
## 4 4 1 257103178 257103178 2
| Cluster | n | precio_promedio | precio_mediano | concentracion_promedio |
|---|---|---|---|---|
| 1 | 2,650 | 98,317.54 | 6,044.30 | 7,951.68 |
| 2 | 9,510 | 146,613.11 | 3,296.05 | 4,797.13 |
| 3 | 9 | 12,660.75 | 9,950.48 | 14,444,444.44 |
| 4 | 1 | 257,103,178.00 | 257,103,178.00 | 2.00 |
##
## ### ANÁLISIS DE COMPONENTES PRINCIPALES (PCA) ###
##
## **Varianza explicada:**
## - PC1: 21.4 %
## - PC2: 17.5 %
## - Acumulada (PC1 + PC2): 38.9 %
1. Variabilidad de Precios Extrema
2. Factores Determinantes Identificados
Los modelos de machine learning identificaron que 3 factores explican el 75% de la variabilidad:
3. Desempeño de Modelos Predictivos
| Modelo | Accuracy | Kappa |
|---|---|---|
| Random Forest | 0.6646 | 0.3290 |
| Regresión Logística | 0.6531 | 0.2763 |
| SVM | 0.6568 | 0.3060 |
4. Segmentación del Mercado
El clustering K-Means identificó 4 segmentos naturales de medicamentos con comportamientos de precio diferenciados, lo que sugiere estrategias específicas por segmento.
Impacto esperado: Ahorro de $180,000 a $500,000 pesos anuales para pacientes crónicos
Impacto esperado: Ahorro del 12-18% en presupuesto de medicamentos ($450M anuales para hospital mediano)
Impacto esperado: Reducción del 8-12% en precios por efecto de mercado
Este análisis tiene las siguientes limitaciones que deben considerarse:
## R version 4.5.1 (2025-06-13 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26200)
##
## Matrix products: default
## LAPACK version 3.12.1
##
## locale:
## [1] LC_COLLATE=Spanish_Colombia.utf8 LC_CTYPE=Spanish_Colombia.utf8
## [3] LC_MONETARY=Spanish_Colombia.utf8 LC_NUMERIC=C
## [5] LC_TIME=Spanish_Colombia.utf8
##
## time zone: America/Bogota
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] DT_0.34.0 knitr_1.50 rmarkdown_2.30
## [4] GGally_2.4.0 scales_1.4.0 gridExtra_2.3
## [7] pROC_1.19.0.1 ROCR_1.0-11 nnet_7.3-20
## [10] factoextra_1.0.7 cluster_2.1.8.1 corrplot_0.95
## [13] e1071_1.7-17 randomForest_4.7-1.2 caret_7.0-1
## [16] lattice_0.22-7 lubridate_1.9.4 forcats_1.0.1
## [19] stringr_1.6.0 dplyr_1.1.4 purrr_1.2.0
## [22] readr_2.1.6 tidyr_1.3.1 tibble_3.3.0
## [25] ggplot2_4.0.1 tidyverse_2.0.0
##
## loaded via a namespace (and not attached):
## [1] rlang_1.1.6 magrittr_2.0.4 compiler_4.5.1
## [4] systemfonts_1.3.1 vctrs_0.6.5 reshape2_1.4.5
## [7] pkgconfig_2.0.3 fastmap_1.2.0 backports_1.5.0
## [10] labeling_0.4.3 utf8_1.2.6 prodlim_2025.04.28
## [13] tzdb_0.5.0 ragg_1.5.0 xfun_0.54
## [16] cachem_1.1.0 jsonlite_2.0.0 recipes_1.3.1
## [19] broom_1.0.11 parallel_4.5.1 R6_2.6.1
## [22] bslib_0.9.0 stringi_1.8.7 RColorBrewer_1.1-3
## [25] parallelly_1.46.0 car_3.1-3 rpart_4.1.24
## [28] jquerylib_0.1.4 Rcpp_1.1.0 iterators_1.0.14
## [31] future.apply_1.20.1 Matrix_1.7-3 splines_4.5.1
## [34] timechange_0.3.0 tidyselect_1.2.1 rstudioapi_0.17.1
## [37] abind_1.4-8 yaml_2.3.10 timeDate_4051.111
## [40] codetools_0.2-20 listenv_0.10.0 plyr_1.8.9
## [43] withr_3.0.2 S7_0.2.1 evaluate_1.0.5
## [46] future_1.68.0 survival_3.8-3 ggstats_0.12.0
## [49] proxy_0.4-28 pillar_1.11.1 ggpubr_0.4.0
## [52] carData_3.0-5 foreach_1.5.2 stats4_4.5.1
## [55] generics_0.1.4 hms_1.1.4 globals_0.18.0
## [58] class_7.3-23 glue_1.8.0 tools_4.5.1
## [61] data.table_1.17.8 ModelMetrics_1.2.2.2 gower_1.0.2
## [64] ggsignif_0.6.4 grid_4.5.1 crosstalk_1.2.2
## [67] ipred_0.9-15 nlme_3.1-168 Formula_1.2-5
## [70] cli_3.6.5 textshaping_1.0.4 lava_1.8.2
## [73] gtable_0.3.6 rstatix_0.7.3 sass_0.4.10
## [76] digest_0.6.38 ggrepel_0.9.6 htmlwidgets_1.6.4
## [79] farver_2.1.2 htmltools_0.5.8.1 lifecycle_1.0.4
## [82] hardhat_1.4.2 MASS_7.3-65
1 .** 01_distribucion_precios.png ** : Distribución general de precios 2 .** 02_precio_por_categoria.png ** : Precios por categoría (Bajo/Medio/Alto) 3 .** 03_precio_por_canal.png ** : Comparación Comercial vs Institucional 4 .** 04_top15_principios_caros.png ** : Principios activos más costosos 5 .** 05_top15_fabricantes_caros.png ** : Fabricantes con precios más altos 6 .** 06_precio_por_forma.png ** : Precios por forma farmacéutica 7 .** 07_importancia_variables.png ** : Importancia de variables (RF) 8 .** 08_comparacion_modelos.png ** : Comparación de modelos 9 .** 09_real_vs_predicho.png ** : Regresión: Real vs Predicho 10 .** 10_metodo_codo.png ** : Método del codo (clustering) 11 .** 11_visualizacion_por_clusters.png ** : Visualización de clusters 12 .** 12_precio_por_cluster.png ** : Distribución de precios por cluster 13 .** 13_pca_scree.png ** : Varianza explicada PCA 14 .** 14_pca_variables.png ** : Contribución de variables PCA 15 .** 15_pca_scatter.png ** : Proyección PC1 vs PC2 16 .** 16_cor_pearson.png ** : Matriz correlación Pearson 17 .** 17_cor_spearman.png ** : Matriz correlación Spearman 18 .** 18_ggpairs_top6.png ** : Matriz de dispersión 19 .** 19_outliers_por_canal.png ** : Outliers por canal
correlacion_pearson.csv: Matriz de correlación Pearson
completacorrelacion_spearman.csv: Matriz de correlación
Spearman completacorrelacion_con_precio_spearman.csv: Correlaciones con
la variable preciooutliers_resumen.csv: Resumen de outliers por método
(IQR/Z/MAD)comparacion_modelos.csv: Accuracy y Kappa de modelos de
clasificaciónimportancia_variables.csv: Importancia de variables en
Random Forestresumen_clusters.csv: Estadísticas por cluster
K-Meanspca_result.rds: Objeto completo del análisis PCA📊 Proyecto Completado Exitosamente
Análisis de Precios de Medicamentos en Colombia - Metodología CRISP-DM
Fuente: datos.gov.co | Año: 2024