Determinantes de la satisfacción del estado de salud: Una aproximación espacial

Trabajo final: Estadística espacial

Author

Jair Alberto Arciniegas

Published

February 26, 2025

Introducción

La satisfacción con los servicios de salud se ha consolidado como un indicador central para evaluar el desempeño de los sistemas de salud, dado que refleja la percepción de los usuarios sobre la calidad, la oportunidad y la eficacia de la atención recibida (Cleary & McNeil, 1988; Kang et al., 2023). Comprender los factores que determinan dicha satisfacción permite no solo valorar la eficiencia y equidad en la provisión de los servicios, sino también orientar políticas públicas hacia una mejor asignación de recursos que priorice las necesidades y expectativas de la población.

Algunos estudios han señalado que los determinantes de esta satisfacción están asociados con variables demográficas como el sexo, edad, nivel educativo, ruralidad y percepciones acerca del nivel de felicidad, de la suficiencia de los ingresos y satisfacción con la vida (He et al., 2018; Wang et al., 2020). Mientras que otros han señalado factores como la accesibilidad a los servicios, la calidad técnica de los profesionales de la salud y las condiciones estructurales de las instituciones prestadoras de servicios de salud (Al-Abri & Al-Balushi, 2014; Batbaatar et al., 2017). Sin embargo, pocos de estos estudios han incluido perspectivas que contemplen la autocorrelación espacial (Yu et al., 2022) y menos aún que lo hagan a un nivel de área.

En Colombia existen instrumentos como la encuesta de satisfacción con los servicios de salud(MSPS, 2024), y se han identificado ejercicios focalizados en algunas ciudades y prestadores (Garcia-Ubaque & Morales-Sánchez, 2019), pero que no capturan la satisfacción de las personas con su estado de salud. En nuestro contexto se destaca, la Encuesta Nacional de Calidad de Vida (ECV) que recopila, entre otras, información representativa a nivel nacional y departamental acerca de la satisfacción con el estado de salud (DANE, 2024), lo que ofrece una oportunidad virtualmente inexplorada para aproximarse a dicho fenómeno.

Desde la perspectiva de la estadística aplicada, analizar los factores asociados a la satisfacción en salud requiere la implementación de modelos que permitan identificar relaciones significativas entre diversas variables institucionales y contextuales; y que permitan modelar la potencial presencia de autocorrelación espacial, considerando que esta satisfacción no se da en el vacío, sino que puede estar condicionada por las relaciones con el espacio.

Por lo anterior, el objetivo principal de este trabajo es identificar las variables que inciden sobre la satisfacción en salud, validando si la espacialidad constituye un factor con potencia explicativa. Para esto se propone recurrir a datos provenientes de encuestas representativas de la población desagregadas a nivel de departamento.

library(spdep)
library(sp)
library(sf)
library(spatialreg)
library(dplyr)
library(tidyr)
library(ggplot2)
library(readxl)

setwd("D:\\OneDrive - Universidad Nacional de Colombia\\Maestr_Est_Ap\\Espacial\\Trabajo Final-Esp")

Shape_Colombia <- read_sf("MGN_ADM_DPTO_POLITICO", "MGN_ADM_DPTO_POLITICO")
Shape_Colombia <- as_Spatial(Shape_Colombia)
#names(Shape_Colombia@data)
Shape_Colombia0 <- subset(Shape_Colombia, Shape_Colombia$dpto_ccdgo != 88) #Quitar San Andrés
#spplot(Shape_Colombia0, "dpto_narea", main="", do.log = T, colorkey = TRUE)


bd <- read_excel("D:/OneDrive - Universidad Nacional de Colombia/Maestr_Est_Ap/Espacial/Trabajo Final-Esp/BD.xlsx", 
    sheet = "bd")
bd <- janitor::clean_names(bd)
#dim(bd);names(bd)
bd0 <- bd|>
  filter(!(divipola %in% c("TN", "88")))

bd1<- merge(Shape_Colombia0,bd, by.x="dpto_ccdgo",by.y="divipola")
bd0_sc <- bd0|>
  select(qo_l, cobertura_neta, indi_cobert_electri, pob2023, pct_personas_consultan, eficacia_estatal, desempleo, salud, seguridad)|>
  scale()|>
  as.data.frame()
bd0_sc$divipola <- bd0$divipola
bd1_sc<- merge(Shape_Colombia0,bd0_sc, by.x="dpto_ccdgo",by.y="divipola")

Metodología

Diseño

Estudio observacional de corte transversal observacional retrospectivo, a partir de la información recolectada a nivel departamental por múltiples fuentes para 2023.

Fuentes de información:

  • Encuesta Nacional de Calidad de Vida - DANE: De esta se obtuvieron variables relacionadas con: - Satisfacción en salud y otras variables asociadas al bienestar subjetivo. - Tenencia de bienes.

  • Gran Encuesta Integrada de Hogares - DANE: Datos de desempleo.

  • Proyecciones de población – DANE: Estadísticas de composición poblacional.

  • Así vamos en Salud: Cifras relacionadas con indicadores de desempeño departamental en salud.

  • UPME: Indicador de cobertura de energía eléctrica.

  • Estadísticas del Ministerio Nacional de Educación: Cifras relacionadas con cobertura en educación.

  • RIPS - Ministerio de Salud: Personas que consultan los servicios de salud (esto se escaló según la población).

  • Rethus – Ministerio de Salud: Médicos generales (escalado según población).

  • DNP: Indicador de eficiencia estatal.

  • Consejo Privado de Competitividad: Para construir un índice de competitividad recolecta múltiples variables a nivel departamental, lo que permite extraer datos relacionados con:

    • Inversión en salud pública.
    • Expectativa de vida al nacer.

Estrategia empírica

La estrategia consiste en un proceso de dos fases:

  1. Verificar la existencia de autocorrelación espacial en la variable de interés. Para esto se emplearán pruebas de autocorrelación global y autocorrelación local o LISA.
  2. Modelar las relaciones entre la satisfacción con el estado de salud y sus variables explicativas, considerando la potencial autocorrelación espacial.

Considerando indicado en la literatura (e.g. Batbaatar et al., 2017), el presente análisis se concentrará en analizar a la satisfacción en salud (excluyendo al departamento de San Andrés) en función de las siguientes variables:

\text{Satisfacción en salud} = f\left( \begin{array}{c} \text{Percepción de seguridad} \\ \text{Índice de calidad de vida} \\ \text{Proporción de adultos mayores} \\ \text{Proporción de personas que consultan los servicios de salud} \\ \text{Inversión en salud pública} \\ \text{Densidad de profesionales en medicina} \\ \text{Expectativa de vida al nacer} \end{array} \right)

Resultados

1. Estadísticas descriptivas

Como se evidencia a continuación, la variable “salud” se concentra alrededor del 0.79 (CV 5%), indicando que la población colombiana tiende a presentar altos niveles de satisfacción con su estado de salud y poca variabilidad, hecho que se refuerza por que el departamento en el cual las personas se sienten con la menor satisfacción promedio no baja de 0.69. Otras variables acotadas entre 0 y 1, como el indicador de calidad de vida promedio y percepción de seguridad presentan altos niveles con poca variabilidad, con promedios de 0.81 (CV 5%), 0.74 (CV 8%), respectivamente; mientras que variables como proporción de adultos mayores y el porcentaje de personas que usan los servicios de salud en el departamento presentan niveles medio-bajos con una mayor variabilidad, con medias de 0.13 (CV 27%) y 0.53 (CV 30%), correspondientemente.

