U3A3

VictorCarvajalRomán

26/11/2020

MUESTREO EN ESTADÍSTICA

Muestreo

Introducción

MUESTREO En ocasiones en que no es posible o conveniente realizar un censo(analizar a todos los elementos de una población), se selecciona una muestra, entendiendo por tal una parte representativa de la población.

El muestreo es por lo tanto una herramienta de la investigación científica, cuya función básica es determinar que parte de una población debe examinarse, con la finalidad de hacer inferencias sobre dicha población.

La muestra debe lograr una representación adecuada la población, en la quese reproduzca de la mejor manera los rasgos esenciales de dicha población que son importantes para la investigación. Para que una muestra sea representativa, y por lo tanto útil, debe de reflejar las similitudes y diferencias encontradas en la población, es decir ejemplificar las características de ésta

Los errores más comunes que se pueden cometerson:

1.- Hacer conclusiones muy generales a partir de la observación de sólo una parte de laPoblación, se denomina error de muestreo.

2.- Hacer conclusiones hacia una Población mucho más grandes de la que originalmente se tomo la muestra. Error de Inferencia.En la estadística se usala palabra población para referirse no sólo a personas si no a todos los elementos que han sido escogidos para su estudio y el término muestra se usa para describir una porción escogida de la población.

Tipos de muestreo

Tipos de muestreo

I.Muestreo probabilístico Los métodos de muestreo probabilísticos son aquellos que se basan en el principio de equiprobabilidad. Es decir, aquellos en los que todos los individuos tienen la misma probabilidad de ser elegidos para formar parte de una muestra y, consiguientemente, todas las posibles muestras de tamaño n tienen la misma probabilidad de ser seleccionadas.Sólo estos métodos de muestreo probabilísticos nos aseguran la representatividad de la muestra extraída y son, por tanto, los más recomendables.

Dentro de los métodos de muestreo probabilísticos encontramos los siguientes tipos:

1.- Muestreo aleatorio simple:

El procedimiento empleado es el siguiente: 1) se asigna un número a cada individuo de la población y 2) a través de algún medio mecánico (bolas dentro de una bolsa, tablas de números aleatorios, números aleatorios generados con una calculadora u ordenador, etc.) se eligen tantos sujetos como sea necesario para completar el tamaño de muestra requerido Este procedimiento, atractivo por su simpleza, tiene poca o nula utilidad práctica cuando la población que estamos manejando es muy grande.

2.- Muestreo aleatorio sistemático:

Este procedimiento exige, como el anterior, numerar todos los elementos de la población, pero en lugar de extraer n números aleatorios sólo se extrae uno. Se parte de ese número aleatorio i, que es un número elegido al azar, y los elementos que integran la muestra son los que ocupa los lugares i, i+k, i+2k, i+3k,…,i+(n-1)k, es decir se toman los individuos de k en k, siendo k el resultado de dividir el tamaño de la población entre el tamaño de la muestra: k= N/n. El número i que empleamos como punto de partida será un número al azar entre 1 y k. Elriesgo este tipo de muestreo está en los casos en que se dan periodicidades en la población ya que al elegir a los miembros de la muestra con una periodicidad constante (k) podemos introducir una homogeneidad que no se da en la población. Imaginemos que estamos seleccionando una muestra sobre listas de 10 individuos en los que los 5 primeros son varones y los 5 últimos mujeres, si empleamos un muestreo aleatorio sistemático con k=10 siempre seleccionaríamos o sólo hombres o sólo mujeres, no podría haber una representación de los dos sexos.

3.- Muestreo aleatorio estratificado:

Trata de obviar las dificultades que presentan los anteriores ya que simplifican los procesos y suelen reducir el error muestral para un tamaño dado de la muestra. Consiste en considerar categorías típicas diferentes entre sí (estratos) que poseen gran homogeneidad respecto a alguna característica (se puede estratificar, por ejemplo, según la profesión, el municipio de residencia, el sexo, el estado civil, etc.). Lo que se pretende con este tipo de muestreo es asegurarse de que todos los estratos de interés estarán representados adecuadamente en la muestra. Cada estrato funciona independientemente, pudiendo aplicarse dentro de ellos el muestreo aleatorio simple o el estratificado paraelegir los elementos concretos que formarán parte de la muestra. En ocasiones las dificultades que plantean son demasiado grandes, pues exige un conocimiento detallado de la población. (Tamaño geográfico, sexos, edades,…)

