Этот пример показывает аппроксимацию объекта распределения вероятностей ядра к выборочным данным.
Загрузите выборочные данные.
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 графика потому что случайные числа генерируются из непараметрического ядерного распределения, подгонки к выборочным данным.
fitdist
| KernelDistribution
| ksdensity