100% found this document useful (1 vote)
292 views54 pages

Optimization With R

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 54

mm

40

60

80

100

120

Optimization with R
40

Guy Yollin

Seattle R Users

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

1 / 45

Personal Introduction
Guy Yollin - http://www.linkedin.com/in/guyyollin
mm

40

60

80

100

120

Professional Experience
Rotella Capital Management, Quantitative Research Analyst
Insightful Corporation, Director of Financial Engineering
40
J.E. Moody, LLC, Financial Engineer
Oregon Graduate Institute (OHSU), Adjunct Instructor
Electro Scientific Industries, Director of Engineering, Vision Products
Division
60

Education
Oregon Graduate Institute, Masters in Computational Finance
Drexel University, Bachelors in Electrical Engineering
80

Using R since 1999


Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

2 / 45

Outline
mm

40
Overview of Optimization

General Purpose Solvers

Linear40
Programming

Quadratic Programming

Differential
Evolution Algorithm
60

Optimization Activities in R

Optimization
References
80

Guy Yollin (Copyright

2010)

60

Optimization with R

80

100

Seattle R Users

120

3 / 45

Outline
mm

40
Overview of Optimization

General Purpose Solvers

Linear40
Programming

Quadratic Programming

Differential
Evolution Algorithm
60

Optimization Activities in R

Optimization
References
80

Guy Yollin (Copyright

2010)

60

Optimization with R

80

100

Seattle R Users

120

4 / 45

Overview of Optimization
mm

40

60

80

100

120

Optimization Problem

6
4
2

Given a function f (x)


Find the value x
Such that f (x ) obtains a
maximum
(or minimum) value
60
Subject to other constraints
on x

f (x)

10

The generic optimization


problem:
40

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

5 / 45

Overview of Optimization
mm

40

60

80

100

120

Traditional optimization applications:


Financial and investments
Manufacturing and industrial
40
Distribution and networks

Applications in computational statistics:


Model fitting
60
Parameter estimation
Maximizing likelihood

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

6 / 45

Optimization Functions in R
R directly
supports a 40
number of powerful
optimization
capabilities
mm
60
80
100

120

optimize Single variable optimization over an interval


optim General-purpose optimization based on Nelder-Mead,
40
quasi-Newton and conjugate-gradient algorithms
nlminb Unconstrained and constrained optimization using PORT
routines
Rglpk
60 R interface to the GNU Linear Programming Kit for solving
LPs and MILPs
solve.QP Quadratic programming (QP) solver
DEoptim Performs evolutionary global optimization via the differential
80 evolution algorithm

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

7 / 45

optimize()
Single variable optimization: f (x) = |x 3.5| + (x 2)2
mm

40

60

80

100

120

R Code:
> args(optimize)
function (f,
40 interval, ..., lower = min(interval), upper = max(interval),
maximum = FALSE, tol = .Machine$double.eps^0.25)
NULL
> f <- function(x) {
abs(x - 3.5) + (x - 2)^2
}
60
> op <- optimize(f
= f, interval = c(1, 5))
> op

$minimum
[1] 2.5

f (x)

10

Optimization Problem

$objective
80
[1] 1.25

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

8 / 45

Outline
mm

40
Overview of Optimization

General Purpose Solvers

Linear40
Programming

Quadratic Programming

Differential
Evolution Algorithm
60

Optimization Activities in R

Optimization
References
80

Guy Yollin (Copyright

2010)

60

Optimization with R

80

100

Seattle R Users

120

9 / 45

The optim function


The optim function is a general purpose multi-variate optimizer
mm

40

60

80

100

120

R Code: optim arguments


> args(optim)
function (par, fn, gr = NULL, ..., method = c("Nelder-Mead",
"BFGS",
40"CG", "L-BFGS-B", "SANN"), lower = -Inf, upper = Inf,
control = list(), hessian = FALSE)
NULL

fn objective function that takes a vector of parameters


(required)
par initial value of the parameters (required)
gr the gradient function (optional)
method optimization method to be used (optional)
80
lower box constraints of parameters (optional)
upper box constraints of parameters (optional)
60

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

