JeffND
2011-Nov-06 21:15 UTC
[R] how to use quadrature to integrate some complicated functions
Hello to all, I am having trouble with intregrating a complicated uni-dimensional function of the following form Phi(x-a_1)*Phi(x-a_2)*...*Phi(x-a_{n-1})*phi(x-a_n). Here n is about 5000, Phi is the cumulative distribution function of standard normal, phi is the density function of standard normal, and x ranges over (-infty,infty). My idea is to to use quadrature to handle this integral. But since Phi has not cloaed form, I don't know how to do this effeciently. I appreciate very much if someone has any ideas about it. Thanks! Jeff -- View this message in context: http://r.789695.n4.nabble.com/how-to-use-quadrature-to-integrate-some-complicated-functions-tp3996765p3996765.html Sent from the R help mailing list archive at Nabble.com.
R. Michael Weylandt <michael.weylandt@gmail.com>
2011-Nov-08 14:43 UTC
[R] how to use quadrature to integrate some complicated functions
Have you tried wrapping it in a function and using integrate()? R is pretty good at handling numerical integration. If integrate() isn't good for you, can you say more as to why? Michael On Nov 6, 2011, at 4:15 PM, JeffND <Zuofeng.Shang.5 at nd.edu> wrote:> Hello to all, > > I am having trouble with intregrating a complicated uni-dimensional function > of the following form > > Phi(x-a_1)*Phi(x-a_2)*...*Phi(x-a_{n-1})*phi(x-a_n). > > Here n is about 5000, Phi is the cumulative distribution function of > standard normal, > phi is the density function of standard normal, and x ranges over > (-infty,infty). > > My idea is to to use quadrature to handle this integral. But since Phi has > not cloaed form, > I don't know how to do this effeciently. I appreciate very much if someone > has any ideas about it. > > Thanks! > > Jeff > > -- > View this message in context: http://r.789695.n4.nabble.com/how-to-use-quadrature-to-integrate-some-complicated-functions-tp3996765p3996765.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at 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. Michael Weylandt
2011-Nov-08 19:14 UTC
[R] how to use quadrature to integrate some complicated functions
It's polite to include the whole list in your replies so the threads get archived properly. Yes, underflow is occasionally a problem: hence the common use of log-likelihood in MLE and other applications. Might that help you out here? You can get log-likelihoods directly from pnorm and dnorm with the log = TRUE option. Michael On Tue, Nov 8, 2011 at 11:35 AM, Zuofeng Shang <Zuofeng.Shang.5 at nd.edu> wrote:> Hi Michael , Thanks for your suggestion! > > Integrate() possibly workx for my problem. However my function is a product > of > a sequence with values between zero and one, which could be extremely small > when the length of the sequence is large. Note: my integrand is like > > Phi(x-a_1)*Phi(x-a_2)*...*Phi(x-a_{n-1})*phi(x-a_n). > > So when "n" is very small, the above product will be very close to zero. > > So my concern is whether integrate() can handle accurately such integrand. > > > Thanks a lot for your time! > Best wishes, > Zuofeng > > > > ? 2011/11/8 8:43, R. Michael Weylandt <michael.weylandt at gmail.com> ??: >> >> Have you tried wrapping it in a function and using integrate()? R is >> pretty good at handling numerical integration. If integrate() isn't good for >> you, can you say more as to why? >> >> Michael >> >> >> On Nov 6, 2011, at 4:15 PM, JeffND<Zuofeng.Shang.5 at nd.edu> ?wrote: >> >>> Hello to all, >>> >>> I am having trouble with intregrating a complicated uni-dimensional >>> function >>> of the following form >>> >>> Phi(x-a_1)*Phi(x-a_2)*...*Phi(x-a_{n-1})*phi(x-a_n). >>> >>> Here n is about 5000, Phi is the cumulative distribution function of >>> standard normal, >>> phi is the density function of standard normal, and x ranges over >>> (-infty,infty). >>> >>> My idea is to to use quadrature to handle this integral. But since Phi >>> has >>> not cloaed form, >>> I don't know how to do this effeciently. I appreciate very much if >>> someone >>> has any ideas about it. >>> >>> Thanks! >>> >>> Jeff >>> >>> -- >>> View this message in context: >>> http://r.789695.n4.nabble.com/how-to-use-quadrature-to-integrate-some-complicated-functions-tp3996765p3996765.html >>> Sent from the R help mailing list archive at Nabble.com. >>> >>> ______________________________________________ >>> R-help at 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. > > > -- > > >