Назначить результаты дискретного распределения Matlab - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь подогнать распределение к дискретному набору данных. Возможные результаты A = [1 3 4 5 9 10] с соответствующей вероятностью вероятности

prob = [0.2 0.15 0.1 0.05 0.35 0.15];

Я использовал makedist, чтобы найти дистрибутив

pd = makedist('Multinomial','probabilities', prob);

Интересно, есть ли способ включить результаты 1–10 из A в распределение, чтобы я мог рассчитать среднее значение и дисперсию возможных результатов с помощью var (pd), mean (pd). До сих пор среднее значение составляло 3,65, но моя цель - получить среднее значение (pd) = 5,95, которое является взвешенной суммой возможных результатов. Заранее спасибо.

1 Ответ

0 голосов
/ 29 апреля 2018

Решение довольно простое. Возможные результаты полиномиального распределения определяются последовательностью значений, начинающейся с 1 и заканчивающейся numel(prob). С этой официальной страницы документации:

Создание полиномиального объекта распределения для распределения с тремя возможные результаты. Исход 1 имеет вероятность 1/2, результат 2 имеет вероятность 1/3, а исход 3 имеет вероятность 1/6.

pd = makedist('Multinomial','probabilities',[1/2 1/3 1/6])

По сути, ваш вектор возможных результатов включает несколько значений, связанных с нулевой (символически 0) вероятностью. Таким образом, определите ваше распределение следующим образом, чтобы получить ожидаемый результат:

p = [0.20 0.00 0.15 0.10 0.05 0.00 0.00 0.00 0.35 0.15];
pd = makedist('Multinomial','probabilities',p);

mean(pd) % 5.95
var(pd) % 12.35
...