Blame demo/prob2.dem

Packit 0986c0
#
Packit 0986c0
# $Id: prob2.dem,v 1.9 2006/06/14 03:24:09 sfeam Exp $
Packit 0986c0
#
Packit 0986c0
# Demo Statistical Approximations version 1.1
Packit 0986c0
#
Packit 0986c0
# Copyright (c) 1991, Jos van der Woude, jvdwoude@hut.nl
Packit 0986c0
Packit 0986c0
# History:
Packit 0986c0
#    -- --- 1991 Jos van der Woude:  1st version
Packit 0986c0
#    06 Jun 2006 Dan Sebald:  Added plot methods for better visual effect.
Packit 0986c0
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print "                        Statistical Approximations, version 1.1"
Packit 0986c0
print ""
Packit 0986c0
print "        Copyright (c) 1991, 1992, Jos van de Woude, jvdwoude@hut.nl"
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print ""
Packit 0986c0
print "     NOTE: contains 10 plots and consequently takes some time to run"
Packit 0986c0
print "                      Press Ctrl-C to exit right now"
Packit 0986c0
print ""
Packit 0986c0
pause   -1 "                      Press Return to start demo ..."
Packit 0986c0
Packit 0986c0
load "stat.inc"
Packit 0986c0
rnd(x) = floor(x+0.5)
Packit 0986c0
r_xmin = -1
Packit 0986c0
r_sigma = 4.0
Packit 0986c0
Packit 0986c0
# Binomial PDF using normal approximation
Packit 0986c0
n = 25; p = 0.15
Packit 0986c0
mu = n * p
Packit 0986c0
sigma = sqrt(n * p * (1.0 - p))
Packit 0986c0
xmin = floor(mu - r_sigma * sigma)
Packit 0986c0
xmin = xmin < r_xmin ? r_xmin : xmin
Packit 0986c0
xmax = ceil(mu + r_sigma * sigma)
Packit 0986c0
ymax = 1.1 * binom(floor((n+1)*p), n, p) #mode of binomial PDF used
Packit 0986c0
set key box
Packit 0986c0
unset zeroaxis
Packit 0986c0
set xrange [xmin - 1 : xmax + 1]
Packit 0986c0
set yrange [0 : ymax]
Packit 0986c0
set xlabel "k, x ->"
Packit 0986c0
set ylabel "probability density ->"
Packit 0986c0
set ytics 0, ymax / 10.0, ymax
Packit 0986c0
set format x "%2.0f"
Packit 0986c0
set format y "%3.2f"
Packit 0986c0
set sample 200
Packit 0986c0
set title "binomial PDF using normal approximation"
Packit 0986c0
set arrow from mu, 0 to mu, normal(mu, mu, sigma) nohead
Packit 0986c0
set arrow from mu, normal(mu + sigma, mu, sigma) \
Packit 0986c0
          to mu + sigma, normal(mu + sigma, mu, sigma) nohead
Packit 0986c0
set label "mu" at mu + 0.5, ymax / 10
Packit 0986c0
set label "sigma" at mu + 0.5 + sigma, normal(mu + sigma, mu, sigma)
Packit 0986c0
plot binom(rnd(x), n, p) with histeps, normal(x, mu, sigma)
Packit 0986c0
pause -1 "Hit return to continue"
Packit 0986c0
unset arrow
Packit 0986c0
unset label
Packit 0986c0
Packit 0986c0
# Binomial PDF using poisson approximation
Packit 0986c0
n = 50; p = 0.1
Packit 0986c0
mu = n * p
Packit 0986c0
sigma = sqrt(mu)
Packit 0986c0
xmin = floor(mu - r_sigma * sigma)
Packit 0986c0
xmin = xmin < r_xmin ? r_xmin : xmin
Packit 0986c0
xmax = ceil(mu + r_sigma * sigma)
Packit 0986c0
ymax = 1.1 * binom(floor((n+1)*p), n, p) #mode of binomial PDF used
Packit 0986c0
set key box
Packit 0986c0
unset zeroaxis
Packit 0986c0
set xrange [xmin - 1 : xmax + 1]
Packit 0986c0
set yrange [0 : ymax]
Packit 0986c0
set xlabel "k ->"
Packit 0986c0
set ylabel "probability density ->"
Packit 0986c0
set ytics 0, ymax / 10.0, ymax
Packit 0986c0
set format x "%2.0f"
Packit 0986c0
set format y "%3.2f"
Packit 0986c0
set sample (xmax - xmin + 3)
Packit 0986c0
set title "binomial PDF using poisson approximation"
Packit 0986c0
set arrow from mu, 0 to mu, normal(mu, mu, sigma) nohead
Packit 0986c0
set arrow from mu, normal(mu + sigma, mu, sigma) \
Packit 0986c0
          to mu + sigma, normal(mu + sigma, mu, sigma) nohead
