Статья посвящена краткому исследованию экспоненциального (показательного) распределения с использованием языка программирования 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 экспоненциальных случайных величин мы показали, что и среднее значение, и дисперсия данного распределения достаточно близки к теоретическим значениям. Кроме того, исследуемое распределение приближается к нормальному распределению при увеличении размера выборки.