De otro lado variables no acotadas en dicha escala, como la inversión en salud pública per cápita evidencia que en promedio en los departamentos evidencia que el rubro destinado en promedio a los departamentos del país es de 141 mil pesos, siendo este altamente heterogéneo, considerando que su coeficiente de variación es de más de 180% (CV 184%). Así mismo, la densidad de talento humano en salud de profesionales en medicina en promedio a nivel departamental es de 50.94 por 10.000 habitantes (CV 51%) y la expectativa de vida en promedio es de 75.4 años, presentando esta poca variación (CV 4%). La siguiente tabla y boxplots ilustran estos patrones.

bd1@data|>
  select(salud,inv_sal_pub_percap,ths_dens_med,expect_vida,prop_adulto_mayores_60,qo_l,seguridad,pct_personas_consultan)|>
  summarise(across(everything(), list(
    mean = ~ round(mean(.x, na.rm = TRUE), 2),
    sd = ~ round(sd(.x, na.rm = TRUE), 2),
    median = ~ round(median(.x, na.rm = TRUE), 2),
    IQR = ~ round(IQR(.x, na.rm = TRUE), 2),
    cv = ~ round(sd(.x, na.rm = TRUE) / mean(.x, na.rm = TRUE), 2),
    min = ~ round(min(.x, na.rm = TRUE), 2),
    max = ~ round(max(.x, na.rm = TRUE), 2)
  )))|>
  t()
                                [,1]
salud_mean                      0.79
salud_sd                        0.04
salud_median                    0.79
salud_IQR                       0.04
salud_cv                        0.05
salud_min                       0.69
salud_max                       0.84
inv_sal_pub_percap_mean       141.68
inv_sal_pub_percap_sd         261.14
inv_sal_pub_percap_median      21.35
inv_sal_pub_percap_IQR         62.13
inv_sal_pub_percap_cv           1.84
inv_sal_pub_percap_min          5.82
inv_sal_pub_percap_max        867.15
ths_dens_med_mean              50.94
ths_dens_med_sd                25.97
ths_dens_med_median            43.46
ths_dens_med_IQR               19.80
ths_dens_med_cv                 0.51
ths_dens_med_min               25.89
ths_dens_med_max              152.63
expect_vida_mean               75.42
expect_vida_sd                  3.21
expect_vida_median             76.06
expect_vida_IQR                 1.67
expect_vida_cv                  0.04
expect_vida_min                64.99
expect_vida_max                79.71
prop_adulto_mayores_60_mean     0.13
prop_adulto_mayores_60_sd       0.04
prop_adulto_mayores_60_median   0.13
prop_adulto_mayores_60_IQR      0.05
prop_adulto_mayores_60_cv       0.30
prop_adulto_mayores_60_min      0.06
prop_adulto_mayores_60_max      0.20
qo_l_mean                       0.81
qo_l_sd                         0.04
qo_l_median                     0.81
qo_l_IQR                        0.04
qo_l_cv                         0.05
qo_l_min                        0.72
qo_l_max                        0.86
seguridad_mean                  0.74
seguridad_sd                    0.06
seguridad_median                0.74
seguridad_IQR                   0.08
seguridad_cv                    0.08
seguridad_min                   0.64
seguridad_max                   0.85
pct_personas_consultan_mean     0.53
pct_personas_consultan_sd       0.15
pct_personas_consultan_median   0.57
pct_personas_consultan_IQR      0.17
pct_personas_consultan_cv       0.27
pct_personas_consultan_min      0.24
pct_personas_consultan_max      0.73
G1 <- bd1@data |>
  select(salud,  
         prop_adulto_mayores_60, qo_l, seguridad, pct_personas_consultan) |>
  pivot_longer(cols = everything(), names_to = "variable", values_to = "valor") |>
  ggplot(aes(x = variable, y = valor)) +
  geom_boxplot(fill = "skyblue", color = "black", outlier.color = "orange", outlier.shape = 16) +
  labs(title = "Boxplot: Variables acotadas",
       x = "Variable",
       y = "Valor", tag="A") +
  theme_bw() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) 

G2 <- bd1@data |>
  select(inv_sal_pub_percap, ths_dens_med, expect_vida) |>
  pivot_longer(cols = everything(), names_to = "variable", values_to = "valor") |>
  ggplot(aes(x = variable, y = valor)) +
  geom_boxplot(fill = "skyblue", color = "black", outlier.color = "orange", outlier.shape = 16) +
  labs(title = "Boxplot: Variables no acotadas",
       x = "Variable",
       y = "Valor", tag="B") +
  theme_bw() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) 

gridExtra::grid.arrange(G1, G2, nrow = 1)

Complementariamente, un análisis de correlaciones entre las variables seleccionadas permite identificar relaciones con polaridad positiva de alta influencia, como lo son entre el indicador de satisfacción en salud y el de calidad de vida, altas proporciones de adultos mayores a su vez guarda una relación también con la expectativa de vida al nacer y la densidad de médicos por 10 mil habitantes sostiene una relación positiva con la inversión en salud pública. De otro lado, correlaciones con polaridad negativa tienen que ver con la inversión en salud pública y la proporción de adultos mayores, así como dicha inversión y el porcentaje de personas que usan los servicios de salud.

cor_matrix <- bd1@data %>%
  select(salud, inv_sal_pub_percap, ths_dens_med, expect_vida, 
         prop_adulto_mayores_60, qo_l, seguridad, pct_personas_consultan) |>
  cor(use = "complete.obs")  

# Graficar la matriz de correlaciones
ggcorrplot::ggcorrplot(cor_matrix, 
           method = "circle",  # Tipo de visualización (también puede ser "square")
           type = "lower",     # Muestra solo la mitad inferior de la matriz
           lab = TRUE,         # Agrega valores numéricos
           lab_size = 3,       # Tamaño del texto
           colors = c("orchid", "gray75", "forestgreen"),  # Esquema de colores
           title = "Matriz de Correlaciones",
           ggtheme = theme_minimal())

Visualización espacial de la satisfacción en salud

Espacialmente a nivel de área se observa que, en las periferias orientales y occidentales en promedio la satisfacción con el estado de salud es de los más bajos del país, destacándose Nariño, Cauca, Chocó y Vichada. De su parte, los mayores niveles promedio de este índice e localizan en Antioquia y el Eje Cafetero, tal como se ilustra a continuación:

#spplot(bd1, "qo_l", main="Indice de calidad de vida subjetivo", do.log = T, colorkey = TRUE)
spplot(bd1, "salud", main="Indice de satisfaccion con el estado de salud", do.log = T, colorkey = TRUE)

Verificación de la autocorrelación espacial

Para comprobar la existencia o no de autocorrelación espacial se recurrió a dos estrategias, una orientada a estudiar la presencia de este fenómeno en todo su dominio (o a nivel global) y otra enfocada en identificar su presencia en determinados segmentos (a nivel local).

Global

