Learn R Programming

capn (version 2.0.0)

paprox: Calculate P-Approximation Coefficients

Description

Computes the P-approximation coefficients for the shadow price function using Chebyshev polynomial approximation as defined by aproxdef. Currently, only the one-dimensional deterministic case is supported.

Usage

paprox(aproxspace, stock, sdot, dsdotds, dwds)

Value

A list containing the P-approximation results. Components can be accessed using results$item or results[["item"]]. The list includes:

degree

Degree of the Chebyshev polynomial approximation.

lowerB

Lower bound of the approximation domain.

upperB

Upper bound of the approximation domain.

delta

Discount rate.

coefficient

Estimated Chebyshev polynomial coefficients for the shadow price function.

Arguments

aproxspace

An approximation space defined by the aproxdef function.

stock

A vector or array of stock values, \(s\).

sdot

A vector or array of stock dynamics, \(\dot{s} = \frac{ds}{dt}\).

dsdotds

A vector or array of derivatives of stock dynamics with respect to stock, \(\frac{d \dot{s}}{d s}\).

dwds

A vector or array of marginal value of the flow payoff with respect to stock, \(\frac{dW}{ds}\).

Details

The P-approximation solves for the shadow price of a stock, \(p(s)\), from:

\(p(s) = \frac{W_{s}(s) + \dot{p}(s)}{\delta - \dot{s}_{s}(s)}\),

where \(W_{s} = \frac{dW}{ds}\), \(\dot{p}(s) = \frac{dp}{ds}\), \(\dot{s}_{s} = \frac{d\dot{s}}{ds}\), and \(\delta\) is the discount rate.

The shadow price function is approximated as:
\(p(s) = \boldsymbol{\Phi}(s) \boldsymbol{\beta}\),

where \(\boldsymbol{\Phi}(s)\) is a vector of Chebyshev basis functions and \(\boldsymbol{\beta}\) is the vector of unknown coefficients.

Using the chain rule and Chebyshev basis properties:
\(\dot{p}(s) = \mathrm{diag}(\dot{s}) \, \boldsymbol{\Phi}_{s}(s) \boldsymbol{\beta}\).

Substituting into the pricing equation yields:
\( \boldsymbol{\beta} = \left( \mathrm{diag}(\delta - \dot{s}_{s}) \boldsymbol{\Phi} - \mathrm{diag}(\dot{s}) \boldsymbol{\Phi}_{s} \right)^{-1} W_{s} \).

In the over-determined case (more nodes than approximation degrees), the function uses a least-squares solution:
\( \boldsymbol{\beta} = \left( A^{T} A \right)^{-1} A^{T} W_{s}, \)
where:
\( A = \mathrm{diag}(\delta - \dot{s}_{s}) \boldsymbol{\mu} - \mathrm{diag}(\dot{s}) \boldsymbol{\mu}_{s}. \)

See Fenichel et al. (2016) for additional theoretical background.

References

Fenichel, Eli P. and Joshua K. Abbott. (2014). Natural Capital: From Metaphor to Measurement. Journal of the Association of Environmental Economists, 1(1/2), 1--27. tools:::Rd_expr_doi("10.1086/676034")

Fenichel, Eli P., Joshua K. Abbott, Jude Bayham, Whitney Boone, Erin M. K. Haacker, and Lisa Pfeiffer. (2016) Measuring the Value of Groundwater and Other Forms of Natural Capital. Proceedings of the National Academy of Sciences. 113: 2382--2387. tools:::Rd_expr_doi("10.1073/pnas.1513779113")

See Also

aproxdef, psim, GOM

Examples

Run this code
## 1-D Reef-fish example: see Fenichel and Abbott (2014)
data("GOM")

param <- GOM$param
simData <- GOM$simData

Aspace <- aproxdef(param$order, param$lowerK, param$upperK, param$delta)

pC <- paprox(
  Aspace,
  simData$stock,
  simData$sdot,
  simData$dsdotds,
  simData$dwds
)

Run the code above in your browser using DataLab