В R Optimaztion Infrastructure (ROI) как передать аргументы функциональному ограничению (F_constraint) - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь использовать ROI для выполнения оценки MLE процесса ARCH (2). Я попытался использовать функцию F_constraint для наложения ковариантной стационарности, имея корни характеристического уравнения: z ^ 2 - alpha1 * z - alpha2 лежат внутри единичного круга. Я использую плагин deoptimr solver. Я указал начальные значения для всех трех параметров - (omega {постоянный член в ARCH eqn}, alpha1, alpha2). Я получаю сообщение об ошибке, в котором говорится, что аргументы функционального ограничения отсутствуют.

library(ROI)

obj <- F_objective(F = log_lik, n =3, G = grad_lik, names = c('om','aph1','aph2'))

mod_func1 <- function(om,aph1,aph2){
  delta = aph1^2 + 4*1*aph2
    if(delta >= 0){ 
        x_1 = (aph1+sqrt(delta))/(2*1)
        return(x_1)
  } else {
        mod = (aph1^2 + (-(delta)))/((2*1)^2) 
        return(mod)
    }
}

mod_func2 <- function(om,aph1,aph2){
  delta = aph1^2 + 4*1*aph2
  if(delta >= 0){ 
        x_2 = (aph1-sqrt(delta))/(2*1)
        return(x_2)
  } else {
        mod = (aph1^2 + (-(delta)))/((2*1)^2) 
        return(mod)
    }
}

constr <- F_constraint(F = list(mod_func1,mod_func2), dir = c("<","<"), rhs = c(1,1), names = c('om','aph1','aph2'))

prob <- OP(objective = obj, constraints = constr, maximum = TRUE)
solvers <- ROI_applicable_solvers(prob)
soln <- ROI_solve(prob, solver = "deoptimr", start = c(0.01,0.5,0.5))

Ошибка говорит: «Ошибка в f (x0): аргумент« aph1 »отсутствует, по умолчанию нет»

...