barr cc slides
TRANSCRIPT
. . . . . .
AWS in Academic FinanceHigh Performance Modeling
Stephen J. [email protected]
University of Rochester
March 24, 2012
. . . . . .
Welcome
Welcome!
I Glad to be here at Rochester Cloud Camp 2012
I I am a PhD student at the Simon School of Business,University of Rochester
I Presenting a bit of my research, and how I use AWS daily forfinancial models
. . . . . .
Welcome
Welcome!
I Glad to be here at Rochester Cloud Camp 2012
I I am a PhD student at the Simon School of Business,University of Rochester
I Presenting a bit of my research, and how I use AWS daily forfinancial models
. . . . . .
Welcome
Welcome!
I Glad to be here at Rochester Cloud Camp 2012
I I am a PhD student at the Simon School of Business,University of Rochester
I Presenting a bit of my research, and how I use AWS daily forfinancial models
. . . . . .
Quick Overview
First 5-7 minutes
I My research question
Remaining time
I How I use AWS daily in my research
. . . . . .
Quick Overview
First 5-7 minutes
I My research question
Remaining time
I How I use AWS daily in my research
. . . . . .
Research Question
I My area of interest is financial capital structure, meaninghow firms use debt and equity issuance to financethemselves
I Main quantities of interest are leverage and investment rates
Leverage =net debt
total assets
The main goal of this line of research is to explain the dynamicsof leverage and investment in the face of uncertainty.
. . . . . .
Research Question
I My area of interest is financial capital structure, meaninghow firms use debt and equity issuance to financethemselves
I Main quantities of interest are leverage and investment rates
Leverage =net debt
total assets
The main goal of this line of research is to explain the dynamicsof leverage and investment in the face of uncertainty.
. . . . . .
Research Question
Rather than talk, lets just put together a simple model.Modeling Principles
I Take as many simplifications as possible
I Based on economic principles
I Rather than forcing the firm to follow rules about investmentor leverage, the firm chooses the value-maximizing behaviourgiven reasonable incentives
I Firm’s incentive: maximize equity value
. . . . . .
Research Question
Rather than talk, lets just put together a simple model.Modeling Principles
I Take as many simplifications as possible
I Based on economic principles
I Rather than forcing the firm to follow rules about investmentor leverage, the firm chooses the value-maximizing behaviourgiven reasonable incentives
I Firm’s incentive: maximize equity value
. . . . . .
Research Question
Rather than talk, lets just put together a simple model.Modeling Principles
I Take as many simplifications as possible
I Based on economic principles
I Rather than forcing the firm to follow rules about investmentor leverage, the firm chooses the value-maximizing behaviourgiven reasonable incentives
I Firm’s incentive: maximize equity value
. . . . . .
Research Question
Rather than talk, lets just put together a simple model.Modeling Principles
I Take as many simplifications as possible
I Based on economic principles
I Rather than forcing the firm to follow rules about investmentor leverage, the firm chooses the value-maximizing behaviourgiven reasonable incentives
I Firm’s incentive: maximize equity value
. . . . . .
Research Question - Math - I
e(k , k ′, b, b′, z) = (1)
zkθ Profit (2)
+ p′ − (1− r(1− τc)p) New debt + repay old (3)
+ k ′ − (1− δk) Investment (4)
+ A(k, k ′) Capital Adjustment Cost (5)
The function e(·) shows the firm’s financing status.e(·) ≥ 0 the firm make a distribution to shareholders
e(·) < 0 the firm is issuing equity(6)
. . . . . .
Research Question - Math - II
But, to issue equity, the firm goes to an investment bank. Thisisn’t free.
φ(e(·)) = λ1e(·) + λ2(e(·))2 (7)
The firm wants to make the choices of k ′ and p′ to maximizecurrent plus expected future discounted returns. In math, this iscalled a dynamic programming problem and is expressed as aBellman equation (recursively defined).
V (Kt ,Pt , z∗t ) = (8)
maxKt+1,Pt+1∈K×P
e(Kt ,Kt+1,Pt ,Pt+1, z
∗t ) + φ(e(Kt ,Kt+1,Pt ,Pt+1, z
∗t ))
(9)
+ β
∫V (Kt+1,Pt+1, z
∗)dΓ(z∗t , dz∗t+1)
. . . . . .
Phew!
. . . . . .
How do we solve this?
The math and algorithms to solve these programs fall under“dynamic programming”.HUGE ISSUE:
The curse of dimensionality!!!
. . . . . .
Why is this an issue? - I
For 3 k’s 5, 10, 15 and 2 p’s 2, 4
k =
5 5 5 5 5 55 5 5 5 5 510 10 10 10 10 1010 10 10 10 10 1015 15 15 15 15 1515 15 15 15 15 15
k ′ =
5 5 10 10 15 155 5 10 10 15 155 5 10 10 15 155 5 10 10 15 155 5 10 10 15 155 5 10 10 15 15
p =
2 2 2 2 2 24 4 4 4 4 42 2 2 2 2 24 4 4 4 4 42 2 2 2 2 24 4 4 4 4 4
p′ =
2 4 2 4 2 42 4 2 4 2 42 4 2 4 2 42 4 2 4 2 42 4 2 4 2 42 4 2 4 2 4
. . . . . .
Why is this an issue - II
1. For sufficient granularity, I need u 71 k ’s and u 29 p’s
2. The above leads to a 2059× 2059 matrix
3. I need one of those for each shock z
4. My z is a combination of two processes...I have 323 of them.
5. I have a (2059× 323)× 2059 matrix of double precisionnumbers sitting in memory
6. This is a 665057× 2059 = 1, 369, 352, 363 element matrix.
. . . . . .
Why is this an issue - II
1. For sufficient granularity, I need u 71 k ’s and u 29 p’s
2. The above leads to a 2059× 2059 matrix
3. I need one of those for each shock z
4. My z is a combination of two processes...I have 323 of them.
5. I have a (2059× 323)× 2059 matrix of double precisionnumbers sitting in memory
6. This is a 665057× 2059 = 1, 369, 352, 363 element matrix.
. . . . . .
Why is this an issue - II
1. For sufficient granularity, I need u 71 k ’s and u 29 p’s
2. The above leads to a 2059× 2059 matrix
3. I need one of those for each shock z
4. My z is a combination of two processes...I have 323 of them.
5. I have a (2059× 323)× 2059 matrix of double precisionnumbers sitting in memory
6. This is a 665057× 2059 = 1, 369, 352, 363 element matrix.
. . . . . .
Why is this an issue - II
1. For sufficient granularity, I need u 71 k ’s and u 29 p’s
2. The above leads to a 2059× 2059 matrix
3. I need one of those for each shock z
4. My z is a combination of two processes...I have 323 of them.
5. I have a (2059× 323)× 2059 matrix of double precisionnumbers sitting in memory
6. This is a 665057× 2059 = 1, 369, 352, 363 element matrix.
. . . . . .
Why is this an issue - II
1. For sufficient granularity, I need u 71 k ’s and u 29 p’s
2. The above leads to a 2059× 2059 matrix
3. I need one of those for each shock z
4. My z is a combination of two processes...I have 323 of them.
5. I have a (2059× 323)× 2059 matrix of double precisionnumbers sitting in memory
6. This is a 665057× 2059 = 1, 369, 352, 363 element matrix.
. . . . . .
Why is this an issue - II
1. For sufficient granularity, I need u 71 k ’s and u 29 p’s
2. The above leads to a 2059× 2059 matrix
3. I need one of those for each shock z
4. My z is a combination of two processes...I have 323 of them.
5. I have a (2059× 323)× 2059 matrix of double precisionnumbers sitting in memory
6. This is a 665057× 2059 = 1, 369, 352, 363 element matrix.
. . . . . .
How to solve
maxK ′,P′∈K×P
e(K ,K ′,P,P ′, z∗) + φ(e(K ,K ′,P ,P ′, z∗)) (10)
+ β
∫V (K ′,P ′, z∗)dΓ(z∗, dz∗′)
(11)
Algorithm: Value Function Iteration
1. Compute eq. (10)
2. Iteratively guess eq.(11)
3. Get a policy function, giving the value-maximizing choice forevery state
4. The policy function is a 323× 2059 matrix giving the best ofk ′, p′ for every z , k , p
5. Use a cc2.8xlarge
. . . . . .
How to solve
maxK ′,P′∈K×P
e(K ,K ′,P,P ′, z∗) + φ(e(K ,K ′,P ,P ′, z∗)) (10)
+ β
∫V (K ′,P ′, z∗)dΓ(z∗, dz∗′)
(11)
Algorithm: Value Function Iteration
1. Compute eq. (10)
2. Iteratively guess eq.(11)
3. Get a policy function, giving the value-maximizing choice forevery state
4. The policy function is a 323× 2059 matrix giving the best ofk ′, p′ for every z , k , p
5. Use a cc2.8xlarge
. . . . . .
How to solve
maxK ′,P′∈K×P
e(K ,K ′,P,P ′, z∗) + φ(e(K ,K ′,P ,P ′, z∗)) (10)
+ β
∫V (K ′,P ′, z∗)dΓ(z∗, dz∗′)
(11)
Algorithm: Value Function Iteration
1. Compute eq. (10)
2. Iteratively guess eq.(11)
3. Get a policy function, giving the value-maximizing choice forevery state
4. The policy function is a 323× 2059 matrix giving the best ofk ′, p′ for every z , k , p
5. Use a cc2.8xlarge
. . . . . .
How to solve
maxK ′,P′∈K×P
e(K ,K ′,P,P ′, z∗) + φ(e(K ,K ′,P ,P ′, z∗)) (10)
+ β
∫V (K ′,P ′, z∗)dΓ(z∗, dz∗′)
(11)
Algorithm: Value Function Iteration
1. Compute eq. (10)
2. Iteratively guess eq.(11)
3. Get a policy function, giving the value-maximizing choice forevery state
4. The policy function is a 323× 2059 matrix giving the best ofk ′, p′ for every z , k , p
5. Use a cc2.8xlarge
. . . . . .
How to solve
maxK ′,P′∈K×P
e(K ,K ′,P,P ′, z∗) + φ(e(K ,K ′,P ,P ′, z∗)) (10)
+ β
∫V (K ′,P ′, z∗)dΓ(z∗, dz∗′)
(11)
Algorithm: Value Function Iteration
1. Compute eq. (10)
2. Iteratively guess eq.(11)
3. Get a policy function, giving the value-maximizing choice forevery state
4. The policy function is a 323× 2059 matrix giving the best ofk ′, p′ for every z , k , p
5. Use a cc2.8xlarge
. . . . . .
Software - Old Version
I Original solver written in Python / Numpy
I Pros: beautifully general, modular,
I Cons: takes 15 mins to solve. Global interpreter lock makesthings hard to parallelize
. . . . . .
Software - Old Version
I Original solver written in Python / Numpy
I Pros: beautifully general, modular,
I Cons: takes 15 mins to solve. Global interpreter lock makesthings hard to parallelize
. . . . . .
Software - Old Version
I Original solver written in Python / Numpy
I Pros: beautifully general, modular,
I Cons: takes 15 mins to solve. Global interpreter lock makesthings hard to parallelize
. . . . . .
Software and Hardware - Version 2 - I
I Reimplemented in C++ using Eigen - high performancetemplating engine
I Eigen links against Intel’s Math Kernel Library (optimizedBLAS, LAPACK)
I Intel’s icpc C++ compiler, using -xavx
I cc2.8xlarge have Intel Xeon Sandy Bridge-EP’s, which haveAVX
I OpenMP to use all 32 threads
I Result....
. . . . . .
Software and Hardware - Version 2 - I
I Reimplemented in C++ using Eigen - high performancetemplating engine
I Eigen links against Intel’s Math Kernel Library (optimizedBLAS, LAPACK)
I Intel’s icpc C++ compiler, using -xavx
I cc2.8xlarge have Intel Xeon Sandy Bridge-EP’s, which haveAVX
I OpenMP to use all 32 threads
I Result....
. . . . . .
Software and Hardware - Version 2 - I
I Reimplemented in C++ using Eigen - high performancetemplating engine
I Eigen links against Intel’s Math Kernel Library (optimizedBLAS, LAPACK)
I Intel’s icpc C++ compiler, using -xavx
I cc2.8xlarge have Intel Xeon Sandy Bridge-EP’s, which haveAVX
I OpenMP to use all 32 threads
I Result....
. . . . . .
Software and Hardware - Version 2 - I
I Reimplemented in C++ using Eigen - high performancetemplating engine
I Eigen links against Intel’s Math Kernel Library (optimizedBLAS, LAPACK)
I Intel’s icpc C++ compiler, using -xavx
I cc2.8xlarge have Intel Xeon Sandy Bridge-EP’s, which haveAVX
I OpenMP to use all 32 threads
I Result....
. . . . . .
Software and Hardware - Version 2 - I
I Reimplemented in C++ using Eigen - high performancetemplating engine
I Eigen links against Intel’s Math Kernel Library (optimizedBLAS, LAPACK)
I Intel’s icpc C++ compiler, using -xavx
I cc2.8xlarge have Intel Xeon Sandy Bridge-EP’s, which haveAVX
I OpenMP to use all 32 threads
I Result....
. . . . . .
Software and Hardware - Version 2 - I
I Reimplemented in C++ using Eigen - high performancetemplating engine
I Eigen links against Intel’s Math Kernel Library (optimizedBLAS, LAPACK)
I Intel’s icpc C++ compiler, using -xavx
I cc2.8xlarge have Intel Xeon Sandy Bridge-EP’s, which haveAVX
I OpenMP to use all 32 threads
I Result....
Model Solves in 90 seconds
..
. . . . . .
Software and Hardware - Version 2 - II
I cc2.8xlarge’s are fast
I coding towards MKL / AVX makes things gives a substantialspeedup
I at this scale, optimizations such as row-major vs columnmajor are trivial. Eigen makes this easy.
typedef Eigen : : Matrix<double ,Eigen : : Dynamic , Eigen : : Dynamic ,Eigen : : RowMajor> MatrixRMXd ;
I I can iterate on a 665057× 2059 about once per second
I OpenMP is easy
. . . . . .
while ( ( err > iterpar . TOLERANCE )&& ( itercount < iterpar . MAXIT ) ) EV_prev . noalias ( ) = beta ∗ TMAT ∗ V_prev ;#pragma omp parallel for
for ( int i = 0 ; i < Nshocks ; i++) // p a r a l l e l copyfullmat . middleRows ( i∗nstates , nstates ) =staticmat . middleRows (i∗nstates , nstates ) ;// p a r a l l e l b r o adca s tfullmat . middleRows ( i∗nstates , nstates ) . rowwise ( )
+= EV_prev . row (i ) ;// p a r a l l e l new va l u e fnV_new . row (i ) = fullmat . middleRows (i∗nstates , nstates )
. rowwise ( ) . maxCoeff ( ) . transpose ( ) ;// p a r a l l e l ge t minsdiffs (i ) = ( V_new . row (i )
− V_prev . row (i ) ) . array ( ) . abs ( ) . maxCoeff ( ) ;lbounds (i ) = ( V_new . row (i )
− V_prev . row (i ) ) . minCoeff ( ) ;ubounds (i ) = ( V_new . row (i )
− V_prev . row (i ) ) . maxCoeff ( ) ; // end p a r a l l e l f o r
. . . . . .
lbound = beta ∗ double ( lbounds . minCoeff ( ) ) ;ubound = beta ∗ double ( ubounds . maxCoeff ( ) ) ;
double adjfactoriter = 0.5 ∗ ( ( beta/(1−beta ) )∗ lbound + ( beta/(1−beta ) )∗ ubound ) ;
double diff = diffs . maxCoeff ( ) ;
#pragma omp parallel for
for ( int ii = 0 ; ii < Nshocks ; ii++) V_new . row ( ii ) . array ( ) += adjfactoriter ;
err = diff ;
// UPDATE ITER COUNT AND VALUE FUNCTIONcout << "i: " << itercount++ << ": " << err << endl ;
V_prev = V_new ;
// END WHILE
. . . . . .
How I Use AWS - Solving the Model A LOT
I GOAL: See how the model behaves under random sets ofparameterizations
I HOWTO: - Small Python (using mostly boto) ScriptFor i in 1:N
1. Generate random parameterization Ωi = [ri , θi , δi , εP,i , ...]2. Assign a UUID to Ωi
3. Push Ωi SQS
I SOLVER AMI
1. Get latest solver binary2. Check SQS queue3. While (queue nonempty)
3.1 Get Ωi and solve3.2 Simulate and gather statistics3.3 Push all back to S3
. . . . . .
How I Use AWS - Solving the Model A LOT
I GOAL: See how the model behaves under random sets ofparameterizations
I HOWTO: - Small Python (using mostly boto) ScriptFor i in 1:N
1. Generate random parameterization Ωi = [ri , θi , δi , εP,i , ...]2. Assign a UUID to Ωi
3. Push Ωi SQS
I SOLVER AMI
1. Get latest solver binary2. Check SQS queue3. While (queue nonempty)
3.1 Get Ωi and solve3.2 Simulate and gather statistics3.3 Push all back to S3
. . . . . .
How I Use AWS - Solving the Model A LOT
I GOAL: See how the model behaves under random sets ofparameterizations
I HOWTO: - Small Python (using mostly boto) ScriptFor i in 1:N
1. Generate random parameterization Ωi = [ri , θi , δi , εP,i , ...]
2. Assign a UUID to Ωi
3. Push Ωi SQS
I SOLVER AMI
1. Get latest solver binary2. Check SQS queue3. While (queue nonempty)
3.1 Get Ωi and solve3.2 Simulate and gather statistics3.3 Push all back to S3
. . . . . .
How I Use AWS - Solving the Model A LOT
I GOAL: See how the model behaves under random sets ofparameterizations
I HOWTO: - Small Python (using mostly boto) ScriptFor i in 1:N
1. Generate random parameterization Ωi = [ri , θi , δi , εP,i , ...]2. Assign a UUID to Ωi
3. Push Ωi SQS
I SOLVER AMI
1. Get latest solver binary2. Check SQS queue3. While (queue nonempty)
3.1 Get Ωi and solve3.2 Simulate and gather statistics3.3 Push all back to S3
. . . . . .
How I Use AWS - Solving the Model A LOT
I GOAL: See how the model behaves under random sets ofparameterizations
I HOWTO: - Small Python (using mostly boto) ScriptFor i in 1:N
1. Generate random parameterization Ωi = [ri , θi , δi , εP,i , ...]2. Assign a UUID to Ωi
3. Push Ωi SQS
I SOLVER AMI
1. Get latest solver binary2. Check SQS queue3. While (queue nonempty)
3.1 Get Ωi and solve3.2 Simulate and gather statistics3.3 Push all back to S3
. . . . . .
How I Use AWS - Solving the Model A LOT
I GOAL: See how the model behaves under random sets ofparameterizations
I HOWTO: - Small Python (using mostly boto) ScriptFor i in 1:N
1. Generate random parameterization Ωi = [ri , θi , δi , εP,i , ...]2. Assign a UUID to Ωi
3. Push Ωi SQS
I SOLVER AMI
1. Get latest solver binary2. Check SQS queue3. While (queue nonempty)
3.1 Get Ωi and solve3.2 Simulate and gather statistics3.3 Push all back to S3
. . . . . .
How I Use AWS - Solving the Model A LOT
I GOAL: See how the model behaves under random sets ofparameterizations
I HOWTO: - Small Python (using mostly boto) ScriptFor i in 1:N
1. Generate random parameterization Ωi = [ri , θi , δi , εP,i , ...]2. Assign a UUID to Ωi
3. Push Ωi SQS
I SOLVER AMI
1. Get latest solver binary
2. Check SQS queue3. While (queue nonempty)
3.1 Get Ωi and solve3.2 Simulate and gather statistics3.3 Push all back to S3
. . . . . .
How I Use AWS - Solving the Model A LOT
I GOAL: See how the model behaves under random sets ofparameterizations
I HOWTO: - Small Python (using mostly boto) ScriptFor i in 1:N
1. Generate random parameterization Ωi = [ri , θi , δi , εP,i , ...]2. Assign a UUID to Ωi
3. Push Ωi SQS
I SOLVER AMI
1. Get latest solver binary2. Check SQS queue
3. While (queue nonempty)
3.1 Get Ωi and solve3.2 Simulate and gather statistics3.3 Push all back to S3
. . . . . .
How I Use AWS - Solving the Model A LOT
I GOAL: See how the model behaves under random sets ofparameterizations
I HOWTO: - Small Python (using mostly boto) ScriptFor i in 1:N
1. Generate random parameterization Ωi = [ri , θi , δi , εP,i , ...]2. Assign a UUID to Ωi
3. Push Ωi SQS
I SOLVER AMI
1. Get latest solver binary2. Check SQS queue3. While (queue nonempty)
3.1 Get Ωi and solve3.2 Simulate and gather statistics3.3 Push all back to S3
. . . . . .
How I Use AWS - Solving the Model A LOT
I GOAL: See how the model behaves under random sets ofparameterizations
I HOWTO: - Small Python (using mostly boto) ScriptFor i in 1:N
1. Generate random parameterization Ωi = [ri , θi , δi , εP,i , ...]2. Assign a UUID to Ωi
3. Push Ωi SQS
I SOLVER AMI
1. Get latest solver binary2. Check SQS queue3. While (queue nonempty)
3.1 Get Ωi and solve
3.2 Simulate and gather statistics3.3 Push all back to S3
. . . . . .
How I Use AWS - Solving the Model A LOT
I GOAL: See how the model behaves under random sets ofparameterizations
I HOWTO: - Small Python (using mostly boto) ScriptFor i in 1:N
1. Generate random parameterization Ωi = [ri , θi , δi , εP,i , ...]2. Assign a UUID to Ωi
3. Push Ωi SQS
I SOLVER AMI
1. Get latest solver binary2. Check SQS queue3. While (queue nonempty)
3.1 Get Ωi and solve3.2 Simulate and gather statistics
3.3 Push all back to S3
. . . . . .
How I Use AWS - Solving the Model A LOT
I GOAL: See how the model behaves under random sets ofparameterizations
I HOWTO: - Small Python (using mostly boto) ScriptFor i in 1:N
1. Generate random parameterization Ωi = [ri , θi , δi , εP,i , ...]2. Assign a UUID to Ωi
3. Push Ωi SQS
I SOLVER AMI
1. Get latest solver binary2. Check SQS queue3. While (queue nonempty)
3.1 Get Ωi and solve3.2 Simulate and gather statistics3.3 Push all back to S3
Identification!
..
No Identification
..
. . . . . .
AWS Advantages
I For each plot, each point takes at least 90 seconds to generate
I Allows me to work in real time - start a group of cc2.8xlarge’s
I Paid for by AWS in Education grant
I cc2.8xlarge’s are FAST!
. . . . . .
AWS Advantages
I For each plot, each point takes at least 90 seconds to generate
I Allows me to work in real time - start a group of cc2.8xlarge’s
I Paid for by AWS in Education grant
I cc2.8xlarge’s are FAST!
. . . . . .
AWS Advantages
I For each plot, each point takes at least 90 seconds to generate
I Allows me to work in real time - start a group of cc2.8xlarge’s
I Paid for by AWS in Education grant
I cc2.8xlarge’s are FAST!
. . . . . .
AWS Advantages
I For each plot, each point takes at least 90 seconds to generate
I Allows me to work in real time - start a group of cc2.8xlarge’s
I Paid for by AWS in Education grant
I cc2.8xlarge’s are FAST!
. . . . . .
Next Research Step - Simulated Method of Moments
MAIN IDEA:
I Reality has some true parameterization Ω∗ which we don’tknow.
I Reality has some statistics X ∗ which we do know.
I A model’s Ωi implies simulated statistics Xi .
Xi = f (Ωi )
I To find Ω∗, we can define
g(Ωi ) = sum(abs(X ∗ − f (Ωi )))
and then find the Ωi which minimizes g(Ωi ).
I This amounts to a multidimensional optimization, which iswell understood (e.g. Nelder Mead, Simulated Annealing)
. . . . . .
Next Research Step - Simulated Method of Moments
MAIN IDEA:
I Reality has some true parameterization Ω∗ which we don’tknow.
I Reality has some statistics X ∗ which we do know.
I A model’s Ωi implies simulated statistics Xi .
Xi = f (Ωi )
I To find Ω∗, we can define
g(Ωi ) = sum(abs(X ∗ − f (Ωi )))
and then find the Ωi which minimizes g(Ωi ).
I This amounts to a multidimensional optimization, which iswell understood (e.g. Nelder Mead, Simulated Annealing)
. . . . . .
Next Research Step - Simulated Method of Moments
MAIN IDEA:
I Reality has some true parameterization Ω∗ which we don’tknow.
I Reality has some statistics X ∗ which we do know.
I A model’s Ωi implies simulated statistics Xi .
Xi = f (Ωi )
I To find Ω∗, we can define
g(Ωi ) = sum(abs(X ∗ − f (Ωi )))
and then find the Ωi which minimizes g(Ωi ).
I This amounts to a multidimensional optimization, which iswell understood (e.g. Nelder Mead, Simulated Annealing)
. . . . . .
Next Research Step - Simulated Method of Moments
MAIN IDEA:
I Reality has some true parameterization Ω∗ which we don’tknow.
I Reality has some statistics X ∗ which we do know.
I A model’s Ωi implies simulated statistics Xi .
Xi = f (Ωi )
I To find Ω∗, we can define
g(Ωi ) = sum(abs(X ∗ − f (Ωi )))
and then find the Ωi which minimizes g(Ωi ).
I This amounts to a multidimensional optimization, which iswell understood (e.g. Nelder Mead, Simulated Annealing)
. . . . . .
Next Research Step - Simulated Method of Moments
MAIN IDEA:
I Reality has some true parameterization Ω∗ which we don’tknow.
I Reality has some statistics X ∗ which we do know.
I A model’s Ωi implies simulated statistics Xi .
Xi = f (Ωi )
I To find Ω∗, we can define
g(Ωi ) = sum(abs(X ∗ − f (Ωi )))
and then find the Ωi which minimizes g(Ωi ).
I This amounts to a multidimensional optimization, which iswell understood (e.g. Nelder Mead, Simulated Annealing)
. . . . . .
Next Research Step - Simulated Method of Moments
I Pick a large amount of starting values of the optimizers
I Each cc2.8xlarge can handle 2 optimizers simultaneously
I Should take about 500 iterations to find a solution
. . . . . .
Next Research Step - Simulated Method of Moments
I Pick a large amount of starting values of the optimizers
I Each cc2.8xlarge can handle 2 optimizers simultaneously
I Should take about 500 iterations to find a solution
. . . . . .
Next Research Step - Simulated Method of Moments
I Pick a large amount of starting values of the optimizers
I Each cc2.8xlarge can handle 2 optimizers simultaneously
I Should take about 500 iterations to find a solution
. . . . . .
Thank you
References:
I My blog: www.econsteve.com
I My code: www.bitbucket.com/stevejb
I Twitter: @stevejb
I AWS in Eduaction: http://aws.amazon.com/education/
. . . . . .
Thank you
References:
I My blog: www.econsteve.com
I My code: www.bitbucket.com/stevejb
I Twitter: @stevejb
I AWS in Eduaction: http://aws.amazon.com/education/
. . . . . .
Thank you
References:
I My blog: www.econsteve.com
I My code: www.bitbucket.com/stevejb
I Twitter: @stevejb
I AWS in Eduaction: http://aws.amazon.com/education/
. . . . . .
Thank you
References:
I My blog: www.econsteve.com
I My code: www.bitbucket.com/stevejb
I Twitter: @stevejb
I AWS in Eduaction: http://aws.amazon.com/education/