10 / 45

Fitting a Mixture Model


80

100

120

Time between Eruptions

0.04

60

0.03

From section 16.3 of Venables


& Ripley 4th Edition

0.02

Time between Old Faithful


40
geyser eruptions
Objective function is the
log-likelihood of a mixture of 2
normal
distributions
60

0.01

40

0.00

mm

40

60

80

100

minutes

L(,80
1 , 1 , 2 , 2 ) =

n
X
i=1

Guy Yollin (Copyright

2010)

log [

yi 1
1 yi 2
(
)+
(
)]
1
1
2
2

Optimization with R

Seattle R Users

11 / 45

Optimization Example
R Code: optimizing with optim

mm

40

60

80

100

120

> # objective function


> mix.obj <- function(p, x)
{
e <- p[1]/p[3] * dnorm( (x - p[2])/p[3] ) +
(1-p[1])/p[5] * dnorm( (x - p[4])/p[5] )
if(any(e
40<= 0)) Inf else -sum(log(e))
}
> # define initial values
> (p0 <- c(p = mean(waiting < 70), u1 = 50, s1 = 5, u2 = 80, s2 = 5))
p
u1
0.361204 50.000000

60

s1
u2
5.000000 80.000000

s2
5.000000

> # optimize
> mix.nl0 <- optim(p0, mix.obj, x = waiting)
> mix.nl0$par
p
u1
0.3073520 54.1964325

s1
u2
4.9483442 80.3601824

s2
7.5110485

80
> mix.nl0$convergence
[1] 0
Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

12 / 45

The Mixture Model Fit


mm

Time between
Eruptions
60
80

0.04

40

100

120

0.03

Normal mixture
Nonparametric

0.02

40

0.00

0.01

60

80

40

Guy Yollin (Copyright

60

80

100

minutes
2010)

Optimization with R

Seattle R Users

13 / 45

Outline
mm

40
Overview of Optimization

General Purpose Solvers

Linear40
Programming

Quadratic Programming

Differential
Evolution Algorithm
60

Optimization Activities in R

Optimization
References
80

Guy Yollin (Copyright

2010)

60

Optimization with R

80

100

Seattle R Users

120

14 / 45

Linear Programming
Linear programming
(LP)
function and120
mm
40 problems
60have a linear
80 objective100
linear constraints
cT x

minx
40

Ax b
x 0

where

60

x is a vector of variables to be opitmized (length n)


c is a vector of objective coefficients (length n)
A is a constraints matrix (dimension m x n)
80 b is a vector of constraints bounds (length m)

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

15 / 45

Menu Planner
mm the cost
Minimize
worth of meals
Ds
40of a days 60
80 at Mickey100
Subject to

120

nutritional constraints
variety constraints (max 4 of any item)
integer constraints (no fractional Big Macs)
40
Food
Quarter Pounder
McLean Delux
Big Mac
60
FiletOFish
McGrilled Chicken
Small Fries
Sausage McMuffin
Lowfat Milk
Orange Juice
80
Minimum
Maximum

Guy Yollin (Copyright

Cost
1.84
2.19
1.84
1.44
2.29
0.77
1.29
0.60
0.72

2010)

Cals
510
370
500
370
400
220
345
110
80
2000
3500

Carbs
34
35
42
38
42
26
27
12
20
350
375

Protein
28
24
25
14
31
3
15
9
1
55

Optimization with R

VitaA
15
15
6
2
8
0
4
10
2
100

VitaB
6
10
2
0
15
15
0
4
120
100

Calc
30
20
25
15
15
0
20
30
2
100

Iron
20
20
20
10
8
2
15
0
2
100

Seattle R Users

16 / 45

The Rglpk package


R Code: the Rglpk solve LP

mm

40

60

80

100

120

> library(Rglpk)
Using the GLPK callable library version 4.42
> args(Rglpk_solve_LP)
function (obj, mat, dir, rhs, types = NULL, max = FALSE, bounds = NULL,
verbose
40= FALSE)
NULL

