Learn R Programming

capn (version 1.0.0)

pdotaprox: Calculating Pdot-approximation coefficients

Description

The function provides the Pdot-approximation coefficients of the defined Chebyshev polynomials in aproxdef. For now, only unidimensional case is developed.

Usage

pdotaprox(aproxspace, stock, sdot, dsdotds, dsdotdss, dwds, dwdss)

Arguments

aproxspace

An approximation space defined by aproxdef function

stock

An array of stock, \(s\)

sdot

An array of ds/dt, \(\dot{s}=\frac{ds}{dt}\)

dsdotds

An array of d(sdot)/ds, \(\frac{d \dot{s}}{d s}\)

dsdotdss

An array of d/ds(d(sdot)/ds), \( \frac{d}{ds} \left( \frac{d \dot{s}}{ds} \right)\)

dwds

An array of dw/ds, \(\frac{dW}{ds}\)

dwdss

An array of d/ds(dw/ds), \(\frac{d}{ds} \left( \frac{dW}{ds} \right)\)

Value

A list of approximation results: deg, lb, ub, delta, and coefficients. Use results$item (or results[["item"]]) to import each result item.

degree

degree of Chebyshev polynomial

lowerB

lower bound of Chebyshev nodes

upperB

upper bound of Chebyshev nodes

delta

discount rate

coefficient

Chebyshev polynomial coefficients

Details

The Pdot-approximation is finding the shadow price of a stock, \(p\) from the relation:

\(p(s) = \frac{W_{s}(s) + \dot{p}(s)}{\delta - \dot{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 given discount rate.

In order to operationalize this approach, we take the time derivative of this expression:

\( \dot{p} = \frac{ \left( \left(W_{ss}\dot{s} + \ddot{p} \right) \left( \delta - \dot{s}_{s} \right) + \left( W_{s} + \dot{p} \right) \left(\dot{s}_{ss} \dot{s} \right) \right) } { \left( \delta - \dot{s}_{s} \right)^{2} } \)

Consider approximation \( \dot{p}(s) = \mathbf{\mu}(s)\mathbf{\beta}\), \(\mathbf{\mu}(s)\) is Chebyshev polynomials and \(\mathbf{\beta}\) is their coeffcients. Then, \( \ddot{p} = \frac{ d \dot{p}}{ds} \frac{ds}{dt} = diag (\dot{s}) \mathbf{\mu}_{s}(s) \mathbf{\beta}\) by the orthogonality of Chebyshev basis. Adopting the properties above, we can get the unknown coefficient vector \(\beta\) from:

\( \mathbf{\mu \beta} = diag \left( \delta - \dot{s}_{s} \right)^{-2} \left[ \left(W_{ss}\dot{s} + diag (\dot{s}) \mathbf{\mu}_{s} \mathbf{\beta} \right)\left( \delta - \dot{s}_{s} \right) + diag \left(\dot{s}_{ss} \dot{s} \right) \left( W_{s} + \mathbf{\mu \beta} \right) \right] \), and

\(\mathbf{\beta} = \left[ diag \left( \delta - \dot{s}_{s} \right)^{2} \mathbf{\mu} - diag \left( \dot{s}\left( \delta - \dot{s}_{s} \right) \right) \mathbf{\mu}_{s} - diag (\dot{s}_{ss} \dot{s} ) \mathbf{\mu} \right]^{-1} \left( W_{ss} \dot{s} \left( \delta - \dot{s}_{s} \right) + W_{s} \dot{s}_{ss} \dot{s} \right) \).

If we suppose \( A = \left[ diag \left( \delta - \dot{s}_{s} \right)^{2} \mathbf{\mu} - diag \left( \dot{s}\left( \delta - \dot{s}_{s} \right) \right) \mathbf{\mu}_{s} - diag (\dot{s}_{ss} \dot{s} ) \mathbf{\mu} \right] \) and \( B = \left( W_{ss} \dot{s} \left( \delta - \dot{s}_{s} \right) + W_{s} \dot{s}_{ss} \dot{s} \right) \), then over-determined case can be calculated:

\( \mathbf{\beta} = \left( A^{T}A \right)^{-1} A^{T}B \).

For more detils see Fenichel and Abbott (2014).

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.

See Also

aproxdef, pdotsim

Examples

Run this code
## 1-D Reef-fish example: see Fenichel and Abbott (2014)
data("GOM")
nodes <- chebnodegen(param$nodes,param$lowerK,param$upperK)
simuDataPdot <- cbind(nodes,sdot(nodes,param),
                      dsdotds(nodes,param),dsdotdss(nodes,param),
                      dwds(nodes,param),dwdss(nodes,param))
Aspace <- aproxdef(param$order,param$lowerK,param$upperK,param$delta)
pdotC <- pdotaprox(Aspace,simuDataPdot[,1],simuDataPdot[,2],
                   simuDataPdot[,3],simuDataPdot[,4],
                   simuDataPdot[,5],simuDataPdot[,6])

Run the code above in your browser using DataLab