Re: [R] Hypergeometric Function seems to give wrong results

2015-07-08 Thread Ben Bolker
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

2015-07-06 Thread Carlos Nasher via R-help
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’

2012-03-19 Thread R. Michael Weylandt
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’

2012-03-19 Thread statfan
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’

2012-03-19 Thread Berend Hasselman

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’

2012-03-18 Thread statfan
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

2008-12-03 Thread Roslina Zakaria
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.