R - 绘制具有x和y数据的幂律线

时间:2012-07-06 17:10:46

标签: r

我正在尝试绘制一条幂律线,以适应我在数据框中已有的x和y数据。我在igraph库中尝试过power.law.fit但它不起作用。数据框是:

dat=data.frame(
  x=1:8,
  ygm=c( 251.288, 167.739, 112.856, 109.705, 102.064, 94.331, 95.206, 91.415)
)

1 个答案:

答案 0 :(得分:4)

我通常使用两种策略中的一种,我采用日志并拟合线性模型或使用nls。我想如果你愿意,你可以找出记录的模型,所以我会在这里显示nls方法。

  nls1=nls(ygm~i*x^-z,start=list(i=-3,z=-2),data=dat)

仔细检查你想要的公式,这个方法接受一个非常广泛的公式。花一些时间愚弄起始值。特别是试着考虑可能性表面可能做奇怪事情的边界。尝试在奇怪的地方两边的价值观,这样你就可以放心,你不在当地的最佳位置。

> nls1
Nonlinear regression model
  model:  ygm ~ i * x^-z 
   data:  dat 
       i        z 
245.0356   0.5449 
 residual sum-of-squares: 811.4

 ... 

> predict(nls1)
[1] 245.03564 167.95574 134.66070 115.12256 101.94200  92.30101  84.86458
[8]  78.90891
> plot(dat)
> lines(predict(nls1))