SSJ
V. 2.6.

umontreal.iro.lecuyer.stochprocess
Class GammaProcessPCA

java.lang.Object
  extended by umontreal.iro.lecuyer.stochprocess.StochasticProcess
      extended by umontreal.iro.lecuyer.stochprocess.GammaProcess
          extended by umontreal.iro.lecuyer.stochprocess.GammaProcessPCA
Direct Known Subclasses:
GammaProcessPCABridge

public class GammaProcessPCA
extends GammaProcess

Represents a gamma process sampled using the principal component analysis (PCA). To simulate the gamma process at times t0 < t1 < ... < td by PCA sampling, a Brownian motion {W(t), t >= 0} with mean 0 and variance parameter ν is first generated at times t0 < t1 < ... < td by PCA sampling (see class BrownianMotionPCA). The independent increments W(tj) - W(tj-1) of this process are then transformed into independent U(0, 1) random variates Vj via

Vj = Φ((τ_j-τ_j-1)1/2[W(τj) - W(τj-1)]),    j = 1,..., s

Finally, the increments of the Gamma process are computed as Y(tj) - Y(tj-1) = G-1(Vj), where G is the gamma distribution function.


Constructor Summary
GammaProcessPCA(double s0, double mu, double nu, GammaGen Ggen)
          Constructs a new GammaProcessPCA with parameters μ = mu, ν = nu and initial value S(t0) = s0.
GammaProcessPCA(double s0, double mu, double nu, RandomStream stream)
          Constructs a new GammaProcessPCA with parameters μ = mu, ν = nu and initial value S(t0) = s0.
 
Method Summary
 double[] generatePath()
          Generates, returns and saves the path {X(t0), X(t1),…, X(td)}.
 double[] generatePath(double[] uniform01)
          Generates, returns and saves the path {X(t0), X(t1),…, X(td)}.
 BrownianMotionPCA getBMPCA()
          Returns the BrownianMotionPCA that is included in the GammaProcessPCA object.
 double nextObservation()
          This method is not implemented in this class since the path cannot be generated sequentially.
 double nextObservation(double nextT)
          This method is not implemented in this class since the path cannot be generated sequentially.
 void setObservationTimes(double[] t, int d)
          Sets the observation times of the GammaProcessPCA and the BrownianMotionPCA.
 void setParams(double s0, double mu, double nu)
          Sets the parameters s0, μ and ν to new values, and sets the variance parameters of the BrownianMotionPCA to ν.
 void setStream(RandomStream stream)
          Resets the RandomStream of the gamma generator and the RandomStream of the inner BrownianMotionPCA to stream.
 
Methods inherited from class umontreal.iro.lecuyer.stochprocess.GammaProcess
getMu, getNu, getStream
 
Methods inherited from class umontreal.iro.lecuyer.stochprocess.StochasticProcess
generatePath, getArrayMappingCounterToIndex, getCurrentObservation, getCurrentObservationIndex, getNbObservationTimes, getObservation, getObservationTimes, getPath, getSubpath, getX0, hasNextObservation, resetStartProcess, setObservationTimes, setX0
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GammaProcessPCA

public GammaProcessPCA(double s0,
                       double mu,
                       double nu,
                       RandomStream stream)
Constructs a new GammaProcessPCA with parameters μ = mu, ν = nu and initial value S(t0) = s0. The random variables are created using stream. Note that the same RandomStream is used for the GammaProcessPCA and for the BrownianMotionPCA included in this class. Both the GammaProcessPCA and the BrownianMotionPCA are generated by inversion.


GammaProcessPCA

public GammaProcessPCA(double s0,
                       double mu,
                       double nu,
                       GammaGen Ggen)
Constructs a new GammaProcessPCA with parameters μ = mu, ν = nu and initial value S(t0) = s0. All the random variables, i.e. the gamma ones and the normal ones, are created using the RandomStream included in the GammaGen Ggen. Note that the parameters of the GammaGen object are not important since the implementation forces the generator to use the correct parameters (as defined above).

Method Detail

generatePath

public double[] generatePath()
Description copied from class: GammaProcess
Generates, returns and saves the path {X(t0), X(t1),…, X(td)}. The gamma variates X in are generated using the RandomStream stream or the RandomStream included in the GammaGen Ggen.

Overrides:
generatePath in class GammaProcess

generatePath

public double[] generatePath(double[] uniform01)
Description copied from class: GammaProcess
Generates, returns and saves the path {X(t0), X(t1),…, X(td)}. This method does not use the RandomStream stream nor the GammaGen Ggen. It uses the vector of uniform random numbers U(0, 1) provided by the user and generates the path by inversion. The vector uniform01 must be of dimension d.

Overrides:
generatePath in class GammaProcess

nextObservation

public double nextObservation()
This method is not implemented in this class since the path cannot be generated sequentially.

Overrides:
nextObservation in class GammaProcess

nextObservation

public double nextObservation(double nextT)
This method is not implemented in this class since the path cannot be generated sequentially.

Overrides:
nextObservation in class GammaProcess

getBMPCA

public BrownianMotionPCA getBMPCA()
Returns the BrownianMotionPCA that is included in the GammaProcessPCA object.


setObservationTimes

public void setObservationTimes(double[] t,
                                int d)
Sets the observation times of the GammaProcessPCA and the BrownianMotionPCA.

Overrides:
setObservationTimes in class StochasticProcess

setParams

public void setParams(double s0,
                      double mu,
                      double nu)
Sets the parameters s0, μ and ν to new values, and sets the variance parameters of the BrownianMotionPCA to ν.

Overrides:
setParams in class GammaProcess

setStream

public void setStream(RandomStream stream)
Resets the RandomStream of the gamma generator and the RandomStream of the inner BrownianMotionPCA to stream.

Overrides:
setStream in class GammaProcess

SSJ
V. 2.6.

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.