toggle all code blocks

...
"""Sum of two dependent variables.""" from pylab import legend, figure, title from pacal import *
.
Using compiled interpolation routine
Compiled sparse grid routine not available
...
X = UniformDistr(1, 2, sym="X") Y = BetaDistr(2, 2, sym="Y") U = X + Y U.setSym("U") colors = "kbgrcmy" title("Bivariate normal") for i, theta in enumerate([-0.9, -0.5, 0.5, 0.9]): print "theta=", theta ci = NDNormalDistr([0, 0], [[1, theta],[theta, 1]]) Mi = TwoVarsModel(ci, ci.Vars[0] + ci.Vars[1]) funi = Mi.eval() funi.plot(label = "theta={0}".format(theta), color = colors[i]) funi.summary()
.
theta= -0.9
============= summary =============
  PDISTR(-inf,inf)
                mean  =  -8.4076490344461852e-17
                 var  =  0.19999999999999996
            skewness  =  1.5470381899813639e-15
            kurtosis  =  2.9999999999999947
             entropy  =  0.61421957698762208
              median  =  0.0
                mode  =  7.44960108190967e-09
            medianad  =  0.3016409863130577
      iqrange(0.025)  =  1.7530450811531637
            ci(0.05)  =  (-0.8765225405765831, 0.8765225405765806)
               range  =  (-inf, inf)
             tailexp  =  (0, 0)
             int_err  =  -6.6613381477509392e-16
theta= -0.5
============= summary =============
  PDISTR(-inf,inf)
                mean  =  0.0
                 var  =  1.0000000000000002
            skewness  =  3.8857805861880464e-16
            kurtosis  =  3.0000000000000013
             entropy  =  1.4189385332046736
              median  =  0.0
                mode  =  2.273415680150447e-08
            medianad  =  0.6744897501960816
      iqrange(0.025)  =  3.9199279690800957
            ci(0.05)  =  (-1.959963984540053, 1.9599639845400427)
               range  =  (-inf, inf)
             tailexp  =  (-235.71613043125419, -235.71613043125419)
             int_err  =  -6.6613381477509392e-16
theta= 0.5
============= summary =============
  PDISTR(-inf,inf)
                mean  =  2.2204460492503131e-16
                 var  =  3.0000000000000027
            skewness  =  0.0
            kurtosis  =  2.9999999999999987
             entropy  =  1.9682446775387281
              median  =  0.0
                mode  =  3.2760631161472527e-08
            medianad  =  1.1682505165240524
      iqrange(0.025)  =  6.789514404457014
            ci(0.05)  =  (-3.394757202228517, 3.3947572022284973)
               range  =  (-inf, inf)
             tailexp  =  (-78.572043477084733, -78.572043477084748)
             int_err  =  -6.6613381477509392e-16
theta= 0.9
============= summary =============
  PDISTR(-inf,inf)
                mean  =  5.5511151231257827e-17
                 var  =  3.8000000000000034
            skewness  =  1.1990155676335915e-16
            kurtosis  =  2.9999999999999996
             entropy  =  2.0864390665708443
              median  =  0.0
                mode  =  2.6029869451932192e-08
            medianad  =  1.3148225765685222
      iqrange(0.025)  =  7.641346352217874
            ci(0.05)  =  (-3.8206731761088686, 3.8206731761090054)
               range  =  (-inf, inf)
             tailexp  =  (-284.96125040713093, -284.96125040713105)
             int_err  =  -6.6613381477509392e-16
