Re: [R] optimization setup

From: Ray Brownrigg <Ray.Brownrigg_at_mcs.vuw.ac.nz>
Date: Wed, 23 Apr 2008 08:49:05 +1200

On Wed, 23 Apr 2008, threshold wrote:
> Hi, here comes my problem, say I have the following functions (example
> case) #------------------------------------------------------------
> function1 <- function (x, theta)
> {a <- theta[1] ( 1 - exp(-theta[2]) ) * theta[3] )
> b <- x * theta[1] / theta[3]^2
> return( list( a = a, b = b )) }
> #-----------------------------------------------------------
> function2<-function (x, theta)
> {P <- function1(x, theta)
> c <- P$a * x * exp(-theta[2])
> d <- P$b * exp(x)
> q <- theta[1] / theta[3]
> res <- c + d + q; res}
>
> # Function to be optimized
> function3 <- function(theta1,theta2,theta3) {
> n <- length(data)
> -sum( function2(x = data[2:n], theta = c(theta1, theta2, theta3) ))}
> # 'data' is my input ts class object
> #--------------------------------------------------------------------------
>------------
>
> Then I want to maximize function3 with respect to theta(s) (given some
> starting values)
>
> fit<-optim(par=c(theta1=1, theta2=1.2, theta3=.2), fn=function3)
>
> I get the following:
> Error in function1(x, theta) :
> argument "theta2" is missing, with no default
>
> Where I made a mistake? I will appreciate any help ...
>
> r

Your function to be optimised must be a function of a single parameter (which may be a vector).

So you should have something like:
# Function to be optimized
function3 <- function(thetas) {
  n <- length(data)
  -sum( function2(x = data[2:n], theta = thetas)) }

[Not tested, your provided code has typos].

Ray



R-help_at_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. Received on Tue 22 Apr 2008 - 21:09:03 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 29 May 2008 - 20:32:14 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive