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")| 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")| 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=NAsignació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
Definido por el grupo de trabajo↩︎