A nivel global se encuentran a los índices de Moran y Geary. Estos índices permiten identificar si la variable de interés presenta patrones de autocorrelación espacial, considerando que ambos tienen como hipótesis nula que no hay correlación espacial o que dicho de otro modo que los valores observados están distribuidos aleatoriamente en el espacio y no presentan un patrón espacial significativo.

Índice de Moran

A continuación, se presenta el índice de Moran que similar a una correlación de Pearson oscila −1 a +1, donde valores positivos indican agrupación de valores similares y valores negativos dispersión. Una limitante a tener en cuenta frente a este índice tiene que ver con que asume implícitamente cierto grado de estacionariedad en la variable de interés (que la media y su varianza no cambian en el espacio), que de no ser cierto podría llevar a conclusiones erróneas.

#extraccion de coordenadas
centros <- getSpPPolygonsLabptSlots(bd1)
centroids <-SpatialPointsDataFrame(coords=centros, data=bd1@data,proj4string=CRS("+init=epsg:3724 +units=km"))
#x <- bd1@data$qo_l
Vecindades <- poly2nb(bd1)
Vecindades <- nb2listw(Vecindades)
Vecindades2 <-nb2listw(poly2nb(bd1, queen = F), style = "W", zero.policy = TRUE) 

Matriz_Distancias  <-  bd0|>
  select(salud, inv_sal_pub_percap, ths_dens_med, expect_vida, 
         prop_adulto_mayores_60, qo_l, seguridad, pct_personas_consultan)|>
  as.matrix()|>
  coordinates()|>
  dist(method="manhattan")|>#canberra, manhattan, minkowski
  as.matrix()

W  <-  ifelse(Matriz_Distancias==0,0,1/Matriz_Distancias)#recordar q me interesa las proximidades, inverso de la distancia- 
#class(W)
W <- mat2listw(W, style = "W", zero.policy = TRUE)
#names(bd1)
moran.test(bd1@data$salud, Vecindades, randomisation=F) # con los vecinos 

    Moran I test under normality

data:  bd1@data$salud  
weights: Vecindades    

Moran I statistic standard deviate = 1.7999, p-value = 0.03593
alternative hypothesis: greater
sample estimates:
Moran I statistic       Expectation          Variance 
       0.16998246       -0.03225806        0.01262462 
#moran.test(bd1@data$salud, W) # con la matriz de distancias podría ser otra alternativa a considerar

Este índice señala que si hay correlación espacial en la satisfacción con el estado de salud, lo que sugiere que esta variable no se distribuye aleatoriamente en el espacio, sino que presenta patrones de agrupación o dispersión a nivel departamental.

Indice de Geary

Complementariamente, el índice de Geary es otra medida de autocorrelación espacial que se basa en la comparación de las diferencias entre los valores de la variable de interés en un área y sus vecinos. Este índice oscila entre 0 y 2, en el caso que resulte igual a 1 indicaría que no hay autocorrelación espacial, mientras que valores menores a 1 indican autocorrelación positiva y valores mayores a 1, autocorrelación negativa.

geary.test(bd1@data$salud,Vecindades, randomisation = F)

    Geary C test under normality

data:  bd1@data$salud 
weights: Vecindades   

Geary C statistic standard deviate = 2.1225, p-value = 0.0169
alternative hypothesis: Expectation greater than statistic
sample estimates:
Geary C statistic       Expectation          Variance 
       0.74076404        1.00000000        0.01491696 
#geary.test(bd1@data$salud,W)

Consistentemente, con el índice de Moran, el índice de Geary también señala que la satisfacción con el estado de salud presenta patrones de autocorrelación espacial a nivel departamental.

Estacionaridad espacial: Semivariograma

Una forma para evaluar la posible presencia de estacionariedad espacial refiere al semivariograma, en donde estudiando si se alcanza una meseta estable podría arguentarse la presencia de estacionaridad (la varianza de la variable es constante en todo el espacio).

Como se observa a continuación, esta meseta parece lograrse en algunas distancias, sin embargo no parece ser estable, con lo que se argumenta que el índice de Geary puede ser el más relevante en este caso.

plot(gstat::variogram(bd1@data$salud~1, centroids))

Local

A nivel local se recurre a los índices LISA y adicionalmente se explora el índice de Getis Ord (otro que encontré en la literatura), que permiten identificar patrones de autocorrelación espacial en segmentos específicos de la variable de satisfacción en salud.

LISA

El local indicators of spatial association - LISA de Moran permite evidenciar la presencia de agrupaciones de valores similares o disímiles en el espacio, lo que podría sugerir la presencia de factores comunes que explican este fenómeno. Un caso tiene que ver con la región en donde se agrupan los departamentos con altos niveles de satisfacción en salud (High-High), en este grupo se encuentran departamentos como Amazonas, Caquetá, Magdalena, Cesar, Santander, Quindío y Tolima.

El segundo conjunto de departamentos tiene que ver con aquellos con bajos niveles de satisfacción en salud y que se encuentran rodeados de zonas con bajos niveles (Low-Low), en donde se encuentran departamentos como Nariño, Bolivar, Norte de Santander, y gran parte de los llanos orientales (exceptuando a Arauca).

El tercer agrupamiento está dado por aquellos departamentos que si bien tienen bajos niveles del ínidice se encuentran rodeados por departamentos con altos niveles (Low-High), como es el caso de Chocó, Cauca, Arauca, La Guajira, Sucre, Boyacá, Cundinamarca, Bogotá, Huila y Guaviare.

Finalmente, el grupo de departamento con altos niveles rodeados por vecinos con bajos niveles (High-Low) está conformado por departamentos como Antioquia, Caldas, Risaralda, Putumayo, Atlántico, Guainía y Vaupés, tal como se ilustra en el siguiente mapa.

#
#M_dist <- as.matrix(dist(coordinates(bd1)))# #distancias euclidianas
W2 <-  ifelse(Matriz_Distancias==0,0,1/Matriz_Distancias)#
LISAmoran_salud <- localmoran(bd1@data$salud, mat2listw(W2)); LISAmoran_salud
              Ii           E.Ii         Var.Ii        Z.Ii Pr(z != E(Ii))
