首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >幂律的KS检验

幂律的KS检验
EN

Stack Overflow用户
提问于 2013-11-25 16:28:11
回答 1查看 1.1K关注 0票数 1

我正在尝试用Aaron Clauset、Cosma Rohilla Shalizi和M.E.J. Newman在他们的论文“经验数据中的幂律分布”中概述的方法将一个powerlaw分布拟合到一个数据集中。

我已经找到了与我自己的代码相比较的代码,但我对其中一些代码的来源有点困惑,目前的情况是,

为了找出适合于幂律拟合的xmin,我们将每一个可能的xmin拟合成一个幂律,然后计算相应的exponet (a),然后对拟合和观测数据计算出相应的KS统计量( D ),然后找到对应于D的最小值的xmin,如果计算如下,

代码语言:javascript
运行
复制
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来自哪里,当然,我们应该比较经验分布和计算分布之间的距离。与…有关的东西:

代码语言:javascript
运行
复制
cx = ecdf(sort(z))
cf   <- 1-(xmin/z)^a
D <- max(abs(cf-cx(z)))

我想我只是错过了一些非常基本的东西,但请纠正我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-25 16:45:09

答案是他们(几乎)是一样的。查看这一点的最简单方法是生成一些数据:

代码语言:javascript
运行
复制
z = sort(runif(5,xmin, 10*xmin))
n = length(x)

然后检查这两个CDFs的值。

代码语言:javascript
运行
复制
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给出的cx2大于或等于,而cx2大于或等于。

顶层方法的优点是计算效率高,计算速度快。缺点是,如果您的数据不是真正连续的,即z=c(1,1,2),则cx1是错误的。但是,如果是这样的话,您就不应该将数据与CTN发行版相匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20198072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档