2015-09-16 23 views
1

我有以下樣本數據集。第一列是序列號,第二列是數據。無法使用PoweRlaw來估計xmin,大數據集的alpha

使用R,我試圖找到xmin,alpha和pvalue。上述數據集是離散的,值很大,並將數據視爲連續的。出於某種原因,R無法爲est= estimate_xmin()提供適當的輸出。這是相同的代碼。

> library('poweRlaw') 
> m_bl = conpl$new(sample_data$V1) 
> est = estimate_xmin(m_bl) 
> m_bl$setXmin(est) 
Warning message: 
In min(which(internal[["dat"]] >= (x - .Machine$double.eps^0.5))) : 
    no non-missing arguments to min; returning Inf 
> 
> est 
$KS 
[1] Inf 

$xmin 
[1] NA 

$pars 
[1] NA 

attr(,"class") 
[1] "estimate_xmin" 
> 

請讓我知道如果我失去了一些東西。提前致謝。

回答

2

estimate_xmin有一個可選參數xmax

estimate_xmin(米,xmins = NULL,收杆= NULL,XMAX = 1E + 05)

從文檔:

爲了加速離散分佈的計算, 放置一個上限即xmax或明確給出的值搜索,即xmin。

因爲你的樣品中的最小值比XMAX 的默認值時,estimate_xmin 找不到XMIN,除非上限xmax是suffiently增加:

> library('poweRlaw') 

> m_bl = conpl$new(sample_data$V1) 

> #========================================== 
> est = estimate_xmin(m_bl) 

> m_bl$setXmin(est) 
Warning in min(which(internal[["dat"]] >= (x - .Machine$double.eps^0.5))) : 
    no non-missing arguments to min; returning Inf 

> #------------------------------------------ 
> est = estimate_xmin(m_bl,xmax=3e+5) 

> m_bl$setXmin(est) 
Warning in min(which(internal[["dat"]] >= (x - .Machine$double.eps^0.5))) : 
    no non-missing arguments to min; returning Inf 

> #------------------------------------------ 
> est = estimate_xmin(m_bl,xmax=5e+5) 

> m_bl$setXmin(est) 

> #------------------------------------------ 
> est = estimate_xmin(m_bl,xmax=Inf) 

> m_bl$setXmin(est) 

> #========================================== 
> m_bl 
Reference class object of class "conpl" 
Field "xmin": 
[1] 11082439 
Field "pars": 
[1] 15.83368 
Field "no_pars": 
[1] 1 
+0

感謝很多人。代碼工作正常。 – user128956

+0

我在github網站上添加了一個註釋,我會嘗試修復下一個版本。謝謝 – csgillespie