obj
60
mat
dir
rhs
type
80
bounds
max

vector of objective coefficients


constraints matrix
gt, gte, lt, lte, eq for each constraint
vector of constraints bounds
type of variables (continuous, integer, binary)
box constraints on variables
minimization/maximization problem

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

17 / 45

Preparing to call the solver


R Code: Objects in the diet problem

mm

40

60

80

100

120

> fmat
Quarter Pounder
McLean Delux
Big Mac
FiletOFish40
McGrilled Chicken
Small Fries
Sausage McMuffin
Lowfat Milk
Orange Juice
> Cost

60

Cals Carbs Protein VitaA VitaB Calc Iron


510
34
28
15
6
30
20
370
35
24
15
10
20
20
500
42
25
6
2
25
20
370
38
14
2
0
15
10
400
42
31
8
15
15
8
220
26
3
0
15
0
2
345
27
15
4
0
20
15
110
12
9
10
4
30
0
80
20
1
2
120
2
2

Quarter Pounder
McLean Delux
1.84
2.19
FiletOFish McGrilled Chicken
1.44
2.29
80
Sausage McMuffin
Lowfat Milk
1.29
0.60

Guy Yollin (Copyright

2010)

Big Mac
1.84
Small Fries
0.77
Orange Juice
0.72

Optimization with R

Seattle R Users

18 / 45

Preparing to call the solver


R Code: Objects in the diet problem

mm

40

60

80

100

120

> Amat <- rbind(t(fmat),t(fmat))


> minAmt
Cals
2000
> maxAmt
Cals
3500

Carbs Protein
350
55

VitaA
100

VitaB
100

Calc
100

Iron
100

VitaA
Inf

VitaB
Inf

Calc
Inf

Iron
Inf

40
Carbs Protein
375
Inf

> dir <- c(rep(">=",numCons),rep("<=",numCons))


> bounds <- list(lower = list(ind = 1:numVars, val = rep(0,numVars)),
upper = list(ind = 1:numVars, val = rep(4,numVars)))
60
> bounds$upper
$ind
[1] 1 2 3 4 5 6 7 8 9
$val
[1] 4 4 4 80
4 4 4 4 4 4

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

19 / 45

Calling the LP Solver


R Code: call to Rglpk_solve_LP

mm

40

60

80

100

120

> sol <- Rglpk_solve_LP(obj=Cost, mat=Amat, dir=dir, rhs=c(minAmt,maxAmt),


types = rep("I",numVars), max = FALSE, bounds=bounds, verbose = F)
> (x <- sol$solution)
[1] 2 1 1 0 0 2 1 4 4
> t(fmat) 40
%*% x
[,1]
Cals
3435
Carbs
352
Protein 166
VitaA
103
60
VitaB
550
Calc
253
Iron
107
> Cost %*% x
[,1]
[1,] 15.8280

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

20 / 45

Outline
mm

40
Overview of Optimization

General Purpose Solvers

Linear40
Programming

Quadratic Programming

Differential
Evolution Algorithm
60

Optimization Activities in R

Optimization
References
80

Guy Yollin (Copyright

2010)

60

Optimization with R

80

100

Seattle R Users

120

21 / 45

Quadratic Programming
Quadratic programming (QP) problems have a quadratic objective
40
60
80
100
functionmm
and linear constraints
minx
s.t.

40

where

60

120

1
c T x + x T Qx
2
Ax b
x 0

x is a vector of variables to be optimized (length n)

Q is a symmetric matrix (dimension m x n)


c is a vector of objective coefficients (length n)
80A is a constraints matrix (dimension m x n)

b is a vector of constraints bounds (length m)


Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

22 / 45

Style Analysis
mm

40

60

Style Analysis is a technique that


100the
120
attempts80to determine
fundamental drivers of a mutual
funds returns
Sharpes return-based style analysis:
minw var (RMF w1 RB1 . . . wn RBn )

40

s.t.
60

wi = 1