Packit 0986c0
set label "mu" at mu + 0.5, ymax / 10
Packit 0986c0
set label "sigma" at mu + 0.5 + sigma, normal(mu + sigma, mu, sigma)
Packit 0986c0
plot binom(x, n, p) with histeps, poisson(x, mu) with histeps
Packit 0986c0
pause -1 "Hit return to continue"
Packit 0986c0
unset arrow
Packit 0986c0
unset label
Packit 0986c0
Packit 0986c0
# Geometric PDF using gamma approximation
Packit 0986c0
p = 0.3
Packit 0986c0
mu = (1.0 - p) / p
Packit 0986c0
sigma = sqrt(mu / p)
Packit 0986c0
lambda = p
Packit 0986c0
rho = 1.0 - p
Packit 0986c0
xmin = floor(mu - r_sigma * sigma)
Packit 0986c0
xmin = xmin < r_xmin ? r_xmin : xmin
Packit 0986c0
xmax = ceil(mu + r_sigma * sigma)
Packit 0986c0
ymax = 1.1 * p
Packit 0986c0
set key box
Packit 0986c0
unset zeroaxis
Packit 0986c0
set xrange [xmin - 1 : xmax + 1]
Packit 0986c0
set yrange [0 : ymax]
Packit 0986c0
set xlabel "k, x ->"
Packit 0986c0
set ylabel "probability density ->"
Packit 0986c0
set ytics 0, ymax / 10.0, ymax
Packit 0986c0
set format x "%2.0f"
Packit 0986c0
set format y "%3.2f"
Packit 0986c0
set sample 200
Packit 0986c0
set title "geometric PDF using gamma approximation"
Packit 0986c0
set arrow from mu, 0 to mu, gmm(mu, rho, lambda) nohead
Packit 0986c0
set arrow from mu, gmm(mu + sigma, rho, lambda) \
Packit 0986c0
          to mu + sigma, gmm(mu + sigma, rho, lambda) nohead
Packit 0986c0
set label "mu" at mu + 0.5, ymax / 10
Packit 0986c0
set label "sigma" at mu + 0.5 + sigma, gmm(mu + sigma, rho, lambda)
Packit 0986c0
plot geometric(rnd(x),p) with histeps, gmm(x, rho, lambda)
Packit 0986c0
pause -1 "Hit return to continue"
Packit 0986c0
unset arrow
Packit 0986c0
unset label
Packit 0986c0
Packit 0986c0
# Geometric PDF using normal approximation
Packit 0986c0
p = 0.3
Packit 0986c0
mu = (1.0 - p) / p
Packit 0986c0
sigma = sqrt(mu / p)
Packit 0986c0
xmin = floor(mu - r_sigma * sigma)
Packit 0986c0
xmin = xmin < r_xmin ? r_xmin : xmin
Packit 0986c0
xmax = ceil(mu + r_sigma * sigma)
Packit 0986c0
ymax = 1.1 * p
Packit 0986c0
set key box
Packit 0986c0
unset zeroaxis
Packit 0986c0
set xrange [xmin - 1 : xmax + 1]
Packit 0986c0
set yrange [0 : ymax]
Packit 0986c0
set xlabel "k, x ->"
Packit 0986c0
set ylabel "probability density ->"
Packit 0986c0
set ytics 0, ymax / 10.0, ymax
Packit 0986c0
set format x "%2.0f"
Packit 0986c0
set format y "%3.2f"
Packit 0986c0
set sample 200
Packit 0986c0
set title "geometric PDF using normal approximation"
Packit 0986c0
set arrow from mu, 0 to mu, normal(mu, mu, sigma) nohead
Packit 0986c0
set arrow from mu, normal(mu + sigma, mu, sigma) \
Packit 0986c0
          to mu + sigma, normal(mu + sigma, mu, sigma) nohead
