--- title: "Determinación del calculo de tamaño de muestra utilizando distintas afijaciones, considerando costes y sin considerar costes" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Determinacióndel calculo de tamaño de muestra utilizando distintas afijaciones, considerando costes y sin considerar costes} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ```{r setup} library(samplingR) ``` ## Preparamos los datos La población está compuesta por 2 estratos generados sintéticamente a partir de dos distribuciones normales. ### Primer estrato: pensionistas en CyL ```{r} N1<-585479 pen<-rnorm(N1, 750, 100) ``` ### Segundo estrato: asalariados en CyL ```{r} N2<-932992 ass<-rnorm(N2, 1500, 500) ``` ```{r} datos<-cbind(c(pen, ass), c(rep("pensionista", N1), rep("asalariado", N2))) N<-N1+N2 ``` ## Ejercicio 1. Consideremos una muestra global de n=800 individuos y afijacion uniforme ### a) Reparto de la muestra ```{r} Nh<-c(N1, N2) n<-800 strata.allocation(Nh=Nh, n=n, alloc="unif") ``` ### b) Suponiendo una función de coste ```{r} 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) nh.unif<-strata.allocation(Nh=Nh, n=size, alloc="unif") paste(c("Estrato 1:", "Estrato 2"), nh.unif) paste("Coste:", Cini+sum(ch*nh.unif)) ``` Como los tamaños de muestra deben ser enteros redondeamos al entero inferior. ```{r} nh.unif<-floor(nh.unif) paste(c("Estrato 1:", "Estrato 2"), nh.unif) paste("Coste:", Cini+sum(ch*nh.unif)) ``` ## Ejercicio 2. Afijación proporcional ### a) Reparto de la muestra ```{r} strata.allocation(Nh=Nh, n=n, alloc="prop") ``` ### b) Con función de coste igual a la anterior ```{r} size<-strata.samplesize.cost(Nh=Nh, C=C, cini=Cini, ch=ch, alloc="prop") paste("Tamaño de muestra", size) nh.unif<-floor(strata.allocation(Nh=Nh, n=size, alloc="prop")) paste(c("Estrato 1:", "Estrato 2"), nh.unif) paste("Coste:", Cini+sum(ch*nh.unif)) ``` ## Ejercicio 3. Afijación de mínima varianza La afijación de Neyman depende de las cuasivarianzas de los estratos, por lo que se deben estimar. ### a) Reparto de la muestra Opción 1: usar las varianzas reales como estimadores (solución teórica) ```{r} vart<-c(var(pen), var(ass)) strata.allocation(Nh=Nh, n=n, var=vart, alloc="min") ``` Opción 2: tomar una muestra previa para estimar las cuasivarianzas de los estratos. ```{r} 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") ``` 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 ```{r} var<-c(Nh/(Nh-1)*0.5*(1-0.5)) strata.allocation(Nh=Nh, n=n, var=var, alloc="min") ``` 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. ```{r} strata.allocation(Nh=Nh, n=n, alloc="min") ``` La estimación conservadora coincide con el cálculo de afijación proporcional. ### b) Con función de coste igual a la anterior y solución teórica En la afijación de mínima varianza optimizando con una función de costes es equivalente a utilizar la afijación óptima. ```{r} size<-strata.samplesize.cost(Nh=Nh, var=vart, C=C, cini=Cini, ch=ch, alloc="optim") paste("Tamaño de muestra", size) 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) paste("Coste:", Cini+sum(ch*nh.optim)) ```