setSeedTP: Save and restore RNG stream seeds

View source: R/setSeedTP.R

setSeedTPR Documentation

Save and restore RNG stream seeds

Description

The random number generator (RNG) with multiple independent streams developed by L'Ecuyer et al. (2002) is used for parallel computation of uniform pseudorandom numbers. Package TPmsm makes extensive use of uniform pseudorandom numbers, particularly for the bootstrapping statistical techniques and for the generation of univariate and multivariate pseudorandom data. This function permits saving and restoring the seed of each individual RNG stream.

Usage

setSeedTP(x)

Arguments

x

either a NULL object or an object of class ‘TPmsmSeed’.

Details

An object of class ‘TPmsmSeed’ can be obtained by a previous call to function setSeedTP, usually setSeedTP(NULL) or setSeedTP(). The object can be saved and used as input on a later call to function setSeedTP effectively restoring the seed of each individual RNG stream. An object of class ‘TPmsmSeed’ can be manipulated or defined with arbitrary seeds, however such procedure is not recommended. It is strongly recommended to input objects of class ‘TPmsmSeed’ obtained from previous calls to function setSeedTP. A seed of choice can be defined by calling function setPackageSeedTP.

Value

Invisibly returns an object of class ‘TPmsmSeed’. ‘TPmsmSeed’ objects are implemented as a list of RNG stream seeds.

Note

Unlike function setPackageSeedTP this function doesn't recreate the RNG streams each time it is called.

Author(s)

Artur Araújo, Javier Roca-Pardiñas and Luís Meira-Machado

References

Araújo A, Meira-Machado L, Roca-Pardiñas J (2014). TPmsm: Estimation of the Transition Probabilities in 3-State Models. Journal of Statistical Software, 62(4), 1-29. doi: 10.18637/jss.v062.i04

Karl A. T., Eubank R., Milovanovic J., Reiser M., Young D. (2014). Using RngStreams for parallel random number generation in C++ and R. Computational Statistics, 29(5), 1301-1320. doi: 10.1007/s00180-014-0492-3

L'Ecuyer, P. (1999). Good parameters and implementations for combined multiple recursive random number generators. Operations Research, 47(1), 159–-164. doi: 10.1287/opre.47.1.159

L’Ecuyer P., Simard R., Chen E. J., Kelton W. D. (2002). An object-oriented random-number package with many long streams and substreams. Operations Research, 50(6), 1073–-1075. doi: 10.1287/opre.50.6.1073.358

See Also

setPackageSeedTP.

Examples

# Set the number of threads
nth <- setThreadsTP(2)

# Generate bivariate survival data
survTP0 <- dgpTP(n=100, corr=1, dist="weibull", dist.par=c(2, 7, 2, 7),
model.cens="exponential", cens.par = 6, state2.prob=0.6)

# Save seed
seed <- setSeedTP()

# Generate bivariate survival data
survTP1 <- dgpTP(n=100, corr=1, dist="weibull", dist.par=c(2, 7, 2, 7),
model.cens="exponential", cens.par = 6, state2.prob=0.6)

# The objects should be different
all.equal(survTP0, survTP1)

# Restore seed
setSeedTP(seed)

# Generate bivariate survival data
survTP2 <- dgpTP(n=100, corr=1, dist="weibull", dist.par=c(2, 7, 2, 7),
model.cens="exponential", cens.par = 6, state2.prob=0.6)

# Both objects were computed from the same seed and should be equal
all.equal(survTP1, survTP2)

# Restore the number of threads
setThreadsTP(nth)

TPmsm documentation built on Jan. 14, 2023, 1:17 a.m.