R 幂律的KS检验
我试图用Aaron Clause、Cosma Rohilla Shalizi和M.E.J.Newman在其论文《经验数据中的幂律分布》中概述的方法将幂律分布拟合到数据集 我已经找到了可以与我自己的代码相比较的代码,但是我有点困惑其中一些代码是从哪里来的,到目前为止的故事是 为了确定适用于幂律拟合的xmin,我们将每个可能的xmin拟合幂律到该数据,然后计算相应的exponet(a),然后计算拟合和观测数据的KS统计量(D),然后找到对应于最小D的xmin。KS统计量如果计算如下:R 幂律的KS检验,r,design-patterns,power-law,R,Design Patterns,Power Law,我试图用Aaron Clause、Cosma Rohilla Shalizi和M.E.J.Newman在其论文《经验数据中的幂律分布》中概述的方法将幂律分布拟合到数据集 我已经找到了可以与我自己的代码相比较的代码,但是我有点困惑其中一些代码是从哪里来的,到目前为止的故事是 为了确定适用于幂律拟合的xmin,我们将每个可能的xmin拟合幂律到该数据,然后计算相应的exponet(a),然后计算拟合和观测数据的KS统计量(D),然后找到对应于最小D的xmin。KS统计量如果计算如下: cx &l
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=xmin
cf=xmin]
答案是它们(几乎)是一样的。最简单的方法是生成一些数据:
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
大于
top方法的优点是计算效率高、速度快。缺点是,如果数据不是真正连续的,即z=c(1,1,2)
,cx1
是错误的。但是如果是这样的话,你就不应该将你的数据拟合到CTN分布中。答案是它们(几乎)是一样的。最简单的方法是生成一些数据:
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
大于
top方法的优点是计算效率高、速度快。缺点是,如果数据不是真正连续的,即z=c(1,1,2)
,cx1
是错误的。但是,如果是这样的话,您不应该将数据拟合到CTN分布。啊,非常感谢!否则我会把自己绑在结上的!啊,非常感谢!否则我会把自己绑在结上的!