[R] Trying to write a linear regression using MLE and optim()
Ajay Shah
ajayshah at mayin.org
Mon May 30 19:19:51 CEST 2005
I wrote this:
# Setup problem
x <- runif(100)
y <- 2 + 3*x + rnorm(100)
X <- cbind(1, x)
# True OLS --
lm(y ~ x)
# OLS likelihood function --
ols.lf <- function(theta, K, y, X) {
beta <- theta[1:K]
sigma <- exp(theta[K+1])
e <- (y - X%*%beta)/sigma
logl <- sum(log(dnorm(e)))
return(logl)
}
optim(c(2,3,0), ols.lf, gr=NULL,
method="BFGS", lower=-Inf, upper=Inf,
control=list(trace=2, fnscale=-1),
# Now for the "..." stuff
K, y, X)
I get:
Error in fn(par, ...) : argument "X" is missing, with no default
In addition: Warning message:
numerical expression has 100 elements: only the first used in: 1:K
Execution halted
If someone can show me the way, it'll be most appreciated. :-)
More information about the R-help
mailing list