R中具有优化的配置文件对数似然

时间:2019-03-28 22:59:05

标签: r

我在尝试使用优化函数查找配置文件对数似然函数时遇到错误。我正在使用具有两个未知参数并取决于几个已知参数的广义Pareto分布。风险值和形状参数xi。我正在尝试编写一个函数,该函数将同时使用两个参数的一些初始值,并在固定VaR的情况下优化xi上的对数似然函数。最终,我希望输出为VaR的对数似然函数的最大值。我试图重新创建代码,以便我可以理解它。但是我也遵循其他人的代码,他们大概是对他们进行了一些模拟。但是,逐字复制其代码会产生错误。

下面的代码以一些构造的参数开头。然后有一个函数b定义了GPD中使用的参数。然后,我们定义对数似然函数prologlik,该函数采用两个未知参数xi和xVaR。当我选择一些样本值并手动计算b和prologlik的输出时,我得到的值与代码相同。但是,当我运行函数pllMax(2,2)时,出现“非有限有限差分值[1]”错误。有人可以告诉我如何解决此问题,并编写一个函数,该函数可以使用参数xi和xVaR,并在xVaR保持固定的情况下返回xi上对数似然的最大值吗?

library(extraDistr)

u <- 1
a <- .75
frac <- .5
y <- c(3,3)
data <- y - u

b <- function(xi, xVaR){
  k <- (1-a)/frac
  beta <- xi*(xVaR-u)/(k^(-xi)-1)
  return(beta)
}

prologlik <- function(xi,xVaR){
  beta <- b(xi, xVaR)
  out <- sum(dgpd(data, mu=0, sigma=beta, xi=xi, log=TRUE))
  return(out)
}

pllMax <- function(xi,xVaR){
  optimfit <- optim(xi, fn=prologlik, xVaR, gr=NULL, method="BFGS")
  xi.est <- optimfit$par
  llmax <- -1*prologlik(xi.est, xVaR)
  output <- c(xi.est, llmax)
  return(output)
}

pllMax(2,2)

0 个答案:

没有答案