楼主: tzhang
14575 18

如何用R来检验Power Law Distribution [推广有奖]

  • 0关注
  • 0粉丝

学前班

60%

还不是VIP/贵宾

-

威望
0
论坛币
85 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
76 点
帖子
3
精华
0
在线时间
0 小时
注册时间
2007-3-23
最后登录
2007-5-12

楼主
tzhang 发表于 2007-4-13 16:10:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

在一篇文章中看到要检验power law distribution的规范的方法,首先是用maximum log-likelihood estimate进行参数估计,然后进行bootstrap analysis,接下来进行K-S test,最后是test against real alternatives (这个到现在都没弄清楚是怎么回事)。这四个步骤是我在阅读查找了大量的资料之后(整整一个星期就没干别的事,汗,自己的效率也够低的),领域内专家一致认为算是对power law distribution进行检验最为严密规范的方法步骤了。

到这里就有问题了,步骤放在那里,可是如何检验又是另一个问题。我再又折腾了一个星期后,彻底不能自己搞定了,特上来请教大牛们则个。

我对R知之甚浅,也是因为spss难以满足这些分析的需要才开始学的,期间也多次转回spss,因为R实在太难学了(对我来说,呵呵)。但最终因为spss功能有限,还要依靠R。所以对于上面的四个步骤,哪为大侠可否对我指点一二,我感觉象在吃刺猬一样,实在不知道从哪里下口。

为了节省各位大虾的时间,我需要的信息主要包括,执行这些功能需要R的哪些packages,以及这些包里的哪些函数,剩下的我可以自己慢慢摸索。也就是说我想知道我应该从哪里开始入手,当然这也是最难的地方,感谢各位的指点。

另外哪为可以告诉我test against real alternatives 是个怎么回事吗?我已经困惑了n久了。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:distribution Power Istr Dis BUT 检验 law Power distribution

沙发
ruiborui 发表于 2007-4-13 16:22:00
我也在学这个R,你可以上这个网www.r-project.org,上面有很多东西,偶也是刚开始,还回答不了你的问题,呵呵

藤椅
tzhang 发表于 2007-4-13 16:26:00

偶也是一直在那上面看,不同的包也试了不少了, 可是就是找不到对路的,郁闷啊。

板凳
majacte 发表于 2007-4-15 17:33:00
我也正在学习R,呵呵                 

报纸
yiyo900 发表于 2007-4-16 08:03:00

以Bibliometrics or Informetrics.....这篇文献

在杂志上page-121的实证数据,为例说明:

Lotka's Law : y = c*x^(-beta)

Here

y = [709,92,24,13,6,10]

x = [1,2,3,4,5,6]

1.应用s-plus Nonlinear least-squares algorithm 估计c & beta

x <- c(1,2,3,4,5,6)

y <- c(709,92,24,13,6,10)

Table2.data <- data.frame(x,y)

fit<- nls(y~c*x^-(beta),data=Table2.data,start=list(c=500,beta=2))

fit

执行结果如下

Residual sum of squares : 56.14811

parameters:

c beta

709.0087 2.957453

formula: y ~ c * x^( - (beta))

6 observations

与作者实证之c & beta 值接近

2.利用c & beta 之估计值算出f'(Lokta)

f'(Lokta) = [709.04,90.89,27.33,11.65,6.01,8.04]

3.利用 f(x) 创建 empirical cumulative distribution S(x)

f'(Lokta) 创建 hypothesized cumulative distribution F*(x)

4.计算KS test statistic.

|F*(x)-S(x)| 绝对值的最大值,就是KS test statistic

本例六组数据中的最大值,是0.00265

所以page-121 Table2,作者列出的K-S 是0.0027.

Bibliometrics or Informetrics: 108359.pdf (156.4 KB)

地板
tzhang 发表于 2007-4-16 11:22:00

首先感谢楼上大虾的辛苦回复,不过小弟仍有几点疑问,还请再辛苦一下,呵呵。

我看大虾用的是最小二乘法来进行的参数估计,不知道用最大似然法需要进行什么改动,二者的区别是否会很大。

另外对于S(x)以及F*(x)如何求法,用什么函数,可否还请大虾给一明示。

最后就是关于bootstrap,可否一并给一提示啊。

多谢多谢

7
yiyo900 发表于 2007-4-17 09:58:00

1.MLE估计power-law exponent

可参考"Problems with Fitting to the Power-Law Distribution"

公式(3) the derivative of the log-likelihood function

http://arxiv.org/PS_cache/cond-mat/pdf/0402/0402322v3.pdf

公式(3)的右半部,根据数据就可算出.左半部查表,或是利用

Matlab,maple,mathematica 都可算出.

文献中公式右半部算出是0.2739,利用matlab可算出

power-law exponent : gamma(MLE)等于2.544

2.S(x), F*(x)

X S(x) F*(x) |F*(x)-S(x)|

1 0.8302 0.83025

2 0.93794 0.93669

3 …… …….

4 …… …….

5 …… …….

6 …… …….

空白的部份,请自行运算.

3.在s-plus运行bootstrap很简单,请先参考STATMAN2.pdf

Chap35,page-538.内有范例

8
peterf 在职认证  发表于 2007-4-18 08:46:00

在S+中再抽样选项下有Bootstrap Statistics Resample Bootstrap. 是你想要的吗?

徘徊在统计学的大门之外

9
yaocanzhong 发表于 2007-6-2 08:40:00

对KS统计量总是不太理解,假如不是power law,是weibull或者其他,那计算出来的KS值和哪个参照表比较啊?

("Problems with Fitting to the Power-Law Distribution"文中的参照表是用蒙多卡洛计算出来的吧)

另外,带双参数的密度参数估计,计算mle采用matlab解微分方程感觉不是很方便;

期望指教,无比感谢

10
tf2000 发表于 2007-6-2 15:34:00

楼主能不能把你参考的那篇文章发上来,大家一起读读,或许更容易回答你的问题。

例如在r中,关于极大似然估计mle的软件包就有好几个,ks检验更是r的一个基本函数“ks.test()”。

不要疑惑,只要信。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 04:15