3
我想繪製一條冪律線以適應我已經在數據框中已經有的x和y數據。我在igraph庫中嘗試了power.law.fit,但它不起作用。該數據幀是:R - 用x和y數據繪製冪律線
dat=data.frame(
x=1:8,
ygm=c(251.288, 167.739, 112.856, 109.705, 102.064, 94.331, 95.206, 91.415)
)
我想繪製一條冪律線以適應我已經在數據框中已經有的x和y數據。我在igraph庫中嘗試了power.law.fit,但它不起作用。該數據幀是:R - 用x和y數據繪製冪律線
dat=data.frame(
x=1:8,
ygm=c(251.288, 167.739, 112.856, 109.705, 102.064, 94.331, 95.206, 91.415)
)
我一般使用兩種策略之一在這裏,我走日誌和擬合的線性模型或我使用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))
感謝您的解決方案。我還沒有找到關於nls的很多文檔,大多數的東西都指向igraph,它不能正常工作。我正在得到我現在需要的東西。謝謝! – joe 2012-07-06 18:34:28