...
legend() show()
.
sum_dependent_pyreport_0.png
...
figure() title("GumbelCopula") for i, theta in enumerate([1, 5, 10, 15]): print "theta=", theta ci = GumbelCopula(marginals=[X, Y], theta=theta) Mi = TwoVarsModel(ci, U) funi = Mi.eval() funi.plot(label = "theta={0}".format(theta), color = colors[i]) funi.summary()
.
theta= 1
============= summary =============
  PDISTR(1.0,3.0)
                mean  =  1.9999999999999998
                 var  =  0.13333333333333333
            skewness  =  1.9953090755351639e-15
            kurtosis  =  2.410714285714286
             entropy  =  0.39609176287256442
              median  =  2.0
                mode  =  1.9999999662226453
            medianad  =  0.2663852521625171
      iqrange(0.025)  =  1.38151947132566
            ci(0.05)  =  (1.3092402643371701, 2.69075973566283)
               range  =  (1.0, 3.0)
             tailexp  =  (None, None)
             int_err  =  1.1102230246251565e-16
theta= 5
============= summary =============
  PDISTR(1.0,3.0)
                mean  =  1.9999999951707179
                 var  =  0.25482305407741646
            skewness  =  0.020576292821770339
            kurtosis  =  1.9455234190728341
             entropy  =  0.64307641687453254
              median  =  1.9953587437002176
                mode  =  1.9130523565037458
            medianad  =  0.416055594134902
      iqrange(0.025)  =  1.7448638985136915
            ci(0.05)  =  (1.1335946904966798, 2.8784585890103713)
               range  =  (1.0, 3.0)
             tailexp  =  (None, None)
             int_err  =  -7.9211193160233506e-10
theta= 10
============= summary =============
  PDISTR(1.0,3.0)
                mean  =  1.9999997112993448
                 var  =  0.26009603510786028
            skewness  =  0.0058464049709241548
            kurtosis  =  1.9335745577335595
             entropy  =  0.64882780413091501
              median  =  1.9987028905108615
                mode  =  1.9754600343288466
            medianad  =  0.42187205230061176
      iqrange(0.025)  =  1.7567466849594569
            ci(0.05)  =  (1.1234359061296857, 2.8801825910891425)
               range  =  (1.0, 3.0)
             tailexp  =  (None, None)
             int_err  =  9.6046346875766631e-08
theta= 15
============= summary =============
  PDISTR(1.0,3.0)
                mean  =  1.9999996736712253
                 var  =  0.26109680319935952
            skewness  =  0.0027051874111487292
            kurtosis  =  1.9318390833294485
             entropy  =  0.6499245096916122
              median  =  1.9994065499403808
                mode  =  1.9889611374005454
            medianad  =  0.42287900167849546
      iqrange(0.025)  =  1.7592406838435208
            ci(0.05)  =  (1.1212353827462243, 2.880476066589745)
               range  =  (1.0, 3.0)
             tailexp  =  (None, None)
             int_err  =  1.0873587541482266e-07
...
legend() show()
.
sum_dependent_pyreport_1.png
...
figure() title("FrankCopula") for i, theta in enumerate([-15, -5, 5, 15]): print "theta=", theta ci = FrankCopula(marginals=[X, Y], theta=theta) Mi = TwoVarsModel(ci, U) funi = Mi.eval() funi.plot(label = "theta={0}".format(theta), color = colors[i]) funi.summary()
.
theta= -15
============= summary =============
  PDISTR(1.0,3.0)
                mean  =  2.0000000000000018
                 var  =  0.014252846375995413
            skewness  =  -4.9561165338666605e-14
            kurtosis  =  3.1026770429169201
             entropy  =  -0.70732953618959726
              median  =  2.0
                mode  =  1.9999999662226453
            medianad  =  0.08159211759527814
      iqrange(0.025)  =  0.4631399525971742
            ci(0.05)  =  (1.7684300237014112, 2.2315699762985854)
               range  =  (1.0, 3.0)
             tailexp  =  (None, None)
             int_err  =  -8.8817841970012523e-16
theta= -5
============= summary =============
  PDISTR(1.0,3.0)
                mean  =  2.0000000000000075
                 var  =  0.050819791699204815
            skewness  =  -1.0092089390902306e-13
            kurtosis  =  3.2393339859713373
             entropy  =  -0.072110299933113603
              median  =  2.0
                mode  =  1.9999999662226453
            medianad  =  0.1479471275093111
      iqrange(0.025)  =  0.8947141015719
            ci(0.05)  =  (1.552642949214042, 2.447357050785942)
               range  =  (1.0, 3.0)
             tailexp  =  (None, None)
             int_err  =  -3.9968028886505635e-15
