File: t_ConditionalDistribution_std.py

package info (click to toggle)
openturns 1.7-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 38,588 kB
  • ctags: 26,495
  • sloc: cpp: 144,032; python: 26,855; ansic: 7,868; sh: 419; makefile: 263; yacc: 123; lex: 44
file content (131 lines) | stat: -rwxr-xr-x 5,006 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#! /usr/bin/env python

from __future__ import print_function
from openturns import *

TESTPREAMBLE()
RandomGenerator.SetSeed(0)

try:
    # Multivariate case
    coll2 = DistributionCollection(0)
    coll2.add(Dirac(1))
    coll2.add(Dirac(2))
    coll2.add(Bernoulli(0.7))
    coll2.add(Uniform(3.0, 4.0))
    d2 = ComposedDistribution(coll2)
    coll1 = DistributionCollection(0)
    coll1.add(Uniform())
    coll1.add(Uniform())
    d1 = ComposedDistribution(coll1)
    distribution = ConditionalDistribution(d1, d2)
    dim = distribution.getDimension()
    print("distribution=", distribution)
    print("Parameters ", distribution.getParametersCollection())
    print("Mean ", distribution.getMean())
    print("Covariance ", distribution.getCovariance().clean(1e-10))
    # Is this distribution an elliptical distribution?
    print("Elliptical distribution= ", distribution.isElliptical())
    # Has this distribution an elliptical copula?
    print("Elliptical copula= ", distribution.hasEllipticalCopula())
    # Has this distribution an independent copula?
    print("Independent copula= ", distribution.hasIndependentCopula())
    # Test for realization of distribution
    oneRealization = distribution.getRealization()
    print("oneRealization=", oneRealization)
    # Test for sampling
    size = 10
    oneSample = distribution.getSample(size)
    print("oneSample=", oneSample)

    # Test for sampling
    size = 10000
    anotherSample = distribution.getSample(size)
    print("anotherSample mean=", anotherSample.computeMean())
    print("anotherSample covariance=", anotherSample.computeCovariance())

    # Define a point
    zero = NumericalPoint(dim, 0.0)

    # Show PDF and CDF of zero point
    zeroPDF = distribution.computePDF(zero)
    zeroCDF = distribution.computeCDF(zero)
    print("Zero point= ", zero, " pdf=", zeroPDF, " cdf=", zeroCDF)

    # Get 95% quantile
    quantile = distribution.computeQuantile(0.95)
    print("Quantile=", quantile)
    print("CDF(quantile)= %.12g" % distribution.computeCDF(quantile))

    # "
    # 1D tests
    # Create a collection of distribution
    conditionedDistribution = Normal()
    conditioningDistributionCollection = DistributionCollection(0)
    # First conditioning distribution: continuous/continuous
    atoms = DistributionCollection(0)
    atoms.add(Uniform(0.0, 1.0))
    atoms.add(Uniform(1.0, 2.0))
    conditioningDistributionCollection.add(ComposedDistribution(atoms))
    # Second conditioning distribution: discrete/continuous
    atoms = DistributionCollection(0)
    atoms.add(Binomial(3, 0.5))
    atoms.add(Uniform(1.0, 2.0))
    conditioningDistributionCollection.add(ComposedDistribution(atoms))
    # Third conditioning distribution: dirac/continuous
    atoms = DistributionCollection(0)
    atoms.add(Dirac(0.5))
    atoms.add(Uniform(1.0, 2.0))
    conditioningDistributionCollection.add(ComposedDistribution(atoms))
    for i in range(conditioningDistributionCollection.getSize()):
        print("conditioning distribution=",
              conditioningDistributionCollection[i])
        distribution = ConditionalDistribution(
            conditionedDistribution, conditioningDistributionCollection[i])
        dim = distribution.getDimension()
        print("Distribution ", distribution)
        print("Parameters ", distribution.getParametersCollection())
        print("Mean ", distribution.getMean())
        print("Covariance ", distribution.getCovariance())
        # Is this distribution an elliptical distribution?
        print("Elliptical distribution= ", distribution.isElliptical())

        # Has this distribution an elliptical copula?
        print("Elliptical copula= ", distribution.hasEllipticalCopula())

        # Has this distribution an independent copula?
        print("Independent copula= ", distribution.hasIndependentCopula())

        # Test for realization of distribution
        oneRealization = distribution.getRealization()
        print("oneRealization=", oneRealization)

        # Test for sampling
        size = 10
        oneSample = distribution.getSample(size)
        print("oneSample=", oneSample)

        # Test for sampling
        size = 10000
        anotherSample = distribution.getSample(size)
        print("anotherSample mean=", anotherSample.computeMean())
        print("anotherSample covariance=", anotherSample.computeCovariance())

        # Define a point
        zero = NumericalPoint(dim, 0.0)

        # Show PDF and CDF of zero point
        zeroPDF = distribution.computePDF(zero)
        zeroCDF = distribution.computeCDF(zero)
        print("Zero point= ", zero, " pdf=%.6f" %
              zeroPDF, " cdf=%.6f" % zeroCDF)

        # Get 95% quantile
        quantile = distribution.computeQuantile(0.95)
        print("Quantile=", quantile)
        print("CDF(quantile)= %.12g" % distribution.computeCDF(quantile))

except:
    import sys
    print("t_ConditionalDistribution_std.py",
          sys.exc_info()[0], sys.exc_info()[1])