Consigna

Esta evaluación consiste en extraer una muestra por conglomerados a dos etapas, donde los conglomerados de primera etapa son los partidos y se seleccionan en la segunda etapa los efectores.

La cantidad de efectores esperada que se seleccionen es de 250.

Esperamos que estimen el promedio de prestaciones por efector y el total de prestaciones con un error de muestreo del 10% y construyan los IC del 95% .

Resolución

Primero, cargamos las librerías y el dataset

knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE, fig.align = 'center')

library(SamplingUtil)
library(tidyverse)
library(samplingbook)
library(survey)
library(devtools)
library(readxl)
library(knitr)
library(kableExtra)

BASE_CAPS <- read_excel("/cloud/project/3091022/CAPS_Provincia_de_Buenos_Aires.xlsx")

head(BASE_CAPS)
CUIE CENTRO LOCALIDAD DEPARTAMENTO PROVINCIA Historias clinicas Prestaciones
B00007 CENTRO DE SALUD RICARDO ROJAS FLORENCIO VARELA FLORENCIO VARELA BA 156 824
B00008 CENTRO DE SALUD SAN FRANCISCO FLORENCIO VARELA FLORENCIO VARELA BA 120 101
B00010 UNIDAD SANITARIA SAN RUDECINDO FLORENCIO VARELA FLORENCIO VARELA BA 30 438
B00011 HOSPITAL OFTALMOLOGICO SAN FERNANDO DE LA BUENA VISTA COMPLEJO JOSE LUIS PERICOLI SAN FERNANDO SAN FERNANDO BA 6 115
B00012 CENTRO DE SALUD ING. ALLAN FLORENCIO VARELA FLORENCIO VARELA BA 180 98
B00013 CENTRO DE SALUD LA ESMERALDA FLORENCIO VARELA FLORENCIO VARELA BA 48 256

Creamos la variable UPES de acuerdo al departamento, se numeran los clusters

partidos<-BASE_CAPS %>% group_by(DEPARTAMENTO)%>% 
  summarise(mi=n())

partidos<- partidos[order(partidos$mi), ]


kable(head(partidos), caption = "Efectores por partido")
Efectores por partido
DEPARTAMENTO mi
ARRECIFES 1
CANUELAS 1
CASTELLI 1
CORONEL SUAREZ 1
FLORENTINO AMEGHINO 1
GENERAL BELGRANO 1

Total de efectores:

M = sum(partidos[,2])

M
## [1] 1112

Asignamos un Id a cada partido, que estará ordenado según la cantidad de efectores

id <- rownames(partidos)
partidos <- cbind(id=id, partidos)

kable(head(partidos), caption = "Efectores por partido")
Efectores por partido
id DEPARTAMENTO mi
1 ARRECIFES 1
2 CANUELAS 1
3 CASTELLI 1
4 CORONEL SUAREZ 1
5 FLORENTINO AMEGHINO 1
6 GENERAL BELGRANO 1

Matcheamos los ID de partidos para asignar número de Conglomerado

BASE_CAPS <- BASE_CAPS%>% left_join(partidos, by="DEPARTAMENTO")

Contamos la cantidad de Cluster que tenemos en la base de datos y lo cargamos en una variable que vamos a necesitar en la especificación de muestreo por conglomerado

(N<-length(unique(BASE_CAPS$id)))
## [1] 123
BASE_CAPS$fpc=N

Asignación de número de ID a cada efector:

id_efector <- rownames(BASE_CAPS)
BASE_CAPS <- cbind(id_efector=id_efector, BASE_CAPS)

head(BASE_CAPS)
id_efector CUIE CENTRO LOCALIDAD DEPARTAMENTO PROVINCIA Historias clinicas Prestaciones id mi fpc
1 B00007 CENTRO DE SALUD RICARDO ROJAS FLORENCIO VARELA FLORENCIO VARELA BA 156 824 117 31 123
2 B00008 CENTRO DE SALUD SAN FRANCISCO FLORENCIO VARELA FLORENCIO VARELA BA 120 101 117 31 123
3 B00010 UNIDAD SANITARIA SAN RUDECINDO FLORENCIO VARELA FLORENCIO VARELA BA 30 438 117 31 123
4 B00011 HOSPITAL OFTALMOLOGICO SAN FERNANDO DE LA BUENA VISTA COMPLEJO JOSE LUIS PERICOLI SAN FERNANDO SAN FERNANDO BA 6 115 96 14 123
5 B00012 CENTRO DE SALUD ING. ALLAN FLORENCIO VARELA FLORENCIO VARELA BA 180 98 117 31 123
6 B00013 CENTRO DE SALUD LA ESMERALDA FLORENCIO VARELA FLORENCIO VARELA BA 48 256 117 31 123

