[General] network = dist [Parameters] dist.n=200000 dist.discrete=false # default for the cont. distrs. dist.numcells=100 dist.firstvals=100 dist.file="" # automatic filename dist.excel="0" # default (used where excel has no pdf) #---------------------------------------------------------------------- # CONTINUOUS #---------------------------------------------------------------------- # # uniform :) # [Run 1] dist.variate=uniform(0,1) dist.excel="1" # -->OK [Run 2] dist.variate=uniform(-3,7) dist.excel="0.1" # -->OK # # normal, truncnormal # [Run 10] dist.variate=normal(0,1) dist.excel="NORMDIST(A%d,0,1,0)" # -->OK [Run 11] dist.variate=normal(5,3) dist.excel="NORMDIST(A%d,5,3,0)" # -->OK [Run 13] dist.variate=truncnormal(0,1) dist.excel="IF(NORMDIST(A%d,0,1,0)<0,0,NORMDIST(A%d,0,1,0)/(1-NORMDIST(0,0,1,1)))" # -->OK [Run 13] dist.variate=truncnormal(0,4) dist.excel="IF(NORMDIST(A%d,0,4,0)<0,0,NORMDIST(A%d,0,4,0)/(1-NORMDIST(0,0,1,1)))" # -->OK [Run 14] dist.variate=truncnormal(-1,1) dist.excel="IF(NORMDIST(A%d,-1,1,0)<0,0,NORMDIST(A%d,-1,1,0)/(1-NORMDIST(1,0,1,1)))" # -->OK # # exponential # [Run 20] dist.variate=exponential(3) dist.excel="EXPONDIST(A%d,1/3,0)" # -->OK # # gamma # [Run 30] dist.variate=gamma_d(1,1) dist.excel="GAMMADIST(A%d,1,1,0)" # -->OK (since alpha=1, this is exponential dist) [Run 31] dist.variate=gamma_d(1,5) dist.excel="GAMMADIST(A%d,1,5,0)" # -->OK (since alpha=1, this is exponential dist) [Run 32] dist.variate=gamma_d(0.6,1) dist.excel="GAMMADIST(A%d,0.6,1,0)" dist.n=500000 # -->~OK, but there's a small (really small but clearly visible) discontinuity # in the graph at x=1 [Run 33] dist.variate=gamma_d(0.6,5) dist.excel="GAMMADIST(A%d,0.6,5,0)" # -->~OK, but there's a small (really small but clearly visible) discontinuity # in the graph at x=1 [Run 34] dist.variate=gamma_d(3,1) dist.excel="GAMMADIST(A%d,3,1,0)" # -->OK [Run 35] dist.variate=gamma_d(3,5) dist.excel="GAMMADIST(A%d,3,5,0)" # -->OK # # erlang # # erlang(k,m) == gamma(k,m/k) # [Run 40] dist.variate=erlang_k(1,1) dist.excel="GAMMADIST(A%d,1,1,0)" # -->OK [Run 41] dist.variate=erlang_k(1,100) dist.excel="GAMMADIST(A%d,1,100,0)" # -->OK [Run 42] dist.variate=erlang_k(5,10) dist.excel="GAMMADIST(A%d,5,10/5,0)" # -->OK [Run 43] dist.variate=erlang_k(10,0.5) dist.excel="GAMMADIST(A%d,10,0.5/10,0)" # -->OK # # triang # [Run 50] dist.variate=triang(0,0.3,1) # -->OK [Run 51] dist.variate=triang(0,0,1) # -->OK [Run 52] dist.variate=triang(0,1,1) # -->OK [Run 53] dist.variate=triang(-1,4,5) # -->OK # # lognormal # # no lognormal pdf in Excel. # f(X)=exp(-1/2*((ln(X)-m)/s)^2) / sqrt(2*PI()*s^2*X^2) (source: xycoon.com) # [Run 60] dist.variate=lognormal(0,0.1) dist.excel="exp(-1/2*((ln(A%d)-0)/0.1)^2) / sqrt(2*PI()*0.1^2*A%d^2)" # -->OK [Run 61] dist.variate=lognormal(0,0.5) dist.excel="exp(-1/2*((ln(A%d)-0)/0.5)^2) / sqrt(2*PI()*0.5^2*A%d^2)" # -->OK [Run 62] dist.variate=lognormal(0,0.7) dist.excel="exp(-1/2*((ln(A%d)-0)/0.7)^2) / sqrt(2*PI()*0.7^2*A%d^2)" # -->OK [Run 63] dist.variate=lognormal(0,1) dist.excel="exp(-1/2*((ln(A%d)-0)/1)^2) / sqrt(2*PI()*1^2*A%d^2)" # -->OK [Run 64] dist.variate=lognormal(1,0.5) dist.excel="exp(-1/2*((ln(A%d)-1)/0.5)^2) / sqrt(2*PI()*0.5^2*A%d^2)" # -->OK [Run 65] dist.variate=lognormal(1,0.7) dist.excel="exp(-1/2*((ln(A%d)-1)/0.7)^2) / sqrt(2*PI()*0.7^2*A%d^2)" # -->OK # # Weibull # # Excel's (alpha,beta) parameters correspond to our (b,a) (swapped!) # [Run 70] dist.variate=weibull(1,1) dist.excel="WEIBULL(A%d,1,1,0)" # -->OK [Run 71] dist.variate=weibull(1,3) dist.excel="WEIBULL(A%d,3,1,0)" # -->OK [Run 72] dist.variate=weibull(5,5) dist.excel="WEIBULL(A%d,5,5,0)" # -->OK [Run 73] dist.variate=weibull(5,2) dist.excel="WEIBULL(A%d,2,5,0)" # -->OK [Run 74] dist.variate=weibull(5,1) dist.excel="WEIBULL(A%d,1,5,0)" # -->OK [Run 75] dist.variate=weibull(2,3) dist.excel="WEIBULL(A%d,3,2,0)" # -->OK # # beta # # the pdf has no closed form :( # visual inspection was used, and compared to graphs at www.xycoon.com # [Run 100] dist.variate=beta(1,1) # -->OK [Run 101] dist.variate=beta(0.75,0.75) # -->OK [Run 102] dist.variate=beta(1,2) # -->OK [Run 103] dist.variate=beta(2,1) # -->OK [Run 104] dist.variate=beta(0.50,2) # -->OK [Run 105] dist.variate=beta(2,0.50) # -->OK [Run 106] dist.variate=beta(2,4) # -->OK [Run 107] dist.variate=beta(4,2) # -->OK [Run 108] dist.variate=beta(2,2) # -->OK [Run 109] dist.variate=beta(3,3) # -->OK [Run 110] dist.variate=beta(5,5) # -->OK [Run 111] dist.variate=beta(10,10) # -->OK [Run 112] dist.variate=beta(25,5) # -->OK # # chi-squared # # excel's CHIDIST is surely wrong: different shape, and in any case # it doesn't integrate to 1. we use GAMMADIST for testing instead: # # chi-square(k) = gamma(k/2,2) # [Run 120] dist.variate=chi_square(1) dist.excel="GAMMADIST(A%d,1/2,2,0)" # -->OK [Run 121] dist.variate=chi_square(2) dist.excel="GAMMADIST(A%d,2/2,2,0)" # -->OK [Run 122] dist.variate=chi_square(5) dist.excel="GAMMADIST(A%d,5/2,2,0)" # -->OK [Run 123] dist.variate=chi_square(10) dist.excel="GAMMADIST(A%d,10/2,2,0)" # -->OK [Run 124] dist.variate=chi_square(25) dist.excel="GAMMADIST(A%d,25/2,2,0)" # -->OK [Run 125] dist.variate=chi_square(50) dist.excel="GAMMADIST(A%d,50/2,2,0)" # -->OK # # student-t # # note: excel is wrong here, TDIST always creates 2-tailed distrib, # regardless of its "tails" parameter, and also it seemingly doesn't # integrate to 1! # # visual inspection was used, and compared to graphs at www.xycoon.com # [Run 130] dist.variate=student_t(1) # -->seems OK [Run 131] dist.variate=student_t(2) # -->seems OK [Run 132] dist.variate=student_t(5) # -->seems OK [Run 133] dist.variate=student_t(30) # -->seems OK [Run 134] dist.variate=student_t(100) # -->seems OK # # cauchy # # excel has no cauchy pdf. # f(X)=b/PI/((X-a)^2+b^2) (source: xycoon.com) # # firstvals had to be decreased, otherwise a few very high values (>1000) # occur and spoil the histogram range # [Run 140] dist.variate=cauchy(0,1) dist.excel="1/PI()/((A%d-0)^2+1^2)" dist.firstvals=15 # -->OK [Run 141] dist.variate=cauchy(5,3) dist.excel="3/PI()/((A%d-5)^2+3^2)" dist.firstvals=15 # -->OK # # pareto # # excel has no pareto pdf. # f(X)=a/b*(b/X)^(a+1) (source: xycoon.com) # # firstvals had to be decreased, otherwise a few very high values (>100) # occur and spoil the histogram range # [Run 150] dist.variate=pareto_shifted(1,1,0) dist.excel="1/1*(1/A%d)^(1+1)" dist.firstvals=15 # -->OK [Run 151] dist.variate=pareto_shifted(1,2,0) dist.excel="1/2*(2/A%d)^(1+1)" dist.firstvals=15 # -->OK [Run 152] dist.variate=pareto_shifted(10,5,0) dist.excel="10/5*(5/A%d)^(10+1)" dist.firstvals=15 # -->OK [Run 153] dist.variate=pareto_shifted(5,10,0) dist.excel="5/10*(10/A%d)^(5+1)" dist.firstvals=15 # -->OK [Run 154] dist.variate=pareto_shifted(5,10,8) dist.excel="5/10*(10/(A%d+8))^(5+1)" dist.firstvals=15 # -->OK #---------------------------------------------------------------------- # DISCRETE #---------------------------------------------------------------------- # # intuniform # [Run 510] dist.variate=intuniform(0,9) dist.excel="0.1" dist.discrete=true dist.numcells=12 # -->OK # # bernoulli # [Run 520] dist.variate=bernoulli(0.2) dist.excel="if(A%=0,0.2,0.8)" dist.discrete=true dist.numcells=2 # -->OK # # binomial # [Run 530] dist.variate=binomial(1, 0.2) dist.excel="BINOMDIST(A%d,1,0.2,0)" dist.discrete=true dist.numcells=5 # -->OK [Run 531] dist.variate=binomial(10,0.2) dist.excel="BINOMDIST(A%d,10,0.2,0)" dist.discrete=true dist.numcells=15 # -->OK [Run 532] dist.variate=binomial(10,0) dist.excel="BINOMDIST(A%d,10,0,0)" dist.discrete=true dist.numcells=15 # -->OK [Run 533] dist.variate=binomial(10,1) dist.excel="BINOMDIST(A%d,10,1,0)" dist.discrete=true dist.numcells=15 # -->OK # # geometric # [Run 540] dist.variate=geometric(0.2) dist.excel="NEGBINOMDIST(A%d,1,0.2)" dist.discrete=true dist.numcells=20 # -->OK [Run 541] dist.variate=geometric(0.8) dist.excel="NEGBINOMDIST(A%d,1,0.8)" dist.discrete=true dist.numcells=20 # -->OK # # negbinomial # [Run 550] dist.variate=negbinomial(5,0.2) dist.excel="NEGBINOMDIST(A%d,5,0.2)" dist.discrete=true dist.numcells=20 # -->OK # # hypergeometric # # excel has different parameters: if we have (a,b,n), it expects (n,a,a+b) # # here we cannot test because hypergeometric is broken! # ;[Run 560] ;dist.variate=hypergeometric(5,5,1) ;dist.excel="HYPGEOMDIST(A%d,1,5,10)" ;dist.discrete=true ;dist.numcells=10 ;[Run 561] ;dist.variate=hypergeometric(5,5,2) ;dist.excel="HYPGEOMDIST(A%d,2,5,10)" ;dist.discrete=true ;dist.numcells=10 ;[Run 562] ;dist.variate=hypergeometric(0,10,1) ;dist.excel="HYPGEOMDIST(A%d,1,0,10)" ;dist.discrete=true ;dist.numcells=10 # # poisson # # we use different algorithms under 30 and above 30 # [Run 570] dist.variate=poisson(5) dist.excel="POISSON(A%d,5,0)" dist.discrete=true dist.numcells=20 # -->OK [Run 571] dist.variate=poisson(29) dist.excel="POISSON(A%d,29,0)" dist.discrete=true dist.numcells=20 # -->OK [Run 572] dist.variate=poisson(31) dist.excel="POISSON(A%d,31,0)" dist.discrete=true dist.numcells=20 # -->similar but slight MISMATCH: POISSON's peak is 0.07, ours is 0.08 [Run 573] dist.variate=poisson(50) dist.excel="POISSON(A%d,50,0)" dist.discrete=true dist.numcells=20 # -->similar but slight MISMATCH: POISSON's peak is 0.056, ours is 0.063