1  -0.0071593527 -0.00481990858 0.000259970253 -0.14509446     0.88463629
2  -0.0172801036 -0.05954685818 0.059732999228  0.17293852     0.86269975
3  -0.0086999185 -0.00049349538 0.000023906741 -1.67839322     0.09327036
4   0.0008003708 -0.00004107554 0.000024213668  0.17100001     0.86422375
5  -0.0025106639 -0.00036058344 0.000049572554 -0.30537541     0.76008025
6  -0.3475981364 -0.08163243093 0.139577055894 -0.71189940     0.47652708
7   0.0023398791 -0.00046668082 0.000373801633  0.14516226     0.88458276
8  -0.1704973570 -0.13336537732 0.098543398198 -0.11828627     0.90584084
9   0.0459646236 -0.01485743899 0.002423165834  1.23557632     0.21661609
10  0.0484659281 -0.01112400579 0.002338140050  1.23236014     0.21781458
11 -0.1451329678 -0.00550577179 0.037855580909 -0.71763739     0.47298090
12 -0.9074334941 -0.22066842632 0.362215387732 -1.14110274     0.25382717
13 -0.1305101963 -0.00741086671 0.044924553741 -0.58078287     0.56138680
14 -0.0094607469 -0.00055036751 0.000591293084 -0.36643318     0.71404186
15  0.0697980392 -0.01742616551 0.003286221058  1.52155842     0.12811976
16  0.0040217804 -0.00006605196 0.000002900896  2.40008689     0.01639118
17  0.0144655162 -0.01368397650 0.000413040301  1.38507840     0.16602849
18  0.0231605942 -0.01214514336 0.006774697372  0.42894374     0.66796416
19  0.0424799244 -0.00363221563 0.001953273762  1.04335889     0.29678211
20 -0.3176896629 -0.12985785915 0.565050691677 -0.24987651     0.80268285
21  0.1114462588 -0.03036852699 0.025785702962  0.88314502     0.37715792
22 -0.0015635047 -0.00074305388 0.000882005895 -0.02762592     0.97796050
23  0.0173032274 -0.00050480562 0.000352078521  0.94906550     0.34258730
24 -0.0659840101 -0.00278566063 0.000773028781 -2.27304432     0.02302351
25 -0.0043168611 -0.00196611013 0.001243066928 -0.06667444     0.94684088
26  0.0002425588 -0.00027111641 0.000165591246  0.03991810     0.96815842
27 -0.0743374174 -0.00764588385 0.012669198871 -0.59251060     0.55350872
28  0.1482908492 -0.03003510686 0.026359521902  1.09836275     0.27204612
29 -0.0076834982 -0.00016716575 0.000240000644 -0.48517652     0.62755114
30 -0.0453749008 -0.00796258329 0.012716377258 -0.33176679     0.74006536
31 -0.0031861752 -0.00031999173 0.000003772201 -1.47572889     0.14001669
32  0.0239003634 -0.00376432696 0.000186863319  2.02378226     0.04299256
attr(,"call")
localmoran(x = bd1@data$salud, listw = mat2listw(W2))
attr(,"class")
[1] "localmoran" "matrix"     "array"     
attr(,"quadr")
        mean    median     pysal
1   High-Low  High-Low  High-Low
2  High-High High-High  High-Low
3    Low-Low   Low-Low  Low-High
4    Low-Low  High-Low   Low-Low
5    Low-Low   Low-Low  Low-High
6  High-High High-High  High-Low
7  High-High High-High High-High
8   Low-High  Low-High  Low-High
9   High-Low  High-Low High-High
10  High-Low  High-Low High-High
11  Low-High  Low-High  Low-High
12  Low-High  Low-High  Low-High
13  Low-High  Low-High  Low-High
14  Low-High  Low-High  Low-High
15  High-Low  High-Low High-High
16   Low-Low   Low-Low   Low-Low
17   Low-Low   Low-Low   Low-Low
18  Low-High   Low-Low   Low-Low
19  High-Low  High-Low High-High
20 High-High High-High  High-Low
21 High-High High-High High-High
22  Low-High  Low-High  Low-High
23 High-High High-High High-High
24   Low-Low   Low-Low  Low-High
25   Low-Low   Low-Low  Low-High
26   Low-Low   Low-Low   Low-Low
27 High-High High-High  High-Low
28 High-High High-High High-High
29 High-High High-High  High-Low
30  Low-High  Low-High  Low-High
31  High-Low  High-Low  High-Low
32   Low-Low   Low-Low   Low-Low
bd1@data$LISAmoran_salud <- attr(LISAmoran_salud, "quadr")[, "pysal"] #pysal es como una moda
spplot(bd1, "LISAmoran_salud", main="LISA_Moran")

Vale la pena notar también que al 5% de significancia, a nivel local la mayoría de los departamentos no presentan patrones de autocorrelación espacial en la satisfacción con el estado de salud. Departamentos como Meta (posición 16 en la bd), Valle del Cauca (posición 24) y Vichada (posición 32), se destacan por ser los únicos que presentan patrones de autocorrelación espacial estadísticamente significativa en la satisfacción con el estado de salud.

Getis Ord

Similara a las otras pruebas esta prueba tiene como hipótesis nula que no hay agrupamiento espacial significativo de valores altos o bajos y que por lo tanto, los valores observados están distribuidos aleatoriamente en el espacio. Este índice que no requiere la presunción de estacionariedad, se usa comúnmente para detectar concentraciones de valores altos o bajos en ciertas áreas del espacio.

A continuación se presenta esta detección,en donde además encuentra un departamento más con autocorrelación espacial, Bolivar (pos 4) en este caso.

LISA_GetisO_salud <- localG(bd1@data$salud,Vecindades, zero.policy = TRUE);LISA_GetisO_salud
 [1]  1.12371956  0.86542098 -0.51366664  2.70417109  0.77133962  1.30891668
 [7] -0.43732040 -1.58324816  0.73732892  0.73363289  0.02559742  1.39088965
[13] -1.14473345  1.65257029  1.26970996 -1.27226752 -1.36193480  1.12061027
[19]  0.73300601  0.39446647  0.88538347  0.56883868  0.07107257 -0.91444805
[25] -1.07483268 -1.16789396 -1.89587355  0.60448584 -0.90116626 -0.57551835
[31]  0.38177558 -0.58123903
attr(,"internals")
              Gi      E(Gi)           V(Gi)       Z(Gi) Pr(z != E(Gi))
 [1,] 0.03279575 0.03225806 0.0000002289511  1.12371956    0.261132016
 [2,] 0.03311344 0.03225806 0.0000009769138  0.86542098    0.386807769
 [3,] 0.03184287 0.03225806 0.0000006533426 -0.51366664    0.607485076
 [4,] 0.03358687 0.03225806 0.0000002414643  2.70417109    0.006847502
 [5,] 0.03260494 0.03225806 0.0000002022372  0.77133962    0.440505654
 [6,] 0.03303252 0.03225806 0.0000003500845  1.30891668    0.190562577
 [7,] 0.03204316 0.03225806 0.0000002414865 -0.43732040    0.661879001
 [8,] 0.03145246 0.03225806 0.0000002589084 -1.58324816    0.113364914
 [9,] 0.03269476 0.03225806 0.0000003507845  0.73732892    0.460922351
[10,] 0.03284667 0.03225806 0.0000006437145  0.73363289    0.463172510
[11,] 0.03227062 0.03225806 0.0000002406193  0.02559742    0.979578443
[12,] 0.03330812 0.03225806 0.0000005699552  1.39088965    0.164258892
[13,] 0.03163942 0.03225806 0.0000002920593 -1.14473345    0.252319593
[14,] 0.03392759 0.03225806 0.0000010206276  1.65257029    0.098418348
[15,] 0.03311601 0.03225806 0.0000004565722  1.26970996    0.204187962
[16,] 0.03168602 0.03225806 0.0000002021610 -1.27226752    0.203278083
[17,] 0.03108320 0.03225806 0.0000007441559 -1.36193480    0.173218461
[18,] 0.03316056 0.03225806 0.0000006486056  1.12061027    0.262453791
[19,] 0.03285148 0.03225806 0.0000006554035  0.73300601    0.463554762
[20,] 0.03246396 0.03225806 0.0000002724354  0.39446647    0.693236678
[21,] 0.03278711 0.03225806 0.0000003570450  0.88538347    0.375949844
[22,] 0.03283270 0.03225806 0.0000010204739  0.56883868    0.569465619
[23,] 0.03229299 0.03225806 0.0000002414710  0.07107257    0.943340003
[24,] 0.03170675 0.03225806 0.0000003634842 -0.91444805    0.360481461
[25,] 0.03138799 0.03225806 0.0000006552860 -1.07483268    0.282449647
[26,] 0.03155149 0.03225806 0.0000003660263 -1.16789396    0.242849540
[27,] 0.03095356 0.03225806 0.0000004734487 -1.89587355    0.057976768
[28,] 0.03274184 0.03225806 0.0000006404996  0.60448584    0.545520682
[29,] 0.03152737 0.03225806 0.0000006574566 -0.90116626    0.367499928
[30,] 0.03191095 0.03225806 0.0000003637656 -0.57551835    0.564940787
[31,] 0.03252076 0.03225806 0.0000004734534  0.38177558    0.702627832
[32,] 0.03192051 0.03225806 0.0000003372662 -0.58123903    0.561079365
attr(,"cluster")
 [1] High High Low  Low  Low  High High Low  High High Low  Low  Low  Low  High
