本發(fā)明涉及標(biāo)準(zhǔn)差計算技術(shù)領(lǐng)域,特別涉及一種標(biāo)準(zhǔn)差的分布式計算方法。
背景技術(shù):
標(biāo)準(zhǔn)差被定義為:總體各單位標(biāo)準(zhǔn)值與其平均數(shù)離差平方的算術(shù)平均數(shù)的平方根。在統(tǒng)計學(xué)中,標(biāo)準(zhǔn)差常常用來度量一組數(shù)值的差異大小和分散程度,標(biāo)準(zhǔn)差越大,代表大部分?jǐn)?shù)值和其平均值之間差異越大,例如在物理科學(xué)中,做重復(fù)性測量時,測量數(shù)值集合的標(biāo)準(zhǔn)差代表這些測量的精確度?,F(xiàn)有技術(shù)中主要有以下幾種獲得標(biāo)準(zhǔn)差的方法:
一、標(biāo)準(zhǔn)差的抽樣計算方法,即對總體數(shù)據(jù)抽取一定的樣本,并對樣本進(jìn)行樣本標(biāo)準(zhǔn)差的計算,用以代替總體的標(biāo)準(zhǔn)差。
但是抽樣方法存在著抽樣偏差,尤其是在大數(shù)據(jù)的環(huán)境下,這種偏差會更加明顯。
二、總體標(biāo)準(zhǔn)差的傳統(tǒng)計算方法:
根據(jù)標(biāo)準(zhǔn)差的定義,標(biāo)準(zhǔn)差是各個數(shù)據(jù)分別與均值之差的平方的和的平均數(shù)的平方根,其中
均值μ的計算公式:
標(biāo)準(zhǔn)差σ的計算公式:
由公式(2)可以推導(dǎo)出公式(3),其推倒過程省略;
在大數(shù)據(jù)的環(huán)境下,傳統(tǒng)標(biāo)準(zhǔn)差計算方法的計算量非常大,操作起來不現(xiàn)實。
三、標(biāo)準(zhǔn)差的迭代計算方法:
當(dāng)有新的數(shù)據(jù)進(jìn)入時,標(biāo)準(zhǔn)差的傳統(tǒng)計算方法要重新調(diào)用原來的所有數(shù)據(jù)值和新增數(shù)據(jù)一起來計算新的標(biāo)準(zhǔn)差,針對這一問題,人們提出了標(biāo)準(zhǔn)差的迭代計算方法:
假設(shè)有一個時間序列的數(shù)據(jù):
x1,x2,x3,x4,...,xn,xn+1,...
在時間點n時,得到數(shù)據(jù)xn,并在時間點n+1,得到數(shù)據(jù)xn+1。每當(dāng)一個新的數(shù)據(jù)流入時,就要在一個長為n的時間窗口內(nèi)計算包括該新數(shù)據(jù)在內(nèi)的n個數(shù)的標(biāo)準(zhǔn)差。
其關(guān)鍵步驟如下:首先計算
然后,通過迭代的方式計算出新增一個數(shù)據(jù)時總體的和Xn+1及標(biāo)準(zhǔn)差STD.Sn+1:
Xn+1=Xn+xn+1-x1 (6)
公式(6)迭代地計算一個長為n的窗口內(nèi)數(shù)據(jù)的總和,公式(7)迭代地計算一個長為n的窗口內(nèi)數(shù)據(jù)的標(biāo)準(zhǔn)差。
通過把分母(n-1)更換為n,得到總體標(biāo)準(zhǔn)差的迭代計算方法:
針對流數(shù)據(jù)的總體標(biāo)準(zhǔn)差的迭代計算方法,可以對新增數(shù)據(jù)進(jìn)行簡便計算,但當(dāng)有新的數(shù)據(jù)進(jìn)入時,仍需重新對所有數(shù)據(jù)進(jìn)行計算,造成計算冗余。
三、標(biāo)準(zhǔn)差的增量計算方法
為了解決傳統(tǒng)標(biāo)準(zhǔn)差計算量大的技術(shù)問題,人們還提出了標(biāo)準(zhǔn)差的增量計算方法:
該方法首先在公式(1)的基礎(chǔ)上推倒出以下兩個關(guān)系式:
xn-μn-1=n(μn-μn-1) (9)
又由于:
因而,結(jié)合公式(9)、(10)推倒出:
Sn=Sn-1+(xn-μn-1)(xn-μn) (12)
繼而得到:
標(biāo)準(zhǔn)差增量計算方法只需要根據(jù)已往總體數(shù)據(jù)的標(biāo)準(zhǔn)差和方差及單個新增數(shù)據(jù),便可計算出新總體的標(biāo)準(zhǔn)差。但當(dāng)面對分布式存儲的大數(shù)據(jù)時,需要將其他分布式存儲的局部總體中的每個值作為后續(xù)增量,逐個代入計算,而不能直接利用各個局部總體已有的均值和標(biāo)準(zhǔn)差,計算效率依舊不高。
綜上可知,根據(jù)標(biāo)準(zhǔn)差定義的傳統(tǒng)計算標(biāo)準(zhǔn)差的方法需要將每個數(shù)據(jù)值的離均差平方算出,當(dāng)數(shù)據(jù)量很多時計算量大,當(dāng)有新的數(shù)據(jù)進(jìn)入時,就要重新計算總體的均值及新的離均差平方和,故其計算存在冗余?,F(xiàn)有的標(biāo)準(zhǔn)差的增量計算方法雖不用訪問所有以前的輸入數(shù)據(jù)從而利用了已知的條件,但如果之后輸入的數(shù)據(jù)數(shù)量比較大時,要將之后進(jìn)入的每個數(shù)據(jù)值逐一進(jìn)行增量計算,則其計算量也不能得到明顯降低。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的是提供一種標(biāo)準(zhǔn)差的分布式計算方法,只要知道各局部總體的均值、標(biāo)準(zhǔn)差及個數(shù),就能計算出總體的標(biāo)準(zhǔn)差,從而解決現(xiàn)有標(biāo)準(zhǔn)差計算方法計算量大的技術(shù)問題。
本發(fā)明標(biāo)準(zhǔn)差的分布式計算方法,包括以下步驟:
1)輸入各個局部總體Pi;
2)計算各局部總體Pi的均值μi、標(biāo)準(zhǔn)差σi、以及局部總體的數(shù)據(jù)個數(shù)ni;
3)根據(jù)公式計算出輸入總體的均值;
4)利用公式計算出輸入總體的標(biāo)準(zhǔn)差。
本發(fā)明的有益效果:
本發(fā)明標(biāo)準(zhǔn)差的分布式計算方法,只要知道各局部數(shù)據(jù)的均值、標(biāo)準(zhǔn)差及個數(shù),就能計算出總體數(shù)據(jù)的標(biāo)準(zhǔn)差;這種方法使計算量顯著減少,且由于不用頻繁讀取各分散儲存的所有數(shù)據(jù),節(jié)省了大量的查詢訪問時間,實際計算效率會有更大的提高。
附圖說明
圖1為本發(fā)明標(biāo)準(zhǔn)差的分布式計算方法的流程圖;
圖2為本發(fā)明標(biāo)準(zhǔn)差的分布式計算方法的計算模型圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步描述。
本實施例標(biāo)準(zhǔn)差的分布式計算方法,包括以下步驟:
1)輸入各個局部總體Pi;
2)計算各局部總體Pi的均值μi、標(biāo)準(zhǔn)差σi、以及局部總體的數(shù)據(jù)個數(shù)ni;
3)根據(jù)公式計算出輸入總體的均值;
4)利用公式計算出輸入總體的標(biāo)準(zhǔn)差。各局部總體的標(biāo)準(zhǔn)差σi可采用背景技術(shù)中所述的標(biāo)準(zhǔn)差的傳統(tǒng)計算方法或者標(biāo)準(zhǔn)差的增量計算方法獲得。
下面通過具體實例將標(biāo)準(zhǔn)差的分布式計算方法與標(biāo)準(zhǔn)差的傳統(tǒng)計算方法、標(biāo)準(zhǔn)差的迭代計算方法、以及標(biāo)準(zhǔn)差的增量計算方法在計算的復(fù)雜性上進(jìn)行對比,以證明本發(fā)明標(biāo)準(zhǔn)差的分布式計算方法的優(yōu)越性。
先輸入各局部總體:
局部總體P1:{4,16,14,13,16,-7,-3,16,10,-19,1,-6,9,-4,17,12,3,8,18,9}
局部總體P2:{-3,-12,3,4,7,13,-15,16,-15,19}
局部總體P3:{-18,-7,17,-18,-6,-13,-2,-18,-2,-12,10,0,10,9,20}
計算輸入的各局部總體Pi的均值μi、標(biāo)準(zhǔn)差σi、數(shù)據(jù)個數(shù)ni為:
各局部總體Pi的均值μi分別為:μ1=6.35,μ2=1.7,μ3=-2
各局部總體Pi的標(biāo)準(zhǔn)差σi分別為:σ1=9.763580286,σ2=11.97539143,σ3=12.35043859
各局部總體Pi的數(shù)據(jù)個數(shù)ni分別為:n1=20,n2=10,n3=15。
比較一:通過標(biāo)準(zhǔn)差的傳統(tǒng)計算方法計算局部總體P1、局部總體P2和局部總體P3這三者總體的標(biāo)準(zhǔn)差
總體的數(shù)據(jù)總個數(shù)為:nt=n1+n2+n3=45,此步驟包括2個加法。
計算總體的均值:
此步驟包括44個加法,1個除法。
計算總體的標(biāo)準(zhǔn)差:
此步驟需要進(jìn)行45個乘法或平方,1個除法,44個加法,45個減法,1個開方運算。
可知,用傳統(tǒng)的計算方法計算標(biāo)準(zhǔn)差時共需要45個乘法,2個除法,90個加法,45個減法,1個開方運算。
比較二:通過標(biāo)準(zhǔn)差的迭代計算方法計算局部總體P1、局部總體P2和局部總體P3這三者總體的標(biāo)準(zhǔn)差
已知局部總體P1的標(biāo)準(zhǔn)差σ1=9.763580286,設(shè)數(shù)據(jù)窗口的長度為數(shù)據(jù)量最多的數(shù)據(jù)塊的長度20。
根據(jù)公式(4)計算出前20個數(shù)的和:
此步驟包括19個加法。
根據(jù)公式(6)計算新增第21個數(shù)據(jù)后的后n個數(shù)和:
X21=X20+x21-x1=127+(-3)-4=120
此步驟包括1個加法,1個減法。
根據(jù)公式(8)計算出總體的標(biāo)準(zhǔn)差:
此步驟共包括3個乘法或平方,2個除法,3個加法,2個減法,1個開方。
當(dāng)新增1個數(shù)據(jù)值時,迭代的方法共需要進(jìn)行3個乘法,2個除法,23個加法,3個減法和1個開方運算。
將后面進(jìn)入的全部數(shù)據(jù)依次按以上步驟進(jìn)行計算,得出總體的標(biāo)準(zhǔn)差為σ=13.37310734。
在已知局部總體P1的均值及標(biāo)準(zhǔn)差的情況下,用迭代的計算方法計算總體的標(biāo)準(zhǔn)差共需要進(jìn)行75個乘法,50個除法,594個加法,75個減法,25個開方運算。
此算法的時間復(fù)雜度與數(shù)據(jù)塊中的數(shù)據(jù)量相關(guān),為O(n-a),n為總體的數(shù)據(jù)個數(shù),常量a為第一個數(shù)據(jù)塊中的數(shù)據(jù)個數(shù)。只新增一個數(shù)據(jù)時,該算法相比傳統(tǒng)的計算方法具有優(yōu)勢,但是當(dāng)新增數(shù)據(jù)量很大時,計算量的與n正比例關(guān)系,甚至超過了傳統(tǒng)方法的計算量。另外,此方法的計算結(jié)果與正確結(jié)果之間存在差異,只能作為近似計算方法。
比較三:通過標(biāo)準(zhǔn)差的增量計算方法計算局部總體P1、局部總體P2和局部總體P3這三者總體的標(biāo)準(zhǔn)差
已知局部總體P1的均值μ1=6.35,標(biāo)準(zhǔn)差σ1=9.763580286,數(shù)據(jù)個數(shù)n1=20,
根據(jù)公式(11),計算出局部總體P1的離均差平方和的值
此步驟包括2個乘法。
計算新增第21個數(shù)據(jù)的平均值
此步驟需要進(jìn)行2個乘法,1個除法,2個加法運算。
根據(jù)公式(12),計算出新增第21個數(shù)據(jù)以后的離均差平方和
S21=S20+((-3)-μ1)((-3)-μ21)=1989.809524
此步驟包括1個乘法,1個加法,2個減法。
根據(jù)公式(13),計算出:
此步驟包括1個除法,1個開方。
當(dāng)新增1個數(shù)據(jù)值時,共包括5個乘法,2個除法,3個加法,2個減法,1個開方運算。
將后面進(jìn)入的全部數(shù)據(jù)依次帶入以上步驟進(jìn)行計算,得出總體的標(biāo)準(zhǔn)差σ=11.77115118。
在已知局部總體P1的均值及標(biāo)準(zhǔn)差的情況下,用增量的計算方法計算標(biāo)準(zhǔn)差共需要計算125個乘法,50個除法,75個加法,50個減法,25個開方。
此方法計算出的結(jié)果與準(zhǔn)確結(jié)果無誤差。當(dāng)有單個新的數(shù)據(jù)進(jìn)入時,能充分利用已知條件,減少計算冗余。但可以看到,當(dāng)新增的數(shù)據(jù)量增大時,計算量呈倍數(shù)增加,可能會超過傳統(tǒng)計算所需的計算量,但比迭代的計算方法所需的計算量要少。標(biāo)準(zhǔn)差的增量計算算法的時間復(fù)雜度與總體中的數(shù)據(jù)量相關(guān),為O(n-a),n為總體的數(shù)據(jù)個數(shù)量,常量a為第一個局部總體中的數(shù)據(jù)個數(shù)。
比較四:通過標(biāo)準(zhǔn)差的分布式計算方法計算局部總體P1、局部總體P2和局部總體P3這三者總體的標(biāo)準(zhǔn)差
根據(jù)公式:
計算出整體的均值μt,為此步驟包括3個乘法,1個除法,4個加法。
利用分布式標(biāo)準(zhǔn)差算法計算總體的標(biāo)準(zhǔn)差:
此步驟包括12個乘法,9個除法,14個加法,9個減法,1個開方。
將標(biāo)準(zhǔn)差的分布計算方法帶入到上述數(shù)據(jù)中計算,總共需要計算15個乘法,10個除法,18個加法,9個減法,1個開方。
此算法計算出的結(jié)果準(zhǔn)確無誤。當(dāng)知道每個局部總體的均值和標(biāo)準(zhǔn)差時,能簡便地計算出總體的標(biāo)準(zhǔn)差,充分地利用了每個數(shù)據(jù)塊的已知條件,使計算效率得到極大提高。該方法的計算復(fù)雜度與數(shù)據(jù)個數(shù)無關(guān),只與局部總體的個數(shù)有關(guān)。此算法的時間復(fù)雜度為O(l),常數(shù)l為局部總體的個數(shù)。
從上述各種標(biāo)準(zhǔn)差計算方法所需要的計算步驟可知,本發(fā)明標(biāo)準(zhǔn)差的增量計算方法使計算量顯著減少,優(yōu)勢明顯,且由于不用頻繁讀取各分散儲存的所有數(shù)據(jù),節(jié)省了大量的查詢訪問時間,實際計算效率會有更大的提高。
下面是將本實施例標(biāo)準(zhǔn)差的分布式計算方法用于股市穩(wěn)定性分析的實例。
股票價格的波動是股票市場風(fēng)險的表現(xiàn),因此股票市場風(fēng)險分析就是對股票市場價格波動進(jìn)行分析。波動性代表了未來價格取值的不確定性,這種不確定性一般用方差或標(biāo)準(zhǔn)差來刻畫。表1是中國和美國部分時段的股票統(tǒng)計指標(biāo)。
表1:上證及標(biāo)準(zhǔn)普爾指數(shù)
通過計算可以得到:
上證指數(shù)業(yè)績期望值
=(1144.08+1686.75+4328.92+2912.42+2736.50+2795.42+2639.19+2211.11+2182.53+2279.74)/10≈2491.6660
上證波動率期望值≈0.3323
標(biāo)準(zhǔn)普爾業(yè)績期望值≈1356.2570
標(biāo)準(zhǔn)普爾波動率期望值≈0.17118
而標(biāo)準(zhǔn)差的計算公式則根據(jù)背景技術(shù)中的公式(12)計算:
上證指數(shù)的業(yè)績標(biāo)準(zhǔn)差≈800.5983
上證波動率標(biāo)準(zhǔn)差≈0.1032
標(biāo)準(zhǔn)普爾指數(shù)業(yè)績標(biāo)準(zhǔn)差≈267.4948
標(biāo)準(zhǔn)普爾波動率標(biāo)準(zhǔn)差≈0.0736
因為標(biāo)準(zhǔn)差是絕對值,不能通過標(biāo)準(zhǔn)差對中美直接進(jìn)行對比,而變異系數(shù)可以直接比較。計算可得:
上證業(yè)績變異系數(shù)≈800.5983/2491.6660≈0.3213
上證波動率變異系數(shù)≈0.1032/0.3323≈0.3105
標(biāo)準(zhǔn)普爾業(yè)績變異系數(shù)≈267.4948/1356.2570≈0.1972
標(biāo)準(zhǔn)普爾波動率變異系數(shù)≈0.0736/0.17118≈0.4301
通過比較可以看出上證波動率變異系數(shù)要大于標(biāo)準(zhǔn)普爾波動率變異系數(shù),說明長期來講中國股市穩(wěn)定性相對較差,還是一個不太成熟的股票市場。
最后說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的宗旨和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。