Title: | Value American and Real Options Through LSM Simulation |
---|---|
Description: | The least-squares Monte Carlo (LSM) simulation method is a popular method for the approximation of the value of early and multiple exercise options. 'LSMRealOptions' provides implementations of the LSM simulation method to value American option products and capital investment projects through real options analysis. 'LSMRealOptions' values capital investment projects with cash flows dependent upon underlying state variables that are stochastically evolving, providing analysis into the timing and critical values at which investment is optimal. 'LSMRealOptions' provides flexibility in the stochastic processes followed by underlying assets, the number of state variables, basis functions and underlying asset characteristics to allow a broad range of assets to be valued through the LSM simulation method. Real options projects are further able to be valued whilst considering construction periods, time-varying initial capital expenditures and path-dependent operational flexibility including the ability to temporarily shutdown or permanently abandon projects after initial investment has occurred. The LSM simulation method was first presented in the prolific work of Longstaff and Schwartz (2001) <doi:10.1093/rfs/14.1.113>. |
Authors: | Thomas Aspinall [aut, cre] , Adrian Gepp [aut] , Geoff Harris [aut] , Simone Kelly [aut] , Colette Southam [aut] , Bruce Vanstone [aut] |
Maintainer: | Thomas Aspinall <[email protected]> |
License: | GPL-3 |
Version: | 0.2.1 |
Built: | 2024-11-04 04:36:18 UTC |
Source: | https://github.com/tomaspinall/lsmrealoptions |
GBM is a commonly used stochastic process to simulate the price paths of stock prices and other assets, in which the log of the asset follows a random walk process with drift.
The GBM_simulate
function utilizes antithetic variates as a simple variance reduction technique.
GBM_simulate(n, t, mu, sigma, S0, dt)
GBM_simulate(n, t, mu, sigma, S0, dt)
n |
The total number of price paths to simulate |
t |
The forecasting period, in years |
mu |
The drift term of the GBM process |
sigma |
The volatility term of the GBM process |
S0 |
The initial value of the underlying asset |
dt |
The discrete time step of observations, in years |
A stochastic process S(t) is a geometric brownian motion that follows the following continuous-time stochastic differential equation:
Where is the drift term,
the volatility term and
is defined as a Weiner process.
The GBM is log-normally distributed.
A matrix of simulated price paths of the GBM process. Each column corresponds to a simulated price path, and each row corresponds to a simulated observed price of the simulated price paths at each discrete time period.
## 100 simulations of 1 year of monthly price paths: Simulated <- GBM_simulate(n = 100, t = 1, mu = 0.05, sigma = 0.2, S0 = 100, dt = 1/12)
## 100 simulations of 1 year of monthly price paths: Simulated <- GBM_simulate(n = 100, t = 1, mu = 0.05, sigma = 0.2, S0 = 100, dt = 1/12)
The geometric Ornstein-Uhlenbeck process is a member of the general affine class of stochastic process. The Ornstein-Uhlenbeck process is a Gaussian process, a Markov process, is temporally homogeneous and exhibits mean-reverting behaviour.
The IGBM_simulate
function utilizes antithetic variates as a simple variance reduction technique.
GOU_simulate(n, t, reversion_rate, sigma, equilibrium, risk_premium, S0, dt)
GOU_simulate(n, t, reversion_rate, sigma, equilibrium, risk_premium, S0, dt)
n |
The total number of price paths to simulate |
t |
The forecasting period, in years |
reversion_rate |
The reversion rate term of the GOU process |
sigma |
The volatility term of the GOU process |
equilibrium |
The equilibrium term of the GOU process |
risk_premium |
The risk premium of the GOU process |
S0 |
The initial value of the underlying asset |
dt |
The discrete time step of observations, in years A stochastic process S(t) is an IGBM that follows the following continuous-time stochastic differential equation:
Where 'reversion_rate' is the rate of reversion term, 'equilibrium' is the equilibrium value the process reverts towards, 'risk_premium' is the risk premium of the process, |
A matrix of simulated price paths of the GOU process. Each column corresponds to a simulated price path, and each row corresponds to a simulated observed price of the simulated price paths at each discrete time period.
## 100 simulations of 1 year of monthly price paths: Simulated <- GOU_simulate(n = 100, t = 1, reversion_rate = 1, sigma = 0.2, equilibrium = 100, risk_premium = 0.05, S0 = 100, dt = 1/12)
## 100 simulations of 1 year of monthly price paths: Simulated <- GOU_simulate(n = 100, t = 1, reversion_rate = 1, sigma = 0.2, equilibrium = 100, risk_premium = 0.05, S0 = 100, dt = 1/12)
The inhomogeneous geometric Brownian motion, also known as the integrated GBM process, is a member of the general affine class of stochastic process that has been reported to be well suited for modelling energy prices.
The IGBM_simulate
function utilizes antithetic variates as a simple variance reduction technique.
IGBM_simulate(n, t, reversion_rate, sigma, equilibrium, S0, dt)
IGBM_simulate(n, t, reversion_rate, sigma, equilibrium, S0, dt)
n |
The total number of price paths to simulate |
t |
The forecasting period, in years |
reversion_rate |
The reversion rate term of the IGBM process |
sigma |
The volatility term of the IGBM process |
equilibrium |
The equilibrium term of the IGBM process |
S0 |
The initial value of the underlying asset |
dt |
The discrete time step of observations, in years A stochastic process S(t) is an IGBM that follows the following continuous-time stochastic differential equation:
Where 'reversion_rate' is the rate of reversion term, 'equilibrium' is the equilibrium value the process reverts towards, |
A matrix of simulated price paths of the IGBM process. Each column corresponds to a simulated price path, and each row corresponds to a simulated observed price of the simulated price paths at each discrete time period.
## 100 simulations of 1 year of monthly price paths: Simulated <- IGBM_simulate(n = 100, t = 1, reversion_rate = 1, sigma = 0.2, equilibrium = 100, S0 = 100, dt = 1/12)
## 100 simulations of 1 year of monthly price paths: Simulated <- IGBM_simulate(n = 100, t = 1, reversion_rate = 1, sigma = 0.2, equilibrium = 100, S0 = 100, dt = 1/12)
Given a set of state variables and associated payoffs simulated through Monte Carlo simulation, solve for the value of an American-style call or put option through the least-squares Monte Carlo simulation method.
LSM_american_option( state_variables, payoff, K, dt, rf, call = FALSE, orthogonal = "Power", degree = 2, cross_product = TRUE, verbose = FALSE )
LSM_american_option( state_variables, payoff, K, dt, rf, call = FALSE, orthogonal = "Power", degree = 2, cross_product = TRUE, verbose = FALSE )
state_variables |
|
payoff |
|
K |
the exercise price of the American-style option |
dt |
Constant, discrete time step of simulated observations |
rf |
The annual risk-free interest rate |
call |
|
orthogonal |
|
degree |
The number of orthogonal polynomials used in the least-squares fit. See details. |
cross_product |
|
verbose |
|
The LSM_american_option
function provides an implementation of the least-squares Monte Carlo (LSM) simulation approach to numerically approximate
the value of American-style options (options with early exercise opportunities). The function provides flexibility in the stochastic process followed by the underlying asset, with simulated values
of stochastic processes provided within the state_variables
argument. It also provides flexibility in the payoffs of the option, allowing for vanilla as well as more exotic options to be considered.
LSM_american_option
also provides analysis into the exercise timing and probability of early exercise of the option.
Least-Squares Monte Carlo Simulation:
The least-squares Monte Carlo (LSM) simulation method is a numeric approach first presented by Longstaff and Schwartz (2001) that approximates the value of options with early exercise opportunities. The LSM simulation method is considered one of the most efficient methods of valuing American-style options due to its flexibility and computational efficiency. The approach can feature multiple stochastically evolving underlying uncertainties, following both standard and exotic stochastic processes.
The LSM method first approximates stochastic variables through a stochastic process to develop cross-sectional information, then directly estimates the continuation value of in-the-money simulation paths by "(regressing) the ex-post realized payoffs from continuation on functions of the values of the state variables" (Longstaff and Schwartz, 2001).
The 'LSM_american_option' function at each discrete time period, for each simulated price path, compares the payoff that results from immediate exercise of
the option with the expected value of continuing to hold the option for subsequent periods. The payoff of immediate exercise is provided in the payoff
argument and
could take several different meanings depending upon the type of American-style option being valued (e.g. the current stock price, the maximum price between multiple assets, etc.).
The immediate profit resulting from exercise of the option is dependent upon the type of option being calculated. The profit of price path and time
is given by:
When call = TRUE
:
When call = FALSE
:
Orthogonal Polynomials:
To improve the accuracy of estimation of continuation values, the economic values in each period are regressed on a linear combination of a set of basis functions of the stochastic variables. These estimated regression parameters and the simulated stochastic variables are then used to calculate the estimator for the expected economic values.
Longstaff and Schwartz (2001) state that as the conditional expectation of the continuation value belongs to a Hilbert space,
it can be represented by a combination of orthogonal basis functions. Increasing the number of stochastic state variables
therefore increases the number of required basis functions exponentially. The orthogonal polynomials available in the
LSMRealOptions
package are: Laguerre, Jacobi, Legendre (spherical), Hermite (probabilistic), Chebyshev (of the first kind).
The simple powers of state variables is further available. Explicit expressions of each of these orthogonal polynomials are
available within the textbook of Abramowitz and Stegun (1965).
The 'LSM_american_option' function by default returns a numeric
object corresponding to the calculated value of the American-style option.
When verbose = T
, 6 objects are returned within a list
class object. The objects returned are:
Value |
The calculated option value. |
Standard Error |
The standard error of the option value. |
Expected Timing |
The expected time of early exercise. |
Expected Timing SE |
The standard error of the expected time of early exercise. |
Exercise Probability |
The probability of early exercise of the option being exercised. |
Cumulative Exercise Probability |
vector . The cumulative probability of option exercise at each discrete observation point |
Abramowitz, M., and I. A. Stegun, (1965). Handbook of mathematical functions with formulas, graphs, and mathematical tables. Courier Corporation.
Longstaff, F. A., and E. S. Schwartz, (2001). "Valuing American options by simulation: a simple least-squares approach." The review of financial studies, 14(1), 113-147.
# Price a vanilla American put option on an asset that follows # Geometric Brownian Motion ## Step 1 - simulate stock prices: stock_prices <- GBM_simulate(n = 100, t = 1, mu = 0.05, sigma = 0.2, S0 = 100, dt = 1/2) ## Step 2 - Value the American put option: option_value <- LSM_american_option(state_variables = stock_prices, payoff = stock_prices, K = 100, dt = 1/2, rf = 0.05)
# Price a vanilla American put option on an asset that follows # Geometric Brownian Motion ## Step 1 - simulate stock prices: stock_prices <- GBM_simulate(n = 100, t = 1, mu = 0.05, sigma = 0.2, S0 = 100, dt = 1/2) ## Step 2 - Value the American put option: option_value <- LSM_american_option(state_variables = stock_prices, payoff = stock_prices, K = 100, dt = 1/2, rf = 0.05)
Given a set of state variables and associated net cash flows for an investment project simulated through Monte Carlo simulation, solve for the real option value of a capital investment project through the least-squares Monte Carlo simulation method.
LSM_real_option( state_variables, NCF, CAPEX, dt, rf, construction = 0, orthogonal = "Laguerre", degree = 9, cross_product = TRUE, verbose = FALSE, debugging = FALSE )
LSM_real_option( state_variables, NCF, CAPEX, dt, rf, construction = 0, orthogonal = "Laguerre", degree = 9, cross_product = TRUE, verbose = FALSE, debugging = FALSE )
state_variables |
|
NCF |
The net cash flows resulting from operating the underlying capital investment project for one discrete time step at the current simulated values of the state variables. Each column corresponds to a simulated price path of underlying stochastic variables, and each row the net cash flows at a discrete time point for each simulated path. The dimensions of object 'NCF' must match the first two dimensions of the object passed to the 'state_variables' argument. |
CAPEX |
|
dt |
Constant, discrete time step of simulated observations |
rf |
The annual risk-free interest rate |
construction |
An |
orthogonal |
|
degree |
The number of orthogonal polynomials used in the least-squares fit. See details. |
cross_product |
|
verbose |
|
debugging |
|
The LSM_real_option
function provides an implementation of the least-squares Monte Carlo (LSM) simulation approach to numerically approximate
the value of capital investment projects considering the flexibility of timing of investment under stochastically evolving uncertainty. The function provides flexibility in the stochastic behavior of the underlying uncertainty, with simulated values
of state variables provided within the state_variables
argument. The LSM_real_option
function also provides analysis into the expected investment timing, probability, and the expected payback period of the project.
Least-Squares Monte Carlo Simulation:
The least-squares Monte Carlo (LSM) simulation method is a numeric approach first presented by Longstaff and Schwartz (2001) that approximates the value of options with early exercise opportunities. The LSM simulation method is considered one of the most efficient methods of valuing American-style options due to its flexibility and computational efficiency. The approach can feature multiple stochastically evolving underlying uncertainties, following both standard and exotic stochastic processes.
The LSM method first approximates stochastic variables through a stochastic process to develop cross-sectional information, then directly estimates the continuation value of in-the-money simulation paths by "(regressing) the ex-post realized payoffs from continuation on functions of the values of the state variables" (Longstaff and Schwartz, 2001).
Real Options Analysis
Real options analysis of investment projects considers the value of the option to delay investment in a project until underlying, stochastically evolving uncertainty has revealed itself. Real options analysis treats investment into capital investment projects as an optimal stopping problem, optimizing the timing of investment that maximizes the payoffs of investment under underlying stochastic uncertainty. Real options analysis is also capable of evaluating the critical value of underlying state variables at which immediate investment into a project is optimal. See Dixit and Pindyck (1994) for more details of real options analysis.
The LSM_real_option
function considers the option to invest into a capital investment project within a finite forecasting horizon. Investment into the project results in accruing all future net cash flows (NCF) until the end of the forecasting horizon at the cost of the capital expenditure (CAPEX).
Immediate investment into a capital investment project is optimal when the waiting option value (WOV) is zero. Critical values of state variables at which immediate investment in optimal can therefore be obtained through finding the root of the WOV.
The primary difference between the LSM_real_option
and LSM.AmericanOption
function is the way in which they evaluate the payoff of
exercise of the American-style option. The LSM.AmericanOption
function considers the payoff of exercise to be a one time payoff (i.e. buying or selling the security in a vanilla call or put option) corresponding to the respective payoff argument.
The LSM_real_option
function instead, at each discrete time period, for each simulated price path, compares the sum of all remaining discounted cash flows that are accrued following immediate investment into
a project to the end of the forecasting horizon with the expected value of delaying investment. This is is known as the 'running present value' (RPV) of the project, which is the discretised present value of all
future cash flows of the project. The RPV of a project increases as the size of the discrete time step decreases, highlighting the need
for small discrete time steps to accurately value investment projects. This is due to the discounting effect of discounting larger
cash flows over greater time periods compared to smaller cash flows being discounted more frequently.
Orthogonal Polynomials:
To improve the accuracy of estimation of continuation values, the economic values in each period are regressed on a linear combination of a set of basis functions of the stochastic variables. These estimated regression parameters and the simulated stochastic variables are then used to calculate the estimator for the expected economic values.
Longstaff and Schwartz (2001) state that as the conditional expectation of the continuation value belongs to a Hilbert space,
it can be represented by a combination of orthogonal basis functions. Increasing the number of stochastic state variables
therefore increases the number of required basis functions exponentially. The orthogonal polynomials available in the
LSM_real_options
package are: Laguerre, Jacobi, Legendre (spherical), Hermite (probabilistic), Chebyshev (of the first kind).
The simple powers of state variables is further available. Explicit expressions of each of these orthogonal polynomials are
available within the textbook of Abramowitz and Stegun (1965).
The LSM_real_option
function returns a list
object. The number of objects returned in the list is dependent upon the logical
values of arguments verbose
and debugging
.
LSM_real_option
by default returns 3 objects within the list
class object:
ROV |
'Real Option value': The value of the capital investment project considering flexibility in the timing of investment. |
NPV |
'Net Present Value': The value of the capital investment project considering immediate investment. |
WOV |
'Waiting Option Value': The value of the option to delay initial investment, equal to the difference between the ROV and NPV. |
When verbose = T
, an additional 9 objects are returned within the list
class object, providing further analysis into the capital investment project:
ROV SE |
The standard error of 'ROV'. |
NPV SE |
The standard error of 'NPV'. |
WOV SE |
The standard error of 'WOV'. |
Expected Timing |
The expected timing of investment, in years. |
Expected Timing SE |
The standard error of the expected timing of investment. |
Investment Prob |
The probability of investment within the forecasting horizon. |
Cumulative Investment Prob |
The cumulative probability of investment at each discrete time point over the forecasting horizon. |
PB |
The expected payback time of initial capital investment, in years. |
PB SE |
The standard error of the expected payback time. |
When debugging = T
, an additional 4 objects are returned within the list
class object.
These objects provide information about the values of individual simulated price paths:
Investment Period |
The time of investment of invested price paths. Price paths that did not trigger investment are represented as NA |
Project Value |
The calculated project value at time zero for each simulated price path. The 'ROV' is equal to the mean of this vector. |
Immediate Profit |
The profit resulting from immediate investment for each discrete time period and for all simulated price paths |
Running Present Value |
The present value of all future cash flows of an investment project for each discrete time period and for all simulated price paths |
Abramowitz, M., and I. A. Stegun, (1965). Handbook of mathematical functions with formulas, graphs, and mathematical tables. Courier Corporation.
Dixit, A. K., and R. S. Pindyck, (1994). Investment under uncertainty. Princeton university press.
Longstaff, F. A., and E. S. Schwartz, (2001). Valuing American options by simulation: a simple least-squares approach. The review of financial studies, 14(1), 113-147.
# Example: Value a capital investment project where the revenues follow a # Geometric Brownian Motion stochastic process: ## Step 1 - Simulate asset prices: asset_prices <- GBM_simulate(n = 100, t = 10, mu = 0.05, sigma = 0.2, S0 = 100, dt = 1/2) ## Step 2 - Perform Real Option Analysis (ROA): ROA <- LSM_real_option(state_variables = asset_prices, NCF = asset_prices - 100, CAPEX = 1000, dt = 1/2, rf = 0.05)
# Example: Value a capital investment project where the revenues follow a # Geometric Brownian Motion stochastic process: ## Step 1 - Simulate asset prices: asset_prices <- GBM_simulate(n = 100, t = 10, mu = 0.05, sigma = 0.2, S0 = 100, dt = 1/2) ## Step 2 - Perform Real Option Analysis (ROA): ROA <- LSM_real_option(state_variables = asset_prices, NCF = asset_prices - 100, CAPEX = 1000, dt = 1/2, rf = 0.05)
Given a set of state variables and associated net cash flows for an investment project simulated through Monte Carlo simulation, solve for the real option value of a capital investment project that has the flexibility to temporarily suspend or permanently abandon operations through the least-squares Monte Carlo simulation method.
LSM_real_option_OF( state_variables, NCF, CAPEX, dt, rf, construction = 0, orthogonal = "Laguerre", degree = 9, cross_product = TRUE, suspend_CAPEX = NULL, suspend_OPEX = NULL, resume_CAPEX = NULL, abandon_CAPEX = NULL, save_states = FALSE, verbose = FALSE, debugging = FALSE )
LSM_real_option_OF( state_variables, NCF, CAPEX, dt, rf, construction = 0, orthogonal = "Laguerre", degree = 9, cross_product = TRUE, suspend_CAPEX = NULL, suspend_OPEX = NULL, resume_CAPEX = NULL, abandon_CAPEX = NULL, save_states = FALSE, verbose = FALSE, debugging = FALSE )
state_variables |
|
NCF |
The net cash flows resulting from operating the underlying capital investment project for one discrete time step at the current simulated values of the state variables. Each column corresponds to a simulated price path of underlying stochastic variables, and each row the net cash flows at a discrete time point for each simulated path. The dimensions of object 'NCF' must match the first two dimensions of the object passed to the 'state_variables' argument. |
CAPEX |
|
dt |
Constant, discrete time step of simulated observations |
rf |
The annual risk-free interest rate |
construction |
An integer corresponding to the number of periods of construction of the underlying asset. The construction time represents the time between the initial capital expenditure and when net cash flows are accrued, representing the construction time required of the investment project. |
orthogonal |
|
degree |
The number of orthogonal polynomials used in the least-squares fit. See details. |
cross_product |
|
suspend_CAPEX |
The cash flow resulting from suspending an operational project |
suspend_OPEX |
the ongoing cash flow resulting from being suspended for one discrete time period |
resume_CAPEX |
the cash flow resulting from resuming a suspended project |
abandon_CAPEX |
the terminal cash flow resulting from permanently abandoning a project |
save_states |
|
verbose |
|
debugging |
|
The LSM_real_option_OF
function provides an implementation of the least-squares Monte Carlo (LSM) simulation approach to numerically approximate
the value of capital investment projects considering the flexibility of timing of investment and operational states under stochastically evolving uncertainty. The function provides flexibility in the stochastic behavior of the underlying uncertainty, with simulated values
of state variables provided within the state_variables
argument. Multiple stochastically evolving uncertainties can also be considered. The LSM_real_option_OF
function also provides analysis into the
expected investment timing, probability, and operating modes of the project.
Least-Squares Monte Carlo Simulation:
The least-squares Monte Carlo (LSM) simulation method is a numeric approach first presented by Longstaff and Schwartz (2001) that approximates the value of options with early exercise opportunities. The LSM simulation method is considered one of the most efficient methods of valuing American-style options due to its flexibility and computational efficiency. The approach can feature multiple stochastically evolving underlying uncertainties, following both standard and exotic stochastic processes.
The LSM method first approximates stochastic variables through a stochastic process to develop cross-sectional information, then directly estimates the continuation value of in-the-money simulation paths by "(regressing) the ex-post realized payoffs from continuation on functions of the values of the state variables" (Longstaff and Schwartz, 2001).
Real Options Analysis
Real options analysis of investment projects considers the value of the option to delay investment in a project until underlying, stochastically evolving uncertainty has revealed itself. Real options analysis treats investment into capital investment projects as an optimal stopping problem, optimizing the timing of investment that maximizes the payoffs of investment under underlying stochastic uncertainty. Real options analysis is also capable of evaluating the critical value of underlying state variables at which immediate investment into a project is optimal. See Dixit and Pindyck (1994) for more details of real options analysis.
The LSM_real_option_OF
function considers the option to invest into a capital investment project within a finite forecasting horizon.
Investment into the project results in accruing all future net cash flows (NCF) until the end of the forecasting horizon at the cost of the capital expenditure (CAPEX).
The primary difference between the LSM_real_option
and LSM_american_option
function is the way in which they evaluate the payoff of
exercise of the American-style option. The LSM_american_option
function considers the payoff of exercise to be a one time payoff (i.e. buying or selling the security in a vanilla call or put option) corresponding to the respective payoff argument.
The LSM_real_option_OF
function instead, at each discrete time period, for each simulated price path, compares the sum of all remaining discounted cash flows that are accrued following immediate investment into
a project to the end of the forecasting horizon with the expected value of delaying investment. This is is known as the 'running present value' (RPV) of the project, which is the discretised present value of all
future cash flows of the project. The RPV of a project increases as the size of the discrete time step decreases, highlighting the need
for small discrete time steps to accurately value investment projects. This is due to the discounting effect of discounting larger
cash flows over greater time periods compared to smaller cash flows being discounted more frequently.
Orthogonal Polynomials:
To improve the accuracy of estimation of continuation values, the economic values in each period are regressed on a linear combination of a set of basis functions of the stochastic variables. These estimated regression parameters and the simulated stochastic variables are then used to calculate the estimator for the expected economic values.
Longstaff and Schwartz (2001) state that as the conditional expectation of the continuation value belongs to a Hilbert space,
it can be represented by a combination of orthogonal basis functions. Increasing the number of stochastic state variables
therefore increases the number of required basis functions exponentially. The orthogonal polynomials available in the
LSM_real_options
package are: Laguerre, Jacobi, Legendre (spherical), Hermite (probabilistic), Chebyshev (of the first kind).
The simple powers of state variables is further available. Explicit expressions of each of these orthogonal polynomials are
available within the textbook of Abramowitz and Stegun (1965).
Operational Flexibility:
Operational flexibility is adjustment made to a project in response to, or anticipation of, positive or negative economic outcomes that occur after a project has begun. Operational flexibility has the ability to mitigate the effect of poor timing of initial investment by maximizing gains and minimizing losses. Operational flexibility that reduces losses in response to negative economic conditions (e.g. output prices falling to levels where operations are no longer profitable) reduce the irreversibility of initial investment into a project. This is particularly valuable for investment projects in highly competitive business operating conditions, high initial investment costs, long residual lifetimes of operations, high levels of volatility in underlying assets and net present values near zero.
The operational flexibility supported by the LSM_real_option_OF
function is the ability to temporarily suspend and permanently
abandon an operational investment project. The ability to temporarily suspend and permanently abandon operations was first presented
in the prolific work of Brennan and Schwartz (1985), whom solved for the trigger values of suspension, resumption and abandonment of
a finite natural resource investment under natural resource price uncertainty. The work of Cortazar, Gravet and Urzua (2008) solved
this optimal switching problem using the LSM simulation method.
Operational flexibilities are path dependent, compound and mutually exclusive real options. Under consideration of operational flexibility, there are several different "states" or operating modes available for an investment project. These are:
* Not yet invested * Operational * Suspended * Abandoned
With the "Under construction" state further considered when construction time is also considered.
Generally, there is a cost of switching between operating modes (for example, switching from the "not yet invested" state into the "operational" state incurs the cost of the initial capital investment, 'CAPEX'). The costs incurred in temporarily suspending, resuming, or abandoning a project could be attributed to firing/hiring project employees, loss in perishable products and general cost of moving a project into a 'suspended' state. Operational expenditures of a suspended project could include maintenance to inactive machinery, preventing weathering of project sites, ongoing rent or utility payments, etc. Finally, the abandonment expenditure could be negative, representing a 'scrap' value of the project that is returned as project assets are sold on abandonment of the project.
Solving for the value of an investment project with operational flexibility is classified as an optimal switching or optimal control model. The objective is to optimize the value of the project by taking the optimal set of decisions for the project operating mode at each time point under uncertainty.
The 'LSM_real_option_OF' function solves for the optimal switching problem at each discrete time point throughout the backward induction process. For each operating mode, the immediate payoff of switching to a different operating mode is compared against the discounted 'continuation' value of staying in the current operating mode. These continuation values are directly estimated through least-squares regression of all simulated price paths (rather than just 'in-the-money' price paths, as is considered in the value of the option to delay the initial investment decision).
The 'ROV' value of the investment project is then calculated by considering the option to invest into the 'operational' state. Investment into the project is optimal when the value of the 'operational' state is greater than the expected continuation value.
The introduction of operational flexibility to the LSM simulation method greatly increases the level of computational complexity and thus the
LSM_real_option_OF
function is considerably slower than the LSM_real_option
function.
The LSM_real_option_OF
function by default returns a list
object containing 3 objects, with further objects returned within this list when the
save_states
, verbose
and debugging
arguments are set to TRUE
.
The objects returned are:
ROV |
Real option value. The value of an investment project when actively managing the investment and appropriately exercising options |
NPV + OF |
Net present Value + operational flexibility. The value immediate investment into an investment project when actively managing and appropriately exercising operational flexibility |
NPV |
Net present value. The value immediate investment into an investment project |
WOV |
Waiting option value. The value of the option to delay initial investment into an investment project |
When save_states = TRUE
, an additional object is returned:
Project States |
A data.frame object detailing the proportion of simulated price paths in each operating state at each discrete time point |
When verbose = T
, an additional 7 objects are returned within the list
class object, providing further analysis
into the capital investment project:
ROV SE |
The standard error of 'ROV'. |
NPV SE |
The standard error of 'NPV'. |
WOV SE |
The standard error of 'WOV'. |
Expected Timing |
The expected timing of investment, in years. |
Expected Timing SE |
The standard error of the expected timing of investment. |
Investment Prob |
The probability of investment within the forecasting horizon. |
Cumulative Investment Prob |
The cumulative probability of investment at each discrete time point over the forecasting horizon. |
When debugging = T
, an additional 5 objects are returned within the list
class object.
These objects provide information about the values of individual simulated price paths:
Investment Period |
The time of investment of invested price paths. Price paths that did not trigger investment are represented as NA |
Project Value |
The calculated project value at time zero for each simulated price path. The 'ROV' is equal to the mean of this vector. |
Immediate Profit |
The profit resulting from immediate investment for each discrete time period and for all simulated price paths |
Running Present Value |
The present value of all future cash flows of an investment project for each discrete time period and for all simulated price paths |
Path Project States |
The current project state for each discrete time period and for all simulated price paths |
Abramowitz, M., and I. A. Stegun, (1965). Handbook of mathematical functions with formulas, graphs, and mathematical tables. Courier Corporation.
Brennan, M. J., and E. S. Schwartz, (1985). Evaluating natural resource investments. Journal of business, 135-157.
Dixit, A. K., and R. S. Pindyck, (1994). Investment under uncertainty. Princeton university press.
Longstaff, F. A., and E. S. Schwartz, (2001). Valuing American options by simulation: a simple least-squares approach. The review of financial studies, 14(1), 113-147.
Cortazar, G., M. Gravet, and J. Urzua, (2008). The valuation of multidimensional American real options using the LSM simulation method. Computers & Operations Research, 35(1), 113-129.
# Example: Value a capital investment project where the revenues follow a # Geometric Brownian Motion stochastic process: ## Step 1 - Simulate asset prices: asset_prices <- GBM_simulate(n = 100, t = 10, mu = 0.05, sigma = 0.2, S0 = 100, dt = 1/2) ## Step 2 - Perform Real Option Analysis (ROA): ROA <- LSM_real_option_OF(state_variables = asset_prices, NCF = asset_prices - 100, CAPEX = 1000, dt = 1/2, rf = 0.05, suspend_CAPEX = 100, suspend_OPEX = 10, resume_CAPEX = 100, abandon_CAPEX = 0 )
# Example: Value a capital investment project where the revenues follow a # Geometric Brownian Motion stochastic process: ## Step 1 - Simulate asset prices: asset_prices <- GBM_simulate(n = 100, t = 10, mu = 0.05, sigma = 0.2, S0 = 100, dt = 1/2) ## Step 2 - Perform Real Option Analysis (ROA): ROA <- LSM_real_option_OF(state_variables = asset_prices, NCF = asset_prices - 100, CAPEX = 1000, dt = 1/2, rf = 0.05, suspend_CAPEX = 100, suspend_OPEX = 10, resume_CAPEX = 100, abandon_CAPEX = 0 )