2010-08-30 117 views
0

我想适合电源功能的数据集。我用这个方法:http://mathworld.wolfram.com/LeastSquaresFittingPowerLaw.html

但结果是不能接受的:B = -0,001901,A = 7.26电源功能适合



我的数据集:

8553600 458.2 
17193600 373.6 
25833600 694.16 
34646400 738.33 
44064000 817.89 
54259200 1040.67 
67910400 1032.69 
76291200 1222.1 
84844800 1245.65 
94089600 1217.44 
102211200 1579.38 
110592000 1859.24 
118886400 1711.67 
127612800 2303.62 
136684800 2658.26 
219196800 3669.23 
225676800 3525.02 
225763200 3749.27 

是这种方法不够,还是我做了一个miastake?有没有更好的解决方案来做到这一点?

+0

我绘制它,它并没有真正像任何种类的电源functino给我。 – phimuemue 2010-08-30 09:28:30

+0

我在寻找最小的邪恶......即使它看起来不像功率函数,我也需要适合它。这是我的项目的一部分。 – czerasz 2010-08-30 10:15:17

回答

2

拟合方法是“垃圾进入,垃​​圾出来”的方法:你应该首先说服自己,像你正在尝试适合的关系。在你的情况下,做一个散点图,看看它是否看起来像一个幂函数。它可能只是你必须添加一个常量,或者选择了错误的指数。一般来说,无法轻易估计关系。开始的最好方法是找到为什么某种关系应该成立的理论论据,并尝试估计该关系的参数。

1

您的数据看起来更像线性函数而不是幂律。通过将其与f(x) = a*x+b配合使用,您将获得更好的配合。

0

我想你刚刚实施它错了。

对于B来说,分母是

n*sum(x_i ^2) - (sum(x_i))^2 

,而它看起来像你这样

n*sum(x_i)^2 - (sum(x_i))^2 
+0

真相。我发布的这个计算来自oO Calc。我无法发送我的程序使用的这些数据量。这就是为什么我准备了一张简单的Calc表格。即使程序没问题,它仍然给人不满意的结果。如果您对此主题感兴趣,我还写了:http://math.stackexchange.com/questions/3625/easy-to-implement-method-do-fit-a-power-function-regression。我试图用Levenberg-Marquardt算法扩展它。 – czerasz 2010-08-30 17:43:39

+0

@czerasz - 上述数据的指数的值在0.7左右,对吗?否则,仍然存在执行错误。此外,L-M可以让你做更有趣的事情,比如A * x^B + C,但对于零点为零的解,如果最小二乘解决方案常常出错,所有改进的拟合方法都可能会错误。 – 2010-08-30 18:48:02

+0

有趣的事情。我在程序中将数据集减少到约50分。现在我得到这个函数:270453.6012632227 * x^-0.23699895219606074,比以前好多了。我在代码中也有一个错误。 – czerasz 2010-08-30 23:42:55