Экспоненциальное распределение и Центральная предельная теорема

Статья посвящена краткому исследованию экспоненциального (показательного) распределения с использованием языка программирования R с целью проверки центральной предельной теоремы.

Параметры экспоненциального распределения

Плотность вероятности экспоненциальной случайной величины \(X\) имеет вид: \[f(x;\lambda) = \lambda e^{-\lambda x} (x > 0),\] где \(\lambda\) > 0 - параметр экспоненциального распределения.
Экспоненциальное распределение в R моделируется с помощью функции rexp(n, lambda). Сгенерируем 1000 псевдослучайных чисел, распределенных экспоненциально с параметром \(\lambda\) = 0.2, и построим гистограмму распределения:

set.seed(123)
lambda <- 0.2
n <- 1000
data_exp <- data.frame(x = rexp(n, lambda))
library("ggplot2")
ggplot(data_exp, aes(x = x)) + ylab("") +
    geom_histogram(aes(y=..density..), binwidth=0.5, colour="black", fill="white") + 
    ggtitle("Экспоненциальное распределение") +
    geom_density(alpha = 0.2, fill = "#FF6666") 

Математическое ожидание случайной величины, имеющей экспоненциальное распределение, обратно параметру распределения: \[\mu = \frac{1} {\lambda}.\] Дисперсия экспоненциальной случайной величины \(X\) определяется по формуле: \[\sigma^2 = \frac{1} {\lambda^2}.\] Для нашего распределения с параметром \(\lambda\) = 0.2 математическое ожидание равно 5, дисперсия равна 25.

Распределение средних значений экспоненциальных случайных величин

Возьмем несколько экспоненциальных случайных величин (к примеру, 40 штук) и найдем их среднее значение. Повторим это 1000 раз. В результате получим распределение средних значений сорока экспоненциальных случайных величин. Построим гистограмму распределения.

mns = NULL
for (i in 1:n) mns = c(mns, mean(rexp(40, lambda)))
data_means <- data.frame(x = mns)
m <- mean(data_means$x)
ggplot(data_means, aes(x = x)) + ylab("") +
    geom_histogram(aes(y=..density..), binwidth=0.2, colour="black", fill="white") +
    geom_density(alpha = 0.2, fill = "#FF6666") +
    ggtitle("Распределение средних значений") +
    stat_function(fun=dnorm, colour="red", args = list(mean = 5, sd = 1)) +
    geom_vline(aes(xintercept=m), linetype="dashed", size=1, color="blue")

Из рисунка видно, что распределение средних визуально похоже на нормальное распределение - мы добавили его для наглядности на график (красная линия). Так же на графике проведена линия, соответствующая среднему значению изучаемого распределения: \(\bar X\) = 5.013 (синий пунктир). Это значение довольно близко к математическому ожиданию экспоненциального распределения: \(\mu\) = 5. Так работает закон больших чисел: при увеличении числа опытов, в каждом из которых случайная величина \(X\) принимает какое-то значение, среднее арифметическое наблюдаемых значений приближается к математическому ожиданию случайной величины.

Проверка центральной предельной теоремы

Центральная предельная теорема утверждает, что сумма \(n\) независимых одинаково распределенных случайных величин имеет распределение, близкое к нормальному. Другими словами, закон распределения средней арифметической \(\bar X_n\) первых \(n\) величин при увеличении \(n\) приближается к нормальному распределению \(N(\mu, \sigma^2/n)\). Дисперсия распределения средних значений сгенерированных экспоненциальных случайных величин равна 0.604, что довольно близко к значению \(\sigma^2/n\) = 25/40 = 0.625.
R код ниже генерирует три распределения средних значений различного числа экспоненциальных случайных величин (10, 40 и 100) и строит их гистограммы.

cfunc <- function(x, n) sqrt(n) * (mean(x) - 5) / 5
dat <- data.frame(
    x = c(apply(matrix(rexp(n * 10, lambda), n), 1, cfunc, 10),
          apply(matrix(rexp(n * 40, lambda), n), 1, cfunc, 40),
          apply(matrix(rexp(n * 100, lambda), n), 1, cfunc, 100)
    ),
    size = factor(rep(c(10, 40, 100), rep(n, 3))))
ggplot(dat, aes(x = x, fill = size)) + ylab("") +
    geom_histogram(alpha = .20, binwidth=.3, colour = "black", aes(y = ..density..)) + 
    stat_function(fun = dnorm, colour="red") + 
    facet_grid(. ~ size, scales = "free")

Видно, что при увеличении \(n\) закон распределения средних приближается к нормальному распределению (красная линия).

Заключение

В результате исследования распределения средних значений 40 экспоненциальных случайных величин мы показали, что и среднее значение, и дисперсия данного распределения достаточно близки к теоретическим значениям. Кроме того, исследуемое распределение приближается к нормальному распределению при увеличении размера выборки.