New Version 8.1! |
Supports .NET 6.0.
Try it for free with our fully functional
60-day trial version.
|
QuickStart Samples
Discrete Distributions QuickStart Sample (IronPython)
Illustrates how to use the classes that represent discrete probability distributions in the Extreme.Statistics.Distributions namespace in IronPython.
C# code
Visual Basic code
F# code
Back to QuickStart Samples
import numerics
from System import Array
from Extreme.Statistics import *
from Extreme.Statistics.Distributions import *
#/ Demonstrates how to use classes that implement
#/ discrete probabililty distributions.
# This QuickStart Sample demonstrates the capabilities of
# the classes that implement discrete probability distributions.
# These classes inherit from the DiscreteDistribution class.
#
# For an illustration of classes that implement discrete probability
# distributions, see the ContinuousDistributions QuickStart Sample.
#
# We illustrate the properties and methods of discrete distribution
# using a binomial distribution. The same properties and methods
# apply to all other discrete distributions.
#
# Constructing distributions
#
# Many discrete probability distributions are related to Bernoulli trials, # events with a certain probability, p, of success. The number of trials
# is often one of the distribution's parameters.
# The binomial distribution has two constructors. Here, we create a
# binomial distribution for 6 trials with a probability of success of 0.6:
binomial = BinomialDistribution(6, 0.6)
# The distribution's parameters are available through the
# NumberOfTrials and ProbabilityOfSuccess properties:
print "# of trials: {0}".format(binomial.NumberOfTrials)
print "Prob. of success: {0:.5f}".format(binomial.ProbabilityOfSuccess)
#
# Basic statistics
#
# The Mean property returns the mean of the distribution:
print "Mean: {0:.5f}".format(binomial.Mean)
# The Variance and StandardDeviation are also available:
print "Variance: {0:.5f}".format(binomial.Variance)
print "Standard deviation: {0:.5f}".format(binomial.StandardDeviation)
# As are the skewness:
print "Skewness: {0:.5f}".format(binomial.Skewness)
# The Kurtosis property returns the kurtosis supplement.
# The Kurtosis property for the normal distribution returns zero.
print "Kurtosis: {0:.5f}".format(binomial.Kurtosis)
print
#
# Distribution functions
#
# The (cumulative) distribution function (CDF) is implemented by the
# DistributionFunction method:
print "CDF(4) = {0:.5f}".format(binomial.DistributionFunction(4))
# The probability density function (PDF) is available as the
# Probability method:
print "PDF(4) = {0:.5f}".format(binomial.Probability(4))
# The Probability method has an overload that returns the probability
# that a variate lies between two values:
print "Probability(3, 5) = {0:.5f}".format(binomial.Probability(3, 5))
print
#
# Random variates
#
# The Sample method returns a single random variate
# using the specified random number generator:
rng = Random.MersenneTwister()
x = binomial.Sample(rng)
# The Sample method fills an array or vector with
# random variates. It has several overloads:
xArray = Array.CreateInstance(int, 100)
# 1. Fill all values:
binomial.Sample(rng, xArray)
# 2. Fill only a range (start index and length are supplied)
binomial.Sample(rng, xArray, 20, 50)
# The GetExpectedHistogram method returns a Histogram that contains the
# expected number of samples in each bin:
h = binomial.GetExpectedHistogram(100)
print "Expected distribution of 100 samples:"
for bin in h.Bins:
print "{0} success(es) -> {1}".format(bin.LowerBound, bin.Value)
Copyright © 2003-2021, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.