'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 |
|---|
