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