Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 非有限差分值,很多数据经过指数变换后变成inf和NA_R_Mathematical Optimization - Fatal编程技术网

R 非有限差分值,很多数据经过指数变换后变成inf和NA

R 非有限差分值,很多数据经过指数变换后变成inf和NA,r,mathematical-optimization,R,Mathematical Optimization,我要找到rank logit模型的参数。但误差总是表明存在非有限差分值。如果我改变主意 b0BFGS要求函数的梯度最小化。如果你不通过一个,它将尝试使用有限差分来估计它。看看你的似然函数,可能是你“分裂”了“它通过等于0和不等于0的元素创建了一个不连续性,从而阻止正确形成数值梯度。尝试使用method=“Nelder Mead”并将Hessian设置为FALSE,看看是否有效。如果需要,您可以使用numDeriv软件包来估计梯度和收敛点处的Hessian值(如果需要)。我尝试过,该值从2变为1,

我要找到rank logit模型的参数。但误差总是表明存在非有限差分值。如果我改变主意
b0BFGS要求函数的梯度最小化。如果你不通过一个,它将尝试使用有限差分来估计它。看看你的似然函数,可能是你“分裂”了“它通过等于0和不等于0的元素创建了一个不连续性,从而阻止正确形成数值梯度。尝试使用
method=“Nelder Mead”
并将Hessian设置为FALSE,看看是否有效。如果需要,您可以使用
numDeriv
软件包来估计梯度和收敛点处的Hessian值(如果需要)。

我尝试过,该值从2变为1,但仍然无法解决“resIt works!!!!非常感谢你!我来看看numDeriv软件包!非常感谢,现在我可以得到b的值,但是当我尝试打印tval时,出现如下错误>tval@JiawenJiang,因为Hessian为false,所以没有res$Hessian。你必须分析地估计它。软件包中的
hessian
功能可能会对您有所帮助。很可能你的似然函数是不连续的,以至于在收敛点没有有效的Hessian函数。您必须尝试一下。如果使用
fitdistrplus
软件包,您可以通过
fitdist(data,“gamma”,optim.method=“Nelder Mead”)
更改优化方法。有关
fitdistr
方法的帮助有更多信息。
cjll <- function(b){

U <- X%*%b
lSU <- csm%*%exp(U)
   lSU <- (lSU!=0)*lSU+(lSU==0)
LL <- sum(Ccsm%*%U-log(lSU))

return(LL)
}

b0 <- rep(0,5)
res <- optim(b0,cjll,method="BFGS",hessian=TRUE,control=list(fnscale=-1))
#Error in optim(b0, cjll, method = "BFGS", hessian = TRUE, control = list(fnscale = -1)) :
#  non-finite finite-difference value [2]

b <- res$par
#Error: object 'res' not found