首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中最大非线性回归函数

R中最大非线性回归函数
EN

Stack Overflow用户
提问于 2017-01-04 01:13:45
回答 1查看 1.6K关注 0票数 1

给定一个从函数调用reg = lm(...)得到的线性模型,如何找到最大的回归函数的系数?

我知道函数optim(...),但它需要一个函数作为输入。我还没有想出如何从回归模型中提取这一点。

应该注意的是,我在回归分析中使用了非线性项(准确地说,是平方变量)。

换句话说,回归函数看起来就像

代码语言:javascript
运行
复制
y_hat = kx_11*x_1+kx_12*x_1^2 + kx_21*x_2+kx_22*x_2^2 + ...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-04 02:18:51

这里有一个简单的示例来演示1种方法。使用lm对象上的预测()来创建函数。fxn()有点混乱,因为我没有您的确切数据,但是您应该了解这个概念。

代码语言:javascript
运行
复制
#set up dummy data
x1 = -10:10
x2 = runif(21)
y = -x1^2 + x1 - 10*x2^2 + runif(21)*.1 
data = data.frame(y= y, x1=x1, x2=x2)

#fit model
m = lm(data=data, y ~ x1 + I(x1^2) + I(x2^2))

#define function that returns predicted value
fxn = function(z){
    z = as.data.frame( t(z) )
    colnames(z) = colnames(data)[-1]
    predict(m, newdata=z)
}

optim(c(0,0), fxn, control=list(fnscale=-1)) #maximizes fxn

$par
[1]  4.991601e-01 -3.337561e-06

$value
[1] 0.3153461

$counts
function gradient 
      65       NA 

$convergence
[1] 0

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

https://stackoverflow.com/questions/41454770

复制
相关文章

相似问题

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