#Cargamos los paquetes
library(haven)
library(readxl)
library(tidyverse)
library(survey)
library(dplyr)
library(samplingbook)
library(stratification)
#Cargamos la base
dbcaps<- read_excel("CAPS_Provincia_de_Buenos_Aires.xlsx")
colnames(dbcaps)[6:7] <- c("HCLINICA","PRESTACIONES")
#Identificamos los valores maximos y minimos de la variable de estratificacion
max(dbcaps$HCLINICA)
## [1] 1848
min(dbcaps$HCLINICA)
## [1] 6
length(dbcaps$HCLINICA)
## [1] 1112
# Visualizamos la distribucion de la variable de estratificacion
his<- dbcaps$HCLINICA
histograma<- hist(his, breaks = 200)
#Definimos los estratos mediante el metodo de dalenius hodges
estratos<- strata.cumrootf(dbcaps$HCLINICA, CV= 0.05, Ls=3)
## Warning: 'nclass' value has been chosen arbitrarily
estratos
## Given arguments:
## x = dbcaps$HCLINICA
## nclass = 45, CV = 0.05, Ls = 3
## allocation: q1 = 0.5, q2 = 0, q3 = 0.5
## model = none
##
## Strata information:
## | type rh | bh E(Y) Var(Y) Nh nh fh
## stratum 1 | take-some 1 | 46.93 18.63 140.51 662 17 0.03
## stratum 2 | take-some 1 | 169.73 92.92 1227.45 364 27 0.07
## stratum 3 | take-some 1 | 1849.00 344.30 76686.00 86 50 0.58
## Total 1112 94 0.08
##
## Total sample size: 94
## Anticipated population mean: 68.13129
## Anticipated CV: 0.04912919
#Creamos los estratos a partir de los resultados obtenidos en el ejercicio anterio y Obetenemos los desvios de cada estrato
dbcaps2<- dbcaps %>% mutate(ESTRATOS = case_when( HCLINICA < 47 ~ "ESTRATO 1" ,
HCLINICA < 170 ~ "ESTRATO 2" ,
HCLINICA < 1850 ~ "ESTRATO 3" ))
resumendbcaps2<- dbcaps2 %>% group_by(ESTRATOS) %>% summarise(cantidad = n(), desvio_clinic = sd(HCLINICA), variacion = (sd(HCLINICA)^2) ,totalclinicas= sum(HCLINICA))
resumendbcaps2
## # A tibble: 3 x 5
## ESTRATOS cantidad desvio_clinic variacion totalclinicas
## <chr> <int> <dbl> <dbl> <dbl>
## 1 ESTRATO 1 662 11.9 141. 12330
## 2 ESTRATO 2 364 35.1 1231. 33822
## 3 ESTRATO 3 86 279. 77588. 29610
# Calculadora de tamaño de muestra para una media donde e=error máximo a
# Nh= tamaño de la población de cada estrato
# Adjudicación optima
stratasize(e=10, Nh=c(662,364,86), Sh=c(11.86, 35.08 ,278.55), level = 0.95, type = 'opt')
##
## stratamean object: Stratified sample size determination
##
## type of sample: opt
##
## total sample size determinated: 51
# Adjudicación optima del tamaño muestral
stratasamp(n=51, Nh=c(662,364,86))
##
## Stratum 1 2 3
## Size 30 17 4
#Utilizamos muestreo aleatorio simple para extraer la muestra de cada estrato
set.seed(234)
mastrat1<- filter(dbcaps2, ESTRATOS =="ESTRATO 1" ) %>% sample_n( size = 30)
mastrat2<- filter(dbcaps2, ESTRATOS =="ESTRATO 2" ) %>% sample_n( size = 17)
mastrat3<- filter(dbcaps2, ESTRATOS =="ESTRATO 3" ) %>% sample_n( size = 4)
#Creamos vectores con el n de cada muestra
nmastrat1 <- count(mastrat1)
nmastrat2 <- count(mastrat2)
nmastrat3 <- count(mastrat3)
#Calculamos el estimador del total por mese y mera por Rs y Rc
#Estimador del total por muestreo estratificado metodo de estimacion por simple expansion razon separadas
#Calculamos prestaciones. ymin = hclinica , xmin=hclinica
ymin1<- sum(mastrat1$PRESTACIONES)
ymin2<- sum(mastrat2$PRESTACIONES)
ymin3<- sum(mastrat3$PRESTACIONES)
xmin1 <-sum(mastrat1$HCLINICA)
xmin2 <-sum(mastrat2$HCLINICA)
xmin3 <-sum(mastrat3$HCLINICA)
mesers<- ((ymin1/xmin1)*resumendbcaps2$totalclinicas[1]) + ((ymin2/xmin2)*resumendbcaps2$totalclinicas[2]) + ((ymin3/xmin3)*resumendbcaps2$totalclinicas[3])
mesers
## [1] 461275.5
#Estimador del total por muestreo estratificado metodo de estimacion por simple expansion razon combinadas
ymeserazoncombi<- (resumendbcaps2$cantidad[1]*(ymin1/nmastrat1)) + (resumendbcaps2$cantidad[2]*(ymin2/nmastrat2)) + (resumendbcaps2$cantidad[3]*(ymin3/nmastrat3))
ymeserazoncombi
## n
## 1 411093.8
xmeserazoncombi<- (resumendbcaps2$cantidad[1]*(xmin1/nmastrat1)) + (resumendbcaps2$cantidad[2]*(xmin2/nmastrat2)) + (resumendbcaps2$cantidad[3]*(xmin3/nmastrat3))
xmeserazoncombi
## n
## 1 68237.35
mesercomb<- (ymeserazoncombi/xmeserazoncombi)* (sum(dbcaps2$HCLINICA))
mesercomb
## n
## 1 456425.8
#Estimador de la razon por razon separada
razonsep<- mesers/ (sum(dbcaps2$HCLINICA))
razonsep
## [1] 6.088481
#Estimador de la razon por razon combinada
razoncomb <- ((ymin1+ymin2+ymin3)/(xmin1+xmin2+xmin3))
razoncomb
## [1] 5.972854
# Calculadora de tamaño de muestra para una media donde e=error máximo a
# Nh= tamaño de la población de cada estrato
# Adjudicación proporcional
stratasize(e=10, Nh=c(662,364,86), Sh=c(11.86, 35.08 ,278.55), level = 0.95, type = 'prop')
##
## stratamean object: Stratified sample size determination
##
## type of sample: prop
##
## total sample size determinated: 206
# Adjudicación proporcional del tamaño muestral
stratasamp(n=206, Nh=c(662,364,86))
##
## Stratum 1 2 3
## Size 123 67 16
#Utilizamos muestreo aleatorio simple para extraer la muestra de cada estrato
set.seed(234)
mastrat1prop<- filter(dbcaps2, ESTRATOS =="ESTRATO 1" ) %>% sample_n( size = 123)
mastrat2prop<- filter(dbcaps2, ESTRATOS =="ESTRATO 2" ) %>% sample_n( size = 67)
mastrat3prop<- filter(dbcaps2, ESTRATOS =="ESTRATO 3" ) %>% sample_n( size = 16)
#Creamos vectores con el n de cada muestra
nmastrat1prop <- count(mastrat1prop)
nmastrat2prop <- count(mastrat2prop)
nmastrat3prop <- count(mastrat3prop)
#Calculamos el estimador del total por mese y mera por Rs y Rc
#Estimador del total por muestreo estratificado metodo de estimacion por simple expansion razon separadas
#Calculamos prestaciones. ymin = hclinica , xmin=hclinica
ymin1prop<- sum(mastrat1prop$PRESTACIONES)
ymin2prop<- sum(mastrat2prop$PRESTACIONES)
ymin3prop<- sum(mastrat3prop$PRESTACIONES)
xmin1prop <-sum(mastrat1prop$HCLINICA)
xmin2prop <-sum(mastrat2prop$HCLINICA)
xmin3prop <-sum(mastrat3prop$HCLINICA)
mesersprop<- ((ymin1prop/xmin1prop)*resumendbcaps2$totalclinicas[1]) + ((ymin2prop/xmin2prop)*resumendbcaps2$totalclinicas[2]) + ((ymin3prop/xmin3prop)*resumendbcaps2$totalclinicas[3])
mesersprop
## [1] 442572.4
#Estimador del total por muestreo estratificado metodo de estimacion por simple expansion razon combinadas
ymeserazoncombiprop<- (resumendbcaps2$cantidad[1]*(ymin1prop/nmastrat1prop)) + (resumendbcaps2$cantidad[2]*(ymin2prop/nmastrat2prop)) + (resumendbcaps2$cantidad[3]*(ymin3prop/nmastrat3prop))
xmeserazoncombiprop<- (resumendbcaps2$cantidad[1]*(xmin1prop/nmastrat1prop)) + (resumendbcaps2$cantidad[2]*(xmin2prop/nmastrat2prop)) + (resumendbcaps2$cantidad[3]*(xmin3prop/nmastrat3prop))
mesercombprop<- (ymeserazoncombiprop/xmeserazoncombiprop)* (sum(dbcaps2$HCLINICA))
mesercombprop
## n
## 1 442310.2
#Estimador de la razon por razon separada
razonsepprop<- mesersprop/ (sum(dbcaps2$HCLINICA))
razonsepprop
## [1] 5.841615
#Estimador de la razon por razon combinada
razoncombprop <- ((ymin1prop+ymin2prop+ymin3prop)/(xmin1prop+xmin2prop+xmin3prop))
razoncombprop
## [1] 5.846694
Se estimó el promedio de prestaciones a través de la razón entre la variable auxiliar, historia clínica y las prestaciones que brindan los caps. Para el cálculo se definió un error de 10%, y un nivel de confianza del 95% a través del método de asignación óptima de razón separada con una muestra estratificada en 3 estratos, fijando la selección por simple azar en 234 la estimación del promedio de prestaciones se estima en 6.08 prestaciones, mientras que el valor poblacional es de 6,73 prestaciones.
Este calculo es el que mejor estima en relación a las otras opciones de razón combinada para asignación óptima, y razón separada y combinada para adjudicación proporcional
## todaslasmedias2 round.todaslasmedias..2.
## 1 Total pob 6.73
## 2 razonsep 6.09
## 3 razoncomb 5.97
## 4 razonsepprop 5.84
## 5 razoncombprop 5.85