[16] Low  Low  Low  High High High Low  High Low  Low  Low  High High High Low 
[31] High Low 
Levels: Low High
attr(,"gstari")
[1] FALSE
attr(,"call")
localG(x = bd1@data$salud, listw = Vecindades, zero.policy = TRUE)
attr(,"class")
[1] "localG"
bd1@data$LISA_GetisO_salud <- attr(LISA_GetisO_salud, "cluster")

spplot(bd1, "LISA_GetisO_salud", main="LISA_GetisO")

2. Identificación de determinantes de la satisfacción en salud: modelos de regresión

Una vez identificada la presencia de autocorrelación espacial en la satisfacción con el estado de salud, se procedió a modelar las relaciones entre esta variable y sus determinantes, considerando la potencial presencia de autocorrelación espacial. Empezando por un modelo de referencia poco adecuado para modelar dicho fenómeno, como lo es el modelo de regresión lineal y el modelo de regresión beta

2a. Modelo de regresión lineal

Con este modelo se busca identificar la relación entre la satisfacción con el estado de salud y sus determinantes, ignorando dos hechos: 1) la presencia de autocorrelación espacial en los residuales y 2) la naturaleza de la variable dependiente, que se encuentra acotada entre 0 y 1. Una de sus grandes bondades es que nos permitirá revisar la presencia de multicolinealidad y establecer un nivel “basal” en términos de AIC.

El resultado de este modelo indica por una parte que potencialmente la variable de inversión en salud pública per cápita puede tener problemas de multicolinealidad (VIF 4.0), lo que podría llevar a conclusiones erróneas. Además que dos variables pueden no ser significativas en el modelo: la expectativa de vida al nacer y el porcentaje de personas que usa los servicios de salud.

formula4 <- c("salud~inv_sal_pub_percap+ths_dens_med+expect_vida+prop_adulto_mayores_60+qo_l+seguridad+pct_personas_consultan")
modelo0 <- lm(formula4, data = bd1@data)
jtools::summ(modelo0, digits=3, confint=F, vif=T, pvals=T) # exp=T,
Observations 32
Dependent variable salud
Type OLS linear regression
F(7,24) 41.091
0.923
Adj. R² 0.901
Est. S.E. t val. p VIF
(Intercept) 0.085 0.077 1.095 0.285 NA
inv_sal_pub_percap -0.000 0.000 -3.290 0.003 4.073
ths_dens_med 0.000 0.000 3.406 0.002 1.940
expect_vida 0.000 0.001 0.089 0.930 2.512
prop_adulto_mayores_60 -0.338 0.093 -3.651 0.001 3.145
qo_l 0.679 0.075 9.038 0.000 1.983
seguridad 0.225 0.053 4.229 0.000 2.193
pct_personas_consultan 0.031 0.018 1.707 0.101 1.710
Standard errors: OLS

Complementariamente es posible revisar si con este modelo se extingue la autocorrelación espacial aplicando la prueba de Moran y la de Geary, que señalaría que así ha sucedido.

lm.morantest(modelo0, Vecindades) 

    Global Moran I for regression residuals

data:  
model: lm(formula = formula4, data = bd1@data)
weights: Vecindades

Moran I statistic standard deviate = -1.5111, p-value = 0.9346
alternative hypothesis: greater
sample estimates:
Observed Moran I      Expectation         Variance 
     -0.25326257      -0.09856353       0.01048114 
residuoslm <- residuals(modelo0)
geary.test(residuoslm, Vecindades, randomisation=F)

    Geary C test under normality

data:  residuoslm 
weights: Vecindades   

Geary C statistic standard deviate = -1.4102, p-value = 0.9208
alternative hypothesis: Expectation greater than statistic
sample estimates:
Geary C statistic       Expectation          Variance 
       1.17222889        1.00000000        0.01491696 

2b.Regresión Beta

Una aproximación que tiene en cuenta la naturaleza de la variable dependiente refiere a la regresión beta, en este ejercicio se ha modelado con la función de enlace logit y sus resultados coinciden con la polaridad y significancia de los resultados de la regresión lineal.

library(betareg)
modelo1 <- betareg::betareg(formula4, data = bd1@data, link = "logit")
summary(modelo1)

Call:
betareg::betareg(formula = formula4, data = bd1@data, link = "logit")

Quantile residuals:
    Min      1Q  Median      3Q     Max 
-1.9155 -0.5596 -0.1229  0.5316  2.6561 

Coefficients (mean model with logit link):
                          Estimate  Std. Error z value             Pr(>|z|)    
(Intercept)            -2.80304089  0.37058207  -7.564   0.0000000000000391 ***
inv_sal_pub_percap     -0.00033614  0.00007533  -4.462   0.0000081078682041 ***
ths_dens_med            0.00231803  0.00051586   4.494   0.0000070056787913 ***
expect_vida            -0.00020873  0.00483612  -0.043                0.966    
prop_adulto_mayores_60 -1.94421396  0.45582162  -4.265   0.0000199637674901 ***
qo_l                    3.98179021  0.36203892  10.998 < 0.0000000000000002 ***
seguridad               1.42420474  0.26288505   5.418   0.0000000604060640 ***
pct_personas_consultan  0.13300786  0.08695926   1.530                0.126    

Phi coefficients (precision model with identity link):
      Estimate Std. Error z value  Pr(>|z|)    
(phi)   2021.5      505.3   4.001 0.0000632 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Type of estimator: ML (maximum likelihood)
Log-likelihood: 105.3 on 9 Df
Pseudo R-squared: 0.9272
Number of iterations: 419 (BFGS) + 4 (Fisher scoring) 
exp(coef(modelo1))
           (Intercept)     inv_sal_pub_percap           ths_dens_med 
            0.06062543             0.99966392             1.00232072 
           expect_vida prop_adulto_mayores_60                   qo_l 
            0.99979129             0.14309966            53.61292662 
             seguridad pct_personas_consultan                  (phi) 
            4.15455259             1.14225898                    Inf 

Según las pruebas de autocorrelación espacial de Moran y la de Geary, esta regresión también podría ser suficiente para extinguir dicho fenómeno.

residuosBeta <- residuals(modelo1)
moran.test(residuosBeta, Vecindades, randomisation=F)

    Moran I test under normality

