2013-11-25 53 views
1

我試圖使用Aaron Clauset,Cosma Rohilla Shalizi和M.E.J.所述的方法來擬合冪律分佈到數據集。紐曼在其論文「經驗數據中的冪律分佈」中。冪律KS檢驗

我發現的代碼進行比較,以我自己的,但我是一個有點困惑,其中有些是從何而來,故事至此爲止的,

,以確定合適的XMIN的冪律健康,我們把每可能的xmin符合數據的冪律,然後計算相應的exponet(a),然後計算擬合的KS統計量(D)和觀測數據,然後找到與D的最小值相對應的xmin。如果計算爲KS統計量如下,

cx <- c(0:(n-1))/n # n is the sample size for the data >= xmin 
cf <- 1-(xmin/z)^a # the cdf for a powerlaw z = x[x>=xmin] 
D <- max(abs(cf-cx)) 

我沒有得到的是cx來的地方,當然我們應該比較經驗分佈和計算的分佈。東西沿線︰

cx = ecdf(sort(z)) 
cf <- 1-(xmin/z)^a 
D <- max(abs(cf-cx(z))) 

我想我只是想念一些非常基本的東西,但請糾正我!

回答

1

答案是他們(幾乎)是一樣的。看到這種最簡單的方法是生成一些數據:

z = sort(runif(5,xmin, 10*xmin)) 
n = length(x) 

然後檢查兩個CDF的

R> (cx1 = c(0:(n-1))/n) 
[1] 0.0 0.2 0.4 0.6 0.8 
R> (cx2 = ecdf(sort(z))) 
[1] 0.2 0.4 0.6 0.8 1.0 

注意,他們幾乎是相同的價值觀 - 本質上是cx1給CDF爲大於或等於,而cx2大於

頂級方法的優點是它非常高效和快速計算。缺點是如果您的數據不是真正連續的,即z=c(1,1,2),cx1是錯誤的。但是,如果情況真的如此,那麼您不應該將您的數據納入CTN分發。

+0

啊,非常感謝!否則會將自己綁在knotes上! – David