correl-z
correlated standard normal distribution random number generator
Example
var correlZ = randomZ = // unit normal distribution random number generator cholesky = // cholesky decomposition var correlMatrix = 1 02 1 02 02 1 // lower triangle is enough correlWeights = correlSeeders = correlWeights // array of random number generators var iids = correlWeights // shared identically distributed variables // all 3 results below are different but correlated, E=0, V=1, Cor(i,j) = 0.2var x0 = correlSeeder0iids x1 = correlSeeder1iids x2 = correlSeeder2iids
API
The module exports a single function that takes an array of linear factors or a key-factor object to be applied to shared standard normal Independent and identically distributed random_variables (iids) and returns a standard normal correlated random number generator.
Name | Type | Notes / Examples |
---|---|---|
correlZ |
weights => randomFcn |
rand = correlZ({2:0.1, 1:0.2}) |
weights |
Object | Array |
Σv²<1: {1:0.2} , [0, 0.2] , {a: 0.2} |
randomFcn |
(iidZs [,selfZ]) => Number |
Zi<1: sample = randomFcn({a:0.7, b:0.4}) |
iidZs |
Object | Array of zSeed |
{a:0.7, b:0.4} |
selfZ |
zSeed |
optional standard normal seed for testing. Normally generated internally |
zSeed |
Number |
standard normal random seed -1 < v < 1 |
Note that the linear iid weights can obtained from the correlation matrix with the cholesky module.