data:  residuosBeta  
weights: Vecindades    

Moran I statistic standard deviate = -1.2288, p-value = 0.8904
alternative hypothesis: greater
sample estimates:
Moran I statistic       Expectation          Variance 
      -0.17031998       -0.03225806        0.01262462 
geary.test(residuosBeta, Vecindades, randomisation = F)

    Geary C test under normality

data:  residuosBeta 
weights: Vecindades   

Geary C statistic standard deviate = -0.87322, p-value = 0.8087
alternative hypothesis: Expectation greater than statistic
sample estimates:
Geary C statistic       Expectation          Variance 
       1.10665037        1.00000000        0.01491696 

2c. Modelo SAR (Spatial Autoregressive Model)

Una aproximación conceptualmente más adecuada tiene que ver con un modelo de regresión espacial autorregresivo (SAR), que puede ser útil en contextos en donde la variable dependiente está influenciada directamente por la misma variable en áreas vecinas.

Su especificación es la siguiente:

Z(s) = X(s) \beta + \rho W X(s) + \nu

Como resultado, se puede evidenciar que la expectativa de vida al nacer es la única que no resulta ser estadísticamente significativa, a diferencia de las demás variables analizadas.

Puntualmente, frente a la polaridad de las variables estadísticamente significativas se observa que, consistentemente con lo observado anteriormente, la inversión en salud pública per cápita y la proporción de adultos mayores presentan una relación negativa con la satisfacción en salud, mientras que una mayor densidad de médicos por 10 mil habitantes, la percepción de seguridad, la percepción de calidad de vida subjetiva y el porcentaje de personas que usan los servicios de salud presentan una relación positiva con la satisfacción en salud.

Se destaca que por un aumento de 1 unidad del índice de calidad de vida subjetiva, el índice de satisfacción en salud promedio incrementa 0.62, ceteris paribus.

modelo2 <- spautolm(formula4 , data = bd1@data,listw=Vecindades,#W
family = "SAR")
summary(modelo2)

Call: spautolm(formula = formula4, data = bd1@data, listw = Vecindades, 
    family = "SAR")

Residuals:
       Min         1Q     Median         3Q        Max 
-0.0120309 -0.0049791 -0.0025434  0.0032739  0.0196041 

Coefficients: 
                            Estimate    Std. Error z value
(Intercept)             0.1725230006  0.0561769614  3.0711
inv_sal_pub_percap     -0.0000566465  0.0000097493 -5.8103
ths_dens_med            0.0003888036  0.0000780854  4.9792
expect_vida            -0.0007821288  0.0006817171 -1.1473
prop_adulto_mayores_60 -0.3193015485  0.0442070703 -7.2229
qo_l                    0.6230063361  0.0453060823 13.7511
seguridad               0.2443466124  0.0272408654  8.9699
pct_personas_consultan  0.0419317071  0.0103569186  4.0487
                                    Pr(>|z|)
(Intercept)                         0.002133
inv_sal_pub_percap        0.0000000062360335
ths_dens_med              0.0000006384547160
expect_vida                         0.251261
prop_adulto_mayores_60    0.0000000000005091
qo_l                   < 0.00000000000000022
seguridad              < 0.00000000000000022
pct_personas_consultan    0.0000515103287622

Lambda: -1.0567 LR test value: 9.6268 p-value: 0.0019176 
Numerical Hessian standard error of lambda: 0.28027 

Log likelihood: 107.6794 
ML residual variance (sigma squared): 0.000055211, (sigma: 0.0074304)
Number of observations: 32 
Number of parameters estimated: 10 
AIC: -195.36

2d. Modelo CAR (Conditional Autoregressive Model)

De su parte, el modelo de regresión espacial condicional autorregresivo (CAR) permite modelar la autocorrelación espacial considerando la influencia local que pueden tener los vecinos más cercanos de cada departamento (aunque resultados previos han indicado que la autocorrelación espacial local es prominente en pocos departamentos).

Este modelo cuenta con la siguiente especificación:

E(Z(s_i) | Z(s_{-i})) = X(s_i)^T \beta + \sum_{i \neq j} (Z(s_i) - Z(s_j)^T \beta) \phi_{ij} Como resultado se observa que análogamente al modelo SAR la expectativa de vida al nacer no resulta ser estadísticamente significativa, además del intercepto. Además las polaridades de las variables estadísticamente significativas son consistentes con lo resultante en el modelo SAR.

Las variaciones vienen dadas por la magnitud de los coeficientes, que en este caso tienden a ser menores que en el modelo SAR, excepto para el coeficiente de la variables de calidad de vida. En donde por un aumento de 1 unidad del índice de calidad de vida subjetiva, el índice de satisfacción en salud promedio incrementa 0.68, ceteris paribus.

modelo3 <- spautolm(formula4, data = bd1@data,listw=Vecindades,
family = "CAR")
summary(modelo3)

Call: spautolm(formula = formula4, data = bd1@data, listw = Vecindades, 
    family = "CAR")

Residuals:
       Min         1Q     Median         3Q        Max 
-0.0185731 -0.0054941 -0.0016325  0.0047247  0.0274768 

Coefficients: 
                           Estimate   Std. Error z value              Pr(>|z|)
(Intercept)             0.086505268  0.067042498  1.2903             0.1969448
inv_sal_pub_percap     -0.000051111  0.000013490 -3.7889             0.0001513
ths_dens_med            0.000369168  0.000093653  3.9419           0.000080852
expect_vida             0.000089702  0.000863327  0.1039             0.9172462
prop_adulto_mayores_60 -0.337614705  0.080101724 -4.2148           0.000024997
qo_l                    0.678371576  0.065061484 10.4266 < 0.00000000000000022
seguridad               0.223437145  0.046110114  4.8457           0.000001261
pct_personas_consultan  0.030776967  0.015652033  1.9663             0.0492612

Lambda: -0.0014034 LR test value: 0.0056861 p-value: 0.93989 
Numerical Hessian standard error of lambda: NaN 

Log likelihood: 102.8689 
ML residual variance (sigma squared): 0.000094474, (sigma: 0.0097198)
Number of observations: 32 
Number of parameters estimated: 10 
AIC: -185.74

2e. Modelo SEM (Spatial Error Model)

En el modelo SEM la correlación espacial esta asociada al error y podría argumentarse que entre otras problemáticas podría estar asociado a un problema de especificación del modelo o de rango completo, esto es factores omitidos que están espacialmente correlacionados y afectan la variable dependiente.

Su especificación es la siguiente:

Z(s) = X(s) \beta + \epsilon Siendo el error

\epsilon(s) = \rho W \epsilon(s) + \nu

El resultado de este modelo converge con los resultados del modelo CAR, en donde el intercepto y la expectativa de vida al nacer no resultan ser estadísticamente significativos para explicar el índice de satisfacción con el estado de salud. Adicionalmente, las polaridades se mantienen consistentes con los modelos anteriores y los valores asociados a los coeficientes son virtualmente los mismos.

modelo4 <- errorsarlm(formula4, data = bd1@data,listw=W, method = "Matrix")
summary(modelo4)

Call:
errorsarlm(formula = formula4, data = bd1@data, listw = W, method = "Matrix")

