Ядерное распределение

Обзор

A ядерного распределения является непараметрическим представлением функции плотности вероятностей (pdf) случайной переменной. Можно использовать ядерное распределение, когда параметрическое распределение не может правильно описать данные, или когда вы хотите избежать допущений о распределении данных. Ядерное распределение определяется функцией сглаживания и значением полосы пропускания, которые управляют плавностью полученной кривой плотности.

Оценка плотности ядра

Оценка плотности ядра является оценочным PDF случайной переменной. Для любых реальных значений x формула оценки плотности ядра задается как

f^h(x)=1nhi=1nK(xxih),

где x1, x2,..., xn являются случайными выборками из неизвестного распределения, n является размером выборки ,K(·) - функция сглаживания ядра, и h - полоса пропускания.

Функция сглаживания ядра

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

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

SixMPG = [13;15;23;29;32;34];
figure
histogram(SixMPG)

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

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

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

figure
pdSix = fitdist(SixMPG,'Kernel','BandWidth',4);
x = 0:.1:45;
ySix = pdf(pdSix,x);
plot(x,ySix,'k-','LineWidth',2)

% Plot each individual pdf and scale its appearance on the plot
hold on
for i=1:6
    pd = makedist('Normal','mu',SixMPG(i),'sigma',4);
    y = pdf(pd,x);
    y = y/6;
    plot(x,y,'b:')
end
hold off

Figure contains an axes. The axes contains 7 objects of type line.

Меньшие штриховые кривые являются распределениями вероятностей для каждого значения в выборочных данных, масштабированными, чтобы соответствовать графику. Большая твердая кривая является общим ядерным распределением SixMPG данные. Функция сглаживания ядра относится к форме тех небольших кривых компонента, которые имеют нормальное распределение в этом примере.

Можно выбрать один из нескольких опций функции сглаживания ядра. Этот график показывает формы доступных функций сглаживания.

% Set plot specifications
hname = {'normal' 'epanechnikov' 'box' 'triangle'};
colors = {'r' 'b' 'g' 'm'};
lines = {'-','-.','--',':'};

% Generate a sample of each kernel smoothing function and plot
data = [0];
figure
for j=1:4
    pd = fitdist(data,'kernel','Kernel',hname{j});
    x = -3:.1:3;
    y = pdf(pd,x);
    plot(x,y,'Color',colors{j},'LineStyle',lines{j})
    hold on
end
legend(hname)
hold off

Figure contains an axes. The axes contains 4 objects of type line. These objects represent normal, epanechnikov, box, triangle.

Чтобы понять эффект различных функций сглаживания ядра на форму полученной оценки PDF, сравните графики данных о пробеге (MPG) из carbig.mat использование каждой доступной функции ядра.

load carbig
% Set plot specifications
hname = {'normal' 'epanechnikov' 'box' 'triangle'};
colors = {'r' 'b' 'g' 'm'};
lines = {'-','-.','--',':'};

% Generate kernel distribution objects and plot
figure
for j=1:4
    pd = fitdist(MPG,'kernel','Kernel',hname{j});
    x = -10:1:60;
    y = pdf(pd,x);
    plot(x,y,'Color',colors{j},'LineStyle',lines{j})
    hold on
end
legend(hname)
hold off

Figure contains an axes. The axes contains 4 objects of type line. These objects represent normal, epanechnikov, box, triangle.

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

Пропускная способность

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

% Create kernel distribution objects
load carbig
pd1 = fitdist(MPG,'kernel');
pd2 = fitdist(MPG,'kernel','BandWidth',1);
pd3 = fitdist(MPG,'kernel','BandWidth',5);

% Compute each pdf
x = -10:1:60;
y1 = pdf(pd1,x);
y2 = pdf(pd2,x);
y3 = pdf(pd3,x);

% Plot each pdf
plot(x,y1,'Color','r','LineStyle','-')
hold on
plot(x,y2,'Color','k','LineStyle',':')
plot(x,y3,'Color','b','LineStyle','--')
legend({'BandWidth = Default','BandWidth = 1','BandWidth = 5'})
hold off

Figure contains an axes. The axes contains 3 objects of type line. These objects represent BandWidth = Default, BandWidth = 1, BandWidth = 5.

Шумовая полоса по умолчанию, которая теоретически оптимальна для оценки плотностей для нормального распределения [1], создает достаточно гладкую кривую. Установка меньшей полосы пропускания создает очень грубую кривую, но показывает, что в данных может быть два основных peaks. Установка большей полосы пропускания создает кривую, почти идентичную функции ядра, и настолько плавна, что затеняет потенциально важные характеристики данных.

Ссылки

[1] Боуман, А. У. и А. Аззалини. Примененные методы сглаживания для анализа данных. Нью-Йорк: Oxford University Press Inc., 1997.

См. также

|

Похожие темы