dear optim experts, optim(c(1,1),LL,control=list(fnscale=-1),trans=trans,times=times)
Error in optim(c(1, 1), LL, control = list(fnscale = -1), trans = trans, : Function cannot be evaluated at initial parameters Finally i would constraint r and alpha > than a small positive number? optim(c(1,1),LL,lower=c(0.0001,0.001),upper=Inf,method="L-BFGS-B",control=list(fnscale=-1),trans=trans,times=times) Error in optim(c(1, 1), LL, lower = c(0.001, 0.001), upper = Inf, method = "L-BFGS-B", : L-BFGS-B needs finite values of fn where are my mistakes? Many thanks, christian ########## The data and function dm <- subset(dm09,select=c(ID,TRANS,TIMES)) trans <- dm$TRANS > length(trans) [1] 269732 times <- dm$TIMES > length(times) [1] 269732 LL <- function(x,trans,times){ r <- x[1] alpha <- x[2] l0 <- exp(lgamma(r+trans)-lgamma(r))/gamma(trans+1)*(alpha/(alpha+times))**r*(times/(alpha+times))**trans l <- log(l0) sum(l) } Am Mittwoch, 29. September 2004 19:41 schrieb Sundar Dorai-Raj: > Christian Schulz wrote: > > Hello, > > > > i know that i have to use optim, but i'm confused how its > > possible maximize the sum over all l[i] and get the optimized > > max(LL), r and alpha? > > > > LL <- function(trans,time){ > > for(i in 1:length(trans){ > > l[i] <- log(lgamma(r+trans[i] - > > gamma(r+1)*(alpha/alpha+t[i]))**r)*(t[i]/alpha+t[i]))**trans[i] > > } > > return(sum(l)) > > } > > > > i'm confused how i have to set r and alpha > > and i found no related help in archives? > > > > ...in Excel it works with solver but only for ~65.000 rows :-) > > > > #This notation is 1 for trans and 1 for time instead the Startvalues > > for r and alpha? > > I'm not sure what the above statement means, so I may have > misinterpretted what you are trying to accomplish. > > > optim(c(1,1),-LL) > > > > many thanks for an easy example or hint > > regards,christian > > Did you look at the first example in ?optim? There also numerous errors > in LL: missing parans, time is not used, t is undefined in the function. > > LL <- function(x, trans, time) { > r <- x[1] > alpha <- x[2] > ... > sum(l) > } > > optim(c(1, 1), LL, control = list(fnscale = -1), > trans = trans, time = time) > > Some style issues: > 1. Break up lines that run too long, especially if you expect others to > read your code. > 2. You don't need an explicit "return" at the end of a function. > 3. You should remove the "for" loop in LL and vectorise "l", which > should be easy. > > Hope this is helpful, > > --sundar > > ______________________________________________ > [EMAIL PROTECTED] mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html ______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html