2

我是 R 新手,但我正在寻找一种方法来确定与 R 中的以下函数相关的三个参数 A、B 和 C:

y = A * (x1^B) * (x2^C)

有人可以给我一些关于 R 方法的提示,以帮助我实现这样的拟合吗?

4

3 回答 3

6

一种选择是nls@SvenHohenstein 建议的功能。另一种选择是将非线性回归转换为线性回归。在这个方程的情况下,只需取方程两边的对数并做一点代数,你就会得到一个线性方程。您可以使用以下方法运行回归:

fit <- lm( log(y) ~ log(x1) + log(x2), data=mydata)

截距将log(A)用于exp获取值,B 和 C 参数将是 2 个斜率。

此处最大的区别在于,nls它将拟合模型,并将正态误差添加到原始方程中,而对lm数拟合假设原始模型中的误差来自对数正态分布并且被相乘而不是添加到模型中。许多数据集将为这两种方法提供类似的结果。

于 2012-12-13T20:00:55.540 回答
5

您可以使用函数 拟合非线性最小二乘模型nls

nls(y ~ A * (x1^B) * (x2^C))
于 2012-12-13T09:36:13.200 回答
-1

为什么不使用 SVM(支持向量机)回归?CRAN 中有一个名为的包e1071,可以使用 SVM 处理回归。

您可以查看本教程:http ://www.svm-tutorial.com/2014/10/support-vector-regression-r/

我希望它可以帮助你

于 2015-10-21T16:03:28.953 回答