'Error in optim in R: initial value cannot be infinite when calculating coefficients of probit model using MLE

First I create a function to calculate individual probability and log-likelihood:

individual_probit <- function(mX, vBeta) {
        return (pnorm(mX %*% vBeta))
}

probitlikelihood <- function(vBeta,mX,vY){
        return (-sum(
          vY* log(individual_probit(mX, vBeta))+
            (1-vY)*log(1-individual_probit(mX, vBeta))
          )
          )
}

Then I input X, Y, and beta:

vY <- as.matrix(dta['Y']) 
mX <- as.matrix(data.frame(`(Intercept)`= 1,dta[c('A','B', 'C', 'D')])) 


vBeta0 = rep(0, ncol(mX)) 

Next, I want to use optim to estimate the maximum liklihood.

optimprobit <- optim(par = vBeta0,
                     fn = probitlikelihood,
                     mX = mX, vY = vY,
                     method = "BFGS",
                     hessian=TRUE,
                     control = list(maxit = 50000, trace = 2, REPORT = 1))

But the software told me that

Error in optim(par = vBeta0, fn = probitlikelihood, mX = mX, vY = vY, : initial value of 'vmmin' cannot be infinite.

I wonder why 'par=vBeta0' is wrong. Thank you!



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source