1

我有以下是样本数据集。第一列是序列号,第二列是数据。

使用 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"
> 

如果我遗漏了什么,请告诉我。提前致谢。

4

1 回答 1

2

estimate_xmin有一个可选参数xmax

估计xmin(m,xmins = NULL,pars = NULL,xmax = 1e+05)

从文档中:

为了加快离散分布的计算,明智的做法是设置一个上限,即 xmax 或明确给出搜索位置的值,即 xmin。

由于您的样本中的最小值大于 xmax 的默认值,estimate_xmin 因此无法找到 xmin,除非上限xmax增加足够大:

> 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
于 2015-09-16T11:04:32.400 回答