'vmmin'中的初始值对于我的probit代码不是有限的

时间:2019-06-01 06:40:17

标签: r mle

我为probit写了一个mle,但似乎我的代码中的某些部分出错了,并显示“'vmmin'中的初始值不是有限的。”

它是由R完成的。作为一个新生,我已经咨询了堆栈溢出的一些技巧,但它们都没有用。一些示例只能用于模拟数据。 我的代码如下

setwd("C:\\Users\\ThinkPad\\Desktop\\MSL for R")
xtlogit_data <- read_dta("xtlogit_data.dta")

y <- unlist(xtlogit_data["union"]) 
X <- cbind(1, as.matrix(xtlogit_data[c("age", "grade", "not_smsa", 
"south")]))

ans_probit <- glm(union ~ age + grade + not_smsa + south, 
              family = gaussian(link = "identity"), 
              data = xtlogit_data)
initval <- c(coef(ans_probit))

probitml <- function(parm,y,X){
  nx <- ncol(X)
  Xb <- c(X %*% parm[1:nx])
  mp <- pnorm(Xb)
  mpll <- y*log(mp)+(1 - y)*(1 - log(mp))
  return(-sum(mpll,log=TRUE,na.rm=FALSE))
}

ans_probitml <- optim(par = initval, fn = probitml, method = "BFGS", 
                  control = list(trace = 1, maxit = 500), y = y,  
                  X = X,hessian = TRUE)

数据位于百度SkyDrive中:https://pan.baidu.com/s/1NCwt3pimR9dwXBPU1Dg0yw代码:jvvf

感谢您的耐心和耐心,我期待您的反馈

0 个答案:

没有答案