[英]Non-linear regression analysis in R
我是R新手,但我正在寻找一种方法来确定R中以下函数相关的三个参数A,B和C:
y = A * (x1^B) * (x2^C)
有人可以给我一些关于R方法的提示,这有助于我实现这样的拟合吗?
一个选项是@SvenHohenstein建议的nls
函数。 另一种选择是将非线性回归转换为线性回归。 在这个等式的情况下,只需取两个方程的对数并做一个小代数,你将得到一个线性方程。 您可以使用以下内容运行回归:
fit <- lm( log(y) ~ log(x1) + log(x2), data=mydata)
截距将为log(A)
因此使用exp
得到值,B和C参数将是2个斜率。
这里的最大区别在于nls
将适合模型,其中正常的误差被添加到原始方程中,而lm
与日志拟合假设原始模型中的误差来自对数正态分布并且相乘而不是添加到模型中。 许多数据集将为这两种方法提供类似的结果。
您可以使用函数nls
拟合非线性最小二乘模型。
nls(y ~ A * (x1^B) * (x2^C))
为什么不使用SVM(Suppor Vector Machines)回归? 在CRAN中有一个名为e1071
软件包可以处理SVM的回归。
您可以查看本教程: http : //www.svm-tutorial.com/2014/10/support-vector-regression-r/
我希望它可以帮到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.