Существует ли функция Matlab для вычисления стандартного распределения биномиального распределения? - PullRequest
1 голос
/ 07 ноября 2019

У меня есть двоичный вектор V, в котором каждая запись описывает успех (1) или неудачу (0) в соответствующем испытании из целого сеанса. (длина вектора обозначает количество испытаний в сеансе). Я могу легко рассчитать показатель успешности сеанса (взяв среднее значение вектора, т. Е. (Сумма (V) / длина (V))).

Однако мне также необходимо знать дисперсию или стандартное значение каждогосеанс.

Для того, чтобы рассчитать это, можно ли использовать функцию std Matlab (то есть взять std (V) / length (V))? Или я должен использовать что-то, что специально подходит для биномиального распределения? Существует ли функция Matlab std (или дисперсия), которая предназначена для распределения «успех / неудача»?

Спасибо

1 Ответ

1 голос
/ 07 ноября 2019

Если вы удовлетворяете предположениям Биномиального распределения ,

  • фиксированного числа n независимых Бернулли испытаний,
  • каждый с постоянной вероятностью успеха p ,

, тогда я не уверен, что это необходимо, поскольку параметры n и p доступны изваши данные.

Обратите внимание, что мы моделируем количество успехов n испытаниях) как случайную переменную, распределенную с помощью бинома ( n , р ) раздача.

n = length(V);
p = mean(V);     % equivalently, sum(V)/length(V)   
                 % the mean is the maximum likelihood estimator (MLE) for p
                 % note: need large n or replication to get true p

Тогда стандартное отклонение числа успехов в n независимых Бернулли испытаний с постоянной вероятностью успеха p равно sqrt(n*p*(1-p)).

Конечно, вы можете оценить это по вашим данным, если у вас есть несколько образцов. Обратите внимание, что это отличается от std(V). При форматировании данных для этого потребуется наличие нескольких векторов V1, V2, V2 и т. Д. (Репликация), тогда образец стандартного отклонения числа успехов будет получен изследующие:

% Given V1, V2, V3 sets of Bernoulli trials
std([sum(V1) sum(V2) sum(V3)])

Если вы уже знаете свои параметры: n , p

Вы можетеполучить его достаточно легко.

n = 10;
p = 0.65;
pd = makedist('Binomial',n, p)
std(pd)                                % 1.5083

или

sqrt(n*p*(1-p))                        % 1.5083

, как обсуждалось ранее.


Увеличивается ли стандартное отклонение с n ?
Оператор спросил :

Что-то беспокоит меня ... если std = sqrt(n*p*(1-p)),затем оно увеличивается с n. Разве стандарт не уменьшается при увеличении n?

Подтверждение и вывод:

Определения:

Definitions

Тогда мы знаем, что
Distribution

Тогда просто из определений ожидание и дисперсия мы можем показать, что дисперсия (аналогично стандартному отклонению, если добавить квадратный корень) увеличивается с n.

Variance derivation

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...