簡體   English   中英

是否有 Matlab function 用於計算二項分布的標准差?

[英]Is there a Matlab function for calculating std of a binomial distribution?

我有一個二進制向量 V,其中每個條目都描述了整個 session 中相關試驗中的成功 (1) 或失敗 (0)。 (向量的長度表示會話中的試驗次數)。 我可以很容易地計算出 session 的成功率(通過取向量的平均值,即 (sum(V)/length(V)))。

但是我還需要知道每個 session 的方差或標准。

為了計算,是否可以使用 Matlab std function (即采用 std(V)/length(V))? 或者,我應該使用特別適合二項分布的東西嗎? 是否存在特定於“成功/失敗”分布的 Matlab 標准(或方差)function?

謝謝

如果滿足二項分布的假設,

  • 固定數量的n次獨立伯努利試驗,
  • 每個都有恆定的成功概率p

那么我不確定這是必要的,因為參數np可從您的數據中獲得。

請注意,我們將 model成功次數(在n次試驗中)作為隨二項式( np )分布分布的隨機變量。

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)不同。 在您的數據格式中,它需要有多個向量, V1V2V2等(復制),那么成功次數的樣本標准偏差將從以下獲得。

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

如果您已經知道您的參數: np

你可以很容易地獲得它。

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

或者

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

如前所述。


標准差是否隨n增加
OP

有些事情困擾着我。如果 std = sqrt(n*p*(1-p)) ,那么它會隨着n增加。 n增加時,std 不應該減少嗎?

確認與推導:

定義:

定義

然后我們知道
分配

然后,僅從期望方差的定義中,我們就可以顯示方差(如果添加平方根,則與標准差類似)隨着n的增加而增加。

方差推導

由於平方根是非遞減的 function,我們知道同樣的關系適用於標准差。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM