Erro no problema de otimização não linear: valores infinitos ou ausentes em 'x'
Tenho que considerar o problema de otimização no estudo de simulação. Uma instância é dada abaixo:
library(mvtnorm)
library(alabama)
n = 200
q = 0.5
X <- matrix(0, nrow = n, ncol = 2)
X[,1:2] <- rmvnorm(n = n, mean = c(0,0), sigma = matrix(c(1,1,1,4),
ncol = 2))
x0 = matrix(c(X[1,1:2]), nrow = 1)
y0 = x0 - 0.5 * log(n) * (colMeans(X) - x0)
X = rbind(X, y0)
x01 = y0[1]
x02 = y0[2]
x1 = X[,1]
x2 = X[,2]
pInit = matrix(rep(1/(n + 1), n + 1), nrow = n + 1)
f1 <- function(p) mean(((n + 1) * p ) ^ q)
heq1 <- function(p)
c(sum(x1 * p) - x01, sum(x2 * p) - x02, sum(p) - 1)
sol <- alabama::auglag(pInit, fn = function(p) -f1(p), heq = heq1)
cat("The maximum objective value is:", -sol$value, '\n')
Isso dá erro:
Error in eigen(a$hessian, symmetric = TRUE, only.values = TRUE) :
infinite or missing values in 'x'
Não sei ao certo como apontar e superar esse problema. Se isso ocorrer devido à especificação incorreta do ponto inicial, como alguém pode especificá-lo no trabalho de simulação para que o próprio programa possa definir o ponto inicial adequado e dar a solução certa? Caso contrário, por que esse erro ocorre e como se livrar dele? Alguém pode ajudar por favor. Obrigado