Ejercicio de muesteo en R

setwd("~/PYE1112ITSON")
library(pacman)
p_load("prettydoc","tidyverse","DT","dplyr","devtools","DescTools","pps","readxl")

Selección de muestras simples

Muestreo irrestricto Aleatorio(MIA):

Para este ejercicio se utilizarán datos de crímenes cometidos en reino unido con la función “crimtab”

Primer acercamiento a los datos

Student’s 3000 Criminals Data

  • Description

Data of 3000 male criminals over 20 years old undergoing their sentences in the chief prisons of England and Wales. A table object of integer counts, of dimension 42 * 22 with a total count, sum(crimtab) of 3000. The 42 rownames (“9.4”, “9.5”, …) correspond to midpoints of intervals of finger lengths whereas the 22 column names (colnames) (“142.24”, “144.78”, …) correspond to (body) heights of 3000 criminals, see also below.

crime <- data.frame(crimtab)
dim(crime)
## [1] 924   3
datatable(crime)

1.- Selección de la muestrea con M.A.S.

#Tamaño de la muestra
n <- 30
muestramia <-sample(1:nrow(crime), size=n, replace=FALSE)
muestramia
##  [1] 109 464 859 911 616 667 744 299 829 572 611 430 686 106 234 423 866 710  10
## [20] 637 281 217 278 396 239 264 425 125 777 393

Asignar los elementos de la muaestra al data frame de los datos

crimemuestramia <- crime[muestramia, ]
head(crimemuestramia)
##     Var1   Var2 Freq
## 109 11.8 147.32    0
## 464  9.5 170.18    0
## 859 11.2 193.04    0
## 911 12.2 195.58    0
## 616 12.1  177.8   10
## 667   13 180.34    0

Asignación:

Terminar el ejercicio: https://rpubs.com/Felipe1986/MuestreoTutorialR

Selección de muestras simples con dplyr

Una forma más sencilla de obtener una muestra es con el paquete dplyr.Este paquete es sumamente útil para el tratamiento de datos, adicionalmente contiene una función para obtener muestras simples de un data frame:

#Muestra sin reemplazo
crimemuestramia2<- crime %>%
  sample_n(size=n,replace=FALSE)

head(crimemuestramia2)
##   Var1   Var2 Freq
## 1 10.8  190.5    0
## 2  9.7  165.1    0
## 3 10.4 187.96    0
## 4 10.8 195.58    0
## 5 13.5  177.8    0
## 6 11.1 147.32    0
#Muestra con pesos
crimemuestramia3<- crime %>%
  sample_n(size=n,weight=Freq)

head(crimemuestramia3)
##   Var1   Var2 Freq
## 1 11.4 170.18   22
## 2 11.3 154.94    5
## 3 11.7 167.64   48
## 4 11.7  165.1   37
## 5 11.1 160.02   26
## 6 11.7 160.02   17
#Muestra con una proporción de casos
crimemuestramia4<- crime %>%
  sample_frac(0.05)

head(crimemuestramia4);dim(crimemuestramia4)
##   Var1   Var2 Freq
## 1 13.3 180.34    0
## 2  9.6 154.94    0
## 3 11.7 144.78    0
## 4 11.4  177.8    0
## 5 11.4  190.5    0
## 6  9.4 157.48    0
## [1] 46  3

Selección de muestras sistemáticas(Instalación del paquete SamplingUtil)

Para el ejemplo del muestreo sistemático utilizaremos la función sys.sample del paquete SamplingUtil.Para instalar este paquete, se debe inicialmente instalar el paquete devtools ya que no se encuentra en CRAN.Las instrucciones son las siguientes:

Instalar devtools:install.packages(“devtools”)

Cargar libreria: library(devtools)

Instalar SamplingUtils:install_github(“DFJL/SamplingUtil”)

De esta manera podemos proceder a generar la muestra sistemática:

#Cargar libreria:

library(SamplingUtil)

muestrasis<- sys.sample(N=nrow(crime),n=30)
muestrasis
##  [1]  25  55  85 115 145 175 205 235 265 295 325 355 385 415 445 475 505 535 565
## [20] 595 625 655 685 715 745 775 805 835 865 895
#Asignar los elementos de la muestra al data frame de datos
crimemuestrasis<- crime[muestrasis, ]