Packit 0986c0
set label "mu" at mu + 0.5, ymax / 10
Packit 0986c0
set label "sigma" at mu + 0.5 + sigma, normal(mu + sigma, mu, sigma)
Packit 0986c0
plot geometric(rnd(x),p) with histeps, normal(x, mu, sigma)
Packit 0986c0
pause -1 "Hit return to continue"
Packit 0986c0
unset arrow
Packit 0986c0
unset label
Packit 0986c0
Packit 0986c0
# Hypergeometric PDF using binomial approximation
Packit 0986c0
nn = 75; mm = 25; n = 10
Packit 0986c0
p = real(mm) / nn
Packit 0986c0
mu = n * p
Packit 0986c0
sigma = sqrt(real(nn - n) / (nn - 1.0) * n * p * (1.0 - p))
Packit 0986c0
xmin = floor(mu - r_sigma * sigma)
Packit 0986c0
xmin = xmin < r_xmin ? r_xmin : xmin
Packit 0986c0
xmax = ceil(mu + r_sigma * sigma)
Packit 0986c0
ymax = 1.1 * hypgeo(floor(mu), nn, mm, n) #mode of binom PDF used
Packit 0986c0
set key box
Packit 0986c0
unset zeroaxis
Packit 0986c0
set xrange [xmin - 1 : xmax + 1]
Packit 0986c0
set yrange [0 : ymax]
Packit 0986c0
set xlabel "k ->"
Packit 0986c0
set ylabel "probability density ->"
Packit 0986c0
set ytics 0, ymax / 10.0, ymax
Packit 0986c0
set format x "%2.0f"
Packit 0986c0
set format y "%3.2f"
Packit 0986c0
set sample (xmax - xmin + 3)
Packit 0986c0
set title "hypergeometric PDF using binomial approximation"
Packit 0986c0
set arrow from mu, 0 to mu, binom(floor(mu), n, p) nohead
Packit 0986c0
set arrow from mu, binom(floor(mu + sigma), n, p) \
Packit 0986c0
          to mu + sigma, binom(floor(mu + sigma), n, p) nohead
Packit 0986c0
set label "mu" at mu + 0.5, ymax / 10
Packit 0986c0
set label "sigma" at mu + 0.5 + sigma, binom(floor(mu + sigma), n, p)
Packit 0986c0
plot hypgeo(x, nn, mm, n) with histeps, binom(x, n, p) with histeps
Packit 0986c0
pause -1 "Hit return to continue"
Packit 0986c0
unset arrow
Packit 0986c0
unset label
Packit 0986c0
Packit 0986c0
# Hypergeometric PDF using normal approximation
Packit 0986c0
nn = 75; mm = 25; n = 10
Packit 0986c0
p = real(mm) / nn
Packit 0986c0
mu = n * p
Packit 0986c0
sigma = sqrt(real(nn - n) / (nn - 1.0) * n * p * (1.0 - p))
Packit 0986c0
xmin = floor(mu - r_sigma * sigma)
Packit 0986c0
xmin = xmin < r_xmin ? r_xmin : xmin
Packit 0986c0
xmax = ceil(mu + r_sigma * sigma)
Packit 0986c0
ymax = 1.1 * hypgeo(floor(mu), nn, mm, n) #mode of binom PDF used
Packit 0986c0
set key box
Packit 0986c0
unset zeroaxis
Packit 0986c0
set xrange [xmin - 1 : xmax + 1]
Packit 0986c0
set yrange [0 : ymax]
Packit 0986c0
set xlabel "k, x ->"
Packit 0986c0
set ylabel "probability density ->"
Packit 0986c0
set ytics 0, ymax / 10.0, ymax
Packit 0986c0
set format x "%2.0f"
Packit 0986c0
set format y "%3.2f"
Packit 0986c0
set sample 200
Packit 0986c0
set title "hypergeometric PDF using normal approximation"
Packit 0986c0
set arrow from mu, 0 to mu, normal(mu, mu, sigma) nohead
Packit 0986c0
set arrow from mu, normal(mu + sigma, mu, sigma) \
Packit 0986c0
          to mu + sigma, normal(mu + sigma, mu, sigma) nohead
