Как я могу отобразить эмпирический PDF моих векторных данных 100x1 в Matlab?
У меня есть данные, которые являются вектором 100x1. Как я могу отобразить его эмпирический PDF в Matlab? Кроме того, если я хочу сравнить PDF трех векторов на одном графике, то как это сделать?
Прямо сейчас я использую файл pdfplot.m для построения своего эмпирического файла PDF, однако, когда я хочу сравнить 3 распределения с помощью 'hold on', то, во-первых, он не работает, а во-вторых, все распределения имеют одинаковый цвет. Спасибо!
РЕДАКТИРОВАТЬ: я не хочу, чтобы сюжет Cdf.
2 ответа
hist(data)
или, если вы хотите больше контроля над тем, как он представлен, используйте:
[n,x] = hist(data);
plot(x,n,'rx-'); %# just an example, plot the pdf with red x's and a line,
%# instead of bars
figure;
plot(x, cumsum(n)/sum(n)); %# plot the CDF
То, что вы ищете, это оценка плотности ядра (также известная как окна Parzen). Это реализовано в функции KSDENSITY на панели инструментов Статистика:
data = randn(100,1);
ksdensity(data)
В приведенной выше записи в Википедии есть пример MATLAB с использованием функции передачи на FEX.