head(crimemuestrasis)
##     Var1   Var2 Freq
## 25  11.8 142.24    0
## 55  10.6 144.78    0
## 85   9.4 147.32    0
## 115 12.4 147.32    0
## 145 11.2 149.86    3
## 175   10  152.4    2

Tamaños de muestra simples

En este tutorial veremos tres variantes para cálculo de tamaño muestral asumiendo MIA.Para esto, utilizaremos la data de la ENAHO 2013 y la función nsize() incluída en el paquete SamplingUtil.

Como variable continua se utilizará la Cantidad de personas del hogar (TamHog), para el ejemplo de proporciones, se creará la variable Proporción de Hogares Unipersonales.

  1. Error relativo para variables continuas.

Se desea conocer el tamaño de muestra para que el error relativo no supere el 5%, con un alpha de 5%.

#Generando df de ENAHO2013 a nivel de hogar

df<- ENAHO2013 %>%  #Define nuevo data frame
  mutate(TamHog=as.numeric(TamHog), #Convierte TamHog a numérica
         phu=ifelse(TamHog>1,0,1)) %>% #Crea variable de prop Hog. Unipersonales.
  select(FACTOR:ZONA,TamHog,phu,-REGION) %>% #Selecciona variables de interés.
  group_by(SEGMENTO,CUESTIONARIO,HOGAR,ZONA) %>% #Genera esquema de agrupación.
  summarise(TamHog=mean(TamHog), #Cálculo de variables sumarizadas.
            phu=mean(phu)) %>%
  mutate(id=paste0(SEGMENTO,CUESTIONARIO,HOGAR,ZONA)) #Genera id único para uso posterior.
## `summarise()` regrouping output by 'SEGMENTO', 'CUESTIONARIO', 'HOGAR' (override with `.groups` argument)
#Cálculo del tamaño de muestra con error relativo

#Error relativo
r<-0.05

nsizeR<- nsize(x=df$TamHog,r=r,alpha=0.05)

nsizeR
## $n0
## [1] 782
## 
## $n_adjust
## [1] 731
  1. Error absoluto para variables continuas.
#Cálculo del tamaño de muestra con error absoluto

#Igualar el error absoluto con el error relativo

abs<-mean(df$TamHog)*r

nsizeA<- nsize(x=df$TamHog,abs=abs,alpha=0.05)

nsizeA
## $n0
## [1] 782
## 
## $n_adjust
## [1] 731
  1. Error relativo para variables dicotómicas.
#Cálculo de tamaño de muestra para proporción
nsizeP<- nsize(x=df$phu,abs=0.02,alpha=0.05)

nsizeP
## $n0
## [1] 924
## 
## $n_adjust
## [1] 854

Tamaños de muestra estratificados

  1. Asignación proporcional.
#Cálculo de las proporciones por estrato

Estratos<- df %>%
  select(ZONA,TamHog) %>%
  group_by(ZONA) %>%
  summarise(n=n(),
            s=sd(TamHog)) %>%
  mutate(p=n/sum(n))
## Adding missing grouping variables: `SEGMENTO`, `CUESTIONARIO`, `HOGAR`
## `summarise()` ungrouping output (override with `.groups` argument)
Estratos
## # A tibble: 2 x 4
##   ZONA       n     s     p
##   <fct>  <int> <dbl> <dbl>
## 1 Urbana  4790  3.15 0.427
## 2 Rural   6429  1.95 0.573
#Asignación de la muestra proporcional a los estratos
nsizeProp<-nstrata(n=nsizeR[[2]],wh=Estratos[,4],method="proportional")

nsizeProp
##     p
## 1 313
## 2 419
  1. Asignación óptima.
#Asignación de la muestra óptima a los estratos

#Costo de entrevista por estrato
ch<-c(5,10)

nsizeOpt<-nstrata(n=nsizeR[[2]],wh=Estratos[,4],sh=Estratos[,3],ch,method="optimal")
nsizeOpt
##     p
## 1 461
## 2 271
  1. Asignación de Neyman.
#Asignación de la muestra óptima a los estratos(asume costos iguales)

nsizeNeyman<-nstrata(n=nsizeR[[2]],wh=Estratos[,4],sh=Estratos[,3],method="neyman")
nsizeNeyman
##     p
## 1 400
## 2 332

Cálculo de intervalos de confianza asumiendo MIA

