SSJ
3.3.1
Stochastic Simulation in Java
|
Represents a gamma process sampled using the principal component analysis (PCA). More...
Public Member Functions | |
GammaProcessPCA (double s0, double mu, double nu, RandomStream stream) | |
Constructs a new GammaProcessPCA with parameters \(\mu= \mathtt{mu}\), \(\nu= \mathtt{nu}\) and initial value \(S(t_0) = \mathtt{s0}\). More... | |
GammaProcessPCA (double s0, double mu, double nu, GammaGen Ggen) | |
Constructs a new GammaProcessPCA with parameters \(\mu= \mathtt{mu}\), \(\nu= \mathtt{nu}\) and initial value \(S(t_0) = \mathtt{s0}\). More... | |
double [] | generatePath () |
double [] | generatePath (double[] uniform01) |
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. | |
BrownianMotionPCA | getBMPCA () |
Returns the BrownianMotionPCA that is included in the GammaProcessPCA object. | |
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 , \(\mu\) and \(\nu\) to new values, and sets the variance parameters of the BrownianMotionPCA to \(\nu\). | |
void | setStream (RandomStream stream) |
Resets the umontreal.ssj.rng.RandomStream of the gamma generator and the umontreal.ssj.rng.RandomStream of the inner BrownianMotionPCA to stream . | |
Public Member Functions inherited from GammaProcess | |
GammaProcess (double s0, double mu, double nu, RandomStream stream) | |
Constructs a new GammaProcess with parameters \(\mu= \mathtt{mu}\), \(\nu= \mathtt{nu}\) and initial value \(S(t_0) = \mathtt{s0}\). More... | |
GammaProcess (double s0, double mu, double nu, GammaGen Ggen) | |
Constructs a new GammaProcess with parameters \(\mu= \mathtt{mu}\), \(\nu= \mathtt{nu}\) and initial value \(S(t_0) = \mathtt{s0}\). More... | |
double | nextObservation () |
double | nextObservation (double nextT) |
Generates and returns the next observation at time \(t_{j+1} = \mathtt{nextTime}\), using the previous observation time \(t_j\) defined earlier (either by this method or by setObservationTimes ), as well as the value of the previous observation \(X(t_j)\). More... | |
double [] | generatePath () |
Generates, returns and saves the path \(\{X(t_0), X(t_1), …, X(t_d)\}\). More... | |
double [] | generatePath (double[] uniform01) |
Generates, returns and saves the path \( \{X(t_0), X(t_1), …, X(t_d)\}\). More... | |
void | setParams (double s0, double mu, double nu) |
Sets the parameters \(S(t_0) = \mathtt{s0}\), \(\mu= \mathtt{mu}\) and \(\nu= \mathtt{nu}\) of the process. More... | |
double | getMu () |
Returns the value of the parameter \(\mu\). | |
double | getNu () |
Returns the value of the parameter \(\nu\). | |
void | setStream (RandomStream stream) |
Resets the umontreal.ssj.rng.RandomStream of the umontreal.ssj.randvar.GammaGen to stream . | |
RandomStream | getStream () |
Returns the umontreal.ssj.rng.RandomStream stream . | |
Public Member Functions inherited from StochasticProcess | |
void | setObservationTimes (double[] T, int d) |
Sets the observation times of the process to a copy of T , with. More... | |
void | setObservationTimes (double delta, int d) |
Sets equidistant observation times at \(t_j = j\delta\), for. More... | |
double [] | getObservationTimes () |
Returns a reference to the array that contains the observation times. More... | |
int | getNumObservationTimes () |
Returns the number \(d\) of observation times, excluding the time \(t_0\). | |
abstract double [] | generatePath () |
Generates, returns, and saves the sample path \(\{X(t_0), X(t_1), \dots, X(t_d)\}\). More... | |
double [] | generatePath (RandomStream stream) |
Same as generatePath() , but first resets the stream to stream . | |
double [] | getPath () |
Returns a reference to the last generated sample path \(\{X(t_0), ... , X(t_d)\}\). More... | |
void | getSubpath (double[] subpath, int[] pathIndices) |
Returns in subpath the values of the process at a subset of the observation times, specified as the times \(t_j\) whose indices. More... | |
double | getObservation (int j) |
Returns \(X(t_j)\) from the current sample path. More... | |
void | resetStartProcess () |
Resets the observation counter to its initial value \(j=0\), so that the current observation \(X(t_j)\) becomes \(X(t_0)\). More... | |
boolean | hasNextObservation () |
Returns true if \(j<d\), where \(j\) is the number of observations of the current sample path generated since the last call to resetStartProcess. More... | |
double | nextObservation () |
Generates and returns the next observation \(X(t_j)\) of the stochastic process. More... | |
int | getCurrentObservationIndex () |
Returns the value of the index \(j\) corresponding to the time. More... | |
double | getCurrentObservation () |
Returns the value of the last generated observation \(X(t_j)\). | |
double | getX0 () |
Returns the initial value \(X(t_0)\) for this process. | |
void | setX0 (double s0) |
Sets the initial value \(X(t_0)\) for this process to s0 , and reinitializes. | |
abstract void | setStream (RandomStream stream) |
Resets the random stream of the underlying generator to stream . | |
abstract RandomStream | getStream () |
Returns the random stream of the underlying generator. | |
int [] | getArrayMappingCounterToIndex () |
Returns a reference to an array that maps an integer \(k\) to \(i_k\), the index of the observation \(S(t_{i_k})\) corresponding to the \(k\)-th observation to be generated for a sample path of this process. More... | |
Package Attributes | |
double [] | arrayTime |
BrownianMotionPCA | BMPCA |
Package Attributes inherited from GammaProcess | |
double | nu |
double | mu2OverNu |
Additional Inherited Members | |
Protected Member Functions inherited from GammaProcess | |
void | setLarger (double[] path, int left, int mid, int right) |
double | setLarger (double[] path, int left, int right) |
double | setLarger (double v) |
void | init () |
Protected Member Functions inherited from StochasticProcess | |
void | init () |
Protected Attributes inherited from GammaProcess | |
boolean | usesAnti = false |
RandomStream | stream |
GammaGen | Ggen |
double | mu |
double | muOverNu |
double [] | mu2dtOverNu |
Protected Attributes inherited from StochasticProcess | |
boolean | observationTimesSet = false |
double | x0 = 0.0 |
int | d = -1 |
int | observationIndex = 0 |
int | observationCounter = 0 |
double [] | t |
double [] | path |
int [] | observationIndexFromCounter |
Static Protected Attributes inherited from GammaProcess | |
static final double | EPS = 1.0e-15 |
Represents a gamma process sampled using the principal component analysis (PCA).
To simulate the gamma process at times \(t_0 < t_1 < \cdots< t_d\) by PCA sampling, a Brownian motion \(\{ W(t), t \geq0 \}\) with mean \(0\) and variance parameter \(\nu\) is first generated at times \(t_0 < t_1 < \cdots< t_d\) by PCA sampling (see class BrownianMotionPCA ). The independent increments \(W(t_j) - W(t_{j-1})\) of this process are then transformed into independent \(U(0, 1)\) random variates \(V_j\) via
\[ V_j = \Phi\left(\sqrt{\tau_j-\tau_{j-1}} [W(\tau_j)-W(\tau_{j-1})]\right), \quad j=1,…,s \]
Finally, the increments of the Gamma process are computed as \( Y(t_j) - Y(t_{j-1}) = G^{-1}(V_j)\), where \(G\) is the gamma distribution function.
GammaProcessPCA | ( | double | s0, |
double | mu, | ||
double | nu, | ||
RandomStream | stream | ||
) |
Constructs a new GammaProcessPCA
with parameters \(\mu= \mathtt{mu}\), \(\nu= \mathtt{nu}\) and initial value \(S(t_0) = \mathtt{s0}\).
The random variables are created using stream
. Note that the same umontreal.ssj.rng.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 | ( | double | s0, |
double | mu, | ||
double | nu, | ||
GammaGen | Ggen | ||
) |
Constructs a new GammaProcessPCA
with parameters \(\mu= \mathtt{mu}\), \(\nu= \mathtt{nu}\) and initial value \(S(t_0) = \mathtt{s0}\).
All the random variables, i.e. the gamma ones and the normal ones, are created using the umontreal.ssj.rng.RandomStream included in the umontreal.ssj.randvar.GammaGen Ggen
. Note that the parameters of the umontreal.ssj.randvar.GammaGen object are not important since the implementation forces the generator to use the correct parameters (as defined above).