2
之間的柯爾莫哥洛夫 - 斯米爾諾夫統計比方說,我們有兩個樣品data1
和data2
各自的權重weight1
和weight2
,而我們要計算的兩個加權樣本之間的柯爾莫哥洛夫 - 斯米爾諾夫統計。如何計算兩個加權樣本
我們做的是Python如下方式:
def ks_w(data1,data2,wei1,wei2):
ix1=np.argsort(data1)
ix2=np.argsort(data2)
wei1=wei1[ix1]
wei2=wei2[ix2]
data1=data1[ix1]
data2=data2[ix2]
d=0.
fn1=0.
fn2=0.
j1=0
j2=0
j1w=0.
j2w=0.
while(j1<len(data1))&(j2<len(data2)):
d1=data1[j1]
d2=data2[j2]
w1=wei1[j1]
w2=wei2[j2]
if d1<=d2:
j1+=1
j1w+=w1
fn1=(j1w)/sum(wei1)
if d2<=d1:
j2+=1
j2w+=w2
fn2=(j2w)/sum(wei2)
if abs(fn2-fn1)>d:
d=abs(fn2-fn1)
return d
,我們只要修改我們的目的經典的兩樣本KS統計在出版社,弗蘭納裏,Teukolsky,Vetterling實現 - 數字食譜用C - 劍橋大學出版社 - 1992 - pag.626。
我們的問題是:
- 是任何人知道的任何其他方式做到這一點?
- 在python/R/*中有執行它的任何庫嗎?
- 測試呢?它是否存在或者我們是否應該使用重新洗牌程序來評估統計數據?
如果你還沒有這樣做,我建議在http://stats.stackexchange.com/上提出這個問題,因爲它的統計內容。 (scipy和matlab似乎只有在未加權的表單中才需要) –
@Bill Bell,謝謝你的回答。在[stats.stackexchange.com](http://stats.stackexchange.com)上,我們只找到了一箇舊的[post](http://stats.stackexchange.com/questions/193439/two-sample-kolmogorov-smirnov-測試與權重)沒有答案。 –
啊,好吧,沒有什麼可以贏得勝利。 –