En R existen múltiples posibilidades de calcular los intervalos de confianza.Se utilizará el paquete DescTools para este propósito.Este paquete contiene muchas funciones misceláneas de las tareas estadísticas típicas.

Calcularemos el intervalo de confianza para la media del Tamaño del hogar, con el tamaño de muestra obtenida en el ejercicio anterior y posteriormente se comparará el error obtenido(suponiendo que el valor verdadero es el de total de la encuesta)

#Muestra sin reemplazo
muestra<- data.frame(df) %>%
  sample_n(size=nsizeR[[2]],replace=FALSE)

crimemuestramia2<- crime %>%
  sample_n(size=n,replace=FALSE)

#Intervalos de confianza 95% clásicos

ICTamHog<- MeanCI(x=muestra$TamHog, trim = 0,conf.level = 0.95, na.rm = FALSE)

ICTamHog
##     mean   lwr.ci   upr.ci 
## 3.433379 3.300361 3.566397
#Media del total de la encuesta
mean(df$TamHog)
## [1] 3.547134
#Diferencia relativa

difR<-paste0(abs(round((ICTamHog[1]-mean(df$TamHog))/mean(df$TamHog),3))*100,"%")

De esta manera, con este ejercicio comprobamos que el valor estimado cumple con los requisitos del error relativo deseado en el cálculo del tamaño muestral, ya que la diferencia fue de 4.3% inferior al 5 % deseado.

Selección de muestra con ppt(Paquete pps)

Hemos abarcado aspectos básicos del muestreo de elementos.A partir de ahora veremos algunos ejemplos de muestreo complejo.

Existen diversos paquetes para selecciones de muestras complejas en R, como el sampling o el samplingbook.En este caso se utilizará el pps que se concentra en muestreo mediante ppt y permite la selección sistemática estratificada.

En el siguiente ejercicio se seleccionará una muestra de UPM utilizando como tamaño la cantidad de hogares, estratificada por Zona,utilizando como base el tamaño de muestra ya calculado para la variable Tamaño del hogar.

Se debe obtener una muestra proporcional para cada estrato y seleccionar en cada conglomerado una submuestra de 5 hogares.

#Generar el dataframe de UPMS y su respectivo tamaño

UPMs<- df %>%
  mutate(TamHog=as.numeric(TamHog)) %>%
  select(SEGMENTO,ZONA,TamHog) %>%
  group_by(ZONA,SEGMENTO) %>%
  summarise(Mta=n()) %>%
  arrange(desc(ZONA),SEGMENTO)
## Adding missing grouping variables: `CUESTIONARIO`, `HOGAR`
## `summarise()` regrouping output by 'ZONA' (override with `.groups` argument)
head(UPMs)
## # A tibble: 6 x 3
## # Groups:   ZONA [1]
##   ZONA  SEGMENTO   Mta
##   <fct>    <dbl> <int>
## 1 Rural        1    12
## 2 Rural        3     9
## 3 Rural        6    10
## 4 Rural        7    12
## 5 Rural       13    10
## 6 Rural       14     6
#Se asigna proporcionalmente la muestra a cada estrato

#Recordemos la distribución proporcional de los estratos:
nsizeProp
##     p
## 1 313
## 2 419
#Cálculo del número de UPMs por estrato
b<-5
aurbano<- ceiling(nsizeProp[1,1]/b)
arural<- ceiling(nsizeProp[2,1]/b)

#Unir en un solo objeto para facilitar input de función
asizeppt<-rbind(aurbano,arural)
asizeppt
##         [,1]
## aurbano   63
## arural    84
#Selección de la muestra con PPT(sistemática)
muestrappt<-ppssstrat(sizes=UPMs$Mta,stratum=UPMs$ZONA,n=asizeppt[,1])
muestraUPMs<-UPMs[muestrappt,]

#Muestra de la selección
head(muestraUPMs)
## # A tibble: 6 x 3
## # Groups:   ZONA [1]
##   ZONA  SEGMENTO   Mta
##   <fct>    <dbl> <int>
## 1 Rural       13    10
## 2 Rural       27    11
## 3 Rural       42     9
## 4 Rural       57    11
## 5 Rural       71    10
## 6 Rural       81    10
tail(muestraUPMs)
## # A tibble: 6 x 3
## # Groups:   ZONA [1]
##   ZONA   SEGMENTO   Mta
##   <fct>     <dbl> <int>
## 1 Urbana     1034     8
## 2 Urbana     1061    11
## 3 Urbana     1076    13
## 4 Urbana     1093     9
## 5 Urbana     1110    11
## 6 Urbana     1132     7
#Verificar selección por estrato
Freq(muestraUPMs$ZONA)
##     level  freq   perc  cumfreq  cumperc
## 1  Urbana    64  43.5%       64    43.5%
## 2   Rural    83  56.5%      147   100.0%
#Procedimiento para seleccionar submuestras en cada cluster de tamaño fijo

#Listado de segmentos seleccionados
segs<- unique(muestraUPMs$SEGMENTO)
sample<- list()

#Identifica el número de columna del id(se requiere para el ciclo)

idcolnum<-which( colnames(df)=="id" )

#Ciclo para seleccionar la muestra en cada segmento
for(i in 1:length(segs)){
  subsample<-data.frame(df[which(df$SEGMENTO==segs[i]),])
  sample[[i]]<-sys.sample(nrow(subsample),b)
 #Previene de los números que se pasan del total del segmento
  #if(sample[[i]][b]>nrow(subsample)){
  #  sample[[i]][b]<-1
  #  }
 #Asigna en cada elemento de las submuestras los elem. seleccionados
 sample[[i]]<-subsample[unlist(sample[[i]]),idcolnum]
 }

#Genera el data frame de ids seleccionados(ya que estaban en una lista)
sampledf<-data.frame(id=unlist(sample))

#Uniendo el data frame de datos con la muestra seleccionada mendiante la llave creada
muestrappt<-inner_join(unique(sampledf),unique(df),by="id")

#Verificar el procedimiento
head(muestrappt)
##           id SEGMENTO CUESTIONARIO HOGAR  ZONA TamHog phu
## 1  1321Rural       13            2     1 Rural      1   1
## 2  1341Rural       13            4     1 Rural      2   0
## 3  1361Rural       13            6     1 Rural      2   0
## 4  1381Rural       13            8     1 Rural      4   0
## 5 13111Rural       13           11     1 Rural      1   1
## 6 13111Rural      131            1     1 Rural      6   0
Freq(muestrappt$ZONA)
##     level  freq   perc  cumfreq  cumperc
## 1  Urbana   322  43.3%      322    43.3%
## 2   Rural   422  56.7%      744   100.0%

Diseños de muestreo Complejos

Especificación diseños muestrales complejos(paquete survey)

Un paquete robusto para el cálculo correcto de estadísticos en diseños complejos es el survey.A continuación se ejemplifica la función svydesign, la cuál establece los diferentes parámetros para poder calcular los errores muestrales adecuadamente.Inicialmente utilizaremos la muestra con ppt seleccionada en el ejercicio anterior.

#Generar probabilidades

#Recordemos las medidas de tamaño por UPM:
UPMs
## # A tibble: 1,119 x 3
## # Groups:   ZONA [2]
##    ZONA  SEGMENTO   Mta
##    <fct>    <dbl> <int>
##  1 Rural        1    12
##  2 Rural        3     9
##  3 Rural        6    10
##  4 Rural        7    12
##  5 Rural       13    10
##  6 Rural       14     6
##  7 Rural       15     7
##  8 Rural       17    10
##  9 Rural       19     9
## 10 Rural       23    12
## # ... with 1,109 more rows
#Cálculo de prob en Primera etapa

#Estrato Urbano

UPMU<- UPMs %>%
  filter(ZONA=="Urbana") %>%
  group_by(ZONA) %>%
  mutate(fa=Mta/(sum(Mta)/aurbano),
         fb=b/Mta)

#Estrato Rural

UPMR<- UPMs %>%
  filter(ZONA=="Rural") %>%
  group_by(ZONA) %>%
  mutate(fa=Mta/(sum(Mta)/arural),
         fb=b/Mta)

#Unir ambos estratos

UPMs <- rbind(UPMU,UPMR)

#Incluir probabilidades en data frame de muestra
muestrappt2<- left_join(muestrappt,UPMs,by=c("SEGMENTO","ZONA"))


