我是一个R新手,但我正在寻找一种方法来确定与R中的以下函数相关的三个参数A,B和C:
y = A * (x1^B) * (x2^C)
谁能给我一些关于R方法的提示,帮助我实现这样的拟合?
发布于 2012-12-14 04:00:56
一个选项是@SvenHohenstein建议的nls函数。另一种选择是将非线性回归转换为线性回归。在这个方程的情况下,只需要取方程两边的对数,然后做一点代数运算,你就会得到一个线性方程。您可以使用以下命令运行回归:
fit <- lm( log(y) ~ log(x1) + log(x2), data=mydata)截距将是log(A),因此使用exp来获得值,B和C参数将是2个坡度。
这里最大的不同之处在于,nls将拟合模型,并将正态误差添加到原始方程中,而lm fit with logs假设原始模型中的误差来自对数正态分布,并乘以而不是添加到模型中。对于这两种方法,许多数据集将给出类似的结果。
发布于 2012-12-13 17:36:13
您可以使用函数nls来拟合非线性最小二乘模型。
nls(y ~ A * (x1^B) * (x2^C))发布于 2015-10-22 00:03:29
为什么不使用SVM (支持向量机)回归?在CRAN中有一个名为e1071的包,可以使用支持向量机处理回归。
您可以查看此教程:http://www.svm-tutorial.com/2014/10/support-vector-regression-r/
我希望它能帮助你
https://stackoverflow.com/questions/13856787
复制相似问题