为什么我的极大似然估计总是显示“initial value in 'vmmin' is not finite”?
各位大大,小弟使用R写了一个简单的极大似然估计来估计probit模型,但是最后总是显示“initial value in 'vmmin' is not finite”,求教如何改进下面的程序,不想使用mle等相关的package,只使用似然函数和最优化。
目前查了一下原因,程序本身是没有问题的,问题出在数据当中因变量和自变量当中都存在缺失值,我在stata里面删掉缺失样本后的数据用下面的程序是可以跑的,想请问一下在R里面如何在不删除缺失样本的前提下,直接修改下面程序求解:
----------------------- copy starting from the next line -----------------------

* Example generated by -dataex-. To install: ssc install dataex
library(haven)
library(summarytools)
library(matrixStats)

# --- prepare data ---

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


# model matrix `X` and response `Y`
X <- cbind(1, age , grade , not_smsa , south)
Y <- union
K<- ncol(X)

# initial guess on coefficients

ans_logit <- glm(union ~ age + grade + not_smsa + south, 
                 family = binomial(link = "logit"), 
                 data = xtlogit_data)
vi <- c(coef(ans_logit))




# requires model matrix `X` and binary response `Y`
probit.nll <- function (beta) {
  # linear predictor
  eta <- X %*% beta
  # probability
  p <- pnorm(eta)
  # negative log-likelihood
  -sum((1 - Y) * log(1 - p) + Y * log(p))
}

# requires model matrix `X` and binary response `Y`
probit.gr <- function (beta) {
  # linear predictor
  eta <- X %*% beta
  # probability
  p <- pnorm(eta)
  # chain rule
  u <- dnorm(eta) * (Y - p) / (p * (1 - p))
  # gradient
  -crossprod(X, u)
}

fit <- optim(vi, probit.nll , method = "BFGS", hessian = TRUE)
# comparison

fit$par

end

------------------ copy up to and including the previous line ------------------

数据在下面的链接当中:链接:https://pan.baidu.com/s/1NCwt3pimR9dwXBPU1Dg0yw 提取码:jvvf
望各位不吝赐教,不胜感激

10 天 后
zhangice001 更改标题为「请问下我的极大似然估计的数据有缺失怎么办?