Re: [R] Hypergeometric Function seems to give wrong results
Carlos Nasher via R-help r-help at r-project.org writes: [snip] I need to evaluate the Hypergeometric Function of the 2nd kind (Tricomi confluent hypergeometric function). Therefore I'm using the kummerU function from the fAsianOptions package. It seems to me that kummerU is giving wrong results. Here's an example: library(fAsianOptions) kummerU(a=19, b=19, x = 10) R gives 1838.298 for the real part. If I use Mathematica via the wolfram site ( http://functions.wolfram.com/webMathematica /FunctionEvaluation.jsp?name=HypergeometricU) the result is 3.52603e-20 which is more reasonable in the context of my analysis. [snip] Your best bet is probably to contact the package maintainer (use maintainer(fAsianOptions) to see who it is, or look on the CRAN page for the package). If this functionality is very commonly used in finance you might try the r-sig-finance mailing list (indicating that you've already tried here). good luck Ben Bolker __ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
[R] Hypergeometric Function seems to give wrong results
Hello R helpers, I need to evaluate the Hypergeometric Function of the 2nd kind (Tricomi confluent hypergeometric function). Therefore I'm using the kummerU function from the fAsianOptions package. It seems to me that kummerU is giving wrong results. Here's an example: library(fAsianOptions) kummerU(a=19, b=19, x = 10) R gives 1838.298 for the real part. If I use Mathematica via the wolfram site ( http://functions.wolfram.com/webMathematica/FunctionEvaluation.jsp?name=HypergeometricU) the result is 3.52603e-20 which is more reasonable in the context of my analysis. Can anyone help how to compute the correct values within R? Best regards, Carlos [[alternative HTML version deleted]] __ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Re: [R] hypergeometric function in ‘ mvtnorm’
To view the source of (most) functions, simply type funcname without parentheses: here, you get dmvt function (x, delta, sigma, df = 1, log = TRUE, type = shifted) { if (df == 0) return(dmvnorm(x, mean = delta, sigma = sigma, log = log)) if (is.vector(x)) { x - matrix(x, ncol = length(x)) } if (missing(delta)) { delta - rep(0, length = ncol(x)) } if (missing(sigma)) { sigma - diag(ncol(x)) } if (NCOL(x) != NCOL(sigma)) { stop(x and sigma have non-conforming size) } if (!isSymmetric(sigma, tol = sqrt(.Machine$double.eps), check.attributes = FALSE)) { stop(sigma must be a symmetric matrix) } if (length(delta) != NROW(sigma)) { stop(mean and sigma have non-conforming size) } m - NCOL(sigma) distval - mahalanobis(x, center = delta, cov = sigma) logdet - sum(log(eigen(sigma, symmetric = TRUE, only.values = TRUE)$values)) logretval - lgamma((m + df)/2) - (lgamma(df/2) + 0.5 * (logdet + m * logb(pi * df))) - 0.5 * (df + m) * logb(1 + distval/df) if (log) return(logretval) return(exp(logretval)) } Most of the functions in here you can see code for the same way: the only ones you won't be able to are eigen, lgamma, log, exp, but these methods are pretty well-documented and you shouldn't need to find code for them. If you do, you'll need to read the underlying C. Michael On Sun, Mar 18, 2012 at 11:12 PM, statfan irene_vr...@hotmail.com wrote: Is there any way to know how the dmvt function computes the hypergeometric function needed in the calculation for the density of multivariate t distribution? -- View this message in context: http://r.789695.n4.nabble.com/hypergeometric-function-in-mvtnorm-tp4483730p4483730.html Sent from the R help mailing list archive at Nabble.com. __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Re: [R] hypergeometric function in ‘ mvtnorm’
Thanks for your advice. I actually meant to ask about the pmvt for the distribution function. Viewing the source code pmvt uses the function mvt which uses the function probval which sources the fortran code: Fortran(mvtdst, N = as.integer(n), NU = as.integer(df), LOWER = as.double(lower), UPPER = as.double(upper), INFIN = as.integer(infin), CORREL = as.double(corrF), DELTA = as.double(delta), MAXPTS = as.integer(x$maxpts), ABSEPS = as.double(x$abseps), RELEPS = as.double(x$releps), error = as.double(error), value = as.double(value), inform = as.integer(inform), PACKAGE = mvtnorm) I wish to look at how this mvtdst calculates the hypergeometric function (2_F_1). Anyway that I can see that? Thanks -- View this message in context: http://r.789695.n4.nabble.com/hypergeometric-function-in-mvtnorm-tp4483730p4485277.html Sent from the R help mailing list archive at Nabble.com. __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Re: [R] hypergeometric function in ‘ mvtnorm’
On 19-03-2012, at 16:54, statfan wrote: Thanks for your advice. I actually meant to ask about the pmvt for the distribution function. Viewing the source code pmvt uses the function mvt which uses the function probval which sources the fortran code: No it doesn't source. It call a compiled Fortran subroutine. Fortran(mvtdst, N = as.integer(n), NU = as.integer(df), LOWER = as.double(lower), UPPER = as.double(upper), INFIN = as.integer(infin), CORREL = as.double(corrF), DELTA = as.double(delta), MAXPTS = as.integer(x$maxpts), ABSEPS = as.double(x$abseps), RELEPS = as.double(x$releps), error = as.double(error), value = as.double(value), inform = as.integer(inform), PACKAGE = mvtnorm) I wish to look at how this mvtdst calculates the hypergeometric function (2_F_1). Anyway that I can see that? Yes. Download the source code of the package. Obtainable from CRAN. Unpack and browse. Berend __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
[R] hypergeometric function in ‘ mvtnorm’
Is there any way to know how the dmvt function computes the hypergeometric function needed in the calculation for the density of multivariate t distribution? -- View this message in context: http://r.789695.n4.nabble.com/hypergeometric-function-in-mvtnorm-tp4483730p4483730.html Sent from the R help mailing list archive at Nabble.com. __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
[R] hypergeometric function
Hi, I hope somebody can help me on how to use the hypergeometric function. I did read through the R documentation on hypergeometric but not really sure what it means. I would like to evaluate the hypergeometric function as follows: F((2*alpha+1)/2, (2*alpha+2)/2 , alpha+1/2, betasq/etasq). where alpha - .75; beta1 - 7 ; beta2 - 5.5; etasq - ((beta1+beta2)/(2*beta1*beta2*(1-rho))) ^2 betasq - ((beta1-beta2)^2+4*beta1*beta2*rho)/(4*beta1^2*beta2^2*(1-rho)^2) I’m not sure which function should be used- either phyper or qhyper or dhyper Thank you so much for your help. __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.