rm(list=ls()) #Limpiar entorno de trabajo

#install.packages("samplingbook") #Instalar sólo la primera vez
#install.packages("foreign") #Instalar sólo la primera vez
#install.packages("dplyr") # Instalar sólo la primera vez
#install.packages("questionr")  Instalar sólo la primera vez
library(samplingbook) #Abrir paquete samplingbook
library(foreign) #Abrir paquete foreign para exportar base de datos spss a R
library(dplyr) #Abrir paquete dplyr para administración de bases de datos
library(spatstat) #Abrir paquete spatstat para estadísticas descriptivas
library(questionr) #Abrir paquete questionr para estadísticas descriptivas

setwd("/home/daniel/Dropbox/U CENTRAL/02 2020/01 Primer semestre 2020/Analisis de datos cuantitativos I/Clases/05") #Fijar carpeta de trabajo

A continuación se ejemplificará el cálculo de tamaños de muestra con muestreo estratificado con distintos tipos de afijación, empleando datos reales y ficticios.

Imagínense que se se está estudiando el ingreso per cápita promedio en la región de Coquimbo. Se realiza una recopilación de antecedentes, de modo tal que se conocen los siguientes parámetros poblacionales:

data2017 <- read.spss("Casen 2017.sav", to.data.frame = TRUE) #Cargar base de datos Casen 2017 para buscar valores que funcionen como parámetros poblacionales de referencia
data2017 <- filter(data2017, region == "Región de Coquimbo")
weighted.median(data2017$ypc, data2017$expr) #media de ingreso percapita regional
## [1] 194446.2
sqrt(weighted.var(data2017$ypc, data2017$expr)) #desviación estandar de la media regional
##          [,1]
## [1,] 672127.1
N <- 757586
X <- 194446
S <- 672127

Además, por estudios anteriores, se sabe que el ingreso per cápita depende en gran medida del nivel educacional del jefe de hogar. De manera que se recopila información sobre el tamaño de cada estrato (Censo 2017), su ingreso per cápita promedio (Casen 2017) y desviación estándar (Casen 2017).

#Antes, se simplificará un poco la variable nivel educacional
levels(data2017$educ)
table(data2017$educ)
data2017$educ <- as.integer(data2017$educ)
table(data2017$educ)
data2017$educ[data2017$educ == 1] <- 1
data2017$educ[data2017$educ == 2] <- 2
data2017$educ[data2017$educ == 3] <- 3
data2017$educ[data2017$educ == 4] <- 4
data2017$educ[data2017$educ == 5] <- 4
data2017$educ[data2017$educ == 6] <- 5
data2017$educ[data2017$educ == 7] <- 5
data2017$educ[data2017$educ == 8] <- 6
data2017$educ[data2017$educ == 9] <- 7
data2017$educ[data2017$educ == 10] <- 6
data2017$educ[data2017$educ == 11] <- 7
data2017$educ[data2017$educ == 12] <- 7
data2017$educ[data2017$educ == 13] <- 7
data2017$educ[data2017$educ == 14] <- NA
table(data2017$educ)
data2017$educ <- as.factor(data2017$educ)
levels(data2017$educ) <- c("Sin educación formal", "Básica incompleta", "Básica completa", "Media incompleta", "Media completa", "Superior incompleta", "Superior completa")

Calculamos.

#tamano de los estratos
wtd.table(data2017$educ, weights = data2017$expr)

#parametros en los estratos
h<-filter(data2017, educ =="Sin educación formal")
weighted.median(h$ypc, h$expr) #media 
sqrt(weighted.var(h$ypc, h$expr)) #desviación estandar
rm(h)

h<-filter(data2017, educ =="Básica incompleta")
weighted.median(h$ypc, h$expr) #media 
sqrt(weighted.var(h$ypc, h$expr)) #desviación estandar
rm(h)

h<-filter(data2017, educ =="Básica completa")
weighted.median(h$ypc, h$expr) #media 
sqrt(weighted.var(h$ypc, h$expr)) #desviación estandar
rm(h)

h<-filter(data2017, educ =="Media incompleta")
weighted.median(h$ypc, h$expr) #media 
sqrt(weighted.var(h$ypc, h$expr)) #desviación estandar
rm(h)

h<-filter(data2017, educ =="Media completa")
weighted.median(h$ypc, h$expr) #media 
sqrt(weighted.var(h$ypc, h$expr)) #desviación estandar
rm(h)

h<-filter(data2017, educ =="Superior incompleta")
weighted.median(h$ypc, h$expr) #media 
sqrt(weighted.var(h$ypc, h$expr)) #desviación estandar
rm(h)

