Documentation of 'umontreal.iro.lecuyer.stochprocess.NormalInverseGaussianProcess' Java class
NormalInverseGaussianProcess
umontreal.iro.lecuyer.stochprocess

Class NormalInverseGaussianProcess



  • public class NormalInverseGaussianProcess
    extends StochasticProcess
    This class represents a normal inverse gaussian process (NIG). It obeys the stochastic differential equation

    dX(t) = μdt + dB(h(t)),

    where {B(t), t >= 0} is a BrownianMotion with drift β and variance 1, and h(t) is an InverseGaussianProcess IG(ν/γ, ν2), with ν = δdt and γ = (α^2 - β^2)1/2.

    In this class, the process is generated using the sequential technique: X(0) = x0 and

    X(tj) - X(tj-1) = μdt + βYj + (Y_j)1/2Zj,

    where ZjN(0, 1), and YjIG(ν/γ, ν2) with ν = δ(tj - tj-1).

    There is one RandomStream used to generate the Zj's and there are one or two streams used to generate the underlying InverseGaussianProcess, depending on which IG subclass is used.

    In finance, a NIG process usually means that the log-return is given by a NIG process; GeometricNormalInverseGaussianProcess should be used in that case.

    • Constructor Detail

      • NormalInverseGaussianProcess

        public NormalInverseGaussianProcess(double x0,
                                            double alpha,
                                            double beta,
                                            double mu,
                                            double delta,
                                            RandomStream streamBrownian,
                                            InverseGaussianProcess igP)
        Given an InverseGaussianProcess igP, constructs a new NormalInverseGaussianProcess. The parameters and observation times of the IG process will be overriden by the parameters of the NIG process. If there are two RandomStream's in the InverseGaussianProcess, this constructor assumes that both streams have been set to the same stream.
      • NormalInverseGaussianProcess

        public NormalInverseGaussianProcess(double x0,
                                            double alpha,
                                            double beta,
                                            double mu,
                                            double delta,
                                            RandomStream streamAll,
                                            java.lang.String igType)
        Same as above, but all RandomStream's are set to the same stream, streamAll.
    • Method Detail

      • generatePath

        public double[] generatePath()
        Generates the path. This method samples each stream alternatively, which is useful for quasi-Monte Carlo, where all streams are in fact the same iterator on a PointSet.
        Specified by:
        generatePath in class StochasticProcess
      • setParams

        public void setParams(double x0,
                              double alpha,
                              double beta,
                              double mu,
                              double delta)
        Sets the parameters. Also, computes γ = (α^2-β^2)1/2.
      • getAlpha

        public double getAlpha()
        Returns alpha.
      • getBeta

        public double getBeta()
        Returns beta.
      • getMu

        public double getMu()
        Returns mu.
      • getDelta

        public double getDelta()
        Returns delta.
      • getGamma

        public double getGamma()
        Returns gamma.
      • getAnalyticAverage

        public double getAnalyticAverage(double time)
        Returns the analytic average, which is μt + δtβ/γ.
      • getAnalyticVariance

        public double getAnalyticVariance(double time)
        Returns the analytic variance, which is δtα2/γ3.

DMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.