Contexto

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

Lectura de los datos

#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
url_base <- "https://docs.google.com/spreadsheets/d/e/2PACX-1vTftOkWL5QYCmpE37JHQsdMMeZLWLcfrkmkhdz6Is-kXsEMz5b95xd2GrxjxfJL_w/pub?gid=911434875&single=true&output=csv"
Ecardiaca <-read.csv(url_base, sep = ",")

label(Ecardiaca$edad) <- "Edad (años)"
Ecardiaca$sexo <- factor(Ecardiaca$sexo, labels = c("Mujer","Hombre"))
label(Ecardiaca$sexo) <- "Sexo"
Ecardiaca$dolorPecho <- factor(Ecardiaca$dolorPecho, labels = c("typical","asymptotic","nonanginal","nontypical"))
label(Ecardiaca$dolorPecho) <- "Dolor de pecho"
label(Ecardiaca$presionArtR) <- "Presión arterial (mm Hg)"
label(Ecardiaca$colesterol) <- "Nivel de colesterol (mg/dL)"
Ecardiaca$glucemiaAYU <- factor(Ecardiaca$glucemiaAYU, labels = c("< 120 mg/dl","> 120 mg/dl"))
label(Ecardiaca$glucemiaAYU) <- "Glucemia en ayunas (mg/dL)"
label(Ecardiaca$frecCardiacaMax) <- "Frecuencia cardíaca máxima"
Ecardiaca$Angina <- factor(Ecardiaca$Angina, labels = c("No","Si"))
label(Ecardiaca$Angina) <- "Angina"
Ecardiaca$ecardiaca <- factor(Ecardiaca$ecardiaca, labels = c("No","Si"))
label(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

Análisis descriptivo de los datos

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 + 
         colesterol + glucemiaAYU + frecCardiacaMax + Angina + ecardiaca | sexo,
       data = Ecardiaca, 
       rowlabelhead = "Características",
       caption = "Tabla 1: Descriptivos de las variables por sexo",
       footnote = "Fuente: 'Ecardiaca'",
       overall = "General"
       )
Tabla 1: Descriptivos de las variables por sexo
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.



Tipos de afijaciones

Afijación simple

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
st <- strata(     #Función a utilizar para obtener la posición de los elementos a extraer, su probabilidad y el estrato de donde se obtuvo.
  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)
Muestra1 <- getdata(Ecardiaca,st) # Mediante esta función extraemos los datos según las posiciones obtenidas anteriormente 

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.

diseño_muestra1 <- svydesign(ids = ~1,       # tipo de diseño a utilizar
                             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:

m1 <- cbind(
"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)


Afijación proporcional

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).

Ecardiaca$grupo_edad <- cut(Ecardiaca$edad, # variable a considerar
                            breaks = 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"
)
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 + 
         colesterol + glucemiaAYU + frecCardiacaMax + Angina + ecardiaca | grupo_edad,
       data = Ecardiaca, 
       rowlabelhead = "Características",
       caption = "Tabla 3: Descriptivos de las variables por grupo edad",
       footnote = "Fuente: 'Ecardiaca'",
       overall = "General"
       )
Tabla 3: Descriptivos de las variables por grupo edad
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
st2 <- strata(data = Ecardiaca,
              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")

Muestra2 <- getdata(Ecardiaca,st2) # Mediante esta función extraemos los datos según las posiciones obtenidas en el comando anterior  

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:

diseño_muestra2 <- svydesign(ids = ~1, 
                             strata = ~grupo_edad,
                             data = Muestra2,
                             probs = ~Prob)

y luego calculando los indicadores de nuestra muestra:

m2 <- cbind(
"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.


Afijación óptima

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.

Tabla 4: número, proporción y varianza 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
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) 
st3 <- strata(data = Ecardiaca,
              stratanames = "grupo_edad",
              size = c(24,18,38),
              method = "srswor")
Muestra3 <- getdata(Ecardiaca,st3)  

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:

diseño_muestra3 <- svydesign(ids = ~1, # tipo de diseño a utilizar
                             strata = ~grupo_edad,
                             data = Muestra3,
                             probs = ~Prob)

Calculando los indicadores:

m3 <- cbind(
"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)


Comparación de los métodos

¿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.

Tabla 5: Comparación del nivel de colesterol en la población, muestra 1, muestra 2 y muestra 3
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.



Referencias

  • 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.