Packit 0986c0
set label "mu" at mu + 0.5, ymax / 10
Packit 0986c0
set label "sigma" at mu + 0.5 + sigma, normal(mu + sigma, mu, sigma)
Packit 0986c0
plot hypgeo(rnd(x), nn, mm, n) with histeps, normal(x, mu, sigma)
Packit 0986c0
pause -1 "Hit return to continue"
Packit 0986c0
unset arrow
Packit 0986c0
unset label
Packit 0986c0
Packit 0986c0
# Negative binomial PDF using gamma approximation
Packit 0986c0
r = 8; p = 0.6
Packit 0986c0
mu = r * (1.0 - p) / p
Packit 0986c0
sigma = sqrt(mu / p)
Packit 0986c0
lambda = p
Packit 0986c0
rho = r * (1.0 - p)
Packit 0986c0
xmin = floor(mu - r_sigma * sigma)
Packit 0986c0
xmin = xmin < r_xmin ? r_xmin : xmin
Packit 0986c0
xmax = ceil(mu + r_sigma * sigma)
Packit 0986c0
ymax = 1.1 * gmm((rho - 1) / lambda, rho, lambda) #mode of gamma PDF used
Packit 0986c0
set key box
Packit 0986c0
unset zeroaxis
Packit 0986c0
set xrange [xmin - 1 : xmax + 1]
Packit 0986c0
set yrange [0 : ymax]
Packit 0986c0
set xlabel "k, x ->"
Packit 0986c0
set ylabel "probability density ->"
Packit 0986c0
set ytics 0, ymax / 10.0, ymax
Packit 0986c0
set format x "%2.0f"
Packit 0986c0
set format y "%3.2f"
Packit 0986c0
set sample 200
Packit 0986c0
set title "negative binomial PDF using gamma approximation"
Packit 0986c0
set arrow from mu, 0 to mu, gmm(mu, rho, lambda) nohead
Packit 0986c0
set arrow from mu, gmm(mu + sigma, rho, lambda) \
Packit 0986c0
          to mu + sigma, gmm(mu + sigma, rho, lambda) nohead
Packit 0986c0
set label "mu" at mu + 0.5, ymax / 10
Packit 0986c0
set label "sigma" at mu + 0.5 + sigma, gmm(mu + sigma, rho, lambda)
Packit 0986c0
plot negbin(rnd(x), r, p) with histeps, gmm(x, rho, lambda)
Packit 0986c0
pause -1 "Hit return to continue"
Packit 0986c0
unset arrow
Packit 0986c0
unset label
Packit 0986c0
Packit 0986c0
# Negative binomial PDF using normal approximation
Packit 0986c0
r = 8; p = 0.4
Packit 0986c0
mu = r * (1.0 - p) / p
Packit 0986c0
sigma = sqrt(mu / p)
Packit 0986c0
xmin = floor(mu - r_sigma * sigma)
Packit 0986c0
xmin = xmin < r_xmin ? r_xmin : xmin
Packit 0986c0
xmax = ceil(mu + r_sigma * sigma)
Packit 0986c0
ymax = 1.1 * negbin(floor((r-1)*(1-p)/p), r, p) #mode of gamma PDF used
Packit 0986c0
set key box
Packit 0986c0
unset zeroaxis
Packit 0986c0
set xrange [xmin - 1 : xmax + 1]
Packit 0986c0
set yrange [0 : ymax]
Packit 0986c0
set xlabel "k, x ->"
Packit 0986c0
set ylabel "probability density ->"
Packit 0986c0
set ytics 0, ymax / 10.0, ymax
Packit 0986c0
set format x "%2.0f"
Packit 0986c0
set format y "%3.2f"
Packit 0986c0
set sample 200
Packit 0986c0
set title "negative binomial PDF using normal approximation"
Packit 0986c0
set arrow from mu, 0 to mu, normal(mu, mu, sigma) nohead
Packit 0986c0
set arrow from mu, normal(mu + sigma, mu, sigma) \
Packit 0986c0
          to mu + sigma, normal(mu + sigma, mu, sigma) nohead