theta= 5
============= summary =============
  PDISTR(1.0,3.0)
                mean  =  1.9999999999993949
                 var  =  0.21584687496736882
            skewness  =  3.2434231701055022e-12
            kurtosis  =  1.9435041168803537
             entropy  =  0.57186445211896797
              median  =  2.0
                mode  =  2.0000002471148388
            medianad  =  0.3865083447697602
      iqrange(0.025)  =  1.6020867102653753
            ci(0.05)  =  (1.1989566448676232, 2.8010433551329985)
               range  =  (1.0, 3.0)
             tailexp  =  (None, None)
             int_err  =  2.3570034812792073e-13
theta= 15
============= summary =============
  PDISTR(1.0,3.0)
                mean  =  1.9999999951215526
                 var  =  0.25241381916469757
            skewness  =  2.1774455345141749e-08
            kurtosis  =  1.8815335283714438
             entropy  =  0.62222038390773993
              median  =  2.0000000000012985
                mode  =  1.9999999662226453
            medianad  =  0.4237983767557643
      iqrange(0.025)  =  1.696379505783155
            ci(0.05)  =  (1.1518102485389006, 2.8481897543220556)
               range  =  (1.0, 3.0)
             tailexp  =  (None, None)
             int_err  =  1.747190170320323e-09
...
legend() show()
.
sum_dependent_pyreport_2.png
...
figure() title("ClaytonCopula") for i, theta in enumerate([1, 5, 10, 15]): print "theta=", theta ci = ClaytonCopula(marginals=[X, Y], theta=theta) Mi = TwoVarsModel(ci, U) funi = Mi.eval() funi.plot(label = "theta={0}".format(theta), color = colors[i]) funi.summary()
.
theta= 1
============= summary =============
  PDISTR(1.0,3.0)
                mean  =  2.0000000000364384
                 var  =  0.19571100819203385
            skewness  =  -0.19611795181203159
            kurtosis  =  2.1625498665634639
             entropy  =  0.54717515342304635
              median  =  2.0337659089824363
                mode  =  2.2216523787949884
            medianad  =  0.3389231816727535
      iqrange(0.025)  =  1.5998146003012104
            ci(0.05)  =  (1.1482688538414556, 2.748083454142666)
               range  =  (1.0, 3.0)
             tailexp  =  (None, None)
             int_err  =  -3.6436631489777938e-11
theta= 5
============= summary =============
  PDISTR(1.0,3.0)
                mean  =  1.9999999969715545
                 var  =  0.24685911350040657
            skewness  =  -0.097077165513144756
            kurtosis  =  1.9056681466455871
             entropy  =  0.61769161817013596
              median  =  2.0189050049787216
                mode  =  2.5026987825891815
            medianad  =  0.4170751037475204
      iqrange(0.025)  =  1.6930481603214609
            ci(0.05)  =  (1.12105142527015, 2.814099585591611)
               range  =  (1.0, 3.0)
             tailexp  =  (None, None)
             int_err  =  3.0283809904219083e-09
theta= 10
============= summary =============
  PDISTR(1.0,3.0)
                mean  =  1.9999999064219351
                 var  =  0.25623144470808157
            skewness  =  -0.045954201573265144
            kurtosis  =  1.8963931717206943
             entropy  =  0.63245970073763291
              median  =  2.0060883179281133
                mode  =  1.9966056015039866
            medianad  =  0.4255026549531106
      iqrange(0.025)  =  1.7198248313403783
            ci(0.05)  =  (1.119766766359128, 2.8395915976995063)
               range  =  (1.0, 3.0)
             tailexp  =  (None, None)
             int_err  =  9.356893182488335e-08
