johnsrnd

Системные случайные числа Джонсона

Синтаксис

r = johnsrnd(quantiles,m,n)
r = johnsrnd(quantiles)
[r,type] = johnsrnd(...)
[r,type,coefs] = johnsrnd(...)

Описание

r = johnsrnd(quantiles,m,n) возвращает m- n матрица случайных чисел, чертивших от распределения в системе Джонсона, которая удовлетворяет спецификации квантиля, данной quantiles. quantiles четырехэлементный вектор из квантилей для желаемого распределения, которые соответствуют стандартным нормальным квантилям [–1.5 – 0.5 0.5 1.5]. Другими словами, вы задаете распределение, от которого можно чертить случайные значения путем обозначения квантилей, которые соответствуют интегральным вероятностям [0.067 0.309 0.691 0.933]. quantiles май также быть 2- 4 матрица, первая строка которой содержит четыре стандартных нормальных квантиля, и чья вторая строка содержит соответствующие квантили желаемого распределения. Стандартные нормальные квантили должны быть расположены с интервалами равномерно.

Примечание

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

r = johnsrnd(quantiles) возвращает скалярное значение.

r = johnsrnd(quantiles,m,n,...) или r = johnsrnd(quantiles,[m,n,...]) возвращает m- n-... массив.

[r,type] = johnsrnd(...) возвращает тип заданного распределения в системе Джонсона. type 'SN'\sl, 'SB', или 'SU'. Установите m и n чтобы обнулить, чтобы идентифицировать распределение вводят, не генерация случайные значения.

Четыре типа распределения в системе Джонсона соответствуют следующим преобразованиям нормальной случайной варьируемой величины:

[r,type,coefs] = johnsrnd(...) возвращает коэффициенты coefs из преобразования, которое задает распределение. coefs [gamma, eta, epsilon, lambda]. Если z стандартная нормальная случайная переменная и h одно из преобразований, заданных выше, r = lambda*h((z-gamma)/eta)+epsilon случайная варьируемая величина от типа распределения, соответствующего h.

Примеры

свернуть все

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

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

rng default;  % For reproducibility
r = johnsrnd([-1.7 -.5 .5 1.7],1000,1);
figure;
qqplot(r);

Figure contains an axes object. The axes object with title QQ Plot of Sample Data versus Standard Normal contains 3 objects of type line.

Сгенерируйте случайные значения, скошенные направо.

r = johnsrnd([-1.3 -.5 .5 1.7],1000,1);
figure;
qqplot(r);

Figure contains an axes object. The axes object with title QQ Plot of Sample Data versus Standard Normal contains 3 objects of type line.

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

load carbig;
qnorm = [.5 1 1.5 2];
q = quantile(Acceleration, normcdf(qnorm));
r = johnsrnd([qnorm;q],1000,1);
[q;quantile(r,normcdf(qnorm))]
ans = 2×4

   16.7000   18.2086   19.5376   21.7263
   16.6986   18.2220   19.9078   22.0918

Определите тип распределения и коэффициенты.

[r,type,coefs] = johnsrnd([qnorm;q],0)
r =

     []
type = 
'SU'
coefs = 1×4

    1.0920    0.5829   18.4382    1.4494

Введен в R2006a