Definición

El muestreo aleatorio estratificado es una técnica de muestreo que se utiliza cuando en la población se pueden distinguir subgrupos o subpoblaciones claramente identificables. Mediante este método de muestreo, la selección de los elementos que van a formar parte de la muestra se realiza por separado dentro de cada estrato, sin dejar ningún estrato sin muestrear. En la práctica esta técnica presenta dos ventajas importantes:

 

Requerimientos sobre la población para llevar a cabo un muestreo aleatorio estratificado

Este tipo de muestreo es adecuado cuando:

 

 

Determinación del tamaño muestral global y en cada estrato

En las condiciones citadas en el punto anterior, la media global de la población puede expresarse como: \[\mu=\sum_{k=1}^{K}\phi_{k}\mu_{k}\] {#eq:mediaGlobal} (esto es, la media ponderada de las medias dentro de cada estrato)

Si en cada estrato \(k\) se toma una muestra de tamaño \(n_{k}\), el estimador de la media en ese estrato sería: \[\overline{x}_{k}=\frac{1}{n_{k}}\sum_{i=1}^{n_{k}}x_{ki}\]

Si en la ecuación (@eq:mediaGlobal), sustituimos la media \(\mu_k\) de cada estrato por su estimador \(\overline{x}_{k}\), la media poblacional puede entonces estimarse como la media ponderada de las medias de todos los estratos: \[ \overline{x}=\sum_{k=1}^{K}\phi_{k}\overline{x}_{k} \] {#eq:mediaGlobal} Suponiendo que las observaciones dentro de cada estrato se realizan independientemente, la varianza de la media estimada de esta forma es: \[ Var\left(\overline{x}\right)=\sum_{k=1}^{K}\phi_{k}^{2}Var\left(\overline{x}_{k}\right) \]

 

 

Como la varianza \(\sigma_{k}^{2}\) dentro de cada estrato habitualmente no se conoce, sino que se estima mediante la correspondiente varianza muestral \(s_{k}^{2}\), el estimador de la varianza de la media muestral global se obtendría a partir de las expresiones (@eq:varPobInfinita) y (@eq:varPobFinita) anteriores simplemente como:

\[ s_{\overline{x}}^{2}=\begin{cases} \sum_{k=1}^{K}\phi_{k}^{2}\frac{s_{k}^{2}}{n_{k}} & \textrm{Si la población es infinita}\\ \sum_{k=1}^{K}\phi_{k}^{2}\frac{s_{k}^{2}}{n_{k}}\left(1-\frac{n_{k}}{N_{k}}\right) & \textrm{Si la población es finita} \end{cases} \] {#eq:se2}

 

Como ya sabemos, el intervalo de confianza para la media de una población con \(n\) grande es: \[ \mu\in\left[\overline{x}\pm z_{1-\alpha/2}s_{\overline{x}}\right] \] Para estimar \(\mu\) con un error menor o igual que \(\varepsilon\) con una confianza \(1-\alpha\), el tamaño de muestra se obtiene resolviendo:

\[ \varepsilon=z_{1-\alpha/2}s_{\overline{x}} \] {#eq:ezs}

Para resolver esta ecuación, en primer lugar hemos de decidir como repartir el tamaño muestral (global) \(n\) en los tamaños muestrales \(n_{1},n_{2},\dots,n_{K}\) que han de tomarse en cada estrato. Tres son las formas que se emplean habitualmente para ello:

 

 

En los tres casos, el tamaño de la muestra a tomar en cada estrato es de la forma \(n_{i}=n\cdot w_{i}\) donde: \[ w_{i}=\begin{cases} \frac{1}{K},\,\,\,\forall i & \textrm{Afijación uniforme}\\ \frac{N_{i}}{N} & \textrm{Afijación proporcional}\\ \frac{N_{i}s_{i}}{\sum_{k=1}^{K}N_{k}s_{k}} & \textrm{Afijación óptima} \end{cases} \] {#eq:wi}

 

Para calcular ahora el tamaño de muestra global \(n\) volvemos a la expresión (@eq:ezs). Suponiendo que la población es de tamaño finito \(N\), teniendo en cuenta (@eq:se2), dicha expresión es de la forma: \[ \varepsilon=z_{1-\alpha/2}\sqrt{\sum_{i=1}^{K}\phi_{i}^{2}\frac{s_{i}^{2}}{n_{i}}\left(1-\frac{n_{i}}{N_{i}}\right)} \] Sustituyendo \(n_{i}=n\cdot w_{i}\) nos queda: \[ \varepsilon=z_{1-\alpha/2}\sqrt{\sum_{i=1}^{K}\phi_{i}^{2}\frac{s_{i}^{2}}{nw_{i}}\left(1-\frac{nw_{i}}{N_{i}}\right)}=z_{1-\alpha/2}\sqrt{\sum_{i=1}^{K}\phi_{i}^{2}s_{i}^{2}\left(\frac{1}{nw_{i}}-\frac{1}{N_{i}}\right)} \] de donde: \[ \left(\frac{\varepsilon}{z_{1-\alpha/2}}\right)^{2}=\sum_{i=1}^{K}\phi_{i}^{2}s_{i}^{2}\left(\frac{1}{nw_{i}}-\frac{1}{N_{i}}\right)=\sum_{i=1}^{K}\phi_{i}^{2}s_{i}^{2}\frac{1}{nw_{i}}-\sum_{i=1}^{K}\phi_{i}^{2}s_{i}^{2}\frac{1}{N_{i}} \] \[ \left(\frac{\varepsilon}{z_{1-\alpha/2}}\right)^{2}=\frac{1}{n}\sum_{i=1}^{K}\frac{\phi_{i}^{2}s_{i}^{2}}{w_{i}}-\sum_{i=1}^{K}\frac{\phi_{i}^{2}s_{i}^{2}}{N_{i}} \] \[ \frac{1}{n}\sum_{i=1}^{K}\frac{\phi_{i}^{2}s_{i}^{2}}{w_{i}}=\left(\frac{\varepsilon}{z_{1-\alpha/2}}\right)^{2}+\sum_{i=1}^{K}\frac{\phi_{i}^{2}s_{i}^{2}}{N_{i}} \] \[ n=\frac{\sum_{i=1}^{K}\frac{\phi_{i}^{2}s_{i}^{2}}{w_{i}}}{\left(\frac{\varepsilon}{z_{1-\alpha/2}}\right)^{2}+\sum_{i=1}^{K}\frac{\phi_{i}^{2}s_{i}^{2}}{N_{i}}} \] y teniendo en cuenta que en poblaciones finitas \(\phi_{i}=\frac{N_{i}}{N}\), la expresión anterior se reduce a: \[ n=\frac{\sum_{i=1}^{K}\left(\frac{N_{i}}{N}\right)^{2}\frac{s_{i}^{2}}{w_{i}}}{\left(\frac{\varepsilon}{z_{1-\alpha/2}}\right)^{2}+\frac{1}{N}\sum_{i=1}^{K}\frac{N_{i}}{N}s_{i}^{2}} \] {#eq:nFinita} Si la población fuese de tamaño infinito, el segundo témino del denominador de la ecuación (@eq:nFinita) desaparece, y el tamaño de muestra resultante sería: \[ n=\left(\frac{z_{1-\alpha/2}}{\varepsilon}\right)^{2}\sum_{i=1}^{K}\phi_{i}^{2}\frac{s_{i}^{2}}{w_{i}} \] {#eq:nInfinita} donde hemos sustituido \(\phi_{i}=\frac{N_{i}}{N}\) , ya que aunque la población sea infinita, sí que debemos conocer a priori qué proporción de la misma pertenece a cada estrato, esto es, debemos conocer los valores \(\phi_{1},\phi_{2},\dots,\phi_{K}.\)

 

 

Por tanto, y a modo de resumen, el procedimiento para determinar el tamaño de muestra en cada estrato sería el siguiente:

  1. Fijar la confianza \(1-\alpha\) y el margen de error \(\varepsilon\).

  2. Obtener aproximaciones iniciales de las varianzas \(s_{i}^{2}\) en cada estrato.

  3. Utilizar las ecuaciones (@eq:nFinita) u (@eq:nInfinita) según que la población sea finita o infinita para determinar el tamaño global \(n\) de la muestra.

  4. Determinar el método de afijación, calcular conforme al mismo los factores de ponderación, \(w_{i}\) descritos en (@eq:wi) y calcular el tamaño de muestra en cada estrato mediante el redondeo por exceso del valor \(nw_{i}\)

 

 

 

 

 

Función para la determinación del tamaño muestral en muestreo aleatorio estratificado.

Para comprobar la ventaja de hacer muestreo estratificado, simulamos una población con cinco estratos, bajo el supuesto de que cada estrato tiene un tamaño distinto y distintos valores medios y varianzas.

nis=c(1000,2000,5000,8000,10000)
mu=c(25,35,50,10,20)
sigma=c(4,6,8,2,3)
#mu=c(25,25,25,25,25)
#sigma=c(8,8,8,8,8)
estrato=list(
e1=rnorm(nis[1],mu[1],sigma[1]),
e2=rnorm(nis[2],mu[2],sigma[2]),
e3=rnorm(nis[3],mu[3],sigma[3]),
e4=rnorm(nis[4],mu[4],sigma[4]),
e5=rnorm(nis[5],mu[5],sigma[5]))
poblacion=unlist(estrato)

Mostramos el tamaño de la población, así como su media y desviación típica:

N=sum(nis)
mu.pob=mean(poblacion)
sigma.pob=sd(poblacion)
N
## [1] 26000
mu.pob
## [1] 24.02551
sigma.pob
## [1] 15.01304

 

 

Ejemplo: Tamaño muestral con muestreo aleatorio simple

Buscamos en primer lugar el tamaño óptimo para estimar \(\mu\) con una precisión de 0.5 unidades y confianza 0.95 si se lleva a cabo un muestreo aleatorio simple.

La siguiente función permite calcular el tamaño de muestra necesario si se lleva a cabo un muestreo aleatorio simple:

tam.muestra=function(alfa,epsilon,s,N=Inf)
  {
    za2=qnorm(1-alfa/2)
    if (N==Inf) n=(s*za2/epsilon)^2
    else n=N*((za2*s)^2)/((N-1)*epsilon^2+(za2*s)^2)
    return(ceiling(n))
  }

Utilizaremos esta función para determinar el tamaño de muestra para estimar la media de la población anterior mediante muestreo aleatorio simple sin tener en cuenta la estratificación presente en la población.

Primero se extrae una pequeña muestra para estimar sigma (que no se conoce):

n.piloto=10
muestra.piloto=sample(poblacion, size=n.piloto, replace=F)
s=sd(muestra.piloto)
muestra.piloto
##    e52817    e42205     e1935    e44989    e58208    e32930    e43889 
## 17.699320 10.832364 24.131205  9.832304 15.332274 49.888356  7.969721 
##    e46306    e45464    e32165 
## 11.636574  9.512889 47.194537
s
## [1] 15.5901

Con ese valor piloto determinamos el tamaño de muestra requerido para un muestreo aleatorio simple:

alfa=0.05
epsilon=0.5
n.pobfin=tam.muestra(alfa,epsilon,s,N=N)
n.pobinf=tam.muestra(alfa,epsilon,s)
n.pobfin
## [1] 3266
n.pobinf
## [1] 3735

Se saca una muestra de ese tamaño y se estima la media:

n=n.pobfin
muestra=sample(poblacion, size=n, replace=T)
mu.est=mean(muestra)
za2=qnorm(1-alfa/2)
errtip=(sd(muestra)/sqrt(n))*sqrt(1-n/N)
intervalo.mu=mu.est+c(-1,1)*za2*errtip

Se muestran el tamaño muestral utilizado, y la media y el intervalo de confianza obtenidos:

n
## [1] 3266
mu.est
## [1] 24.2162
intervalo.mu
## [1] 23.73211 24.70029

Iteramos este proceso nsim veces y contamos cuántos intervalos contienen a la media

nsim=10000
nc=0
fc=sqrt(1-n/N)
for (i in 1:nsim)
  {
    muestra=sample(poblacion, size=n)
    mu.est=mean(muestra)
    intervalo.mu=mu.est+c(-1,1)*za2*(sd(muestra)/sqrt(n))*fc
    if ((mu.pob>=intervalo.mu[1])&(mu.pob<=intervalo.mu[2])) nc=nc+1
  }
nc
## [1] 9478
nc/nsim
## [1] 0.9478

Así pues, podemos confirmar que el muestreo aleatorio simple consigue estimar la media de la población con la confianza (0.95) y precisión (0.5) requeridas. Ahora bien, ello ha requerido el esfuerzo de tomar una muestra de tamaño ¡¡¡ 3266!!!

 

 

Ejemplo: Tamaño muestral con muestreo aleatorio estratificado

Repetimos el ejercicio anterior, pero ahora con muestreo estratificado.

Para ello se requiere una estimación piloto de la varianza en cada estrato:

s2=rep(0,5)
for (j in 1:5)
  {
    n.piloto=10
    muestra.piloto=sample(estrato[[j]], size=n.piloto, replace=F)
    s2[j]=var(muestra.piloto)
}
s2
## [1] 12.444138 25.603465 74.285442  7.647746 12.434680

Para calcular el tamaño de muestra en cada estrato, en primer lugar construimos una función para ello:

  • La función recibe como argumentos los valores del error máximo a cometer, la confianza, las \(\phi_i\), las \(s_i\), el tipo de afijación a realizar (1: uniforme, 2:proporcional, 3:óptima) y el tamaño N de la población.

  • Como resultado, la función devuelve el tamaño muestral en cada estrato.

nMuestreoEstratificado=function(epsilon,confianza,phi,s,afijacion=3,N=inf){
  K=length(phi)  # Número de estratos
  alfa=1-confianza
  za=qnorm(1-alfa/2)
  w=if (afijacion==1) rep(1/K,K) else if (afijacion==2) phi else phi*s/sum(phi*s)
  if (N!=Inf) n=sum(phi^2*s^2/w)/((epsilon/za)^2+(1/N)*sum(phi*s^2))
  else n=(za/epsilon)^2*sum(phi^2*s^2/w)
  ni=ceiling(n*w)
  return(ni)
}

Aplicamos ahora nuestra función para el cálculo del tamaño muestral en cada estrato del ejemplo anterior.

 

  • Utilizando afijación uniforme:
niUnif=nMuestreoEstratificado(epsilon=0.5,confianza=0.95,phi=nis/N,s=sqrt(s2),afijacion=1,N=N)
niUnif
## [1] 84 84 84 84 84
sum(niUnif)
## [1] 420

 

  • Utilizando afijación proporcional:
niProp=nMuestreoEstratificado(epsilon=0.5,confianza=0.95,p=nis/N,s=sqrt(s2),afijacion=2,N=N)
niProp
## [1]  14  28  70 112 140
sum(niProp)
## [1] 364

 

  • Utilizando afijación óptima:
niOpt=nMuestreoEstratificado(epsilon=0.5,confianza=0.95,p=nis/N,s=sqrt(s2),afijacion=3,N=N)
niOpt
## [1]  10  26 111  57  91
sum(niOpt)
## [1] 295

 

Comprobamos ahora mediante simulación el resultado que se consigue al estimar la media poblacional con estos tamaños muestrales mediante muestreo estratificado. Para ello tengamos en cuenta que, de acuerdo con (@eq:mediaGlobal), el estimador de la media poblacional a partir de la media de cada estrato es: \[\overline{x}=\sum_{k=1}^{K}\phi_{k}\overline{x}_{k}\] y si queremos construir un intervalo de confianza deberemos utilizar la fórmula \(\left[\overline{x}\pm z_{1-\alpha/2}s_{\overline{x}}\right]\) donde \(s_{\overline{x}}\) viene dada por la expresión (@eq:se2). Por tanto, para población finita:

\[s_{\overline{x}}=\sqrt{\sum_{k=1}^{K}\phi_{k}^{2}\frac{s_{k}^{2}}{n_{k}}\left(1-\frac{n_{k}}{N_{k}}\right)}\]

Veamos los resultados obtenidos por simulación:

 

  • Con afijación uniforme:
mediaEstrato=vector("numeric",5)  # Vector donde se guardará la media estimada en cada estrato
s2Estrato=vector("numeric",5)     # Vector donde se guardará la varianza estimada en cada estrato
for (j in 1:5)
  {    
    muestra=sample(estrato[[j]], size=niUnif[j])
    mediaEstrato[j]=mean(muestra)
    s2Estrato[j]=var(muestra)
}
phi=nis/N
media=sum(phi*mediaEstrato)               # Estimación de la media poblacional
sx=sqrt(sum(phi^2*(s2Estrato/niUnif)*(1-niUnif/nis)))   # Error estándar de la media
intervalo=media+c(-1,1)*qnorm(0.975)*sx   # Intervalo de confianza al 95%
sum(niUnif)                               # Tamaño total de la muestra
## [1] 420
media
## [1] 23.93666
intervalo
## [1] 23.50689 24.36643

 


  • Con afijación proporcional:
mediaEstrato=vector("numeric",5)  
s2Estrato=vector("numeric",5)     
for (j in 1:5)
  {    
    muestra=sample(estrato[[j]], size=niProp[j])
    mediaEstrato[j]=mean(muestra)
    s2Estrato[j]=var(muestra)
}
phi=nis/N
media=sum(phi*mediaEstrato)               # Estimación de la media poblacional
sx=sqrt(sum(phi^2*(s2Estrato/niProp)*(1-niProp/nis)))   # Error estándar de la media
intervalo=media+c(-1,1)*qnorm(0.975)*sx   # Intervalo de confianza al 95%
sum(niProp)                               # Tamaño total de la muestra
## [1] 364
media
## [1] 24.06569
intervalo
## [1] 23.59814 24.53323

 

 

  • Con afijación óptima:
mediaEstrato=vector("numeric",5)  
s2Estrato=vector("numeric",5)     
for (j in 1:5)
  {    
    muestra=sample(estrato[[j]], size=niOpt[j])
    mediaEstrato[j]=mean(muestra)
    s2Estrato[j]=var(muestra)
}
phi=nis/N
media=sum(phi*mediaEstrato)               # Estimación de la media poblacional
sx=sqrt(sum(phi^2*(s2Estrato/niOpt)*(1-niOpt/nis)))   # Error estándar de la media
intervalo=media+c(-1,1)*qnorm(0.975)*sx   # Intervalo de confianza al 95%
sum(niOpt)                               # Tamaño total de la muestra
## [1] 295
media
## [1] 24.36329
intervalo
## [1] 23.90482 24.82176

Como vemos, hemos sido capaces de estimar la media con la misma precisión que con el muestreo aleatorio simple, pero con tamaños de muestra muchísimo menores.