Aquí hay algo de código c++ basado en la biblioteca de filtrado de partículas pf
y la biblioteca de estimación de modelos en el espacio de estados ssme
. Todos los archivos de este ejemplo autocontenido están disponibles en aquí .
Después de descargar y compilar estas dos bibliotecas, vaya a la carpeta ssme/example
escriba make
y luego algo como
./main spy_returns.csv univ_svol_pmmh_samples univ_svol_pmmh_messages 1000
Si echa un vistazo a main.cpp
, te darás cuenta de que estos argumentos representan el nombre del programa, el fichero con tus retornos de acciones, la base del nombre del fichero en el que quieres almacenar tus muestras, lo mismo para los mensajes emitidos desde el programa, y el número de iteraciones de tu cadena. Dentro de ese archivo, también puede cambiar la ventana que adapta la matriz de covarianza de la distribución de la propuesta.
Este programa utiliza el enfoque pseudo-marginal tomando la probabilidad estimada de un filtro de partículas en cada iteración de la cadena. Este código aquí utiliza el filtro bootstrap original, pero si desea cambiar esto, cambie el archivo univ_svol_bootstrap_filter.h y en su lugar subclasificar un filtro diferente de aquí . Si desea aumentar o disminuir el número de partículas, que está de vuelta en main.cpp
.
Si desea modificar los valores a priori, cambie estimate_univ_svol.h
. A diferencia del muestreo de Gibbs, puedes hacer que las priors sean prácticamente lo que quieras. También en ese archivo es la capacidad de desactivar la opción de utilizar varios núcleos.