h<-filter(data2017, educ =="Superior completa")
weighted.median(h$ypc, h$expr) #media 
sqrt(weighted.var(h$ypc, h$expr)) #desviación estandar
rm(h)
rm(data2017)

Almacenamos resultados.

h <- c(1:7) #estratos
Nh <- c(83499,159689,78373,109993,208523,55509,76944)
Xh <- c(151073,165896,186680,198841,196057,217595,333333)
Sh <- c(137328,134756,134506,143909,638670,1184090,1497191)

Muestreo estratificado con afijación proporcional

Calculo del tamaño de la muestra utilizando un 95% de nivel de confianza y un error máximo admisible de 10,000 pesos y 50,000, pesos empleando ME con afijación proporcional.

Paso 1: identificar fórmula

\(n = \frac{\sum^{l}_{h=1} W_h S^2_h}{\frac{e^2}{Z^{2}_{\alpha/2}}+\frac{\sum^{l}_{h=1} W_h S^2_h}{N}}\)

\(W_h = \frac{N_h}{N}\)

\(n_h = n W_h\)

Se calculará una muestra para estimar medias.

Paso 2: identificar información necesaria para calcular \(n\)

En la primera parte de la guía, recopilamos gran parte de la información necesaria. Sin embargo, aún falta determinar \(\alpha\) (1.96), el error máximo admisible (10,000 y 50,000 pesos) y el peso de los estratos en la población (\(W_h\)).

e1 <- 10000
e2 <- 50000
alpha <- 1.96
Wh <- Nh/N

Paso 3: reemplazar valores en la fórmula

Primero, se calcula la muestra con un error máximo admisible de 10,000:

numerador <- sum(Wh*(Sh^2))
denominador <- ((e1^2)/(alpha^2))+(sum(Wh*(Sh^2))/N)
tamaño1 <- numerador/denominador
tamaño1 <- round(tamaño1,0) #redondear sin decimales
tamaño1 #Tamaño total de la muestra
## [1] 17028
tamaño1_h <- tamaño1*Wh
tamaño1_h <- round(tamaño1_h,0) #redondear sin decimales
tamaño1_h #Tamaños de los estratos
## [1] 1877 3589 1762 2472 4687 1248 1729
#Método alternativo, usando paquete samplingbook 
stratasize(e= 10000, Nh= Nh, Sh= Sh, level= 0.95, type = "prop") # error máximo admisible, vector con tamaños de cada estrato, tamaño de la población, nivel de confianza y tipo de afijación
## 
## stratamean object: Stratified sample size determination
## 
## type of sample: prop
## 
## total sample size determinated: 16713
stratasamp(n = 16713, Nh= Nh, type = "prop") #tamaño de muestra (paso anterior), tamaño de estratos en la población y tipo de afijación
##                                           
## Stratum    1    2    3    4    5    6    7
## Size    1806 3455 1696 2380 4511 1201 1665

Luego, se calcula la muestra con un error máximo admisible de 50,000:

numerador <- sum(Wh*(Sh^2))
denominador <- ((e2^2)/(alpha^2))+(sum(Wh*(Sh^2))/N)
tamaño2 <- numerador/denominador
tamaño2 <- round(tamaño2,0) #redondear sin decimales
tamaño2 #Tamaño total de la muestra
## [1] 696
tamaño2_h <- tamaño2*Wh
tamaño2_h <- round(tamaño2_h,0) #redondear sin decimales
tamaño2_h #Tamaños de los estratos
## [1]  77 147  72 101 192  51  71
#Método alternativo, usando paquete samplingbook 
stratasize(e= 50000, Nh= Nh, Sh= Sh, level= 0.95, type = "prop") # error máximo admisible, vector con tamaños de cada estrato, tamaño de la población, nivel de confianza y tipo de afijación
## 
## stratamean object: Stratified sample size determination
## 
## type of sample: prop
## 
## total sample size determinated: 683
stratasamp(n = 683, Nh= Nh, type = "prop") #tamaño de muestra (paso anterior), tamaño de estratos en la población y tipo de afijación
##                               
## Stratum  1   2  3  4   5  6  7
## Size    74 141 69 97 184 49 68

Paso 4: respuesta

Para hacer una estimación del ingreso percápita promedio en la Región de Coquimbo, con un error máximo admisible de $10,000 y un nivel de confianza del 95%, se requiere encuestar a 17,028 personas. Bajo afijación proporcional, se requiere encuestar 1,877 personas sin educación formal, 3,589 personas con educación básica incompleta, 1,762 personas con educación básica completa, 2,472 personas con educación media incompleta, 4,687 personas con educación media completa, 1,248 personas con educación superior incompleta y 1,729 personas con educación superior completa.

