Overview | Package | Class | Tree | Deprecated | Index | Help
| SSJ V. 2.1.1.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## umontreal.iro.lecuyer.stochprocess
Class InverseGaussianProcess

    java.lang.Object
      umontreal.iro.lecuyer.stochprocess.StochasticProcess
          umontreal.iro.lecuyer.stochprocess.InverseGaussianProcess

Direct Known Subclasses:
  InverseGaussianProcessMSH, InverseGaussianProcessPCA

    public class InverseGaussianProcess

extends StochasticProcess

The inverse Gaussian process is a non-decreasing process where the increments are additive and are given by the inverse gaussian distribution, `InverseGaussianDist`. With parameters δ and γ, the time increments are given by `InverseGaussianDist` (δdt/γ, δ2dt2).

[We here use the inverse gaussian distribution parametrized with IGDist (μ, λ), where μ = δ/γ and λ = δ2. If we instead used the parametrization IGDist(δ, γ), then the increment distribution of our process would have been written more simply as IGDist[tex2html_wrap_inline160](δdt, γ).]

The increments are generated by using the inversion of the cumulative distribution function. It therefore uses only one `RandomStream`. Subclasses of this class use different generating methods and some need two `RandomStream`s.

The initial value of this process is the initial observation time.

Field Summary

Fields inherited from class umontreal.iro.lecuyer.stochprocess.StochasticProcess
`path`

Constructor Summary
`InverseGaussianProcess(double s0, double delta, double gamma, RandomStream stream)` Constructs a new `InverseGaussianProcess`.

Method Summary
`double[]` | `generatePath()` Generates, returns, and saves the sample path {X(t0), X(t1),…, X(td)}, which can then be accessed via `getPath`, `getSubpath`, or `getObservation`.
`double[]` | `generatePath(double[] uniforms01)` Instead of using the internal stream to generate the path, uses an array of uniforms U[0, 1).
`double[]` | `generatePath(double[] uniforms01, double[] uniforms01b)` This method does not work for this class, but will be useful for the subclasses that require two streams.
`double` | `getAnalyticAverage(double time)` Returns the analytic average which is δt/γ, with t = `time`.
`double` | `getAnalyticVariance(double time)` Returns the analytic variance which is (δt)2, with t = `time`.
`double` | `getDelta()` Returns δ.
`double` | `getGamma()` Returns γ.
`int` | `getNumberOfRandomStreams()` Returns the number of random streams of this process.
`RandomStream` | `getStream()` Returns the random stream of the underlying generator.
`double` | `nextObservation()` Generates and returns the next observation X(tj) of the stochastic process.
`void` | `setParams(double delta, double gamma)` Sets the parameters.
`void` | `setStream(RandomStream stream)` Resets the random stream of the underlying generator to `stream`.

Methods inherited from class umontreal.iro.lecuyer.stochprocess.StochasticProcess
`generatePath, getArrayMappingCounterToIndex, getCurrentObservation, getCurrentObservationIndex, getNbObservationTimes, getObservation, getObservationTimes, getPath, getSubpath, getX0, hasNextObservation, resetStartProcess, setObservationTimes, setObservationTimes`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### InverseGaussianProcess

    public InverseGaussianProcess(double s0,
                                  double delta,
                                  double gamma,
                                  RandomStream stream)

  Constructs a new `InverseGaussianProcess`. The initial value s0 will be overridden by t[0] when the observation times are set.

Method Detail

### generatePath

    public double[] generatePath()

  Description copied from class: `StochasticProcess`
  Generates, returns, and saves the sample path {X(t0), X(t1),…, X(td)}, which can then be accessed via `getPath`, `getSubpath`, or `getObservation`. The generation method depends on the process type.

  Specified by:
    `generatePath` in class `StochasticProcess`

### generatePath

    public double[] generatePath(double[] uniforms01)

  Instead of using the internal stream to generate the path, uses an array of uniforms U[0, 1). The array should be of the length of the number of periods in the observation times. This method is useful for `NormalInverseGaussianProcess`.

### generatePath

    public double[] generatePath(double[] uniforms01,
                                 double[] uniforms01b)

  This method does not work for this class, but will be useful for the subclasses that require two streams.

### nextObservation

    public double nextObservation()

  Description copied from class: `StochasticProcess`
  Generates and returns the next observation X(tj) of the stochastic process. The processes are usually sampled sequentially, i.e. if the last observation generated was for time tj-1, the next observation returned will be for time tj. In some cases, subclasses extending this abstract class may use non-sequential sampling algorithms (such as bridge sampling). The order of generation of the tj's is then specified by the subclass. All the processes generated using principal components analysis (PCA) do not have this method.

  Overrides:
    `nextObservation` in class `StochasticProcess`

### setParams

    public void setParams(double delta,
                          double gamma)

  Sets the parameters.

### getDelta

    public double getDelta()

  Returns δ.

### getGamma

    public double getGamma()

  Returns γ.

### getAnalyticAverage

    public double getAnalyticAverage(double time)

  Returns the analytic average which is δt/γ, with t = `time`.

### getAnalyticVariance

    public double getAnalyticVariance(double time)

  Returns the analytic variance which is (δt)2, with t = `time`.

### getStream

    public RandomStream getStream()

  Description copied from class: `StochasticProcess`
  Returns the random stream of the underlying generator.

  Specified by:
    `getStream` in class `StochasticProcess`

### setStream

    public void setStream(RandomStream stream)

  Description copied from class: `StochasticProcess`
  Resets the random stream of the underlying generator to `stream`.

  Specified by:
    `setStream` in class `StochasticProcess`

### getNumberOfRandomStreams

    public int getNumberOfRandomStreams()

  Returns the number of random streams of this process. It is useful because some subclasses use different number of streams. It returns 1 for `InverseGaussianProcess`.

Overview | Package | Class | Tree | Deprecated | Index | Help
| SSJ V. 2.1.1.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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