Tengo enormes dificultades para evaluar con el paquete en R. En mi caso, los valores de , , son siempre números reales positivos. Aun así, la función hipergeométrica es increíblemente sensible a sus valores. No estoy buscando precisión extrema; Puedo usar Excel para obtener una estimación aproximada de la hipergeometría de Guass que está bien para mis propósitos.hypergeo
¿Alguna sugerencia para una implementación en R que proporcione un cálculo hipergeométrico gaussiano rápido, libre de errores, si no súper preciso, de números reales positivos con una amplia gama de valores?
Editar: parece que hay mucho más código para esto en MATLAB que R. ¿Alguna idea de por qué?
r
hypergeometric
benrolls
fuente
fuente
Respuestas:
A menos que necesite evaluar la función hipergeométrica de Gauss para valores complejos de los parámetros o la variable, es mejor usar el
gsl
paquete de Robin Hankin .Según mi experiencia, también recomiendo evaluar solo la función hipergeométrica de Gauss para un valor de la variable que se encuentra en , y usar una fórmula de transformación para valores en .[ 0 , 1 ] ] - ∞ , 0 ]
Actualizar
Aquí está mi implementación alternativa con el paquete gmp (al menos, por diversión)
fuente
La fórmula anterior de @ Stéphane Laurent es excelente. Me he dado cuenta de que a veces se produce
NaN
s cuandoa
,b
,c
son grandes yz
es negativo - No he sido capaz de precisar las condiciones precisas hacia abajo. En estos casos, podemos usar otra transformación hipergeométrica a partir de la expresión alternativa de Stéphane. Lleva a esta fórmula alternativa:Por ejemplo:
los tres están de acuerdo con Mathematica's
Hypergeometric2F1
. Esta fórmula parece bien comportado también para pequeñosa
,b
,c
. Tenga en cuenta que hay casos en los que esta fórmula daNaN
y Stéphane no . Lo mejor es verificar caso por caso.fuente