gpt4 book ai didi

r - 如何在 R 中的 optim 中使用带参数的函数

转载 作者:行者123 更新时间:2023-12-04 01:39:46 24 4
gpt4 key购买 nike

我正在尝试在 R 中使用 optim 函数 - 我对此没有任何问题:

funk=function(param){
x=c(1,2,3,4,5)
z=c(3,4,2,2,1)
y=c(30,40,22,33,40)
a=rep(param[1],5)
b=param[2]
d=param[3]
fit=sum((y-(a+b*x+z*d))^2)
return(fit)
}

optim(par=c(1,1,1),fn=funk)

#

但是一旦我不想将我的数据 (x,y,z) 硬编码到函数中,我就会遇到问题。当函数输入不仅仅是要优化的参数时,如何在 optim 中优化函数?理想情况下,我会传递 xx、zz、yy 的值然后优化,然后移动到 xx、zz、yy 的不同值,然后优化该情况。
xx=c(1,2,3,4,5)
zz=c(3,4,2,2,1)
yy=c(30,40,22,33,40)

funk=function(param,x,y,z){
a=rep(param[1],5)
b=param[2]
d=param[3]
fit=sum((y-(a+b*x+z*d))^2)
return(fit)
}

optim(par=c(1,1,1),fn=funk(param=c(0,0,0),x=xx,y=yy,z=zz))

(function (par) 中的错误:找不到函数“fn”

最佳答案

optim , ...用于将参数传递给 fn :

xx=c(1,2,3,4,5)
zz=c(3,4,2,2,1)
yy=c(30,40,22,33,40)

funk=function(param,x,y,z){
a=rep(param[1],5)
b=param[2]
d=param[3]
fit=sum((y-(a+b*x+z*d))^2)
return(fit)
}

optim(par=c(1,1,1), fn=funk, x=xx, y=yy, z=zz)
$par
[1] -1.863076 5.722988 7.372296

$value
[1] 124.075

$counts
function gradient
180 NA

$convergence
[1] 0

$message
NULL

关于r - 如何在 R 中的 optim 中使用带参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24623488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com