2011-11-02 54 views
0

我有以下的號碼v_samples(1.4,2.21,4.21,2.1,5.1)用於計算方差的算法是否正確?

我得到偏差= 2.45122

但是當我的一些偏差計算器websites檢查。他們都給了我不同的答案。

double variance(){ 
     double variance =0 ; 
     double average = mean(); 
     double size = v_samples.size(); 
     for (size_t i = 0, max = size; i != max; ++i){ 
      variance += (v_samples[i]-average) * (v_samples[i]-average)/size; 
     } 
     return variance; 
    } 

編輯:方不越軌

編輯:平均值()返回2.804

編輯:平均現在返回正確的值3.004

樣本方差現在返回1.97362。這是正確的

+0

如果所有樣本權重相等這是正確的了。 –

+1

你剛纔問這個問題... –

+0

這只是由於我假設的舍入錯誤。正確答案是2.46703 –

回答

1

1.4, 2.21, 4.21, 2.1, 5.1 

總和爲15.02和平均爲3.004

如果你所得到的平均值爲2.804

2.804 * 5 = 14.02 

15.0214.02是關閉1.你必須通過一個錯誤的地方:)

+0

是的意思是一個錯誤的現在ive修復它。我沒有得到1.97362的方差(樣本方差)是否正確? – code511788465541441

+1

你獲得什麼價值的差異。如果平均值是3.004,我會得到1.973624的完全相同的函數 –

1

它應該工作,所以你在mean()有問題。

+0

是的問題是在平均水平。我已經編輯了我原來的帖子。請看看 – code511788465541441

+0

是的,我想通了..請upvote:/ –