Installing Packages
#install.packages("survey")
#install.packages("sampling")
Loading Packages
library(survey)
## Warning: package 'survey' was built under R version 4.5.3
## Loading required package: grid
## Loading required package: Matrix
## Loading required package: survival
##
## Attaching package: 'survey'
## The following object is masked from 'package:graphics':
##
## dotchart
library(sampling)
## Warning: package 'sampling' was built under R version 4.5.3
##
## Attaching package: 'sampling'
## The following objects are masked from 'package:survival':
##
## cluster, strata
Reading Data
base <- readRDS("C:/Users/Mayo Luz/Documents/Cursos_2024/Muestreo_estadistico/PracticaR_2024/Marco.rds")
Data Structure and Visualization Commands
#str(base)
View(head(base,n=50))
Creating the Bogotá Dataset
base_bogota=subset(base,base$COLE_COD_MCPIO_UBICACION==11001)
str() Command for the Bogotá Dataset
#str(base_bogota)
Creating the Academic School Variable
base_bogota$academico=ifelse(base_bogota$COLE_CARACTER=="ACADÉMICO",1,0)
names() and attach() Commands
#str(base_bogota)
#names(base_bogota)
attach(base_bogota)
n.mas() Function
n.mas=function(tipo,N,s,e,p,alpha){
if(tipo=="t"){n=round((qnorm(1-alpha/2)^2*N^2*s^2)/(e^2+qnorm(1-alpha/2)^2*N*s^2),0)}
if(tipo=="t"){return(n)}
if(tipo=="m"){n=round((qnorm(1-alpha/2)^2*s^2)/(e^2+(qnorm(1-alpha/2)^2*s^2/N)),0)}
if(tipo=="m"){return(n)}
if(tipo=="p"){n=round((qnorm(1-alpha/2)^2*(N/(N-1))*p*(1-p))/(e^2+(qnorm(1-alpha/2)^2*(N/(N-1))*p*(1-p)*(1/N))),0)
if(tipo=="p"){return(n)}
}
}
Example 1: Sample Size Calculation
tipo="p"
N=nrow(base_bogota)
p=0.5
e=0.04
alpha=0.05
n.mas(tipo,N,s,e,p,alpha)
## [1] 596
Negative Coordinated Algorithm for Sample Selection in R
s.mas=function(base,n,seed){
N=nrow(base)
set.seed(seed)
base$u=runif(nrow(base))
base=base[with(base,order(base$u)),]
base=base[1:n,]
base$pik=n/N
return(base)
}
Example 2: Sample Selection via Negative Coordinated
n=596
seed=123
muestra=s.mas(base_bogota,n,seed)
#str(muestra)
View(head(muestra,n=4))
#names(muestra)
Fan-Muller-Rezucha Method for Sample Selection
Fan_Muller=function(base,n,seed){
N=nrow(base)
j = 0
m = numeric(N)
set.seed(seed)
for (k in 1:N) if (runif(1) < (n - j)/(N - k + 1)) {
j = j + 1
m[k] = 1}
return(m)
}
Example 3: Fan-Muller-Rezucha Method
n=596
seed=123
m=Fan_Muller(base_bogota,n,seed)
muestra2=base[which(m==1),]
#str(muestra2)
#head(muestra2)
Enhanced Output Function for the Pi-Estimator
salida=function(est,alpha){
est=as.data.frame(est)
names(est)[2]="se"
est$cv=100*(est$se/est[,1])
est$ic_low=est[,1]-qnorm(1-alpha/2)*est$se
est$ic_upp=est[,1]+qnorm(1-alpha/2)*est$se
return(round(est,2))
}
Defining some objects
N=nrow(base_bogota)
muestra$ind=rep(1,nrow(muestra))
muestra$Fexp=1/muestra$pik
attach(muestra)
## The following objects are masked from base_bogota:
##
## academico, COLE_AREA_UBICACION, COLE_BILINGUE, COLE_CALENDARIO,
## COLE_CARACTER, COLE_COD_DANE_ESTABLECIMIENTO, COLE_COD_DANE_SEDE,
## COLE_COD_DEPTO_UBICACION, COLE_COD_MCPIO_UBICACION,
## COLE_CODIGO_ICFES, COLE_DEPTO_UBICACION, COLE_GENERO, COLE_JORNADA,
## COLE_MCPIO_UBICACION, COLE_NATURALEZA, COLE_NOMBRE_ESTABLECIMIENTO,
## COLE_NOMBRE_SEDE, COLE_SEDE_PRINCIPAL, DESEMP_C_NATURALES,
## DESEMP_INGLES, DESEMP_LECTURA_CRITICA, DESEMP_MATEMATICAS,
## DESEMP_SOCIALES_CIUDADANAS, ESTU_COD_DEPTO_PRESENTACION,
## ESTU_COD_MCPIO_PRESENTACION, ESTU_COD_RESIDE_DEPTO,
## ESTU_COD_RESIDE_MCPIO, ESTU_CONSECUTIVO, ESTU_DEDICACIONINTERNET,
## ESTU_DEDICACIONLECTURADIARIA, ESTU_DEPTO_PRESENTACION,
## ESTU_DEPTO_RESIDE, ESTU_ESTADOINVESTIGACION, ESTU_ESTUDIANTE,
## ESTU_ETNIA, ESTU_FECHANACIMIENTO, ESTU_GENERACION.E, ESTU_GENERO,
## ESTU_HORASSEMANATRABAJA, ESTU_INSE_INDIVIDUAL,
## ESTU_MCPIO_PRESENTACION, ESTU_MCPIO_RESIDE, ESTU_NACIONALIDAD,
## ESTU_NSE_ESTABLECIMIENTO, ESTU_NSE_INDIVIDUAL, ESTU_PAIS_RESIDE,
## ESTU_PRIVADO_LIBERTAD, ESTU_TIENEETNIA, ESTU_TIPODOCUMENTO,
## ESTU_TIPOREMUNERACION, FAMI_COMECARNEPESCADOHUEVO,
## FAMI_COMECEREALFRUTOSLEGUMBRE, FAMI_COMELECHEDERIVADOS,
## FAMI_CUARTOSHOGAR, FAMI_EDUCACIONMADRE, FAMI_EDUCACIONPADRE,
## FAMI_ESTRATOVIVIENDA, FAMI_NUMLIBROS, FAMI_PERSONASHOGAR,
## FAMI_SITUACIONECONOMICA, FAMI_TIENEAUTOMOVIL, FAMI_TIENECOMPUTADOR,
## FAMI_TIENECONSOLAVIDEOJUEGOS, FAMI_TIENEHORNOMICROOGAS,
## FAMI_TIENEINTERNET, FAMI_TIENELAVADORA, FAMI_TIENEMOTOCICLETA,
## FAMI_TIENESERVICIOTV, FAMI_TRABAJOLABORMADRE,
## FAMI_TRABAJOLABORPADRE, PERCENTIL_C_NATURALES, PERCENTIL_GLOBAL,
## PERCENTIL_INGLES, PERCENTIL_LECTURA_CRITICA, PERCENTIL_MATEMATICAS,
## PERCENTIL_SOCIALES_CIUDADANAS, PERIODO, PUNT_C_NATURALES,
## PUNT_GLOBAL, PUNT_INGLES, PUNT_LECTURA_CRITICA, PUNT_MATEMATICAS,
## PUNT_SOCIALES_CIUDADANAS
Creating the “dsgn” Objec
dsgn=svydesign(id=~1,fpc=~rep(N,n),data=muestra,weights=~Fexp)
Estimation of the Population Total
(est=svytotal(~academico,dsgn,deff=TRUE))
## total SE DEff
## academico 69628.9 1238.5 1
alpha=0.05
(tabla=salida(est,alpha))
## total se deff cv ic_low ic_upp
## academico 69628.91 1238.53 1 1.78 67201.44 72056.38
Estimation of the Population Mean
(est1=svymean(~PUNT_MATEMATICAS,dsgn,deff=TRUE))
## mean SE DEff
## PUNT_MATEMATICAS 54.73993 0.45126 1
alpha=0.05
(tabla1=salida(est1,alpha))
## mean se deff cv ic_low ic_upp
## PUNT_MATEMATICAS 54.74 0.45 1 0.82 53.86 55.62
Estimation of the Population Proportion
(est2=svymean(~DESEMP_INGLES,dsgn,deff=TRUE))
## mean SE DEff
## DESEMP_INGLESA- 0.2818792 0.0183782 1
## DESEMP_INGLESA1 0.3271812 0.0191653 1
## DESEMP_INGLESA2 0.2651007 0.0180299 1
## DESEMP_INGLESB+ 0.0251678 0.0063982 1
## DESEMP_INGLESB1 0.1006711 0.0122909 1
alpha=0.05
(tabla2=salida(est2,alpha))
## mean se deff cv ic_low ic_upp
## DESEMP_INGLESA- 0.28 0.02 1 6.52 0.25 0.32
## DESEMP_INGLESA1 0.33 0.02 1 5.86 0.29 0.36
## DESEMP_INGLESA2 0.27 0.02 1 6.80 0.23 0.30
## DESEMP_INGLESB+ 0.03 0.01 1 25.42 0.01 0.04
## DESEMP_INGLESB1 0.10 0.01 1 12.21 0.08 0.12
Estimation of the Population Mean for Multiple Variables
(est3=svymean(~PUNT_GLOBAL+PUNT_LECTURA_CRITICA+PUNT_MATEMATICAS+PUNT_C_NATURALES+
PUNT_SOCIALES_CIUDADANAS+PUNT_INGLES
,dsgn))
## mean SE
## PUNT_GLOBAL 265.985 1.9232
## PUNT_LECTURA_CRITICA 55.676 0.3823
## PUNT_MATEMATICAS 54.740 0.4513
## PUNT_C_NATURALES 51.743 0.4040
## PUNT_SOCIALES_CIUDADANAS 50.287 0.4755
## PUNT_INGLES 54.196 0.4852
alpha=0.05
(tabla3=salida(est3,alpha))
## mean se cv ic_low ic_upp
## PUNT_GLOBAL 265.98 1.92 0.72 262.22 269.75
## PUNT_LECTURA_CRITICA 55.68 0.38 0.69 54.93 56.43
## PUNT_MATEMATICAS 54.74 0.45 0.82 53.86 55.62
## PUNT_C_NATURALES 51.74 0.40 0.78 50.95 52.54
## PUNT_SOCIALES_CIUDADANAS 50.29 0.48 0.95 49.36 51.22
## PUNT_INGLES 54.20 0.49 0.90 53.25 55.15
Estimación del tamaño absoluto de un dominio
(est4=svyby(~ind,~ESTU_GENERACION.E,dsgn,svytotal))
## ESTU_GENERACION.E
## GENERACION E - EXCELENCIA NACIONAL GENERACION E - EXCELENCIA NACIONAL
## GENERACION E - GRATUIDAD GENERACION E - GRATUIDAD
## NO NO
## ind se
## GENERACION E - EXCELENCIA NACIONAL 138.9799 138.479
## GENERACION E - GRATUIDAD 16816.5638 1361.021
## NO 65876.4564 1365.194
est4=as.data.frame(est4)
table(ESTU_GENERACION.E)
## ESTU_GENERACION.E
## GENERACION E - EXCELENCIA NACIONAL GENERACION E - GRATUIDAD
## 1 121
## NO
## 474
(est4=est4[,-1])
## ind se
## GENERACION E - EXCELENCIA NACIONAL 138.9799 138.479
## GENERACION E - GRATUIDAD 16816.5638 1361.021
## NO 65876.4564 1365.194
alpha=0.05
(tabla4=salida(est4,alpha))
## ind se cv ic_low ic_upp
## GENERACION E - EXCELENCIA NACIONAL 138.98 138.48 99.64 -132.43 410.39
## GENERACION E - GRATUIDAD 16816.56 1361.02 8.09 14149.01 19484.12
## NO 65876.46 1365.19 2.07 63200.73 68552.19
Estimation of the Total of a Variable Within a Domain
(est5=svyby(~academico,~ESTU_GENERACION.E,dsgn,deff=T,svytotal))
## ESTU_GENERACION.E
## GENERACION E - EXCELENCIA NACIONAL GENERACION E - EXCELENCIA NACIONAL
## GENERACION E - GRATUIDAD GENERACION E - GRATUIDAD
## NO NO
## academico se DEff.academico
## GENERACION E - EXCELENCIA NACIONAL 138.9799 138.479 NA
## GENERACION E - GRATUIDAD 13342.0671 1243.787 4.033613
## NO 56147.8658 1581.126 2.180456
est5=as.data.frame(est5)
est5=est5[,-1]
alpha=0.05
(tabla5=salida(est5,alpha))
## academico se DEff.academico cv
## GENERACION E - EXCELENCIA NACIONAL 138.98 138.48 NA 99.64
## GENERACION E - GRATUIDAD 13342.07 1243.79 4.03 9.32
## NO 56147.87 1581.13 2.18 2.82
## ic_low ic_upp
## GENERACION E - EXCELENCIA NACIONAL -132.43 410.39
## GENERACION E - GRATUIDAD 10904.29 15779.84
## NO 53048.91 59246.82
Estimation of the Population Mean Within a Domain
(est6=svyby(~PUNT_MATEMATICAS,~ESTU_GENERACION.E,dsgn,deff=T,svymean))
## ESTU_GENERACION.E
## GENERACION E - EXCELENCIA NACIONAL GENERACION E - EXCELENCIA NACIONAL
## GENERACION E - GRATUIDAD GENERACION E - GRATUIDAD
## NO NO
## PUNT_MATEMATICAS se
## GENERACION E - EXCELENCIA NACIONAL 70.00000 0.0000000
## GENERACION E - GRATUIDAD 50.42975 0.9572196
## NO 55.80802 0.4988673
## DEff.PUNT_MATEMATICAS
## GENERACION E - EXCELENCIA NACIONAL NA
## GENERACION E - GRATUIDAD 0.9934023
## NO 0.9995674
est6=as.data.frame(est6)
est6=est6[,-1]
alpha=0.05
(tabla6=salida(est6,alpha))
## PUNT_MATEMATICAS se DEff.PUNT_MATEMATICAS
## GENERACION E - EXCELENCIA NACIONAL 70.00 0.00 NA
## GENERACION E - GRATUIDAD 50.43 0.96 0.99
## NO 55.81 0.50 1.00
## cv ic_low ic_upp
## GENERACION E - EXCELENCIA NACIONAL 0.00 70.00 70.00
## GENERACION E - GRATUIDAD 1.90 48.55 52.31
## NO 0.89 54.83 56.79