#Cargar paquete de muestreo complejo
library(survey)
## Loading required package: grid
## Loading required package: Matrix
## 
## Attaching package: 'Matrix'
## The following objects are masked from 'package:tidyr':
## 
##     expand, pack, unpack
## Loading required package: survival
## 
## Attaching package: 'survey'
## The following object is masked from 'package:graphics':
## 
##     dotchart
#Establecer el diseño muestral
design1<-svydesign(data=muestrappt2,id=~SEGMENTO+id,
                   strata=~ZONA,pps="brewer",prob=~fa+fb)

#Resumen del diseño
summary(design1)
## Stratified 2 - level Cluster Sampling design (with replacement)
## With (154, 744) clusters.
## svydesign(data = muestrappt2, id = ~SEGMENTO + id, strata = ~ZONA, 
##     pps = "brewer", prob = ~fa + fb)
## Probabilities:
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## 0.06533 0.06533 0.06533 0.06552 0.06576 0.06576 
## First-level Stratum Sizes: 
##            Rural Urbana
## obs          422    322
## design.PSU    88     66
## actual.PSU    88     66
## Data variables:
##  [1] "id"           "SEGMENTO"     "CUESTIONARIO" "HOGAR"        "ZONA"        
##  [6] "TamHog"       "phu"          "Mta"          "fa"           "fb"

Estadísticos en diseños muestrales complejos

#Calculando estadísticos de TamHog

TamHogmc<- svymean(~TamHog,design=design1,deff=TRUE)

#Media del Tamaño del hogar
TamHogmc
##            mean       SE   DEff
## TamHog 3.548880 0.087956 1.1058
#Efecto del diseño
deff(TamHogmc)
##  TamHog 
## 1.10584
#Intervalo de confianza
confint(TamHogmc)
##           2.5 %   97.5 %
## TamHog 3.376489 3.721272
#Coeficiente de variación
cv(TamHogmc)
##            TamHog
## TamHog 0.02478429
#Diferencia relativa

difRc<-paste0(abs(round((TamHogmc[1]-mean(df$TamHog))/mean(df$TamHog),3))*100,"%")

De esta manera, con este ejercicio comprobamos que el valor estimado cumple con los requisitos del error relativo deseado en el cálculo del tamaño muestral, ya que la diferencia fue de 2.7% inferior al 5 % deseado.

Ejemplo con diseño complejo real

Finalmente, se desarrollará un ejemplo con un diseño complejo real,utilizando la ENAHO 2012.

El diseño muestral se detalla a continuación:

Diseño muestral: diseño probabilístico, estratificado y bietápico. En la primera etapa se seleccionaron segmentos censales o unidades primarias de muestreo (UPM) con probabilidad proporcional al tamaño (PPT), y en la segunda etapa se seleccionaron las viviendas o unidades secundarias de muestreo (USM) con probabilidades iguales de selección dentro de cada segmento, mediante muestreo sistemático con arranque aleatorio.

Dominios de estudio: las seis regiones de planificación y las zonas urbana y rural.

#Objetos para generar variables(debido a que el Dataframe de ENAHO2012 tiene las labels del SPSS y no los valores)

profesionales<- c("Profesionales científicos e intelectuales")
tecnicos<- c("Técnicos y profesionales de nivel medio")

#Generando df de ENAHO2012 a nivel de hogar

df12<- ENAHO2012 %>%  #Define nuevo data frame
  mutate(pobre=ifelse(np=="No pobre",0,1), #Crea variable de pobreza.
         Profesional=ifelse(OcupFuerzaTrab==profesionales,1,0), #Crea flag de Profesional.
         Tecnico=ifelse(OcupFuerzaTrab==tecnicos,1,0)) %>%  #Crea flag de tecnico.
  select(FACTOR:ZONA,pobre,Profesional,Tecnico,ipcn) %>% #Selecciona variables de interés.
  group_by(SEGMENTO,CUESTIONARIO,HOGAR,ZONA,REGION) %>% #Genera esquema de agrupación.
  summarise(Factor=mean(FACTOR),
            pobre=mean(pobre),
            Profesionales=sum(Profesional),
            Tecnicos=sum(Tecnico),
            Ingreso=mean(ipcn)) %>%
  mutate(id=paste0(SEGMENTO,CUESTIONARIO,HOGAR,ZONA,REGION)) #Genera id único para uso posterior.
## `summarise()` regrouping output by 'SEGMENTO', 'CUESTIONARIO', 'HOGAR', 'ZONA' (override with `.groups` argument)
#Establecer el diseño muestral

