【发布时间】:2014-01-10 17:54:20
【问题描述】:
我有以下经验数据集:
x<-c(0.5,1,1.5,1.731,1.75,2,2.5,3,3.5,4)
y<-c(10000,10000,10000,10000,5700,2700,1700,1350,950,625)
我一直在尝试将数据拟合到理论上的模型。到目前为止,我已经使用 powerlaw 包将数据拟合到幂律,但仅适用于离散值(x = 1,2,3,4):
通过查看图表,我会说尾部与以下估计参数 power_law_fit <- function(x) 5743.492/(x^1.6) 相当吻合:
KS
0.234651
xmin
625
pars
1.6
尽管如此,我想要一个能够模仿从 x 点 1.731 开始的行为的模型。查看对数对数图,没有适合这些点的线,因此我认为应该排除幂律分布。
我一直在尝试 weibull 回归,但没有成功。
谁能解释一下最好的模型以及如何在 R 中做到这一点?
【问题讨论】:
-
您是否尝试过使用
nls函数(非线性最小二乘法)?它专为曲线拟合而设计(尽管您必须牢记曲线) -
您是否要求数据遵循基础分布?如果不是,那么您可以尝试将 N 次正交多项式拟合到数据中;见
poly()。就个人而言,函数似乎可以分段拟合数据 - x 区间 [0.0, 1.731) 上的线性函数和 x 区间 [1.731, Inf) 上的指数函数。 -
你打算如何处理你的结果?如果您只想预测数据范围内的值,
splinefun是您的最佳选择。