Residuals:
       Min         1Q     Median         3Q        Max 
-0.0187171 -0.0054541 -0.0017543  0.0048240  0.0275807 

Type: error 
Coefficients: (asymptotic standard errors) 
                           Estimate   Std. Error z value              Pr(>|z|)
(Intercept)             0.086032469  0.066988812  1.2843             0.1990436
inv_sal_pub_percap     -0.000051392  0.000013453 -3.8201             0.0001334
ths_dens_med            0.000370475  0.000093489  3.9628           0.000074083
expect_vida             0.000071780  0.000862556  0.0832             0.9336782
prop_adulto_mayores_60 -0.336930236  0.080038503 -4.2096           0.000025582
qo_l                    0.679180463  0.064920536 10.4617 < 0.00000000000000022
seguridad               0.224880765  0.045981937  4.8906           0.000001005
pct_personas_consultan  0.030688754  0.015602291  1.9669             0.0491903

Lambda: 0.035568, LR test value: 0.0022006, p-value: 0.96258
Asymptotic standard error: 0.50584
    z-value: 0.070313, p-value: 0.94394
Wald statistic: 0.0049439, p-value: 0.94394

Log likelihood: 102.8671 for error model
ML residual variance (sigma squared): 0.000094478, (sigma: 0.00972)
Number of observations: 32 
Number of parameters estimated: 10 
AIC: -185.73, (AIC for lm: -187.73)

Comparación entre modelos

Ahora bien, una estrategia para comparar los modelos es a través del criterio de información de Akaike (AIC), que permite evaluar la bondad de ajuste de los modelos y penaliza aquellos que tienen más parámetros (considerando que en nuestro caso todos los modelos se explican por el mismo conjunto de variables). Específicamente, el modelo que presenta un menor AIC es el modelo SEM, por lo que podría considerarse como el modelo más adecuado para modelar la satisfacción con el estado de salud.

data.frame(Modelo=c("Lineal", "Beta", "SAR", "CAR", "SEM"),
           AIC=c(AIC(modelo0), AIC(modelo1), AIC(modelo2), AIC(modelo3), AIC(modelo4))
           )
  Modelo       AIC
1 Lineal -187.7321
2   Beta -192.6676
3    SAR -195.3588
4    CAR -185.7377
5    SEM -185.7343

En este sentido se valida que la autocorrelación espacial en los residuales se ha extinguido, como se evidencia en las pruebas de Moran y Geary.

residuosSEM <- residuals(modelo4)
moran.test(residuosSEM, Vecindades, randomisation=F)

    Moran I test under normality

data:  residuosSEM  
weights: Vecindades    

Moran I statistic standard deviate = -1.9826, p-value = 0.9763
alternative hypothesis: greater
sample estimates:
Moran I statistic       Expectation          Variance 
      -0.25501687       -0.03225806        0.01262462 
geary.test(residuosSEM, Vecindades, randomisation=F)

    Geary C test under normality

data:  residuosSEM 
weights: Vecindades   

Geary C statistic standard deviate = -1.4211, p-value = 0.9224
alternative hypothesis: Expectation greater than statistic
sample estimates:
Geary C statistic       Expectation          Variance 
       1.17357067        1.00000000        0.01491696 

2f. Relaciones locales: Modelo de regresión geográficamente ponderada

Finalmente, se podría argumentar que la relación entre la variable dependiente y las explicativas varía en el espacio (heterogeneidad espacial). Inicialmente se revisa el test de Breuch-Pagan para revisar si hay heterocedasticidad en el modelo SEM, lo que no se evidencia en este caso a un nivel de significancia del 5%.

spatialreg::bptest.Sarlm(modelo4)

    studentized Breusch-Pagan test

data:  
BP = 13.026, df = 7, p-value = 0.07149

No obstante, de considerarse un nivel de significancia del 10% si lo serían. Por lo podría ser adecuado considerar un modelo de regresión geográficamente ponderada (GWR), que permite modelar la relación entre la variable dependiente y las explicativas de forma local.

La especificación de este modelo es:

Z(s) = X(s) \beta + \epsilon

En este caso el error:

\epsilon(s) \sim N(0, \sigma^2 \Sigma(s))

Como resultado se puede apreciar que las polaridades de los coeficientes globales son consistentes con el modelo SEM. A nivel local revisando el mínimo y máximo de los mismos, en ninguno de los casos se observa que la misma se modifique, además que la magnitud de los mismos oscila alrededor de los observados en el modelo SEM.

library(spgwr)
ancho_banda <- gwr.sel(formula4, gweight = gwr.Gauss, data=bd1)
Bandwidth: 671.1994 CV score: 0.006199377 
Bandwidth: 1084.939 CV score: 0.005790083 
Bandwidth: 1340.644 CV score: 0.005723943 
Bandwidth: 1331.296 CV score: 0.005725603 
Bandwidth: 1498.679 CV score: 0.005701068 
Bandwidth: 1596.35 CV score: 0.005690634 
Bandwidth: 1656.713 CV score: 0.005685202 
Bandwidth: 1694.02 CV score: 0.005682168 
Bandwidth: 1717.077 CV score: 0.005680402 
Bandwidth: 1731.327 CV score: 0.00567935 
Bandwidth: 1740.134 CV score: 0.005678715 
Bandwidth: 1745.577 CV score: 0.005678327 
Bandwidth: 1748.941 CV score: 0.00567809 
Bandwidth: 1751.02 CV score: 0.005677944 
Bandwidth: 1752.305 CV score: 0.005677854 
Bandwidth: 1753.099 CV score: 0.005677798 
Bandwidth: 1753.59 CV score: 0.005677764 
Bandwidth: 1753.893 CV score: 0.005677743 
Bandwidth: 1754.081 CV score: 0.00567773 
Bandwidth: 1754.197 CV score: 0.005677722 
Bandwidth: 1754.268 CV score: 0.005677717 
Bandwidth: 1754.313 CV score: 0.005677714 
Bandwidth: 1754.34 CV score: 0.005677712 
Bandwidth: 1754.357 CV score: 0.005677711 
Bandwidth: 1754.367 CV score: 0.00567771 
Bandwidth: 1754.374 CV score: 0.00567771 
Bandwidth: 1754.378 CV score: 0.005677709 
Bandwidth: 1754.38 CV score: 0.005677709 
Bandwidth: 1754.382 CV score: 0.005677709 
Bandwidth: 1754.383 CV score: 0.005677709 
Bandwidth: 1754.383 CV score: 0.005677709 
Bandwidth: 1754.384 CV score: 0.005677709 
Bandwidth: 1754.384 CV score: 0.005677709 
Bandwidth: 1754.384 CV score: 0.005677709 
Bandwidth: 1754.384 CV score: 0.005677709 
Bandwidth: 1754.384 CV score: 0.005677709 
Bandwidth: 1754.384 CV score: 0.005677709 
modelo5 <- ggwr(formula4, data=bd1, gweight = gwr.Gauss, bandwidth = ancho_banda)
modelo5
Call:
ggwr(formula = formula4, data = bd1, bandwidth = ancho_banda, 
    gweight = gwr.Gauss)
Kernel function: gwr.Gauss 
Fixed bandwidth: 1754.384 
Summary of GWR coefficient estimates at data points:
                               Min.      1st Qu.       Median      3rd Qu.