design2<-svydesign(data=df12,id=~SEGMENTO+id,
                   strata=~REGION+ZONA,pps="brewer",weights=~Factor)

summary(design2)
## Stratified 2 - level Cluster Sampling design (with replacement)
## With (1120, 11374) clusters.
## svydesign(data = df12, id = ~SEGMENTO + id, strata = ~REGION + 
##     ZONA, pps = "brewer", weights = ~Factor)
## Probabilities:
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## 0.001403 0.008065 0.015385 0.016031 0.021277 0.062500 
## First-level Stratum Sizes: 
##            Brunca Central Chorotega Huetar Atlántica Huetar Norte
## obs          1598    4940      1220             1218         1254
## design.PSU    160     468       116              128          124
## actual.PSU    160     468       116              128          124
##            Pacífico Central
## obs                    1144
## design.PSU              124
## actual.PSU              124
## Data variables:
##  [1] "SEGMENTO"      "CUESTIONARIO"  "HOGAR"         "ZONA"         
##  [5] "REGION"        "Factor"        "pobre"         "Profesionales"
##  [9] "Tecnicos"      "Ingreso"       "id"
#Calculando estadísticos de Pobreza por hogar nacionales

#Porcentaje de pobreza
pobremc<- svymean(~pobre,design=design2,deff=TRUE,na.rm=TRUE)

#Media de pobreza
pobremc
##            mean        SE  DEff
## pobre 0.2067336 0.0063786 2.836
#Efecto del diseño
deff(pobremc)
##    pobre 
## 2.835952
#Intervalo de confianza
confint(pobremc)
##           2.5 %    97.5 %
## pobre 0.1942318 0.2192355
#Coeficiente de variación
cv(pobremc)
##           pobre
## pobre 0.0308542
#Total de pobres
pobretmc<-svytotal(~pobre,design=design2, deff=TRUE,na.rm=TRUE)

pobretmc
##        total     SE   DEff
## pobre 279514  10334 4.0715
#Efecto del diseño
deff(pobretmc)
##    pobre 
## 4.071516
#Intervalo de confianza
confint(pobretmc)
##          2.5 %   97.5 %
## pobre 259260.8 299767.2
#Coeficiente de variación
cv(pobretmc)
##            pobre
## pobre 0.03696945
#Estimación de quantiles(Ingreso per cápita)
ingresoq<- svyquantile(~Ingreso,quantile= seq(0.2,1,0.2),design=design2, deff=TRUE,na.rm=TRUE)

ingresoq
##             0.2      0.4      0.6    0.8        1
## Ingreso 85889.4 149602.9 245042.2 433385 13059042
#Cálculo de razón(Profesionales/Técnicos)
ptratio<- svyratio(~Profesionales, ~Tecnicos, design=design2, deff=TRUE,na.rm=TRUE)

ptratio
## Ratio estimator: svyratio.survey.design2(~Profesionales, ~Tecnicos, design = design2, 
##     deff = TRUE, na.rm = TRUE)
## Ratios=
##               Tecnicos
## Profesionales 1.257501
## SEs=
##                Tecnicos
## Profesionales 0.1431679
#Efecto del diseño
deff(ptratio)
## [1] 2.278801
#Intervalo de confianza
confint(ptratio)
##                            2.5 %   97.5 %
## Profesionales/Tecnicos 0.9768973 1.538105
#Coeficiente de variación
cv(ptratio)
##                Tecnicos
## Profesionales 0.1138511
#Estimaciones por estrato(Zona)

pobremZ<-svyby(~pobre, ~ZONA, design2, svymean,deff=TRUE,na.rm=TRUE)

#Media de pobreza por zona
pobremZ
##          ZONA     pobre          se DEff.pobre
## Urbana Urbana 0.1834762 0.008193071   2.200074
## Rural   Rural 0.2714831 0.007898585   2.071340
#Efecto del diseño
deff(pobremZ)
## [1] 2.200074 2.071340
#Intervalo de confianza
confint(pobremZ)
##            2.5 %    97.5 %
## Urbana 0.1674180 0.1995343
## Rural  0.2560022 0.2869640
#Coeficiente de variación
cv(pobremZ)
##     Urbana      Rural 
## 0.04465469 0.02909420
#Estimaciones por estrato(Región)

