4  Teorema del Límite Central

4.1 Teorema del Límite Central

El teorema central del límite (TCL) es una teoría estadística que establece que, dada una muestra aleatoria suficientemente grande de la población, la distribución de las medias muestrales seguirá una distribución normal.

Si se toman muestras repetidas de una población con varianza finita y se calculan sus promedios, entonces los promedios se distribuirán normalmente.

Esto es verdad incluso cuando las muestras son tomadas de una distribución NO normal, siempre y cuando se tomen el suficiente número de muestras.

4.2 Demostración en R

Calculemos la media de cinco números aleatorios distribuidos uniformemente entre 0 y 10. La media será baja cuando obtengamos, ej., 2,3,1,2,1 y alta cuando obtengamos 9,8,9,6,8. Lo normal es que la media se acerque a 5. Hagamos esto 10.000 veces y observamos la distribución de las 10.000 medias. Los datos se distribuyen de forma rectangular (uniforme) en el intervalo de 0 a 10, por lo que la distribución de los datos brutos debería ser plana:

# distribución de 10.000 números 
# aleatorios entre 0-10
hist(runif(10000)*10, main="")

set.seed(1234) # fijar semilla para que el proceso aleatorio sea siempre igual
A <- runif(10000)*10 # distribucion aleatoria uniforme
hist(A)

# media de la poblacion
mediaA <- mean(A)

¿Qué ocurre con la distribución de las medias muestrales, basada en la toma de sólo cinco números aleatorios uniformemente distribuidos?

# creamos un vector numérico vacío de tamaño 10.000
means <- numeric(10000)
# llenamos el vector vacío con medias de 5 números aleatorios
for (i in 1:10000){
means[i] <- mean(runif(5)*10)
}

hist(means,ylim=c(0,1600),main="")

Se ve bien, pero ¿cuan cerca está de una distribución normal?

  • Dibujar un distribución normal teórica usando X y S de la muestra.
  • Test de normalidad.
m <- mean(means)
desv <- sd(means)

xv <- seq(0,10, 0.1)
yv <-  dnorm(xv, mean = m, sd = desv)

hist(means,ylim=c(0,1600),main="")
lines(xv, yv)

4.2.1 Test de Normalidad

qqnorm(means)
qqline(means, lty=2)

shapiro.test(sample(x = means, 5000))

    Shapiro-Wilk normality test

data:  sample(x = means, 5000)
W = 0.99905, p-value = 0.006669

Función para generar muestras de medias y visualiza el histograma

generar_muestras_de_medias <- function(numero, muestras = 5){
  means <- numeric(numero)
  for (i in 1:numero){ means[i] <- mean(runif(muestras)*10) }
  hist(means, main = paste('Distribucion', i, 'muestras'))
}

Diferencias entre medias muestrales con diferentes repeticiones

# como se ven las diferencias entre medias muestrales con diferentes repeticiones?
par(mfrow = c(2, 2))
for(i in c(10, 100, 1000, 100000)){
  generar_muestras_de_medias(i)
}

Distribuciones en n

4.2.2 Incrementar el número muestral

Cuando seleccionamos muestras de una distribución normal, la distribución de las medias muestrales de la muestra también tiene una forma “normal”.

Aumentar el tamaño muestral disminuye la dispersión.

means <- numeric(5000)
for (i in 1:5000){ 
  means[i] <- mean(runif(5)*10) 
  }

hist(means, col = 'lightblue', main = '')

Distribución normal de 5000 muestras

plot(density(means), main = '5.000 muestras')
abline(v = 5, lty = 2, col = "red")

valor de la media de todas estas medias muestreales

mean(means)
[1] 4.977626
sd(means)
[1] 1.296756
# media de la poblacion?
mediaA
[1] 5.003123

Este comportamiento parece bastante razonable. Se esperaría una estimación más precisa de la media de la población original si tomamos la media de muestras de mayor tamaño.

4.2.3 Distribución muestral de X

Media de la distribución muestral es = a las media de la población original

\mu_{\bar{x}}=E(\bar{x})=\mu

Desviación estándar de la distribución muestral igual:

\sigma_{\bar{x}}=\frac{\sigma}{\sqrt{n}} Este es el error estándar de la media.

Error estándar de la media

4.2.4 Ajustar una curva normal

# generar datos entre 0-1
xv <- seq(0,10,0.1)
dnorm(xv, mean = mean(means), sd = sd(means))
  [1] 0.0001943350 0.0002605044 0.0003471333 0.0004598275 0.0006054955
  [6] 0.0007925820 0.0010313233 0.0013340214 0.0017153317 0.0021925564
 [11] 0.0027859336 0.0035189095 0.0044183769 0.0055148635 0.0068426465
 [16] 0.0084397733 0.0103479613 0.0126123539 0.0152811078 0.0184047900
 [21] 0.0220355671 0.0262261737 0.0310286566 0.0364928978 0.0426649328
 [26] 0.0495850913 0.0572860011 0.0657905072 0.0751095740 0.0852402473
 [31] 0.0961637610 0.1078438832 0.1202255942 0.1332341894 0.1467748933
 [36] 0.1607330553 0.1749749848 0.1893494580 0.2036899049 0.2178172558
 [41] 0.2315433947 0.2446751414 0.2570186494 0.2683840879 0.2785904518
 [46] 0.2874703311 0.2948744665 0.3006759172 0.3047736796 0.3070956111
 [51] 0.3076005435 0.3062794967 0.3031559445 0.2982851205 0.2917523940
 [56] 0.2836707811 0.2741776932 0.2634310538 0.2516049365 0.2388848918
 [61] 0.2254631380 0.2115337888 0.1972882800 0.1829111425 0.1685762449
 [66] 0.1544436036 0.1406568265 0.1273412300 0.1146026351 0.1025268240
 [71] 0.0911796125 0.0806074751 0.0708386426 0.0618845848 0.0537417828
 [76] 0.0463936984 0.0398128491 0.0339629072 0.0288007499 0.0242784005
 [81] 0.0203448121 0.0169474606 0.0140337237 0.0115520364 0.0094528226
 [86] 0.0076892115 0.0062175523 0.0049977488 0.0039934361 0.0031720234
 [91] 0.0025046288 0.0019659284 0.0015339435 0.0011897846 0.0009173703
 [96] 0.0007031344 0.0005357342 0.0004057679 0.0003055086 0.0002286580
