Available discount functions

library(tempodisco)

tempodisco implements many lesser-known discount functions beyond the smaller set of popular functions used by Franck et al., 2015. The full list is as follows:

Name Functional form Notes
exponential (Samuelson, 1937) \(f(t; k) = e^{-k t}\)
hyperbolic (Mazur, 1987) \(f(t; k) = \frac{1}{1 + kt}\)
scaled-exponential (Laibson, 1997) \(f(t; k, w) = w e^{-k t}\) Also known as quasi-hyperbolic or beta-delta and written as \(f(t; \beta, \delta) = \beta e^{-\delta t}\)
nonlinear-time-exponential (Ebert & Prelec, 2007) \(f(t; k, s) = e^{-k t^s}\) Also known as constant sensitivity
inverse-q-exponential (Green & Myerson, 2004) \(f(t; k, s) = \frac{1}{(1 + k t)^s}\) Also known as generalized hyperbolic (Loewenstin & Prelec), hyperboloid (Green & Myerson, 2004), or q-exponential (Han & Takahashi, 2012)
nonlinear-time-hyperbolic (Rachlin, 2006) \(f(t; k, s) = \frac{1}{1 + k t^s}\) Also known as power-function (Rachlin, 2006)
dual-systems-exponential (Ven den Bos & McClure, 2013) \(f(t; k_1, k_2, w) = w e^{-k_1 t} + (1 - w) e^{-k_2 t}\)
additive-utility (Killeen, 2009) \(f(t; k, s, a) = \left( 1 - \frac{k}{V_D^a}t^s\right)^\frac{1}{a}\) \(V_D\) is the value of the delayed reward. \(f(t; k, s, a) = 0\) for \(t > \left(V_D^a / k\right)^{1/s}\).
power (Harvey, 1986, eq. 2) \(f(t; k) = \frac{1}{(1 + t)^k}\) In equation 2 of the reference, the discount function is described as \(\frac{1}{t^k}\), but time begins at \(t = 1\).
arithmetic (Doyle & Chen, 2010) \(f(t; k) = 1 - \frac{kt}{V_D}\) \(V_D\) is the value of the delayed reward. \(f(t; k) = 0\) for \(kt > V_D\).
fixed-cost (Benhabib, Bisin, & Schotter, 2010) \(f(t; w) = e^{-kt} - \frac{w}{V_D}\) \(V_D\) is the value of the delayed reward. \(f(t; w) = 0\) for \(\frac{w}{V_D} > e^{-kt}\).
absolute-stationarity (Blavatskyy, 2024, eq. 3) \(f(t; k, s) = \exp\left\{ -k\frac{ts}{ts + 1}\right\}\) The original paper uses \(t\) rather than \(ts\). However, a scale factor appears necessary to account for different time units.
relative-stationarity (Blavatskyy, 2024, eq. 7) \(f(t; k, s) = \left( \frac{ts + 1}{2ts + 1} \right)^k\) The original paper uses \(t\) rather than \(ts\). However, a scale factor appears necessary to account for different time units.
constant (Franck et al., 2015) \(f(t; k) = k\) Null model; participants can be excluded if this model provides the best fit (Franck et al., 2015)
nonlinear-time-power \(f(t; k) = \frac{1}{(1 + t^s)^k}\) Experimental extension of the power discount function along the lines of the nonlinear-time-hyperbolic and nonlinear-time-exponential functions.
nonlinear-time-arithmetic \(f(t; k) = 1 - \frac{kt^s}{V_D}\) Experimental extension of the arithmetic discount function along the lines of the nonlinear-time-hyperbolic and nonlinear-time-exponential functions.
scaled-hyperbolic \(f(t; k, w) = \frac{w}{1 + kt}\) Experimental extension of the hyperbolic discount function along the lines of the scaled-exponential function.

The names of these discount functions can be accessed using get_available_discount_functions():

print(get_available_discount_functions())
#>  [1] "hyperbolic"                 "nonlinear-time-hyperbolic" 
#>  [3] "exponential"                "nonlinear-time-exponential"
#>  [5] "absolute-stationarity"      "relative-stationarity"     
#>  [7] "power"                      "nonlinear-time-power"      
#>  [9] "arithmetic"                 "nonlinear-time-arithmetic" 
#> [11] "inverse-q-exponential"      "scaled-exponential"        
#> [13] "scaled-hyperbolic"          "fixed-cost"                
#> [15] "dual-systems-exponential"   "additive-utility"          
#> [17] "model-free"                 "constant"