@hugov/correl-range

0.11.0 • Public • Published

correl-range

correlated variable monte carlo simulations

ExampleAPINotesLicense

Example

import SIM from '../sim.js'

const stats = SIM(
({N,L,W,U})=>{
// initiation ran once
const fixed$ = L(500_000, 650_000, 'demand', 0.5, 'price'),
			month$ = L(5_000, 7_000, 'demand', 0.5, 'season', 0.5),
			months = L(6, 9, 'season', 0.5, 'price', -0.5)
return ()=>{
// calculations on every iterations
const total$ = fixed$ + month$ * months
return {
// exported results
	months,
	total$
}}}
).run(10_000).stats

console.log('total$ range', stats.total$.Q(0.25).toFixed(0), stats.total$.Q(0.75).toFixed(0))
console.log('correlation', stats.total$.cor('months'))

API

sim( factory, {confidence=0.5, resolution=128} ).run( N=25_000 ) ⇒ simulation

  • factory: ({N, L, G, W, U, D}) => model where N, L, ... randomVariableFactory
  • randomVariableFactory: (low, high, ...correlation) => randomVariable to match the simulation confidence interval
    • N: normal
    • L: lognormal
    • G: gumbell
    • W: weibull
    • U: uniform
    • D: dagum
  • randomVariable: with .valueOf() that changes on each iteration
  • simulation
    • stats: empirical distribution cdf, pdf, quantiles, average (based on modules sample-distribution and lazy-stats)

Notes

  1. use case is human approximation in decision making - "guesstimates"
  2. default is to use a confidence interval of 50% (IQR)
  • familiarity with box plots
  • minimizes overconfidence
  • 50% is also conservative approximation of the median min and max of 3 occurences (2^(1-1/n)-1=59% for n=3). This is in line with studies showing ~50% confidence range when asked to provide ~60% confidence. Actual overconfidence varies between studies but is always present.
  1. variables can be correlated with independent risk factors by providing the linear factor
  2. to maintain correlation, each variable returns a single value per cycle - random variables are constant within a given cycle

License

MIT © Hugo Villeneuve

Package Sidebar

Install

npm i @hugov/correl-range

Weekly Downloads

2

Version

0.11.0

License

MIT

Unpacked Size

14.3 kB

Total Files

13

Last publish

Collaborators

  • hugov