3 votos

Replica de la tasa media libre de riesgo en Wachter 2005, "Solving models with external habit"

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".

enter image description here

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: enter image description here

¿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 %

1voto

saint_groceon Puntos 2696

Creo que la respuesta se reduce a un error de redondeo. Los valores reportados de $\delta$ están anualizados. En el caso de la calibración CC1999, la anualización $\delta$ es $0.90$ y el mensual implícito es $\delta = 0.991258$ . Debido a la composición en 12 períodos (4 en el caso de Wachter 2005/2006), el tipo medio sin riesgo es muy sensible a pequeños cambios en este valor. Tomando los demás parámetros como se dan y resolviendo (11a) para el $\delta$ en cada calibración conduce a los siguientes valores anualizados que son necesarios para reproducir los tipos libres de riesgo deseados:

\begin{align} \delta &= 0.8957829809431154 \text{ (instead of 0.90 in CC calibration)} \\ \delta &= 0.9384246954559854 \text{ (instead of 0.93 in Wachter calibration)} \end{align}

A continuación se muestra el código para verificar esto.

# 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)
delta_CC = (np.exp(- 0.94/ann_fact/100 + (gamma * g - 1/2 * (gamma * (1-phi) - b)) ))**ann_fact
delta = (delta_CC)**(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)
# delta_wachter = (np.exp(- 1.47/ann_fact/100 + (gamma * g - 1/2 * (gamma * (1-phi) - b)) ))**ann_fact
# delta = (delta_wachter)**(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 %
```

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X