En cambio, con un error máximo admisible de $50,000, se necesitan personas 696 personas.Bajo afijación proporcional, se requiere encuestar 77 personas sin educación formal, 147 personas con educación básica incompleta, 72 personas con educación básica completa, 101 personas con educación media incompleta, 192 personas con educación media completa, 51 personas con educación superior incompleta y 71 personas con educación superior completa.

Muestreo estratificado con afijación óptima de varianza

Calculo del tamaño de la muestra utilizando un 95% de nivel de confianza y un error máximo admisible de 10,000 y 50,000 pesos, empleando ME con afijación óptima de varianza.

Paso 1: identificar fórmula

\(n = \frac{(\sum^{l}_{h=1} W_h S_h)^2}{\frac{e^2}{Z^{2}_{\alpha/2}}+\frac{\sum^{l}_{h=1} W_h S^2_h}{N}}]\)

\(W_h = \frac{N_h}{N}\)

\(n_h = n \frac{W_h S^2_h}{\sum^{l}_{h=1} W_h S^2_h}\)

Se calculará una muestra para estimar medias.

Paso 2: identificar información necesaria para calcular \(n\)

En la primera parte de la guía, recopilamos gran parte de la información necesaria. Sin embargo, aún falta determinar \(\alpha\) (1.96), el error máximo admisible (10,000 y 50,000 pesos) y el peso de los estratos en la población (\(W_h\)).

Paso 3: reemplazar valores en la fórmula

Primero, se calcula la muestra con un error máximo admisible de 10,000:

numerador <- (sum(Wh*(Sh)))^2
denominador <- ((e1^2)/(alpha^2))+(sum(Wh*(Sh^2))/N)
tamaño1 <- numerador/denominador
tamaño1 <- round(tamaño1,0) #redondear sin decimales
tamaño1 #Tamaño total de la muestra
## [1] 9126
tamaño1_h <- tamaño1*((Wh*(Sh^2))/(sum(Wh*(Sh^2))))
tamaño1_h <- round(tamaño1_h,0) #redondear sin decimales
tamaño1_h #Tamaños de los estratos
## [1]   42   77   38   61 2260 2068 4582
#Método alternativo, usando paquete samplingbook 
stratasize(e= 10000, Nh= Nh, Sh= Sh, level= 0.95, type = "opt") # error máximo admisible, vector con tamaños de cada estrato, tamaño de la población, nivel de confianza y tipo de afijación
## 
## stratamean object: Stratified sample size determination
## 
## type of sample: opt
## 
## total sample size determinated: 8784
stratasamp(n = 8784, Nh= Nh, Sh= Sh, type = "opt") #tamaño de muestra (paso anterior), tamaño de estratos en la población y tipo de afijación
##                                       
## Stratum   1   2   3   4    5    6    7
## Size    270 506 248 372 3132 1546 2710

Luego, se calcula la muestra con un error máximo admisible de 50,000:

numerador <- (sum(Wh*(Sh)))^2
denominador <- ((e2^2)/(alpha^2))+(sum(Wh*(Sh^2))/N)
tamaño2 <- numerador/denominador
tamaño2 <- round(tamaño2,0) #redondear sin decimales
tamaño2 #Tamaño total de la muestra
## [1] 373
tamaño2_h <- tamaño2*Wh
tamaño2_h <- round(tamaño2_h,0) #redondear sin decimales
tamaño2_h #Tamaños de los estratos
## [1]  41  79  39  54 103  27  38
#Método alternativo, usando paquete samplingbook 
stratasize(e= 50000, Nh= Nh, Sh= Sh, level= 0.95, type = "opt") # error máximo admisible, vector con tamaños de cada estrato, tamaño de la población, nivel de confianza y tipo de afijación
## 
## stratamean object: Stratified sample size determination
## 
## type of sample: opt
## 
## total sample size determinated: 359
stratasamp(n = 359, Nh= Nh, Sh= Sh, type = "opt") #tamaño de muestra (paso anterior), tamaño de estratos en la población y tipo de afijación
##                               
## Stratum  1  2  3  4   5  6   7
## Size    11 21 10 15 128 63 111

Paso 4: respuesta

Para hacer una estimación del ingreso percápita promedio en la Región de Coquimbo, con un error máximo admisible de $10,000 y un nivel de confianza del 95%, se requiere encuestar a 9,126 personas. Bajo afijación óptima de varianza, se requiere encuestar 42 personas sin educación formal, 77 personas con educación básica incompleta, 38 personas con educación básica completa, 61 personas con educación media incompleta, 2,260 personas con educación media completa, 2,068 personas con educación superior incompleta y 4,582 personas con educación superior completa.