[101] 0.0001701245
hist(means, main = "", ylim = c(1,800)) 
yv <- dnorm(xv, mean = mean(means), sd = 1.28996)*2500
lines(xv,yv)

4.2.5 Test de Normalidad

qqnorm(means)
qqline(means, lty = 2, col = "red", lwd = 2)

Test de Normalidad shapiro.test

shapiro.test(means)

    Shapiro-Wilk normality test

data:  means
W = 0.99869, p-value = 0.0004339

p > 0.05 –> NO se rechaza H0 = es normal

p < 0.05 –> se rechaza H0 = NO es normal

Referencias https://bookdown.org/dietrichson/metodos-cuantitativos/test-de-normalidad.html

4.3 Distribución t de Student


t de Student

En probabilidad y estadística, la distribución t (de Student) es una distribución de probabilidad que surge del problema de estimar la media de una población normalmente distribuida cuando el tamaño de la muestra es pequeño y la desviación estándar poblacional es desconocida.

Note

completar formulación wiki

Si el tamaño muestral (n) es muy largo (e.g., > 30), la distribución de t Student se aproxima a una distribución Normal.

par(mfrow = c(1, 2))
curve(dt(x, df = 15), -4, 4, col = 'red', ylab = 'y', lwd = 2, las = 1, main = 'Dist. t Student')
curve(pt(x, df = 15), -4, 4, col = 'blue', ylab = 'y', lwd = 2, las = 1, main = 'Probabilidad t Student')

las distribuciones de probabilidad de la t student se generan a partir de dt y pt

La distribución Normal necesita de valores de \mu y \sigma. Acabamos de demostrar que no es posible estimar σ a partir de S:

  • X es un estimador sin sesgo de \mu
  • S es un estimador sesgado de \sigma

t Student es una distribución que se describe con dos parámetros:

  • X
  • DF (deegrees of freedom), o grados de libertad

Tiene distinta forma según los grados de libertad (Degrees of freedom [DF])

DF = ν = n - 1

Variación de la distribucion de t Student con distintos DF

degf <- c(1, 3, 8, 30)
colors <- c("red", "blue", "darkgreen", "gold", "black")
labels <- c("df = 1", "df = 3", "df = 8", "df = 30", "normal")
par(mfrow = c(1, 1))
curve(dnorm(x), -4, 4, lty=2, ylab='y', lwd=2, las=1)

# plot t student's
for (i in 1:4){
  curve(dt(x, degf[i]), lwd=2, col=colors[i], add=TRUE)
}

legend("topright", inset = .05, title = "Distributions", 
       labels, lwd = 2, lty = c(1, 1, 1, 1, 2), col = colors, bty = "n")

La distribución t se utiliza cuando:

  • Queremos estimar la media de una población normalmente distribuida a partir de una muestra pequeña.

  • Tamaño de la muestra es inferior a 30 elementos, es decir, n < 30.

No se conoce la desviación típica o estándar de una población y tiene que ser estimada a partir de las observaciones de la muestra.

Distribución de medias con tamaño de muestra 25 ± 1 S

67.3% No igual a Dist. Norm., pero Parecida

4.3.1 Funciones para estimar el error

El error estándar: ::: {.cell}

se <- function(x) { 
  sqrt(var(x)/length(x))
}

:::

Rango probable de valores para un Estadígrafo

Intervalo de confianza = estadígrafo ± margen de error

IntervConf <- function(x, alpha = 0.05) {
  t.value <- qt((1-alpha), length(x)-1) # qt -> quantile function for t distrituion
  standard.error <- se(x)
  ci <- t.value*standard.error
  cat(paste((1-alpha), "Confidence Interval = "), mean(x) - ci, "to ", mean(x) + ci,"\n") # concatenate and print
  }

Intervalo de confianza para estimar un parámetro de población, ej. la media:

X ± t_{n-1} \frac{S}{\sqrt{n}}

Aplicación de la prueba

# generamos datos de prueba
x <- rnorm(150, 25, 3) # Recuerdan el orden de rnorm
hist(x)

mean(x)
[1] 25.0514
# intervalo deconfianza al 95%
IntervConf(x)
0.95 Confidence Interval =  24.63201 to  25.47079 
# intervalo deconfianza al 99%
IntervConf(x, alpha = 0.01)
0.99 Confidence Interval =  24.45553 to  25.64727 

Nivel de confianza (alpha): Probabilidad que el intervalo de confianza contenga al parámetro de población

  • Ej., 95% de nivel de confianza
  • \alpha = 0.05; 1/20 veces de estar equivocado (Error tipo I)