Las UPES son los Departamentos:

  • \(N=123\)
  • \(n=40\)1

Las USES son los Efectores:

  • \(M=1112\)
  • \(m=250\)

Como varios partidos tienen solo un efector, vamos a hacer un muestreo sistématico (MS) para seleccionar clusters, de forma que nos aseguramos que no se seleccionen muchos clusters con pocos efectores, entonces el \(mi\) por clusters va a ser variable, para alcanzar los 250 que deben ser muestreados

Definimos el tamaño de la muestra ´n´ cantidad de clusters a seleccionar y hacemos una selección sistemática. La función set.seed() nos permite definir una semilla de arranque para poder reproducir la misma muestra.

n=40 

set.seed(5)
muestra_SIS<-sys.sample(N=N, n=n)

Base_muestra_SIS<-partidos[muestra_SIS,]
sum(Base_muestra_SIS[,3])
## [1] 327

Los 40 clusters seleccionados suman 327 efectores.

327/40
## [1] 8.175

Necesitaríamos alrededor de 8.175 efectores por cluster, es decir 8 o 9. Tenemos 18 clusters con 8 o menos efectores. De esos clusters vamos a tomar todos los efectores, y con los demás vamos a compensar.

Base_muestra_SIS$mi
##  [1]  1  1  1  1  1  1  1  2  2  2  2  2  3  3  3  3  3  3  4  4  4  5  7  7  7
## [26]  8  8  9 10 10 12 13 15 17 18 20 23 25 31 35

Transformamos el tipo de datos de ID a númerico

BASE_CAPS$id<-as.numeric(BASE_CAPS$id)
class(BASE_CAPS$id)
## [1] "numeric"
BASE_CAPS$id_efector<-as.numeric(BASE_CAPS$id_efector)
class(BASE_CAPS$id_efector)
## [1] "numeric"

Seleccionamos las unidades, el objeto prob asigna a cada UPS la probabilidad de selección

BASE_CAPS=BASE_CAPS[order(BASE_CAPS$id,BASE_CAPS$id_efector),]
attach(BASE_CAPS)
set.seed(5)

prob<-list(rep(40/123,123)) 
cl2stg=mstage(BASE_CAPS, stage=list("cluster","cluster"), varnames=list("id","id_efector"),
              size=list(40,c(1, 1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  3,
                             3,  3,  3,  3,  3,  4,  4,  4, 5,7,  7,  7, 8, 8,
                             9, 10, 10, 12, 13, 14, 14, 14,13 , 13, 13, 13, 13)),
              method=list("systematic","srswor"), pik=prob)

Listado de clusters seleccionados

unique(cl2stg[[1]]$id)
##  [1]   1   4   7  10  13  16  20  23  26  29  32  35  38  41  44  47  50  53  56
## [20]  60  63  66  69  72  75  78  81  84  87  90  93  96 100 103 106 109 112 115
## [39] 118 121

Listado de efectores seleccionados

unique(cl2stg[[2]]$id_efector)
##   [1]  636  588  792  607  614  816  839  244  637  307  624  793 1081  800  979
##  [16]  622  623  200  746  985  600  601  602  232  581  582  283  284  833  458
##  [31]  772  773  656  657  658  285  753  754  755    9  638  815 1022  641  643
##  [46]  644  993  598  599 1000 1001 1002  227  802  803  804  805  806  900  248
##  [61]  249  807  808  809  810 1006  500  501  840  841  842 1052 1093  627  628
##  [76]  629  630  631  632  990 1110  245  246  544  603  904  951  952  953  488
##  [91]  489  490  491  492  493  685  941 1013  218  219  220  221  222  223  224
## [106]  225  823  824  418  419  812  813  814  980  981  982 1048 1089  522  523
## [121]  524  525  526  527  528  716  717  718  719  720    4  478  479  480  481
## [136]  482  483  484  485  486  487  683  684  270  271  272  273  274  275  276
## [151]  277  278  279  280  288  984 1065  367  369  370  371  372  373  374  375
## [166]  376  857  858  859  860 1031  189  190  194  196  197  198  199  847  848
## [181]  849  850  869  870  983   20   27   70   77   87  158  159  494  495  958
## [196]  959 1075 1076  112  125  126  128  130  131  172  455  680  894  916  942
## [211] 1074   66   74  167  168  287  756  758  759 1028 1029 1032 1033 1034   52
## [226]   82  106  109  160  217  543  852  853  854  873  875  940   25   28   29
## [241]   30   38   39  423  677  678  908  909  927 1066

