Puede que esté cometiendo un error muy simple en alguna parte, pero pensé en preguntar de todos modos. Estoy tratando de replicar los resultados en Wachter 2005, "Resolución de modelos con hábito externo" . (También puede encontrar el versión de prepublicación aquí gratis). Sin embargo, estoy obteniendo un resultado ligeramente diferente para algunas cantidades y me pregunto si estoy interpretando los parámetros correctamente. En particular, cuando introduzco los parámetros que figuran en el cuadro 1, obtengo un tipo medio sin riesgo diferente tanto en el caso del "valor CC" como en el del "valor Wachter".
De las tablas 2 y 3 se desprende que el caso del "valor CC" debería dar un tipo medio sin riesgo, $E[r^f]$ de $0.94\%$ y el caso del "valor Wachter" deberían dar $1.47\%$ .
El valor de la tasa media libre de riesgo puede derivarse analíticamente, y se da en la ecuación (11): $$ E[r^f_t] = - \log \delta + \gamma g - \frac{\gamma (1-\phi) - b}{2}. \tag{11a} $$ Cuando sustituyo los valores de los parámetros de la Tabla 1, obtengo $0.47\%$ para la parametrización CC y $2.47\%$ para la parametrización de Wachter.
Me pregunto si estoy anualizando correctamente. Estoy algo seguro de que estoy introduciendo los parámetros correctamente, porque el documento muestra que para la calibración Campbell Cochrane (valores CC), un parámetro derivado llamado $S_{\text{max}}$ debe ser igual a $0.0939$ , donde
\begin{align} \bar S &= \sigma_\nu \sqrt{\frac{\gamma}{1-\phi - b/\gamma}} \tag{5}\\ s_{\text{max}} &= \bar s + \frac 12 (1 - \bar S^2), \tag{6} \end{align}
Las letras minúsculas denotan el logaritmo natural de la variable en mayúsculas. Cuando sustituyo los "valores CC", obtengo $S_{\text{max}} = 0.09384$ . Por lo tanto, esto parece correcto. El documento informa implícitamente de este parámetro en una nota a pie de página:
¿Alguna idea de por qué estoy obteniendo valores diferentes para la tasa media sin riesgo?
He incluido el código Python a continuación para mostrar lo que estoy haciendo.
# Campbell Cochrane parameters
ann_fact = 12 #annualization factor. Monthly
g = 1.89 / ann_fact / 100
sigma_v = 1.50 / np.sqrt(ann_fact) /100
gamma = 2.00
b = 0.00
phi = (0.87)**(1/ann_fact)
delta = (0.90)**(1/ann_fact)
# ## Wachter 2005 Parameters
# ann_fact = 4 #annualization factor. Quarterly
# parameterization_name = 'Wachter (2005)'
# ann_fact = ann_fact
# g = 2.20 / ann_fact / 100
# sigma_v = 0.86 / np.sqrt(ann_fact) / 100
# gamma = 2.00
# b = 0.011
# phi = (0.89)**(1/ann_fact)
# delta = (0.93)**(1/ann_fact)
bar_S = sigma_v * np.sqrt(gamma/(1 - phi - b/gamma))
bar_s = np.log(bar_S)
s_max = bar_s + 1/2 * (1 - bar_S**2)
Smax = np.exp(s_max)
print("Smax ", Smax) # CC1999 should be 0.0939
r_f = (-np.log(delta) + gamma * g - 1/2 * (gamma * (1-phi) - b))
print("Average risk-free rate", r_f * ann_fact * 100)
# CC1999 should be 0.94 %
# Wachter 2005 should be 1.47 %