Этот пример показывает, как соответствовать объекту распределения вероятностей ядра к выборочным данным.
Загрузите выборочные данные.
load carsmall;
Эти данные содержат мили на галлон (MPG
), измерения для различного делают и модели автомобилей, сгруппированных страной происхождения (Origin
), модельный год (Year
) и другие характеристики автомобиля.
Используйте fitdist
, чтобы соответствовать объекту распределения вероятностей ядра к милям на галлон (MPG
) данные для всех типов автомобилей.
pd = fitdist(MPG,'Kernel')
pd = KernelDistribution Kernel = normal Bandwidth = 4.11428 Support = unbounded
Это создает объект prob.KernelDistribution
. По умолчанию fitdist
использует нормальную функцию сглаживания ядра и выбирает оптимальную пропускную способность для оценки нормальной плотности, если вы не задаете в противном случае. Можно получить доступ к информации о подгонке и выполнить дальнейшие вычисления с помощью связанных объектных функций.
Вычислите среднее значение, медиану и стандартное отклонение подходящего распределения ядра.
m = mean(pd)
m = 23.7181
med = median(pd)
med = 23.4841
s = std(pd)
s = 8.9896
Вычислите и постройте PDF подходящего распределения ядра.
figure x = 0:1:60; y = pdf(pd,x); plot(x,y,'LineWidth',2) title('Miles per Gallon') xlabel('MPG')
График показывает, что PDF подгонки распределения ядра к данным MPG
через все делает из автомобилей. Распределение сглаженно и довольно симметрично, несмотря на то, что оно немного скашивается с более тяжелым правым хвостом.
Сгенерируйте вектор случайных чисел от подходящего распределения ядра.
rng('default') % For reproducibility r = random(pd,1000,1); figure hist(r); set(get(gca,'Children'),'FaceColor',[.8 .8 1]); hold on y = y*5000; % Scale pdf to overlay on histogram plot(x,y,'LineWidth',2) title('Random Numbers Generated From Distribution') hold off
Гистограмма имеет подобную форму к графику PDF, потому что случайные числа генерируют от непараметрической подгонки распределения ядра до выборочных данных.
KernelDistribution
| fitdist
| ksdensity