Learn R Programming

curvir (version 0.1.1)

curve: Reserve demand curve

Description

Fits the reserve demand curve between excess reserves and normalised rates

Usage

curve(x, y, type = "logistic", dummy = NULL, q = NULL, ...)

Value

Returns a model of class curvir. This includes

  • type the type of the curve.

  • constant a logical indicating the use of a constant.

  • w a list including: mean the curve parameters for the mean of the curve, upper and lower the parameters for the curve at the upper and lower intervals.

  • data a list including the y, x, and dummy used for the fitting of the curve.

  • mse the MSE from the fitting of the curve (the mean only).

  • q the interval used in the fitting of the curve.

Arguments

x

A matrix of explanatory variables. Excess reserve must be the first input.Additional regressor follow (optional).

y

A vector of normalised interest rates.

type

The type of the reserve demand curve. This can be any of logistic, redLogistic, fixLogistic, doubleExp, exponential, fixExponential, arctan, linear. See details in curve

dummy

Optional input to signify a regime change (vertical shifts in the curve). Must be a vector of equal length to the rows of x. If not needed use NULL.

q

Target interval. This is a scalar below 1, for example 0.9 is the 90% interval. If NULL then no quantiles are estimated.

...

Additional arguments passed to optimiser curveopt.

Author

Nikolaos Kourentzes, nikolaos@kourentzes.com

Details

For a description of the parametric curves, see the provided reference. Below we list their functions:

  • logisitc (Logistic) $$r_i = \alpha + \kappa / (1 - \beta e^{g(\bm{C}_i)}) + \varepsilon_i$$

  • redLogistic (Reduced logistic) $$r_i = \alpha + 1 / (1 - \beta e^{g(\bm{C}_i)}) + \varepsilon_i$$

  • fixLogistic (Fixed logistic) $$r_i = \alpha + 1 / (1 - e^{g(\bm{C}_i)}) + \varepsilon_i$$

  • doubleExp (Double exponential) $$r_i = \alpha + \beta e^{\rho e^{g(\bm{C}_i)}} + \varepsilon_i$$

  • exponential (Exponential) $$r_i = \alpha + \beta e^{g(\bm{C}_i)} + \varepsilon_i$$

  • fixExponential (Fixed exponential) $$r_i = \beta e^{g(\bm{C}_i)} + \varepsilon_i$$

  • arctan (Arctangent) $$r_i = \alpha + \beta \arctan ( g(\bm{C}_i)) + \varepsilon_i$$

  • linear (Linear) $$r_i = g(\bm{C}_i) + \varepsilon_i$$

And \(g(\bm{C}) = c + \bm{C} w_g\), where \(\alpha\), \(\beta\), \(\kappa\), \(\rho\) are curve parameters, \(c\) is a constant togglable by constant, \(\bm{C}\) are the regressors including the excess reserves. \(w_g\) their coefficients, and finally \(\varepsilon_i\) is the error term of the curve.

References

Chen, Z., Kourentzes, N., & Veyrune, R. (2023). Modeling the Reserve Demand to Facilitate Central Bank Operations. IMF Working Papers, 2023(179).

See Also

predict.curvir, plot.curvir, and curveopt.

Examples

Run this code
# \dontshow{
  rate <- head(ecb$rate,10)
  x <- ecb$x[1:10,1,drop=FALSE]
  curve(x,rate,rep=1,type="fixExponential")
# }
# \donttest{
  # Use ECB example data
  rate <- ecb$rate
  x <- ecb$x[,1,drop=FALSE]
  curve(x,rate)

  # An arctangent curve
  curve(x,rate,type="arctan")
 # }

Run the code above in your browser using DataLab