En cambio, con un error máximo admisible de $50,000, se necesitan personas 373 personas. Bajo afijación óptima de varianza, se requiere encuestar 41 personas sin educación formal, 79 personas con educación básica incompleta, 39 personas con educación básica completa, 54 personas con educación media incompleta, 103 personas con educación media completa, 27 personas con educación superior incompleta y 38 personas con educación superior completa.

Muestreo estratificado con afijación óptima de costos

Calculo del tamaño de la muestra utilizando un 95% de nivel de confianza y un error máximo admisible de 10,000 y 50,000 pesos, empleando ME con afijación óptima de costos.

Paso 1: identificar fórmula

\(n = \frac{(\sum^{l}_{h=1} W_h S_h \sqrt{C_h}) \sum^{l}_{h=1}\frac{W_h S_h}{\sqrt{C_h}}}{\frac{e^2}{Z^{2}_{\alpha/2}}+\frac{\sum^{l}_{h=1} W_h S^2_h}{N}}\)

\(W_h = \frac{N_h}{N}\)

\(n_h = n \frac{\frac{W_h S_h}{\sqrt{C_h}}}{\sum^{l}_{h=1} \frac{W_h S_h}{\sqrt{C_h}}}\)

Se calculará una muestra para estimar medias.

Paso 2: identificar información necesaria para calcular \(n\)

En la primera parte de la guía, recopilamos gran parte de la información necesaria. Sin embargo, aún falta determinar \(\alpha\) (1.96), el error máximo admisible (10,000 y 50,000 pesos), el peso de los estratos en la población (\(W_h\)) y el costo por unidad en cada estrato (\(C_h\)) -costos ficticios!!-.

e1 <- 10000
e2 <- 50000
alpha <- 1.96
Wh <- Nh/N
Ch <- c(15000, 10000, 5000, 5000, 5000, 10000, 30000)

Paso 3: reemplazar valores en la fórmula

Primero, se calcula la muestra con un error máximo admisible de 10,000:

numerador <- (sum(Wh*Sh*(sqrt(Ch))))*sum((Wh*Sh)/(sqrt(Ch)))
denominador <- ((e1^2)/(alpha^2))+(sum(Wh*(Sh^2))/N)
tamaño1 <- numerador/denominador
tamaño1 <- round(tamaño1,0) #redondear sin decimales
tamaño1 #Tamaño total de la muestra
## [1] 10521
tamaño1_h <- tamaño1*(((Wh*Sh)/(sqrt(Ch)))/(sum((Wh*Sh)/(sqrt(Ch)))))
tamaño1_h <- round(tamaño1_h,0) #redondear sin decimales
tamaño1_h #Tamaños de los estratos
## [1]  253  582  403  606 5097 1779 1800

Luego, se calcula la muestra con un error máximo admisible de 50,000:

numerador <- (sum(Wh*Sh*(sqrt(Ch))))*sum((Wh*Sh)/(sqrt(Ch)))
denominador <- ((e2^2)/(alpha^2))+(sum(Wh*(Sh^2))/N)
tamaño2 <- numerador/denominador
tamaño2 <- round(tamaño2,0) #redondear sin decimales
tamaño2 #Tamaño total de la muestra
## [1] 430
tamaño2_h <- tamaño2*(((Wh*Sh)/(sqrt(Ch)))/(sum((Wh*Sh)/(sqrt(Ch)))))
tamaño2_h <- round(tamaño2_h,0) #redondear sin decimales
tamaño2_h #Tamaños de los estratos
## [1]  10  24  16  25 208  73  74

Paso 4: respuesta

Para hacer una estimación del ingreso percápita promedio en la Región de Coquimbo, con un error máximo admisible de $10,000 y un nivel de confianza del 95%, se requiere encuestar a 10,521 personas. Bajo afijación óptima de costos, se requiere encuestar 253 personas sin educación formal, 582 personas con educación básica incompleta, 403 personas con educación básica completa, 606 personas con educación media incompleta, 5,097 personas con educación media completa, 1,779 personas con educación superior incompleta y 1,800 personas con educación superior completa.

En cambio, con un error máximo admisible de $50,000, se necesitan personas 430 personas. Bajo afijación óptima de costos, se requiere encuestar 253 personas sin educación formal, 582 personas con educación básica incompleta, 403 personas con educación básica completa, 606 personas con educación media incompleta, 5,097 personas con educación media completa, 1,779 personas con educación superior incompleta y 1,800 personas con educación superior completa.