library(samplingR)
#> _ _ ______
#> | (_) | ___ \
#> ___ __ _ _ __ ___ _ __ | |_ _ __ __ _| |_/ /
#> / __|/ _` | '_ ` _ \| '_ \| | | '_ \ / _` | /
#> \__ \ (_| | | | | | | |_) | | | | | | (_| | |\ \
#> |___/\__,_|_| |_| |_| .__/|_|_|_| |_|\__, \_| \_|
#> | | __/ |
#> |_| |___/ version 1.0.1
#> Type 'citation("samplingR")' for citing this R package in publications.
La población está compuesta por 2 estratos generados sintéticamente a partir de dos distribuciones normales.
C<-12000
Cini<-5000
ch<-c(45, 20)
size<-strata.samplesize.cost(Nh=Nh, C=C, cini=Cini, ch=ch, alloc="unif")
paste("Tamaño de muestra", size)
#> [1] "Tamaño de muestra 215.384615384615"
nh.unif<-strata.allocation(Nh=Nh, n=size, alloc="unif")
paste(c("Estrato 1:", "Estrato 2"), nh.unif)
#> [1] "Estrato 1: 107.692307692308" "Estrato 2 107.692307692308"
paste("Coste:", Cini+sum(ch*nh.unif))
#> [1] "Coste: 12000"
Como los tamaños de muestra deben ser enteros redondeamos al entero inferior.
size<-strata.samplesize.cost(Nh=Nh, C=C, cini=Cini, ch=ch, alloc="prop")
paste("Tamaño de muestra", size)
#> [1] "Tamaño de muestra 236.173037187271"
nh.unif<-floor(strata.allocation(Nh=Nh, n=size, alloc="prop"))
paste(c("Estrato 1:", "Estrato 2"), nh.unif)
#> [1] "Estrato 1: 91" "Estrato 2 145"
paste("Coste:", Cini+sum(ch*nh.unif))
#> [1] "Coste: 11995"
La afijación de Neyman depende de las cuasivarianzas de los estratos, por lo que se deben estimar.
Opción 1: usar las varianzas reales como estimadores (solución teórica)
vart<-c(var(pen), var(ass))
strata.allocation(Nh=Nh, n=n, var=vart, alloc="min")
#> [1] 89.20655 710.79345
Opción 2: tomar una muestra previa para estimar las cuasivarianzas de los estratos.
sample<-strata.sample(data=datos, n=c(20, 20))
var<-c(var(sample[which(sample[,2]=="asalariado"),1]), var(sample[which(sample[,2]=="pensionista"),1]))
strata.allocation(Nh=Nh, n=n, var=var, alloc="min")
#> [1] 640.3049 159.6951
Opción 3: estimación más conservadora. Suponemos cuasivarianza máxima en todos los estratos = $\frac{N_h}{N_h-1}p(1-p)$ con p=0.5
var<-c(Nh/(Nh-1)*0.5*(1-0.5))
strata.allocation(Nh=Nh, n=n, var=var, alloc="min")
#> [1] 308.4572 491.5428
Si no se fija la varianza en la función se mostrará un warning y la varianza declarada en la función será la máxima para cada estrato.
strata.allocation(Nh=Nh, n=n, alloc="min")
#> Warning in strata.allocation(Nh = Nh, n = n, alloc = "min"):
#> Necessary var argument missing, will be set to worst case scenario value for each strata.
#> [1] 308.4572 491.5428
La estimación conservadora coincide con el cálculo de afijación proporcional.
En la afijación de mínima varianza optimizando con una función de costes es equivalente a utilizar la afijación óptima.
size<-strata.samplesize.cost(Nh=Nh, var=vart, C=C, cini=Cini, ch=ch, alloc="optim")
paste("Tamaño de muestra", size)
#> [1] "Tamaño de muestra 319.194322050934"
nh.optim<-floor(strata.allocation(Nh=Nh, n=size, var=vart, alloc="optim", C=C, cini=Cini, ch=ch))
paste(c("Estrato 1:", "Estrato 2"), nh.optim)
#> [1] "Estrato 1: 24" "Estrato 2 294"
paste("Coste:", Cini+sum(ch*nh.optim))
#> [1] "Coste: 11960"