Hi Edward, At least for me, your llik() function returns Inf for the starting values specified, so optim() never gets to estimate anything. You need to alter llik() or find starting parameters that work before worrying about getting the for loop working.
Cheers, Josh On Mon, Jul 4, 2011 at 2:34 AM, EdBo <n.bow...@gmail.com> wrote: > Hi > > May you help me correct my loop function. > > I want optim to estimates al_j; au_j; sigma_j; b_j by looking at 0 to 20, > 21 to 40, 41 to 60 data points. > > The final result should have 4 columns of each of the estimates AND 4 rows > of each of 0 to 20, 21 to 40, 41 to 60. > > ###MY code is > > n=20 > runs=4 > out=matrix(0,nrow=runs) > > llik = function(x) > { > al_j=x[1]; au_j=x[2]; sigma_j=x[3]; b_j=x[4] > sum(na.rm=T, > ifelse(a$R_j< 0, -log(1/(2*pi*(sigma_j^2)))- > (1/(2*(sigma_j^2))*(a$R_j+al_j-b_j*a$R_m))^2, > ifelse(a$R_j>0 , -log(1/(2*pi*(sigma_j^2)))- > (1/(2*(sigma_j^2))*(a$R_j+au_j-b_j*a$R_m))^2, > > -log(pnorm(au_j,mean=b_j*a$R_m,sd=sqrt(sigma_j^2))- > pnorm(au_j,mean=b_j*a$R_m,sd=sqrt(sigma_j^2))))) > > ) > > } > > start.par = c(0, 0, 0.01, 1) > out1 = optim(llik, par=start.par, method="Nelder-Mead") > > > for (i in 1: runs) > { > index_start=20*(i-1)+1 > index_end= 20*i > out[i]=out1[index_start:index_end] > } > out > > > Thank you in advance > > Edward > UCT > ####My data > > R_j R_m > -0.0625 0.002320654 > 0 -0.004642807 > 0.033333333 0.005936332 > 0.032258065 0.001060848 > 0 0.007114057 > 0.015625 0.005581558 > 0 0.002974794 > 0.015384615 0.004215271 > 0.060606061 0.005073116 > 0.028571429 -0.006001279 > 0 -0.002789594 > 0.013888889 0.00770633 > 0 0.000371663 > 0.02739726 -0.004224228 > -0.04 0.008362539 > 0 -0.010951605 > 0 0.004682924 > 0.013888889 0.011839993 > -0.01369863 0.004210383 > -0.027777778 -0.04658949 > 0 0.00987272 > -0.057142857 -0.062203157 > -0.03030303 -0.119177639 > 0.09375 0.077054642 > 0 -0.022763619 > -0.057142857 0.050408775 > 0 0.024706076 > -0.03030303 0.004043701 > 0.0625 0.004951088 > 0 -0.005968731 > 0 -0.038292548 > 0 0.013381097 > 0.014705882 0.006424728 > -0.014492754 -0.020115626 > 0 -0.004837891 > -0.029411765 -0.022054654 > 0.03030303 0.008936428 > 0.044117647 8.16925E-05 > 0 -0.004827246 > -0.042253521 0.004653096 > -0.014705882 -0.004222151 > 0.029850746 0.000107267 > -0.028985507 -0.001783206 > 0.029850746 -0.006372981 > 0.014492754 0.005492374 > -0.028571429 -0.009005846 > 0 0.001031683 > 0.044117647 0.002800551 > > > > > > > > > > > > > -- > View this message in context: > http://r.789695.n4.nabble.com/loop-in-optim-tp3643230p3643230.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > -- Joshua Wiley Ph.D. Student, Health Psychology University of California, Los Angeles http://www.joshuawiley.com/ ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.