theta= 15
============= summary =============
  PDISTR(1.0,3.0)
                mean  =  1.9999998882878809
                 var  =  0.25891506130583752
            skewness  =  -0.026848470676597538
            kurtosis  =  1.9042006348551108
             entropy  =  0.63818577466318882
              median  =  2.002792065433201
                mode  =  1.9912027379725326
            medianad  =  0.4253511696443957
      iqrange(0.025)  =  1.7324335597004805
            ci(0.05)  =  (1.119512057343778, 2.8519456170442585)
               range  =  (1.0, 3.0)
             tailexp  =  (None, None)
             int_err  =  1.11699159699441e-07
...
legend() show()
.
sum_dependent_pyreport_3.png
...
figure() Y2 = NormalDistr(sym="Y2") U2 = X + Y2 U2.setSym("U2") title("FrankCopula - infinite domain") for i, theta in enumerate([1, 5, 10, 15]): print "theta=", theta ci = FrankCopula(marginals=[X, Y2], theta=theta) Mi = TwoVarsModel(ci, U2) funi = Mi.eval() funi.plot(label = "theta={0}".format(theta), color = colors[i]) funi.summary()
.
theta= 1
============= summary =============
  PDISTR(-inf,inf)
                mean  =  1.4999999999999114
                 var  =  1.1760977653499005
            skewness  =  -3.7120448202495482e-12
            kurtosis  =  2.9008505150711299
             entropy  =  1.4997775573826075
              median  =  1.499999999999926
                mode  =  1.499999977751401
            medianad  =  0.743125587270784
      iqrange(0.025)  =  4.22072217230861
            ci(0.05)  =  (-0.6103610861550173, 3.6103610861535933)
               range  =  (-inf, inf)
             tailexp  =  (0, -206.78393880459012)
             int_err  =  -3.0864200084579352e-14
theta= 5
============= summary =============
  PDISTR(-inf,inf)
                mean  =  1.5000000000005342
                 var  =  1.4442688475770611
            skewness  =  2.9031894898386142e-11
            kurtosis  =  2.6561178387832109
             entropy  =  1.5986951947623518
              median  =  1.5000000000010352
                mode  =  1.4999999777510125
            medianad  =  0.863588230748861
      iqrange(0.025)  =  4.570589850460351
            ci(0.05)  =  (-0.7852949252258755, 3.7852949252344756)
               range  =  (-inf, inf)
             tailexp  =  (0, -206.54332568089612)
             int_err  =  5.2813309281418697e-13
theta= 10
============= summary =============
  PDISTR(-inf,inf)
                mean  =  1.50000000000633
                 var  =  1.5645352643987716
            skewness  =  -6.3340741447622797e-12
            kurtosis  =  2.5756819079151407
             entropy  =  1.6362627953803246
              median  =  1.4999999999999145
                mode  =  1.5000000000009328
            medianad  =  0.9129146444021918
      iqrange(0.025)  =  4.715497372223692
            ci(0.05)  =  (-0.8577486861242801, 3.8577486860994115)
               range  =  (-inf, inf)
             tailexp  =  (0, -206.36363601971664)
             int_err  =  -1.8627321907160876e-12
theta= 15
============= summary =============
  PDISTR(-inf,inf)
                mean  =  1.4999999936196864
                 var  =  1.6036726958254053
            skewness  =  4.4971850583152206e-09
            kurtosis  =  2.566386772288419
             entropy  =  1.648459737468678
              median  =  1.5000000000026361
                mode  =  1.5000000220972796
            medianad  =  0.9232041668621214
      iqrange(0.025)  =  4.771050663975748
            ci(0.05)  =  (-0.8855253216886823, 3.885525342287066)
               range  =  (-inf, inf)
             tailexp  =  (0, -206.24905431136978)
             int_err  =  1.7482739700369621e-09
...
legend() show()
.
sum_dependent_pyreport_4.png