Unimos todas las variables de la base de datos con la muestra seleccionada

basecl2stg=getdata(BASE_CAPS,cl2stg)[[2]]

head(basecl2stg) 
CUIE CENTRO LOCALIDAD DEPARTAMENTO PROVINCIA Historias clinicas Prestaciones id mi fpc id_efector ID_unit Prob_ 2 _stage Prob
636 B08032 HOSPITAL MUNICIPAL SANTA FRANCISCA ROMANA ARRECIFES ARRECIFES BA 288 2610 1 1 123 636 1 1 0.3252033
588 B07821 HOSPITAL LOCAL MUNICIPAL HUANGUELEN CORONEL SUAREZ CORONEL SUAREZ BA 24 543 4 1 123 588 4 1 0.3252033
792 B08661 HOSPITAL LOCAL DE GENERAL LAMADRID DR EMILIO ETCHEGARAY GENERAL LA MADRID GENERAL LA MADRID BA 90 712 7 1 123 792 7 1 0.3252033
607 B07918 HOSPITAL SUBZONAL GRAL. MUNICIPAL DE GRAL VILLEGAS GENERAL VILLEGAS (EST. VILLEGAS) GENERAL VILLEGAS BA 72 526 10 1 123 607 10 1 0.3252033
614 B07958 HOSPITAL MUNICIPAL GUILLERMO DEL SOLDATO PELLEGRINI PELLEGRINI BA 78 466 13 1 123 614 13 1 0.3252033
816 B08742 HOSPITAL MUNICIPAL RAMON CARRILLO ROQUE PEREZ ROQUE PEREZ BA 6 244 16 1 123 816 16 1 0.3252033

Diseño por conglomerado

No necesitasos calcular el Mi, porque ya lo pegamos en la base (va a ser el fpc2 en el diseño)

disenio <- svydesign(id = ~id + id_efector, data = basecl2stg, fpc = ~fpc + mi)
summary(disenio)
## 2 - level Cluster Sampling design
## With (40, 250) clusters.
## svydesign(id = ~id + id_efector, data = basecl2stg, fpc = ~fpc + 
##     mi)
## Probabilities:
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1113  0.1922  0.3020  0.2632  0.3252  0.3252 
## Population size (PSUs): 123 
## Data variables:
##  [1] "CUIE"               "CENTRO"             "LOCALIDAD"         
##  [4] "DEPARTAMENTO"       "PROVINCIA"          "Historias clinicas"
##  [7] "Prestaciones"       "id"                 "mi"                
## [10] "fpc"                "id_efector"         "ID_unit"           
## [13] "Prob_ 2 _stage"     "Prob"

Cáculo de estimadores

Calculamos el estimador del promedio de prestaciones y su intervalo de confianza

svymean(~Prestaciones, design = disenio, deff=TRUE)
##                 mean      SE   DEff
## Prestaciones 468.485  37.974 0.9249
confint(round(svymean(~Prestaciones, disenio, na.rm = T),1))
##                 2.5 %   97.5 %
## Prestaciones 394.0722 542.9278

El promedio estimado fue de 468 prestaciones por efector con un IC \(95\%\) entre \(394.07\) y \(542.93\). El efecto del diseño fue de \(0.925\)

Calculamos el estimador del Total de prestaciones por efector, su IC y el efecto de diseño

svytotal(~Prestaciones, design = disenio, deff=TRUE)
##               total     SE   DEff
## Prestaciones 501326  92580 4.8007
confint(round(svytotal(~Prestaciones, disenio, na.rm = T),1))
##                 2.5 % 97.5 %
## Prestaciones 319873.2 682779

El total de prestaciones estimado fue de \(501326\), con un IC \(95\%\) entre \(319873\) y \(682779\). El efecto del diseño estimado fue de \(4.8\)

Conclusiones

El cálculo de los estimadores no se aleja del valor poblacional de manera significativa. El DEff para el estimador del Promedio de prestaciones es menor a 1. Por otro lado, el DEff para el estimador del Total obtuvo un valor bastante elevado de \(4.8\) aunque el Total poblacional no se aleja del estimado


  1. Definido por el grupo de trabajo↩︎