X.Intercept.            0.083063148  0.084210493  0.084906316  0.085388277
inv_sal_pub_percap     -0.000051938 -0.000051651 -0.000051424 -0.000051024
ths_dens_med            0.000361402  0.000366690  0.000368890  0.000371393
expect_vida             0.000040075  0.000064336  0.000077681  0.000093084
prop_adulto_mayores_60 -0.344376352 -0.339578546 -0.336696729 -0.333935983
qo_l                    0.672853713  0.677459309  0.679036552  0.680630271
seguridad               0.224077234  0.225678745  0.226414590  0.227099461
pct_personas_consultan  0.028783628  0.029713915  0.030276109  0.031063415
                               Max.  Global
X.Intercept.            0.086998209  0.0847
inv_sal_pub_percap     -0.000050282 -0.0001
ths_dens_med            0.000375323  0.0004
expect_vida             0.000127976  0.0001
prop_adulto_mayores_60 -0.327657259 -0.3378
qo_l                    0.683417508  0.6791
seguridad               0.228301195  0.2252
pct_personas_consultan  0.032300149  0.0309

Un par de variables interesantes a revistar en este modelo son la inversión en salud pública per cápita y la expectativa de vida al nacer, la primera por su polaridad negariva y la segunda por la no significancia estadística que esta presentó.

Frente a la inversión se observa un patrón marcado que arranca por el sur-oriente del país hacia el nor-occidente, en donde más se reduce la satisfacción con el estado de salud a medida que aumenta la inversión en salud pública per cápita.

De su parte, la expectativa de vida al nacer, presenta un patrón mucho más horizontal inverso en donde en el oriente del país un aumento la expectativa de vida genera mayores réditos en la satisfacción con el estado de salud, mientras que en el occidente esta asociación es más débil.

spplot(modelo5$SDF, "inv_sal_pub_percap", cuts=4, main="Relacion espacial de la Inversion en salud publica per capita")

spplot(modelo5$SDF, "expect_vida", cuts=4, main="Relacion espacial de la expectativa de vida al nacer")

De considerarse, el ajuste de este modelo según el AIC no es mejor al del modelo SEM, por lo que es recomendable considerar el modelo SEM como el más adecuado para modelar la satisfacción con el estado de salud.

modelo5$lm$aic
[1] -187.7321

Conclusiones

  1. La satisfacción con el estado de salud en Colombia presenta patrones de autocorrelación espacial a nivel departamental, lo que sugiere que esta variable no se distribuye aleatoriamente en el espacio, sino que presenta patrones de agrupación o dispersión.

  2. La estrategia más adecuada para modelar la satisfacción con el estado de salud en Colombia es el modelo de regresión SEM, que considera la autocorrelación espacial en los errores y que permite identificar las relaciones entre la satisfacción con el estado de salud y sus determinantes, ante una posible especificación inadecuada del modelo. Este modelo extingue satisfactoriamente el fenómeno de autocorrelación espacial en los residuales.

  3. La inversión en salud pública per cápita y la proporción de adultos mayores presentan una relación negativa con la satisfacción en salud, mientras que una mayor densidad de médicos por 10 mil habitantes, la percepción de seguridad, la percepción de calidad de vida subjetiva y el porcentaje de personas que usan los servicios de salud presentan una relación positiva con la satisfacción en salud.

  4. Un determinante de esta satisfacción que propone la literatura pero que empíricamente no se ha trasladado en el caso colombiano es la expectativa de vida al nacer, esto podría indicar diferencias en latinoamérica frente a otros contextos.

Limitaciones

Este ejercicio no está exento de limitaciones, entre las que se destaca la limitada comparabilidad internacional, el índice deriva de una única pregunta realizada en la ECV, que apela a una noción netamente subjetiva de satisfacción y que al derivar de una escala tipo Likert ordinal no garantiza necesariamente que sea de naturaleza intervalar, aunque esto puede ser discutible, considerando que ejercicios como las escalas análogas visuales siguen este mismo mecanismo (Voutilainen et al., 2016).

Referencias

Al-Abri, R., & Al-Balushi, A. (2014). Patient satisfaction survey as a tool towards quality improvement. Oman Medical Journal, 29(1), 3-7. https://doi.org/10.5001/omj.2014.02

Batbaatar, E., Dorjdagva, J., Luvsannyam, A., Savino, M. M., & Amenta, P. (2017). Determinants of patient satisfaction: A systematic review. Perspectives in Public Health, 137(2), 89-101. https://doi.org/10.1177/1757913916634136

Cleary, P. D., & McNeil, B. J. (1988). Patient satisfaction as an indicator of quality care. Inquiry: A Journal of Medical Care Organization, Provision and Financing, 25(1), 25-36.

Cribari-Neto, F., & Zeileis, A. (2010). Beta Regression in R. Journal of Statistical Software, 34(2). https://doi.org/10.18637/jss.v034.i02

DANE. (2024). Colombia—Encuesta Nacional de Calidad de Vida—ECV 2022. https://microdatos.dane.gov.co/index.php/catalog/793

Garcia-Ubaque, J. C., & Morales-Sánchez, L. G. (2019). Calidad percibida en el servicio del sistema público de salud de Bogotá. Revista de Salud Pública, 21(1), 128-134. https://doi.org/10.15446/rsap.v21n1.83138

He, Z., Cheng, Z., Bishwajit, G., & Zou, D. (2018). Wealth Inequality as a Predictor of Subjective Health, Happiness and Life Satisfaction among Nepalese Women. International Journal of Environmental Research and Public Health, 15(12), 2836. https://doi.org/10.3390/ijerph15122836

Kang, L., Zhang, T., Xian, B., Li, C., & Khan, M. M. (2023). Public satisfaction with health system after healthcare reform in China. Health Research Policy and Systems, 21(1), 128. https://doi.org/10.1186/s12961-023-01067-6

MSPS. (2024). Resultados de la encuesta para evaluar la satisfacción de los usuarios del sistema de salud colombiano. MSPS. https://www.minsalud.gov.co/sites/rid/Lists/BibliotecaDigital/RIDE/DE/CA/resultados-encuesta-satisfaccion-usuarios-sistema-salud-colombiano-enfasis-atencion-primaria.pdf

Voutilainen, A., Pitkäaho, T., Kvist, T., & Vehviläinen‐Julkunen, K. (2016). How to ask about patient satisfaction? The visual analogue scale is less vulnerable to confounding factors and ceiling effect than a symmetric Likert scale. Journal of Advanced Nursing, 72(4), 946-957. https://doi.org/10.1111/jan.12875

Wang, C., Liu, J., Pu, R., Li, Z., Guo, W., Feng, Z., Huang, R., Ghose, B., Ji, L., & Tang, S. (2020). Determinants of Subjective Health, Happiness, and Life Satisfaction among Young Adults (18-24 Years) in Guyana. BioMed Research International, 2020, 9063808. https://doi.org/10.1155/2020/9063808

Yu, J., Leung, M.-Y., Ma, G., & Xia, J. (2022). Older Adults’ Access to and Satisfaction With Primary Hospitals Based on Spatial and Non-spatial Analyses. Frontiers in Public Health, 10, 845648. https://doi.org/10.3389/fpubh.2022.845648