[R] Problems in programming a simple likelihood

Deepankar Basu basu.15 at osu.edu
Thu Apr 19 00:38:37 CEST 2007

```As part of carrying out a complicated maximum likelihood estimation, I
am trying to learn to program likelihoods in R. I started with a simple
probit model but am unable to get the code to work. Any help or
suggestions are most welcome. I give my code below:

************************************
mlogl <- function(mu, y, X) {
n <- nrow(X)
zeta <- X%*%mu
llik <- 0
for (i in 1:n) {
if (y[i]==1)
llik <- llik + log(pnorm(zeta[i,], mean=0, sd=1))
else
llik <- llik + log(1-pnorm(zeta[i,], mean=0, sd=1))
}
return(-llik)
}

# THE DATA SET CAN BE ACCESSED HERE
# women <-
# I HAVE CHANGED THE NAMES OF THE VARIABLES
# J is changed to "work"
# M is changed to "mar"
# S is changed to "school"

attach(women)

# THE VARIABLES OF USE ARE
#   work: binary dependent variable
#   mar: whether married or not
#   school: years of schooling

mu.start <- c(3, -1.5, 10)
data <- cbind(1, mar, school)
out <- nlm(mlogl, mu.start, y=work, X=data)
cat("Results", "\n")
out\$estimate

detach(women)

*************************************

When I try to run the code, this is what I get:

> source("probit.R")
Results
Warning messages:
1: NA/Inf replaced by maximum positive value
2: NA/Inf replaced by maximum positive value
3: NA/Inf replaced by maximum positive value
4: NA/Inf replaced by maximum positive value