首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的非线性回归分析

R中的非线性回归分析
EN

Stack Overflow用户
提问于 2012-12-13 17:29:23
回答 3查看 21K关注 0票数 2

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

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

谁能给我一些关于R方法的提示,帮助我实现这样的拟合?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-14 04:00:56

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

代码语言:javascript
复制
fit <- lm( log(y) ~ log(x1) + log(x2), data=mydata)

截距将是log(A),因此使用exp来获得值,B和C参数将是2个坡度。

这里最大的不同之处在于,nls将拟合模型,并将正态误差添加到原始方程中,而lm fit with logs假设原始模型中的误差来自对数正态分布,并乘以而不是添加到模型中。对于这两种方法,许多数据集将给出类似的结果。

票数 6
EN

Stack Overflow用户

发布于 2012-12-13 17:36:13

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

代码语言:javascript
复制
nls(y ~ A * (x1^B) * (x2^C))
票数 5
EN

Stack Overflow用户

发布于 2015-10-22 00:03:29

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

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

我希望它能帮助你

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13856787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档