Friends,
I wrote a log-likelihood fuction and optimized but the optim function return a error. The program and the error are below.
Can you help me?
rm(list=ls(all=TRUE))
>
> duration<-read.table("C:/Documents and Settings/Savano/Meus documentos/Savano/PUC/estudo/NYSE/durationadj.txt",header=T,sep="");
>
> x <- duration$ibm;
> psi <- array(NaN,c(length(x),1));
>
> logexp <- function(omega,alpha,bbeta){
+
+ (-sum(log(psi))+sum(x/psi)) #verossimilhança
+
+ psi[1] <- omega/(1-bbeta) #valor inicial de psi[1]
+
+ for(i in 2:length(x)) {
+ psi[i] <- omega+alpha*x+bbeta*psi[i-1] #calculo de psi
+ }
+ return(logexp)
+ }
>
>
>
> optim(c(0.1,0.2,0.3),logexp,method="BFGS")
Error in fn(par, ...) : Argument "bbeta" is missing, with no default
The Error message tells you: you forgot to specify a value for (alpha and) bbeta. I guess you want to optimize over all three arguments of logexp()? In that case you have to vectorize them into one argument.
But there are SEVERAL other errors in your function!!!
The line psi[i] <- omega+alpha*x+bbeta*psi[i-1] is not sensible given that length(x)>1 ...
The initialization of psi should take place within logexp() using, e.g., psi <- numeric(length(x))
I think you don't want to return "logexp", but a single value (that one you are goiung to minimize here.
Please read "An Introduction to R" and look into an appropriate book (like "Modern Applied Statistics with S" or "S Programming", both by W.N. Venables and B.D. Ripley) in order to see how to solve your problem!
BTW: Messages re "teste" are extremely annoying!
Uwe Ligges
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help