全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
560 2
2021-12-06
optim函数优化时一直报错  S4类的无法转化成向量类型
程序如下
希望各位R语言大神 帮忙解决一下 跪谢
代码报错
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2021-12-7 10:14:21
l 和 g 是什么类型的数据
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-12-7 18:42:19
s609078902 发表于 2021-12-7 10:14
l 和 g 是什么类型的数据
###################################################fy的估计
R=function(fy,N,x){
  corr=matrix(0,N,N)
  for(m in 1:N){
    for(n in 1:N){
      corr[m,n]=exp(-(fy[1]*(x[m,1]-x[n,1])^2+fy[2]*(x[m,2]-x[n,2])^2+fy[3]*(x[m,3]-x[n,3])^2+fy[4]*(x[m,4]-x[n,4])^2))
    }
  }
  return(corr)
}
Rh=R(fy,n1,xh)
Rl=R(fy,n2,xl)

beta_h_hat=function(fy){
  solve(t(Fh)%*%solve(R(fy,n1,xh))%*%Fh)%*%(t(Fh)%*%solve(R(fy,n1,xh))%*%yh)
}
beta_l_hat=function(fy){
  solve(t(Fl)%*%solve(R(fy,n2,xl))%*%Fl)%*%(t(Fl)%*%solve(R(fy,n2,xl))%*%yl1)
}
sigma_h_hat=function(fy){
  (1/n1)*t(yh-Fh%*%beta_h_hat(fy))%*%solve(R(fy,n1,xh))%*%(yh-Fh%*%beta_h_hat(fy))
}
sigma_l_hat=function(fy){
  (1/n2)*t(yl1-Fl%*%beta_l_hat(fy))%*%solve(R(fy,n2,xl))%*%(yl1-Fl%*%beta_l_hat(fy))
}
#fy的似然函数
fun_fy=function(fy){
  n1*log(sigma_h_hat(fy))+n2*log(sigma_l_hat(fy))+log(det(R(fy,n1,xh)))+log(det(R(fy,n2,xl)))
}
#梯度函数
fun_fy_dao=function(fy){
  deriv(fun_fy(fy))
}

fy=optim(par=c(0.5,0.2,0.4,0.6),fun_fy,method="L-BFGS-B",hessian = T)
fy




optim的第一个参数是  1,是设置的需要估计的参数fy的初始值
应该将初始值设置为一个向量的
g是需要优化的函数,最后需要返回一个向量



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群