Skip to content

optimize()

3 messages · dnz.marcio, Ben Bolker

#
Hi!

I have a difficulty in the use of function optimize(). Could you help me?
I want to maximize this function:

##### Logaritmo da distribui??o condicional de alpha[i]

lp_alphai <- function(alphai, i, beta, tau, N){

t1 <- (N[i+1] - N[i])*log(alphai)
t2 <- - (N[i+1] - N[i])*alphai*log(beta[i]) 
t3 <- (alphai - 1)*sum(log(times[(N[i] + 1):N[i+1]])) 
t4 <- - exp(alphai*(log(tau[i+1]) - log(beta[i])))

t5 <- 0
if(i > 1)
t5 <- exp(alphai*(log(tau[i]) - log(beta[i])))

v <- t1 + t2 + t3 + t4 + t5

return(v)

                                                         }

Then, I've done:

optimize(lp_alphai, lower = 0, upper = 10, maximum = TRUE, tol =
0.00000000001, i = 1, beta = 125, tau = c(0,1900), N = c(0,236))$maximum

However, I face this problem:
Error in i + 1 : 'i' missing

I've been in this problem all this day, but, I can't find a solution.
Thank you.

--
View this message in context: http://r.789695.n4.nabble.com/optimize-tp4173920p4173920.html
Sent from the R help mailing list archive at Nabble.com.
1 day later
#
dnz.marcio <dnz.marcio <at> gmail.com> writes:
[snip]
This is actually fairly subtle: you're running into a partial
matching problem with the "interval" argument of optimize().
I added interval=NULL to the call and got a little farther, 
but then I ran into an error because I hadn't specified the
"times" variable.  Presumably you have defined a "times" variable?

  Ben Bolker
4 days later