0 wi 1

var (R
80MF w1 RB1 . . . wn RBn ) = 2(

Guy Yollin (Copyright

2010)

w T Vw
c T w ) + var (RMF )
2

Optimization with R

Seattle R Users

23 / 45

The quadprog package


mm

40

60

R Code: the solve.QP function

80

100

120

> library(quadprog)
> args(solve.QP)
function (Dmat, dvec, Amat, bvec, meq = 0, factorized = FALSE)
40
NULL

Dmat matrix in quadratic part of objective function


dvec
60 vector in linear part of objective function
Amat constraints matrix
bvec vector of constraints bounds
meq first meq constraints are equality constraints
80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

24 / 45

Quadratic Programming
R Code: setup to call solve.QP

mm

40

60

80

100

120

> head(z)
WINDSOR
2005-10-03 -0.1593626
2005-10-04 -0.7202912
2005-10-05 -1.3748700
40
2005-10-06 -0.2445986
2005-10-07 0.4073325
2005-10-10 -0.8163311

LARGEVALUE
-0.09535756
-1.27326280
-1.66080920
-0.51217665
0.41993619
-0.88589613

LARGEGROWTH
-0.005995983
-0.762412906
-1.475015837
-0.485592013
0.330131430
-0.564549912

SMALLVALUE SMALLGROWTH
0.3403397
0.4733873
-1.0561886 -0.9461192
-2.8568633 -2.9082448
-0.5641660 -1.1559082
0.7721558
0.7480504
-0.9743418 -1.0118028

> (Dmat = var(z[,-1]))


LARGEVALUE60
LARGEGROWTH
SMALLVALUE
SMALLGROWTH

LARGEVALUE LARGEGROWTH SMALLVALUE SMALLGROWTH


2.959438
2.433880
3.276065
2.951333
2.433880
2.191768
2.760910
2.613387
3.276065
2.760910
4.249303
3.773710
2.951333
2.613387
3.773710
3.559450

> (dvec = var(z[,1], z[,-1]))


[1,]

LARGEVALUE
LARGEGROWTH SMALLVALUE SMALLGROWTH
80
2.878281
2.437179
3.214248
2.948217

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

25 / 45

Quadratic Programming
R Code: mm
setup to call solve.QP
40

60

80

100

120

> (Amat <- t(rbind(rep(1,N), diag(N), -diag(N))))


[1,]
[2,]
[3,]
[4,]
>
>
>
>
>
>
>

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]


1
1
0
0
0
-1
0
0
0
1
0
1
0
0
0
-1
0
0
1 40 0
0
1
0
0
0
-1
0
1
0
0
0
1
0
0
0
-1

# weights sum to 1, weights >=0, weights <= 0


b0 <- c(1, rep(0,N),rep(-1,N))
#
optimal <- solve.QP(Dmat, dvec, Amat, bvec = b0, meq = 1)
60
W <- matrix(round(100*optimal$solution),nrow=2,byrow=T)
dimnames(W) <- list(c("large","small"),c("value","growth"))
W

large
small

value growth
69
27
0
4
80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

26 / 45

Outline
mm

40
Overview of Optimization

General Purpose Solvers

Linear40
Programming

Quadratic Programming

Differential
Evolution Algorithm
60

Optimization Activities in R

Optimization
References
80

Guy Yollin (Copyright

2010)

60

Optimization with R

80

100

Seattle R Users

120

27 / 45

Differential Evolution Algorithm


mm

40

60

80

100

120

Differential Evolution (DE) is a very simple and yet very powerful


population based stochastic function minimizer
Ideal40for global optimization of multidimensional, nonlinear,
multimodal, highly-constrained functions (i.e. really hard problems)
Developed in mid-1990 by Berkeley researchers Ken Price and Rainer
60
Storn
Implemented in R in the package DEoptim
80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

28 / 45

Rosenbrock Banana Function


