pvdeg.montecarlo.generateCorrelatedSamples#

pvdeg.montecarlo.generateCorrelatedSamples(corr: list[Corr], stats: dict[str, dict[str, float]], n: int, seed=None) DataFrame[source]#

Generates a tall correlated samples numpy array based on correlation coefficients and mean and stdev for modeling constants. Values are correlated from cholesky decomposition of correlation coefficients, and n random samples for each modeling constant generated from a standard distribution with mean = 0 and standard deviation = 1.

Parameters:
  • corr (List[Corr]) – list containing correlations between variable

  • stats (dict[str, dict[str, float]]) – dictionary storing variable mean and standard deviation. Syntax : <variable_name> : {‘mean’ : <float>, ‘stdev’ : <float>}

  • n (int) – number of samples to create

  • seed (Any, optional) – reseed the numpy BitGenerator, numpy legacy function (use cautiously)

Returns:

correlated_samples (pd.Dataframe) – tall dataframe of dimensions (n by # of modeling constants). Columns named as modeling constants from Corr object inputs

References

Burgess, Nicholas, Correlated Monte Carlo Simulation using Cholesky Decomposition (March 25, 2022). Available at SSRN: https://ssrn.com/abstract=4066115