pobremR<-svyby(~pobre,~REGION, design2, svymean,deff=TRUE,na.rm=TRUE)

#Media de pobreza por zona
pobremR
##                            REGION     pobre          se DEff.pobre
## Central                   Central 0.1613506 0.008443248   2.602328
## Chorotega               Chorotega 0.3356425 0.018022067   1.795762
## Pacífico Central Pacífico Central 0.2688588 0.022885659   3.090166
## Brunca                     Brunca 0.3332134 0.021407389   3.339586
## Huetar Atlántica Huetar Atlántica 0.2480790 0.020845431   2.861739
## Huetar Norte         Huetar Norte 0.2320398 0.017439694   2.156538
#Efecto del diseño
deff(pobremR)
## [1] 2.602328 1.795762 3.090166 3.339586 2.861739 2.156538
#Intervalo de confianza
confint(pobremR)
##                      2.5 %    97.5 %
## Central          0.1448021 0.1778990
## Chorotega        0.3003199 0.3709651
## Pacífico Central 0.2240038 0.3137139
## Brunca           0.2912557 0.3751712
## Huetar Atlántica 0.2072227 0.2889353
## Huetar Norte     0.1978586 0.2662210
#Coeficiente de variación
cv(pobremR)
##          Central        Chorotega Pacífico Central           Brunca 
##       0.05232859       0.05369424       0.08512146       0.06424527 
## Huetar Atlántica     Huetar Norte 
##       0.08402738       0.07515820
#Estimaciones combinadas

pobremZR<-svyby(~pobre,~REGION+ZONA, design2, svymean,deff=TRUE,na.rm=TRUE)

Comparativa de las estimaciones publicadas y estimadas en el ejercicio

Para comparar la calidad de las estimaciones, se realizará una comparación entre la medición puntual de % de hogares pobres por Región.Acá(página 68 del documento) se encuentra el resultado oficial.

Referencias

[1] T. Lumley. Complex Surveys. John Wiley & Sons, Inc., NA. DOI: 10.1002/9780470580066. .

Asignación pt2

Importen datos de ustedes y realizar un muestreo de algún tipo a ellos

Encuesta realizada mediante formularios de Google.

En caso de necesitar un nuevo equipo celular, ¿cuál es la cantidad máxima de dinero que pagaría por el dispositivo?

Encuesta <- read_excel("Encuesta_CuantoPagariasPorUnCelular.xlsx", 
    col_types = c("text", "text", "text", 
        "numeric", "numeric"))

datatable(Encuesta)

Selección de muestras simples

Muestreo irrestricto Aleatorio(MIA):

#Marco de datos
genero <- Encuesta$Género
edad <- Encuesta$Edad
cantidad <- Encuesta$Cantidad

pagaria <- data.frame(genero,edad,cantidad)

#Dimensiones del marco de datos
dim(pagaria)
## [1] 20  3
#Visualización de los datos
head(pagaria)
##   genero edad cantidad
## 1 Hombre   20    15000
## 2  Mujer   20     8000
## 3 Hombre   19     3500
## 4 Hombre   19    15000
## 5 Hombre   20     6000
## 6  Mujer   20     8000
#Selección de la muestra

#Tamaño de la muestra
n<-5

muestraE <- sample(1:nrow(pagaria),size=n,replace=FALSE)
muestraE
## [1] 12  5  2  6 18
#Asignar los elementos de la muestra al data frame de datos
muestraEncuesta <- pagaria[muestraE, ]

head(muestraEncuesta)
##    genero edad cantidad
## 12 Hombre   20    13000
## 5  Hombre   20     6000
## 2   Mujer   20     8000
## 6   Mujer   20     8000
## 18 Hombre   19     3000

Selección de muestras simples con dplyr

muestraEncuesta2 <- pagaria %>%
  sample_n(size=n,replace=FALSE)

head(muestraEncuesta2)
##   genero edad cantidad
## 1  Mujer   19     7500
## 2  Mujer   20     8000
## 3 Hombre   20    15000
## 4  Mujer   20   150000
## 5 Hombre   19    15000

Conclusión

Un adecuado muestreo probabilístico, aquel que obtiene como resultado una muestra representativa del conjunto de datos (con datos equitativos para estratos, y equiprobable), permite ahorrar mucho trabajo y tiempo en ciencia de datos, y a su vez, su principal función es servir como objeto de estudio para la deducción de las características de la población total.