2
2 2
f (x40
60x1 ) + 100(x
802 x1 ) 100
1 , x2 ) = (1

mm

120

40

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

29 / 45

Differential Evolution Algorithm


Permutation 1

mm

x1

0.32

0.29

0.68

-0.51

1.29

-0.94

x2

0.15

0.52

-1.75

0.64

-0.84

1.78

x1

1.29

-0.94

0.32

0.29

0.68

-0.51

x2

-0.84

1.78

0.15

0.52

-1.75

0.64

40

60

80

100

120

Permutation 2

F
Mutant Population

40

x1

-0.48

1.66

-0.23

0.65

-0.45

-0.02

x2

1.31

-2.76

-0.88

-0.74

2.51

1.06

Permutation 3
x1

0.29

0.68

-0.51

1.29

-0.94

0.32

x2

0.52

-1.75

0.64

-0.84

1.78

0.15

Random Crossover Template

Trial Population

x1

x2

60

x1

-0.94

-0.51

-0.23

0.64

0.32

1.29

x2

1.31

0.64

-0.88

-0.74

2.00

1.06

Current Population
x1

-0.94

-0.51

0.29

0.68

0.32

1.29

x2

1.78

0.64

0.52

-1.75

0.15

-0.84

trial member
>
current member

Next Gen Population

80

Guy Yollin (Copyright

2010)

Optimization with R

x1

-0.94

-0.51

0.29

0.65

0.32

1.29

x2

1.31

0.64

0.52

-0.74

0.15

1.06

Seattle R Users

30 / 45

Differential Evolution Rosenbrock Example


mm

40

60

80

100

120

40

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

31 / 45

G2 Function
4 +cos(x )2 2 cos(x )2
2
1
x12 +2x22

f (x1 , x2 ) = | cos(x1 )

mm

40

60

80

cos(x2 )2

|
100

120

where: 0 x1 10 , 0 x2 10 , x1 x2 0.75 , x1 + x2 15

40

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

32 / 45

Finding G2 Maximum with Differential Evolution


mm

40

60

80

100

120

40

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

33 / 45

Finding G2 Maximum with Differential Evolution


mm

40

60

80

100

120

40

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

33 / 45

Finding G2 Maximum with Differential Evolution


mm

40

60

80

100

120

40

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

33 / 45

Finding G2 Maximum with Differential Evolution


mm

40

60

80

100

120

40

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

33 / 45

Finding G2 Maximum with Differential Evolution


mm

40

60

80

100

120

40

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

33 / 45

Finding G2 Maximum with Differential Evolution


mm

40

60

80

100

120

40

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

33 / 45

Finding G2 Maximum with Differential Evolution


mm

40

60

80

100

120

40

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

33 / 45

Finding G2 Maximum with Differential Evolution


mm

40

60

80

100

120

40

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

33 / 45

Finding G2 Maximum with Differential Evolution


mm

40

60

80

100

120

40

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

33 / 45

Finding G2 Maximum with Differential Evolution


mm

40

60

80

100

120

40

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

33 / 45

The DEoptim function


mm

40

60

80

100

120

R Code: DEoptim arguments


> args(DEoptim)
function (fn, lower, upper, control = DEoptim.control(), ...)
40
NULL

fn objective function to be optimized


60 lower bound on parameters
lower

upper upper bound on parameters


control list of control parameters
80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

34 / 45

The DEoptim.control function


R Code: DEoptim.control arguments

mm

40

60

80

100

120

> args(DEoptim.control)
function (VTR = -Inf, strategy = 2, bs = FALSE, NP = 50, itermax = 200,
CR = 0.5, F = 0.8, trace = TRUE, initialpop = NULL, storepopfrom = itermax +
1, storepopfreq = 1, checkWinner = FALSE, avWinner = TRUE,
40
p = 0.2)
NULL

NP number of population member


60

itermax max number of iterations (population generations)


strategy differential evolution strategy
F step size for scaling difference
CR crossover probability
80
VTR value-to-reach
Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

35 / 45

The DEoptim function


R Code: mm
call to DEoptim
40

60

80

100

120

> G2 = function( x ) {
if( x[1] >=0 & x[1] <=10 & x[2] >=0 & x[2] <= 10 &
x[1] * x[2] >= 0.75 & x[1] + x[2] <= 15 ) {
s <- cos(x[1])^4+cos(x[2])^4
p <- 40
2*cos(x[1])^2*cos(x[2])^2
r <- sqrt(x[1]^2+2*x[2]^2)
f <- -abs((s-p)/r)
} else {
f <- 0
}
60
return(f)
}
> lower = c(0,0)
> upper = c(10,10)
> res = DEoptim(G2, lower, upper,
control = list(NP = 20, itermax = 100, strategy=1, trace=F))

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

36 / 45

The DEoptim function


mm

40

60

80

100

120

R Code: results of DEoptim


> res$optim
$bestmem
par1 40
par2
1.6013695 0.4683657
$bestval
[1] -0.3649653
$nfeval
[1] 2020

60

$iter
[1] 100

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

37 / 45

Outline
mm

40
Overview of Optimization

General Purpose Solvers

Linear40
Programming

Quadratic Programming

Differential
Evolution Algorithm
60

Optimization Activities in R

Optimization
References
80

Guy Yollin (Copyright

2010)

60

Optimization with R

80

100

Seattle R Users

120

38 / 45

Optimization Task View


mm

40

60

80

100

120

40

60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

39 / 45

Other optimization activities to keep an eye on


mm

40

Project

60

80

100

120

Description

Location

Contributors

optimizer

optimX, numerical derivatives

R-Forge

Nash, Mullen, Gilbert

Rmetrics2AMPL

R interface to AMPL environment

rmetrics.org

Wuertz, Chalabi

COIN-OR

open source software for OR

coin-or.org

COIN-OR Foundation

R interface to the NuOPT optimizer

msi.co.jp

Yamashita, Tanabe

40

60

RnuOPT

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

40 / 45

Outline
mm

40
Overview of Optimization

General Purpose Solvers

Linear40
Programming

Quadratic Programming

Differential
Evolution Algorithm
60

Optimization Activities in R

Optimization
References
80

Guy Yollin (Copyright

2010)

60

Optimization with R

80

100

Seattle R Users

120

41 / 45

General Optimization References


mm

40

60

80

100

120

W. N. Venables and B. D. Ripley


Modern Applied Statistics with S, 4th Edition.
Springer, 2004.
40

O. Jones and R. Maillardet


Introduction to Scientific Programming and Simulation Using R.
Chapman and Hall/CRC, 2009.
W. J.60Braun and D. J. Murdoch
A First Course in Statistical Programming with R.
Cambridge University Press/CRC, 2008.
80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

42 / 45

Differential Evolution References


mm

40

60

80

100

120

K. M. Mullen and D. Ardia


DEoptim: An R Package for Global Optimization by Differential
40
Evolution.
2009.
K. Price and R. Storn
Differential
Evolution: A Practical Approach to Global Optimization.
60
Springer, 2005.

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

43 / 45

R Programming for Computational Finance


January 2010

mm

40

60

80

University of Washington Online


Certificate in Computational Finance

100

120

4.0

HAM1 Performance
HAM1

3.5

EDHEC LS EQ

Factor models

2.5
2.0
1.5
1.0
0.05
0.00

Monthly Return

0.05
0.0 0.10
0.1
0.2
0.4

Financial time series modeling

Drawdown

Statistical analysis of asset


60
returns

0.3

40 computational finance
Survey
methods and techniques through
the development of R software

Cumulative Return

3.0

SP500 TR

Jan 96

Jan 97

Jan 98

Jan 99

Jan 00

Jan 01

Jan 02

Jan 03

Jan 04

Jan 05

Jan 06

Dec 06

Date

Portfolio
optimization
80

Plot from the PerformanceAnalytics package

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

44 / 45

Conclusion
mm

40

60

80

100

120

40

Thank You for Your Time!


60

80

Guy Yollin (Copyright

2010)

Optimization with R

Seattle R Users

45 / 45

You might also like