1 votos

Distribución normal inversa gaussiana - ¿existe consenso sobre una función cuantil precisa?

Estoy haciendo uso de la distribución Normal Inversa Gaussiana en mi trabajo para modelar los factores de riesgo de volatilidad implícita de las tasas de interés subyacentes. Lo que es particularmente bueno de esta distribución para mi propósito es el hecho de que es mucho más parsimoniosa que otras alternativas y cerrada bajo convolución.

Dicho esto, no he sido capaz de encontrar una implementación de la función de cuantiles "verificable" de manera razonable. No parece que exista una en Excel, en R tenemos la función qnig del paquete fBasics del que no estoy seguro sobre su precisión, y en MatLab hay este paquete que menciona tener problemas con la función CDF inversa debido a la computación numérica.

Mi pregunta es si existe una función de cuantiles razonablemente precisa para mis propósitos. Estoy programando en C# y he intentado implementar mi propia función de Normal Inversa Gaussiana, sin embargo, al compararla con la función qnig de R, solo tengo alrededor de 5 dígitos de precisión de manera consistente. Ni siquiera estoy seguro de si la implementación de R es confiable como una referencia para muchos dígitos de precisión, sin embargo.

3voto

Kyle Cronin Puntos 554

Cuando es posible, reviso las implementaciones en IMSL y el GSL para una precisión realmente buena. Ninguno de los dos parece implementar el Wald (inverso gaussiano) o su función cuantil.

Matlab sí tiene la distribución (como inversegaussian) así que podrías crear la tuya con fzero() u otro buscador de raíces basado en eso si no estás contento con la precisión, o para probar qnig.

Dado que no existe una fórmula en forma cerrada para la función cuantil, prácticamente todas las implementaciones estarán ejecutando un buscador de raíces. Simplemente es cuestión de los criterios de parada establecidos para el buscador de raíces involucrado.

Por cierto, me cuesta pensar en un proyecto de investigación cuantitativa donde la precisión a más de 5 dígitos (significativos) sea importante. ¿Quizás solo necesitas escalar tus variables?

0 votos

Muy útil, gracias. Los sigdígitos son más una cuestión de regulaciones de gestión cuestionables.

0 votos

<3 Bibliotecas IMSL y GSL

2voto

kathleen Puntos 21

También puedes ver el paquete boost que debería ser utilizable dentro de C#. Viene con una implementación de la distribución normal inversa que se explica en la documentación en línea http://www.boost.org/doc/libs/master/libs/math/doc/html/math_toolkit/dist_ref/dists/inverse_gaussian_dist.html

Aquí afirman una alta precisión numérica de más de 10 dígitos.

0 votos

Esa distribución no es lo suficientemente generalizada en cuanto a la pesadez de la cola y la asimetría para mi propósito, ¡pero aún así no sabía que existía, por lo que podría ser útil para otros!

1voto

btelles Puntos 153

El paquete de R GeneralizedHyperbolic tiene una función de cuantiles precisa para la distribución generalizada hiperbólica, la cual incluye a la NIG como un caso especial.

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