我有以下是样本数据集。第一列是序列号,第二列是数据。
使用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"
>
如果我错过了什么,请告诉我。提前谢谢。
答案 0 :(得分:2)
estimate_xmin
有一个可选参数xmax
:
estimate_xmin(m,xmins = NULL,pars = NULL,xmax = 1e + 05)
来自文档:
为了加速离散分布的计算,这是明智的 设置上限,即xmax或明确给出where的值 搜索,即xmin。
由于样本中的最小值大于xmax的默认值
,estimate_xmin
除非上限xmax
充分增加,否则无法找到xmin:
> 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