Packit 0986c0
set label "mu" at mu + 0.5, ymax / 10
Packit 0986c0
set label "sigma" at mu + 0.5 + sigma, normal(mu + sigma, mu, sigma)
Packit 0986c0
plot negbin(rnd(x), r, p) with histeps, normal(x, mu, sigma)
Packit 0986c0
pause -1 "Hit return to continue"
Packit 0986c0
unset arrow
Packit 0986c0
unset label
Packit 0986c0
Packit 0986c0
# Normal PDF using logistic approximation
Packit 0986c0
mu = 1.0; sigma = 1.5
Packit 0986c0
a = mu
Packit 0986c0
lambda = pi / (sqrt(3.0) * sigma)
Packit 0986c0
xmin = mu - r_sigma * sigma
Packit 0986c0
xmax = mu + r_sigma * sigma
Packit 0986c0
ymax = 1.1 * logistic(mu, a, lambda) #mode of logistic PDF used
Packit 0986c0
set key box
Packit 0986c0
unset zeroaxis
Packit 0986c0
set xrange [xmin: xmax]
Packit 0986c0
set yrange [0 : ymax]
Packit 0986c0
set xlabel "x ->"
Packit 0986c0
set ylabel "probability density ->"
Packit 0986c0
set ytics 0, ymax / 10.0, ymax
Packit 0986c0
set format x "%.1f"
Packit 0986c0
set format y "%.2f"
Packit 0986c0
set sample 200
Packit 0986c0
set title "normal PDF using logistic approximation"
Packit 0986c0
set arrow from mu,0 to mu, normal(mu, mu, sigma) nohead
Packit 0986c0
set arrow from mu, normal(mu + sigma, mu, sigma) \
Packit 0986c0
          to mu + sigma, normal(mu + sigma, mu, sigma) nohead
Packit 0986c0
set label "mu" at mu + 0.5, ymax / 10
Packit 0986c0
set label "sigma" at mu + 0.5 + sigma, normal(mu + sigma, mu, sigma)
Packit 0986c0
plot logistic(x, a, lambda), normal(x, mu, sigma)
Packit 0986c0
pause -1 "Hit return to continue"
Packit 0986c0
unset arrow
Packit 0986c0
unset label
Packit 0986c0
Packit 0986c0
# Poisson PDF using normal approximation
Packit 0986c0
mu = 5.0
Packit 0986c0
sigma = sqrt(mu)
Packit 0986c0
xmin = floor(mu - r_sigma * sigma)
Packit 0986c0
xmin = xmin < r_xmin ? r_xmin : xmin
Packit 0986c0
xmax = ceil(mu + r_sigma * sigma)
Packit 0986c0
ymax = 1.1 * poisson(mu, mu) #mode of poisson PDF used
Packit 0986c0
set key box
Packit 0986c0
unset zeroaxis
Packit 0986c0
set xrange [xmin - 1 : xmax + 1]
Packit 0986c0
set yrange [0 : ymax]
Packit 0986c0
set xlabel "k, x ->"
Packit 0986c0
set ylabel "probability density ->"
Packit 0986c0
set ytics 0, ymax / 10.0, ymax
Packit 0986c0
set format x "%2.0f"
Packit 0986c0
set format y "%3.2f"
Packit 0986c0
set sample 200
Packit 0986c0
set title "poisson PDF using normal approximation"
Packit 0986c0
set arrow from mu, 0 to mu, normal(mu, mu, sigma) nohead
Packit 0986c0
set arrow from mu, normal(mu + sigma, mu, sigma) \
Packit 0986c0
          to mu + sigma, normal(mu + sigma, mu, sigma) nohead
Packit 0986c0
set label "mu" at mu + 0.5, ymax / 10
Packit 0986c0
set label "sigma" at mu + 0.5 + sigma, normal(mu + sigma, mu, sigma)
Packit 0986c0
plot poisson(rnd(x), mu) with histeps, normal(x, mu, sigma)
Packit 0986c0
pause -1 "Hit return to continue"
Packit 0986c0
reset