Сгенерируйте сопоставленные данные Используя порядковую корреляцию

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

Шаг 1. Сгенерируйте случайные числа Пирсона.

Сгенерируйте 1 000 случайных чисел от двух различных дистрибутивов Пирсона, с помощью функции pearsrnd. Первое распределение имеет значения параметров mu равный 0, сигма, равная 1, скос, равный 1, и эксцесс, равный 4. Второе распределение имеет значения параметров mu равный 0, сигма, равная 1, скос, равный 0,75, и эксцесс, равный 3.

rng default  % For reproducibility
p1 = pearsrnd(0,1,-1,4,1000,1);
p2 = pearsrnd(0,1,0.75,3,1000,1);

На данном этапе p1 и p2 являются независимыми выборками от их соответствующих дистрибутивов Пирсона и являются некоррелироваными.

Шаг 2. Постройте случайные числа Пирсона.

Создайте график scatterhist визуализировать случайные числа Пирсона.

figure
scatterhist(p1,p2)

Гистограммы показывают предельные распределения для p1 и p2. scatterplot показывает совместное распределение для p1 и p2. Отсутствие шаблона к scatterplot показывает, что p1 и p2 независимы.

Шаг 3. Сгенерируйте случайные числа с помощью Гауссовой связки.

Используйте copularnd, чтобы сгенерировать 1 000 коррелированых случайных чисел с коэффициентом корреляции, равным –0.8, с помощью Гауссовой связки. Создайте график scatterhist визуализировать случайные числа, сгенерированные из связки.

u = copularnd('Gaussian',-0.8,1000);
figure
scatterhist(u(:,1),u(:,2))

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

Шаг 4. Сортировка случайных чисел связки.

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

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

[s1,i1] = sort(u(:,1));
[s2,i2] = sort(u(:,2));

s1 и s2 содержат числа из первых и вторых столбцов связки, u, отсортированного по порядку от самого маленького до самого большого. i1 и i2 являются индексными векторами, которые описывают перестроенный порядок элементов в s1 и s2. Например, если первое значение в отсортированном векторном s1 является третьим значением в исходном неотсортированном векторе, то первое значение в индексном векторе i1 равняется 3.

Шаг 5. Преобразуйте выборки Пирсона с помощью порядковой корреляции Копьеносца.

Создайте два вектора нулей, x1 и x2, которые одного размера как отсортированные векторы связки, s1 и s2. Сортировка значений в p1 и p2 от самого маленького до самого большого. Поместите значения в x1 и x2 в том же порядке как индексы i1 и i2, сгенерированный путем сортировки случайных чисел связки.

x1 = zeros(size(s1));
x2 = zeros(size(s2));

x1(i1) = sort(p1);
x2(i2) = sort(p2);

Шаг 6. Постройте коррелированые случайные числа Пирсона.

Создайте график scatterhist визуализировать сопоставленные данные Пирсона.

figure
scatterhist(x1,x2)

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

Шаг 7. Подтвердите содействующие значения порядковой корреляции Копьеносца.

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

copula_corr = corr(u,'Type','spearman')
copula_corr = 2×2

    1.0000   -0.7858
   -0.7858    1.0000

pearson_corr = corr([x1,x2],'Type','spearman')
pearson_corr = 2×2

    1.0000   -0.7858
   -0.7858    1.0000

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

Смотрите также

| |

Похожие темы