Vamos a demostrar como una distrubucion exponencial se puede aproximar con una distribución normal. Para ello vamos a comparar una muestra aleatoria de datos y sus caracteristicas empiricas, con los valores teóricos calculados basandonos en el Central Limit Theorem.
Parametrizamos la generación de la muestra de datos, establecemos una semilla para que el experimento sea reproducible. Asimismo Vamos a calcular la media de 40 numeros generados por la funcion rexp de R, y vamos a repetir este calculo 10.000 veces, para obtener una muestra de datos suficientemente extensa para que podamos obtener los resultados que estamos esperando. Valores iniciales: - semilla = 13 - lambda = 0.2 - muestra = 40 - Nº observaciones = 10.000
set.seed(13)
lambda <- 0.2
muestra <- 40
nobs <- 10000
datos <- NULL
for(i in 1:nobs)
datos <- c(datos, mean(rexp(muestra, lambda)))
Calculamos la media teorica, según el Central Limit Theorem.
1 / lambda
## [1] 5
Calculamos la media empirica del total de la muestra.
mean(datos)
## [1] 4.993761
Los dos valores son realmente proximos. La distribucion de la muestra tiene un comportamiento muy similar a una distribución normal, en cuento a la media.
Calculamos la varianza teorica, según el Central Limit Theorem.
(lambda * sqrt(muestra)) ^ -2
## [1] 0.625
Calculamos la varianza empirica del total de la muestra.
var(datos)
## [1] 0.6180696
Como suponiamos los dos valores vuelven a ser muy cercanos. Se comporta de manera similar a una distribución normal, tambien, en cuento a su varianza.
Vamos a representar la distribución de la muestra en un histograma de densidad (gray), ademas vamos a dibujar la función generada por los valores teoricos (red) y la función generada por los valores empiricos (green).
g <- ggplot(data.frame(variable = datos), aes(x = variable))
g <- g + geom_histogram(aes(y = ..density..), binwidth = 0.2, fill = 'gray', color = 'black')
g <- g + stat_function(fun = dnorm, args = list(mean = lambda^-1, sd=(lambda*sqrt(muestra))^-1), size=1, col = "red")
g <- g + stat_function(fun = dnorm, args = list(mean = mean(datos), sd=sd(datos)), size=1, col = "green")
g <- g + labs(title = "Distribution Exponentials vs Normal", x = "Means", y = "Density")
g
Podemos observar que las dos funciones practicamente se superponen, con lo cual, no existe ninguna duda en que la distribución exponencial de la muestra de 10.000 medias de 40 numeros cada una, se comporta de acuerdo al Central Limit Theorem, por lo tanto podemos aproximarla con bastante exactitud con una distribución normal. Si aumentamos las dimensiones de la muestra, cosa bastante facil hoy en dia, conseguiremos que sean identicas ambas distribuciones.