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"