Генерация данных с использованием гибких семейств распределений

Этот пример показывает, как сгенерировать данные с помощью систем распределений Пирсона и Джонсона.

Системы Пирсона и Джонсона

Как описано в Работе с Распределениями вероятностей, выбор соответствующего параметрического семейства распределений для моделирования ваших данных может быть основан на априорном или апостериорном знании процесса производства данных, но выбор часто бывает трудным. Системы Пирсона и Джонсона могут сделать такой выбор ненужным. Каждая система является гибким параметрическим семейством распределений, которое включает широкую область значений форм распределения, и часто можно найти распределение в одной из этих двух систем, которое обеспечивает хорошее соответствие вашим данным.

Вход данных

Следующие параметры определяют каждый представитель систем Пирсона и Джонсона.

  • Среднее - Оценка по mean

  • Стандартное отклонение - Оценено по std

  • Перекос - Оценка по skewness

  • Куртоз - оценка по kurtosis

Эта статистика также может быть вычислена с помощью moment функция. Система Джонсона, основанная на этих четырех параметрах, более естественно описывается с помощью квантилей, оцененных quantile функция.

The pearsrnd и johnsrnd функции берут входные параметры, определяющие распределение (параметры или квантили, соответственно), и возвращают тип и коэффициенты распределения в соответствующей системе. Обе функции также генерируют случайные числа из заданного распределения.

В качестве примера загрузите данные в carbig.mat, который включает переменную MPG содержит измерения пробега газа для каждого автомобиля.

load carbig
MPG = MPG(~isnan(MPG));
histogram(MPG,15)

Figure contains an axes. The axes contains an object of type histogram.

Следующие два раздела моделируют распределение с представителями систем Пирсона и Джонсона, соответственно.

Генерация данных с помощью системы Пирсона

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

Система Пирсона встраивает семь основных типов распределения вместе в одну параметрическую среду. Он включает общие распределения, такие как normal и t распределения, простые преобразования стандартных распределений, таких как сдвинутое и масштабированное бета-распределение и обратное гамма-распределение, и одно распределение - тип IV - это не простое преобразование какого-либо стандартного распределения.

Для заданного набора моментов существуют распределения, которых нет в системе, которые также имеют те же первые четыре момента, и распределение в системе Пирсона может быть плохо соответствующим вашим данным, особенно если данные являются мультимодальными. Но система действительно охватывает широкую область значений форм распределения, включая как симметричные, так и наклонные распределения.

Чтобы сгенерировать выборку из распределения Пирсона, которая тесно соответствует MPG данные, просто вычислите четыре выборочных момента и обработайте их как параметры распределения.

moments = {mean(MPG),std(MPG),skewness(MPG),kurtosis(MPG)};
rng('default')  % For reproducibility
[r,type] = pearsrnd(moments{:},10000,1);

Необязательный второй выход от pearsrnd указывает, какой тип распределения в системе Пирсона соответствует комбинации моментов.

type
type = 1

В этом случае pearsrnd определил, что данные лучше всего описаны с помощью распределения Пирсона типа I, которое является сдвинутым, масштабированным бета-распределением.

Проверьте, что выборка напоминает исходные данные, наложив эмпирические совокупные функции распределения.

ecdf(MPG);
[Fi,xi] = ecdf(r);
hold on;
stairs(xi,Fi,'r');
hold off

Figure contains an axes. The axes contains 2 objects of type stair.

Генерация данных с помощью системы Джонсона

Статистик Норман Джонсон разработал другую систему распределений, которая также включает уникальное распределение для каждой допустимой комбинации среднего, стандартного отклонения, перекоса и куртоза. Однако, поскольку более естественно описывать распределения в системе Джонсона с помощью квантилей, работа с этой системой отличается от работы с системой Пирсона.

Система Джонсона основана на трех возможных преобразованиях нормальной случайной переменной плюс тождества преобразование. Три нетривиальных случая известны как SL , SU , и SB , соответствующий экспоненциальным, логистическим и гиперболическим синусоидальным преобразованиям. Все три могут быть написаны как

X=γ+δΓ(Z-ξλ)

где Z является стандартной нормальной случайной переменной, Γ является преобразованием, и γ, δ, ξ, и λ являются параметрами шкалы и местоположения. Четвертый случай, SN , - преобразование тождеств.

Чтобы сгенерировать выборку из распределения Джонсона, которая соответствует MPG сначала задайте четыре величины, в которые должны быть преобразованы четыре равномерно разнесенные стандартные нормальные величины -1,5, -0,5, 0,5 и 1,5. То есть вы вычисляете выборочные квантования данных для совокупных вероятностей 0,067, 0,309, 0,691 и 0,933.

probs = normcdf([-1.5 -0.5 0.5 1.5])
probs = 1×4

    0.0668    0.3085    0.6915    0.9332

quantiles = quantile(MPG,probs)
quantiles = 1×4

   13.0000   18.0000   27.2000   36.0000

Затем обработайте эти квантили как параметры распределения.

[r1,type] = johnsrnd(quantiles,10000,1);

Необязательный второй выход от johnsrnd указывает, какой тип распределения в системе Джонсона соответствует квантилям.

type
type = 
'SB'

Можно проверить, что выборка напоминает исходные данные, наложив эмпирические совокупные функции распределения.

ecdf(MPG);
[Fi,xi] = ecdf(r1);
hold on;
stairs(xi,Fi,'r');
hold off

Figure contains an axes. The axes contains 2 objects of type stair.

В некоторых приложениях может быть важно лучше соответствовать квантилям в некоторых областях данных, чем в других. Для этого задайте четыре стандартных нормальных величины с равномерными интервалами, при которых вы хотите соответствовать данным, вместо значений по умолчанию -1,5, -0,5, 0,5 и 1,5. Например, вы можете больше заботиться о том, чтобы соответствовать данным в правом хвосте, чем в левом, и поэтому вы задаете стандартные нормальные величины, которые подчеркивают правый хвост.

qnorm = [-.5 .25 1 1.75];
probs = normcdf(qnorm);
qemp = quantile(MPG,probs);
r2 = johnsrnd([qnorm; qemp],10000,1);

Однако, хотя новая выборка лучше соответствует исходным данным в правом хвосте, она намного хуже соответствует левому хвосту.

[Fj,xj] = ecdf(r2);
hold on;
stairs(xj,Fj,'g');
hold off

Figure contains an axes. The axes contains 3 objects of type stair.

См. также

| |