Este documento pretende revisar aspectos básicos del muestreo estratificado; además, pretende explicar, con ejemplos prácticos, las diferencias entre los diferentes tipos de afijación utilizados en este tipo de muestreo.
Responsabilidad de autor: el ejercicio mostrado a continuación ha sido fruto de practicas desarrolladas en las secciones de la asignatura Introducción al muestreo del programa de Maestría en Bioestadística impartido por el Departamento de Epidemiología Clínica y Bioestadística de la Facultad de Medicina de la Pontificia Universidad Javeriana; sin embargo, la información mostrada acá es responsabilidad del autor.
Por otro lado, los datos utilizados solo deben ser usados con fines académicos, no pueden ser objeto de estudios para hacer inferenciass ni se podrán ser extrapolados para otras poblaciones u otros contextos diferentes al mostrado en este documento. Adicionalmente, estos pueden ser ejecutados desde cualquier ordenador, ya que la base de datos utilizada para esta sesión está colgada en la web, usando la base de datos “Ecardiaca”.
Las variables contenidas en esta base de datos son las siguientes:
Variable | Descripción | Categoría/codificación/unidad de medida |
---|---|---|
age | Edad | Años |
sex | Sexo | 1=hombre ; 0= Mujer |
dolorPecho | Dolor de pecho | 0=typical; 1=asymptotic; 2= nonanginal; 3=nontypical |
presionArtR | Presión arterial en reposo | mm/Hg |
colesterol | Colesterol sérico | mg/d |
glucemiaAYU | Glucemia en ayunas | > 120 mg/dl (1 = true; 0 = false) |
frecCardiacaMax | Frecuencia cardíaca máxima | lpm |
Angina | Angina inducida por ejercicio | 1 = yes; 0 = no |
ecardiaca | Diagnóstico de enfermedad cardíaca | 1 = yes; 0 = no |
#Librerías a utilizar
library(table1)
library(survey)
library(sampling)
library(dplyr)
library(knitr)
Usando los datos Ecardiaca que se ha anexado y que solo puede ser usada para efectos académicos de este curso, vamos a proceder a leer los datos, categorizar las variables y añadir las etiquetas de como queremos visualizar en las tablas y gráficos:
#Lectura de los datos
<- "https://docs.google.com/spreadsheets/d/e/2PACX-1vTftOkWL5QYCmpE37JHQsdMMeZLWLcfrkmkhdz6Is-kXsEMz5b95xd2GrxjxfJL_w/pub?gid=911434875&single=true&output=csv"
url_base <-read.csv(url_base, sep = ",")
Ecardiaca
label(Ecardiaca$edad) <- "Edad (años)"
$sexo <- factor(Ecardiaca$sexo, labels = c("Mujer","Hombre"))
Ecardiacalabel(Ecardiaca$sexo) <- "Sexo"
$dolorPecho <- factor(Ecardiaca$dolorPecho, labels = c("typical","asymptotic","nonanginal","nontypical"))
Ecardiacalabel(Ecardiaca$dolorPecho) <- "Dolor de pecho"
label(Ecardiaca$presionArtR) <- "Presión arterial (mm Hg)"
label(Ecardiaca$colesterol) <- "Nivel de colesterol (mg/dL)"
$glucemiaAYU <- factor(Ecardiaca$glucemiaAYU, labels = c("< 120 mg/dl","> 120 mg/dl"))
Ecardiacalabel(Ecardiaca$glucemiaAYU) <- "Glucemia en ayunas (mg/dL)"
label(Ecardiaca$frecCardiacaMax) <- "Frecuencia cardíaca máxima"
$Angina <- factor(Ecardiaca$Angina, labels = c("No","Si"))
Ecardiacalabel(Ecardiaca$Angina) <- "Angina"
$ecardiaca <- factor(Ecardiaca$ecardiaca, labels = c("No","Si"))
Ecardiacalabel(Ecardiaca$ecardiaca) <- "Enfermedad cardiaca"
head(Ecardiaca, 5)
## edad sexo dolorPecho presionArtR colesterol glucemiaAYU frecCardiacaMax
## 1 63 Hombre nontypical 145 233 > 120 mg/dl 150
## 2 37 Hombre nonanginal 130 250 < 120 mg/dl 187
## 3 41 Mujer asymptotic 130 204 < 120 mg/dl 172
## 4 56 Hombre asymptotic 120 236 < 120 mg/dl 178
## 5 57 Mujer typical 120 354 < 120 mg/dl 163
## Angina ecardiaca
## 1 No Si
## 2 No Si
## 3 No Si
## 4 No Si
## 5 Si Si
A continuación haremos un breve análisis descriptivo de los datos para conocer sus características como valores atípicos, posibles errores de edición, valores faltantes, entre otros.
En la tabla 1 se muestran las características de los pacientes incluidos en muestra base de datos. La mayoría de los pacientes pertenecen al sexo masculino (207/303=68%), con una edad promedio de 54.4 años (DE. 9.08), la presión arterial promedio fue de 132 mm/Hg (de. 17.5) con un nivel de colesterol promedio alrededor de 146 mg/dL (de. 51.8). Por otro lado, cerca del 15% presentó niveles de glucemia mayores a 120 mg/dL, el promedio de la la frecuencia cardíaca máxima tomada fue 150 (de. 22.9), alrededor del 33% presentó angina de pecho y cerca del 55% presento alguna enfermedad cardíaca.
table1(~ edad + dolorPecho + presionArtR +
+ glucemiaAYU + frecCardiacaMax + Angina + ecardiaca | sexo,
colesterol data = Ecardiaca,
rowlabelhead = "Características",
caption = "Tabla 1: Descriptivos de las variables por sexo",
footnote = "Fuente: 'Ecardiaca'",
overall = "General"
)
Características | Mujer (N=96) |
Hombre (N=207) |
General (N=303) |
---|---|---|---|
Fuente: 'Ecardiaca' | |||
Edad (años) | |||
Mean (SD) | 55.7 (9.41) | 53.8 (8.88) | 54.4 (9.08) |
Median [Min, Max] | 57.0 [34.0, 76.0] | 54.0 [29.0, 77.0] | 55.0 [29.0, 77.0] |
Dolor de pecho | |||
typical | 39 (40.6%) | 104 (50.2%) | 143 (47.2%) |
asymptotic | 18 (18.8%) | 32 (15.5%) | 50 (16.5%) |
nonanginal | 35 (36.5%) | 52 (25.1%) | 87 (28.7%) |
nontypical | 4 (4.2%) | 19 (9.2%) | 23 (7.6%) |
Presión arterial (mm Hg) | |||
Mean (SD) | 133 (19.3) | 131 (16.7) | 132 (17.5) |
Median [Min, Max] | 131 [94.0, 200] | 130 [94.0, 192] | 130 [94.0, 200] |
Nivel de colesterol (mg/dL) | |||
Mean (SD) | 261 (65.1) | 239 (42.8) | 246 (51.8) |
Median [Min, Max] | 253 [141, 564] | 235 [126, 353] | 240 [126, 564] |
Glucemia en ayunas (mg/dL) | |||
< 120 mg/dl | 84 (87.5%) | 174 (84.1%) | 258 (85.1%) |
> 120 mg/dl | 12 (12.5%) | 33 (15.9%) | 45 (14.9%) |
Frecuencia cardíaca máxima | |||
Mean (SD) | 151 (20.0) | 149 (24.1) | 150 (22.9) |
Median [Min, Max] | 157 [96.0, 192] | 151 [71.0, 202] | 153 [71.0, 202] |
Angina | |||
No | 74 (77.1%) | 130 (62.8%) | 204 (67.3%) |
Si | 22 (22.9%) | 77 (37.2%) | 99 (32.7%) |
Enfermedad cardiaca | |||
No | 24 (25.0%) | 114 (55.1%) | 138 (45.5%) |
Si | 72 (75.0%) | 93 (44.9%) | 165 (54.5%) |
boxplot(Ecardiaca$colesterol~Ecardiaca$sexo,
xlab = "Sexo",
ylab = "Nivel de colesterol (mg/dL)",
main = "Boxplot niveles de colesterol según sexo"
)
Siéntase en la libertad de explorar a más profundidad el análisis descriptivo de los datos.
Ejercicio A. Obtenga una muestra estratificada, de 60 sujetos utilizando una estratificación por sexo con afijación simple, en ella obtenga la estimación del promedio y la varianza para la variable nivel de colesterol.
Para llevar a cabo la muestra estratificada, el primer elemento a tomar en cuenta es la proporción de sujetos o pesos en cada estrato (\(W_h\)). En nuestro caso, estratificación por sexo, contamos con dos (2) estratos (hombres y mujeres). La proporción de hombres en nuestra población es de 68%, mientras que la proporción de mujeres es de 32%. De ahora en adelante se utilizará la siguiente notación: \(W_h\) para hombres y \(W_m\) para mujeres.
De modo que el mandato pide afijación simple, el tamaño para cada uno de los estratos viene dado de la siguiente formula:
\(n_h=\frac{n}{L}\)
donde L es el número de estratos a conformar y n es el tamaño de la muestra, entonces,
\(n_h=\frac{60}{2}=30\).
El número de sujetos a muestrear en cada estrato es \(n_{h}=30\) y \(n_{m}=30\).
Para seleccionar la muestra haremos uso de las funciones “strata” y “getdata” de los paquetes “survey” y “sampling”, además, utilizaremos una semilla para poder replicar los resultados obtenidos.
set.seed(3215315) # Semilla para poder replicar los resultados
<- strata( #Función a utilizar para obtener la posición de los elementos a extraer, su probabilidad y el estrato de donde se obtuvo.
st data=Ecardiaca, # Base de datos de donde se extraerán las posiciones para la muestra
stratanames=c("sexo"), # variable por la cual vamos a estratificar
size=c(30,30), # tamaño de muestra para cada estrato (afijación simple)
method=c("srswor")) # Método de extracción de los datos, en este caso especificamos "srswor" (sin reemplazo)
<- getdata(Ecardiaca,st) # Mediante esta función extraemos los datos según las posiciones obtenidas anteriormente Muestra1
Mediante la función strata extraemos un nuevo arreglo que contiene variables con las posiciones de los sujetos de los cuales vamos a tomar la información en nuestra base de datos (población), la probabilidad de selección que tiene cada sujeto de ser seleccionado y el estrato al cual pertenece; tal como se puede ver a continuación:
head(st, 10)
## sexo ID_unit Prob Stratum
## 1 Hombre 1 0.1449275 1
## 6 Hombre 6 0.1449275 1
## 23 Hombre 23 0.1449275 1
## 28 Hombre 28 0.1449275 1
## 35 Hombre 35 0.1449275 1
## 52 Hombre 52 0.1449275 1
## 53 Hombre 53 0.1449275 1
## 62 Hombre 62 0.1449275 1
## 73 Hombre 73 0.1449275 1
## 74 Hombre 74 0.1449275 1
Con la función getdata extraemos los sujetos de la población (Ecardiaca) considerando las posiciones seleccionadas mediante la función strata.
head(Muestra1, 5)
## edad dolorPecho presionArtR colesterol glucemiaAYU frecCardiacaMax Angina
## 1 63 nontypical 145 233 > 120 mg/dl 150 No
## 6 57 typical 140 192 < 120 mg/dl 148 No
## 23 42 typical 140 226 < 120 mg/dl 178 No
## 28 51 nonanginal 110 175 < 120 mg/dl 123 No
## 35 51 nontypical 125 213 < 120 mg/dl 125 Si
## ecardiaca sexo ID_unit Prob Stratum
## 1 Si Hombre 1 0.1449275 1
## 6 Si Hombre 6 0.1449275 1
## 23 Si Hombre 23 0.1449275 1
## 28 Si Hombre 28 0.1449275 1
## 35 Si Hombre 35 0.1449275 1
Después de obtener la muestra estratificada por sexo mediante una fijación simple, procederemos a estimar el promedio y la varianza para el nivel de colesterol.
Recordamos que la fórmula de la media muestral en un muestreo estratificado es:
\(\hat{\overline{x}} = \sum W_h\overline{x}_h\)
para ello, necesitamos el promedio en los niveles de colesterol para cada estrato y el peso de cada estrato. El peso de cada estrato ya lo calculamos previamente, solo nos faltaría calcular el promedio.
El promedio estimado en los niveles de colesterol para el estrato de hombres para la muestra 1 es de 232.7 mg/dL
El promedio estimado en los niveles de colesterol para el estrato de mujeres para la muestra 1 es de 278.8 mg/dL
Desarrollando nuestra formula tenemos:
\(\hat{\overline{x}} = \sum W_h\overline{x}_h\)
\(\hat{\overline{x}} =\) 0.68 * 232.7 + 0.32 * 278.8
\(\hat{\overline{x}} =\) 158.236 + 89.216
\(\hat{\overline{x}} =\) 247.452 mg/dL
El promedio estimado en los niveles de colesterol obtenido a través de nuestra muestra estratificada por sexo con afijación simple es de 247.452 mg/dL
Los valores pueden variar ligeramente si comparamos la estimación arrojada por un software, ya que, al redondear las cifras puede que el resultado varíe en sus cifras decimales.
Una manera que no implique cálculos manuales es haciendo uso de algunas funciones del paquete survey, los cuales se muestran a continuación:
El primer paso es establecer el tipo de diseño a utilizar por medio de la función svydesing, en la cual debemos especificar el diseño a utilizar, indicar la variable de estratificación utilizada, el vector o dataframe donde se encuentra nuestra muestra y el peso o la probabilidad de selección de cada elemento seleccionado.
<- svydesign(ids = ~1, # tipo de diseño a utilizar
diseño_muestra1 strata = ~sexo, # Variable de estratificación
data = Muestra1,# vector o datagframe donde está nuestra muestra
probs = ~Prob) # Peso o probabilidad de selección de cada elemento
Después de establecer el diseño del estudio obtenemos el valor del promedio y varianza estimada de la muestra 1. Para ello utilizarémos la función svyman y svyvar:
<- cbind(
m1 "Media"=svymean(~colesterol, diseño_muestra1)[1], # promedio estimado para el nivel de colesterol
"Varianza"=svyvar(~colesterol, diseño_muestra1)[1], # varianza estimada para el nivel de colesterol
"Desv. est."=sqrt(svyvar(~colesterol, diseño_muestra1)[1])) # desviación estandar estimada para el nivel de colesterol
m1
## Media Varianza Desv. est.
## colesterol 247.2726 3983.501 63.11498
El nivel promedio de colesterol estimado a través de la muestra 1 fue de 247.3mg/dL (DE. 63.1), IC 95% (232.58, 261.97)
Ejercicio B. Repita el ejercicio anterior, pero esta vez, obtenga una muestra de 80 sujetos pero estratificando por la edad y considerando como puntos de corte para fijar sus estratos, el percentil 25 y el percentil 75 de su variable de estratificación. En este caso, utilice una afijación proporcional. Obtenga las mismas estimaciones del punto anterior. ¿Encuentra algunas diferencias en los resultados en estos dos casos? ¿Si existen, cómo puede explicarlas?
En primer lugar vamos a crear los grupos en nuestra variable edad, tomando como puntos de corte el percentil 25 y 75, teniendo en total 3 grupos.
En la Tabla 2 podemos observar que 76 personas están en el grupo de edad menores o igual al percentil 25 (proporción=0.2508), 156 personas están en el grupo de edad mayores al percentil 25 y menores o iguales al percentil 75 (proporción=0.5149) y 71 personas en el grupo de edad mayores al percentil 75 (proporción=0.2343).
$grupo_edad <- cut(Ecardiaca$edad, # variable a considerar
Ecardiacabreaks = c(summary(Ecardiaca$edad)[1]-1, # valor mínimo como punto inicial de corte
summary(Ecardiaca$edad)[2], # p 25
summary(Ecardiaca$edad)[5], # p 75
summary(Ecardiaca$edad)[6]), # valor máximo
labels = c("Menor o igual p25","Mayor p25 y menor o igual p75","Mayor p75"))
kable(
cbind(c("Número","Proporcion"),rbind(
table(Ecardiaca$grupo_edad), # tamaño de cada estrato
round(prop.table(table(Ecardiaca$grupo_edad)),4) # tamaño proporcional de cada estrato
)),caption = "Tabla 2: número y proporción de los estratos por grupos de edad"
)
Menor o igual p25 | Mayor p25 y menor o igual p75 | Mayor p75 | |
---|---|---|---|
Número | 76 | 156 | 71 |
Proporcion | 0.2508 | 0.5149 | 0.2343 |
En la tabla 3 podemos observar las características de las variables en nuestra población estratificadas por los grupos de edad que hemos conformados. El promedio del colesterol en las edades menores o iguales al percentil 25 es de 231 mg/dL (de. 44.6); para las edades comprendidas entre el percentil 25 y 75, el promedio del colesterol fue de 247 mg/dL (de. 46.5) y para el grupo con edades mayores al percentil 75, el promedio fue de 262 mg/dL (de. 64.4).
table1(~ sexo + edad + dolorPecho + presionArtR +
+ glucemiaAYU + frecCardiacaMax + Angina + ecardiaca | grupo_edad,
colesterol data = Ecardiaca,
rowlabelhead = "Características",
caption = "Tabla 3: Descriptivos de las variables por grupo edad",
footnote = "Fuente: 'Ecardiaca'",
overall = "General"
)
Características | Menor o igual p25 (N=76) |
Mayor p25 y menor o igual p75 (N=156) |
Mayor p75 (N=71) |
General (N=303) |
---|---|---|---|---|
Fuente: 'Ecardiaca' | ||||
Sexo | ||||
Mujer | 21 (27.6%) | 43 (27.6%) | 32 (45.1%) | 96 (31.7%) |
Hombre | 55 (72.4%) | 113 (72.4%) | 39 (54.9%) | 207 (68.3%) |
Edad (años) | ||||
Mean (SD) | 42.0 (3.67) | 55.2 (3.67) | 65.8 (3.34) | 54.4 (9.08) |
Median [Min, Max] | 43.0 [29.0, 47.0] | 56.0 [48.0, 61.0] | 65.0 [62.0, 77.0] | 55.0 [29.0, 77.0] |
Dolor de pecho | ||||
typical | 28 (36.8%) | 78 (50.0%) | 37 (52.1%) | 143 (47.2%) |
asymptotic | 18 (23.7%) | 25 (16.0%) | 7 (9.9%) | 50 (16.5%) |
nonanginal | 25 (32.9%) | 42 (26.9%) | 20 (28.2%) | 87 (28.7%) |
nontypical | 5 (6.6%) | 11 (7.1%) | 7 (9.9%) | 23 (7.6%) |
Presión arterial (mm Hg) | ||||
Mean (SD) | 124 (13.1) | 133 (17.8) | 137 (18.6) | 132 (17.5) |
Median [Min, Max] | 120 [94.0, 152] | 130 [94.0, 200] | 138 [100, 180] | 130 [94.0, 200] |
Nivel de colesterol (mg/dL) | ||||
Mean (SD) | 231 (44.6) | 247 (46.5) | 262 (64.4) | 246 (51.8) |
Median [Min, Max] | 226 [141, 341] | 242 [126, 409] | 254 [149, 564] | 240 [126, 564] |
Glucemia en ayunas (mg/dL) | ||||
< 120 mg/dl | 72 (94.7%) | 127 (81.4%) | 59 (83.1%) | 258 (85.1%) |
> 120 mg/dl | 4 (5.3%) | 29 (18.6%) | 12 (16.9%) | 45 (14.9%) |
Frecuencia cardíaca máxima | ||||
Mean (SD) | 162 (20.1) | 149 (21.9) | 139 (22.0) | 150 (22.9) |
Median [Min, Max] | 168 [114, 202] | 155 [88.0, 195] | 143 [71.0, 179] | 153 [71.0, 202] |
Angina | ||||
No | 57 (75.0%) | 98 (62.8%) | 49 (69.0%) | 204 (67.3%) |
Si | 19 (25.0%) | 58 (37.2%) | 22 (31.0%) | 99 (32.7%) |
Enfermedad cardiaca | ||||
No | 21 (27.6%) | 80 (51.3%) | 37 (52.1%) | 138 (45.5%) |
Si | 55 (72.4%) | 76 (48.7%) | 34 (47.9%) | 165 (54.5%) |
boxplot(Ecardiaca$colesterol~Ecardiaca$grupo_edad,
xlab = "Grupos de edad",
ylab = "Nivel de colesterol (mg/dL)",
main = "Boxplot niveles de colesterol según grupos de edad"
)
Después de haber creado los grupos de estratificación, procederémos a obtener los elementos que conformarán nuestra muestra.
Para llevar a cabo nuestra muestra estratificada con afijación proporcional, debemos tomar en cuenta la proporción de cada uno de los estratos conformados
$W_h=
para el estrato 1:
\(W_{≤ p25}=\) 0.2508,
para el estrato 2:
\(W_{p25-p75}=\) 0.5149
para el estrato 3:
\(W_{>p75}=\) 0.2343
De modo que nos solicitan una afijación proporcional, debemos calcular el número de elementos que tendrá cada estrato en la muestra. El tamaño para cada uno de los estratos viene dado de la siguiente formula:
\[n_h=n.W_h\] donde \(n_h\) es el número para cada estrato y \(n\) es el tamaño de la muestra calculada.
Para cada uno de los estratos el tamaño es:
\(n_{≤ p25}=\) 80 (0.2508) = 20.064 redondeando por exceso sería 21
\(n_{p25-p75}=\) 80 (0.5149) = 41.192 redondeando por exceso sería 42
\(n_{>p75}=\) 80 (0.2343) = 18.744 redondeando por exceso sería 19
Para seleccionar la muestra haremos uso de los paquetes “survey” y “sampling”, además, utilizaremos una semilla para poder replicar los resultados obtenidos.
set.seed(1215) # Fijando una semilla para poder replicar los resultados
<- strata(data = Ecardiaca,
st2 stratanames = "grupo_edad",
size = c(19,21,42), # En esta parte, si los datos no están ordenados según la variable de estratificación, se coloca la cantidad a muestrear en cada estrato según los valores que tendrán estos de menor a mayor.
method = "srswor")
<- getdata(Ecardiaca,st2) # Mediante esta función extraemos los datos según las posiciones obtenidas en el comando anterior Muestra2
Después de obtener la muestra estratificada por grupos de edad mediante una afijación proporcional, procederemos a estimar el promedio y la varianza para el nivel de colesterol. Recordamos que la fórmula de la media muestral en un muestreo estratificado es:
\(\hat{\overline{x}} = \sum W_h\overline{x}_h\)
A pesar de que en el punto anterior se calculó de manera manual, no repetiremos nuevamente el cálculo, por lo que se obtendrá a través del paquete survey y la función svymena y svyvar
Recordemos que Primero debemos establecer el diseño a utilizar:
<- svydesign(ids = ~1,
diseño_muestra2 strata = ~grupo_edad,
data = Muestra2,
probs = ~Prob)
y luego calculando los indicadores de nuestra muestra:
<- cbind(
m2 "Media"=svymean(~colesterol, diseño_muestra2)[1], # promedio estimado para el nivel de colesterol
"Varianza"=svyvar(~colesterol, diseño_muestra2)[1], # varianza estimada para el nivel de colesterol
"Desv. est."=sqrt(svyvar(~colesterol, diseño_muestra2)[1])) # desviación estandar estimada para el nivel de colesterol
m2
## Media Varianza Desv. est.
## colesterol 245.7811 3045.492 55.18598
El nivel promedio de colesterol estimado para mi población a través de la muestra 2 fue de 245.8mg/dL (DE. 55.2), IC 95% (233.83, 257.74)
Al observar los resultados obtenidos en cada una de las afijaciones, no responderemos la respuesta de el por qué estas ligeras diferencia para incentivar al lector a investigar estos motivos.
Para llevar a cabo el ejercicio del muestreo estratificado por afijación óptima, partiremos del ejercicio B, donde se construyeron los estratos por grupos de edad, pero en esta ocasión, la afijación no será proporcional, sino que se realizará una afijación optima. Se tomará el mismo número de elementos que en la afijación proporcional (n=80).
Mediante la afijación óptima no solo es tomado en cuanta en tamaño o peso del estrato, sino que toma en cuenta la variabilidad de cada estrato. La formula para asignar el número de elemento para cada estrato mediante la afijación optima es la siguiente:
\(n_h=n\left( \frac{W_hS_h}{\sum W_hS_h}\right)\)
donde \(s_h\) es la varianza de cada estrato.
Con los valores de la Tabla 4 desarrollaremos la formula anterior.
Menor o igual p25 | Mayor p25 y menor o igual p75 | Mayor p75 | |
---|---|---|---|
Número | 76 | 156 | 71 |
Proporción | 0.2508 | 0.5149 | 0.2343 |
Varianza | 44.6 | 46.5 | 64.4 |
Primero obtendremos el denominador:
\(\sum W_hS_h=\) (0.2508 * 44.6) + (0.5149 * 46.5) + (0.2343 * 64.4)
\(\sum W_hS_h=\) (11.2) + (24) + (15.1)
\(\sum W_hS_h=\) (50.3)
Ahora obtendremos el número de elementos para cada estrato:
\(n_{<p25}=80\left( \frac{ W_1S_1 }{\sum W_hS_h}\right)\)
\(n_{<p25}=\) 80 * (0.2508 * 44.6) / (50.3)
\(n_{<p25}=\) 80 * (0.222664)
\(n_{<p25}=\) 18
\(n_{p25-p75}=80\left( \frac{ W_2S_2 }{\sum W_hS_h}\right)\)
\(n_{p25-p75}=\) 80 * (0.5149 * 46.5) / (50.3)
\(n_{p25-p75}=\) 80 * (0.4771372)
\(n_{p25-p75}=\) 38
\(n_{>p75}=80\left( \frac{ W_3S_3 }{\sum W_hS_h}\right)\)
\(n_{>p75}=\) 80 * (0.2343 * 64.4) / (50.3)
\(n_{>p75}=\) 80 * (0.3001988)
\(n_{>p75}=\) 24
Podemos observar que, a diferencia de la afijación proporcional, la afijación óptima asignó más muestras a estratos que a pesar de ser más pequeños, presentan mayor variabilidad, como es el caso del estrato 3, en la afijación proporcional a este estrato se le asignaron 19 muestras, mientras que en la asignación óptima el número de muestras a seleccionar será de 24.
Después de obtener el tamaño óptimo de muestras para cada estrato, procederemos a obtener dicha muestra, para ello, haremos uso de los paquetes “survey” y “sampling”, además, utilizaremos una semilla para poder replicar los resultados obtenidos.
set.seed(25156)
<- strata(data = Ecardiaca,
st3 stratanames = "grupo_edad",
size = c(24,18,38),
method = "srswor")
<- getdata(Ecardiaca,st3) Muestra3
Después de obtener mi muestra estratificada por grupos de edad mediante una fijación óptima, procederemos a estimar el promedio y la varianza para el nivel de colesterol. Recordamos que la formula de la media muestral en un muestreo estratificado es igual a
\(\hat{\overline{x}} = \sum W_h\overline{x}_h\)
Se obtendrá a través del paquete survey y la función svymena y svyvar.
Primero debemos establecer el diseño a utilizar:
<- svydesign(ids = ~1, # tipo de diseño a utilizar
diseño_muestra3 strata = ~grupo_edad,
data = Muestra3,
probs = ~Prob)
Calculando los indicadores:
<- cbind(
m3 "Media"=svymean(~colesterol, diseño_muestra3)[1], # promedio estimado para el nivel de colesterol
"varianza"=svyvar(~colesterol, diseño_muestra3)[1], # varianza estimada para el nivel de colesterol
"Desv. est."=sqrt(svyvar(~colesterol, diseño_muestra3)[1])) # desviación estandar estimada para el nivel de colesterol
m3
## Media varianza Desv. est.
## colesterol 249.5489 2819.102 53.09522
El nivel promedio de colesterol estimado para mi población a través de la muestra 3 fue de 249.5mg/dL (DE. 53.1), IC 95% (238.01, 261.09)
¿Encuentra algunas diferencias en los resultados en estos dos casos? ¿Si existen, cómo puede explicarlas?
Al comparar las estimaciones en los niveles de colesterol obtenidas por ambas muestras, podemos observar que hay diferencias en estas, principalmente en la disperción de los datos. En la muestra 1 (estratificación por sexo por afijación simple n=60) el promedio, desviación estandar y los intervalos de confianza para la media fue de 247.3mg/dL (d.e. 63.1149813), IC 95% (232.58, 261.97); para la muestra 2 (estratificación por edad afijación proporcional n=80) el promedio, desviación estandar y los intervalos de confianza para la media fue de fue de 245.8mg/dL (d.e. 55.1859781), IC 95% (233.83, 257.74). Para la muestra 3 (estratificación por edad afijación óptima n=80) el promedio, desviación estandar y los intervalos de confianza para la media fue de fue de 249.5mg/dL (d.e. 53.0952204), IC 95% (238.01, 261.09).
Una de las diferencias a destacar es que al comparar las varianzas de los estimadores obtenidos a través de las 3 muestras, por medio de la muestra 2 (afijación proporcional), se obtuvieron estimadores más eficientes (de menor varianza) e insesgados que los obtenidos a través de la muestra 1 (afijación simple) y muestra 2 (afijación óptima)
Estimación del sesgo
Muestra 1:
sesgo = \(\hat{\overline{x}} - \mu = 0\)
sesgo = 247.3 - 246.3 = 1
Muestra 2:
sesgo = \(\hat{\overline{x}} - \mu = 0\)
sesgo = 245.8 - 246.3 = -0.5
Muestra 3:
sesgo = \(\hat{\overline{x}} - \mu = 0\)
sesgo = 249.5 - 246.3 = 3.2
En la Tabla 5 se comparan los resultados de los indicadores obtenidos a través de las diferentes afijaciones en el muestreo estratificado, afijación simple, proporcional y óptima. Se pueda observar que mediante la afijación Proporcional se obtuvieron las mejores estimaciones para los niveles de colesterol.
Media | Varianza | Desv. est. | ||
---|---|---|---|---|
Población | 246.3 | 2686.4 | 51.8 | |
colesterol | Muestra 1 (afijación simple) | 247.3 | 3983.5 | 63.1 |
colesterol | Muestra 2 (afijación proporcional) | 245.8 | 3045.5 | 55.2 |
colesterol | Muestra 3 (afijación óptima) | 249.5 | 2819.1 | 53.1 |
Cabe destacar que las conclusiones en base a los resultados obtenidos pueden variar, ya que sólo hemos obtenido una muestra y si colocamos otra semilla al programa para obtener la muestras, los resultados serían distintos, para generalizar en base a alguna de la afijaciones, deberíamos tomar muchas muestras y comparar los resultados.
Martinez Bencardino, C. Estadística y Muestreo. 14ava Edición. Thomson Learning, 2003. ISBN: 9780534243128.
Hadley Wickham and Jennifer Bryan (2019). readxl: Read Excel Files. R package version 1.3.1. https://CRAN.R-project.org/package=readxl
Benjamin Rich (2021). table1: Tables of Descriptive Statistics in HTML. R package version 1.3. https://CRAN.R-project.org/package=table1
T. Lumley (2020) “survey: analysis of complex survey samples”. R package version 4.0.
Yves Tillé and Alina Matei (2021). sampling: Survey Sampling. R package version 2.9. https://CRAN.R-project.org/package=sampling
Hadley Wickham, Romain François, Lionel Henry and Kirill Müller (2021). dplyr: A Grammar of Data Manipulation. R package version 1.0.3. https://CRAN.R-project.org/package=dplyr
Yihui Xie (2020). knitr: A General-Purpose Package for Dynamic Report Generation in R. R package version 1.30.