Hi Regis,

Thank you for this detailed answer.

So now that I am able to construct a composed distribution mixing continuous 
and discrete parameters,
is there any objection to use this for Sobol' indices using the 
ot.SobolIndicesExperiment?
From what I am seeing, it generates some doubloons so I was wondering if this 
was still correct.

Also, I do not quite understand why the sampling is not deterministic. I 
thought it was based on a deterministic Sobol’ sequence.
Can you clarify what’s behind this method?

Thank again for you insights.

Cheers,

Pamphile



> Le 8 nov. 2017 à 22:59, regis lebrun <[email protected]> a 
> écrit :
> 
> Hi Pamphile,
> 
> You can also have a look at the output of 
> DistributionFactory.GetDiscreteMultivariateFactories() and 
> DistributionFactory.GetDiscreteUnivariateFactories() to get the list of all 
> the discrete distributions for which a parametric estimation method has been 
> implemented. Not exactly what you asked for, but rather close.
> 
> You mentioned the Multinomial distribution. Be aware of the fact that we 
> don't implement the textbook multinomial distribution (for which 
> X_1+...+X_d=n) because:
> 1) This distribution is not absolutely continuous wrt the discrete Lebesgues 
> measure on {0,...,n}^d
> 2) As such, it does not correspond to the binomial distribution for any 
> choice of the parameters
> 3) Our definition allows to recover the classical one using an obvious trick 
> (set the d+1 component of the probability vector to 0)
> 
> You have noticed that the UserDefined class allows to define any (ie 
> arbitrary dimension, arbitrary finite support size) discrete distribution 
> with finite support. It is why the list of discrete distributions is much 
> shorter than the list of absolutely continuous distributions.
> 
> For a given distribution, you can check if it is continuous 
> (myDist.isContinuous()), discrete (myDist.isDiscrete(), which is NOT the 
> negation of isContinuous()) or integral (myDist.isIntegral()), this last 
> property allowing to check if the support is part of a lattice, very useful 
> eg to apply Poisson's summation formula.
> 
> Using the Mixture class, you can easily build a distribution which is neither 
> continuous nor discrete, think about the waiting time at a traffic light as 
> an application.
> 
> You can get the discrete distribution of a linear combination of independent 
> discrete distributions using the RandomMixture class. It is limited to 
> univariate distributions for now.
> 
> A++
> 
> Régis
> 
> Le mercredi 8 novembre 2017 à 14:27:36 UTC+1, Julien Schueller | Phimeca 
> <[email protected]> a écrit :
> 
> 
> Hi Roy,
> 
> 
> There are several discrete distributions:
> 
> - Poisson
> 
> - Binomial
> 
> - Multinomial
> 
> - Dirac
> 
> - Geometric
> 
> - Skellam
> 
> - Bernoulli
> 
> - NegativeBinomial
> 
> - UserDefined
> 
> - ZipfMandelbrot
> 
> 
> 
> Maybe they should be highlighted in the doc.
> 
> 
> 
> j
> De : [email protected] <[email protected]> de la part de 
> roy <[email protected]>
> Envoyé : mercredi 8 novembre 2017 14:14:04
> À : users
> Objet : [ot-users] Discrete distribution
>  
> Hi everyone,
> 
> I was looking at a way to have discrete distribution.
> From the doc there is no discrete distribution (or I missed it) so I wanted 
> to use scipy’s distributions
> and wrap them with ot.SciPyDistribution. But with randint I got this issue :
> 
> >>> ot.SciPyDistribution(randint)
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File 
> "/Users/roy/Applications/miniconda3/envs/batman3/lib/python3.6/site-packages/openturns/model_copula.py",
>  line 3047, in __init__
>     raise TypeError('Argument is not a scipy distribution')
> TypeError: Argument is not a scipy distribution
> 
> I tried commenting the raise and it seems to work as I expected. But I 
> suppose the raise is here for a reason.
> 
> Until then I am using this:
> 
> from scipy.stats import randint
> import openturns as ot
> 
> rv = randint(10, 20)
> points = ot.Sample(10000, 1)
> for i in range(10000):
>     points[i] = (rv.rvs(),)
> 
> disc_dist = ot.UserDefined(points)
> 
> Thanks.
> 
> Sincerely,
> 
> Pamphile ROY
> Chercheur doctorant en Quantification d’Incertitudes
> CERFACS - Toulouse (31) - France
> +33 (0) 5 61 19 31 57
> +33 (0) 7 86 43 24 22
> 
> 
> 
> _______________________________________________
> OpenTURNS users mailing list
> [email protected] <mailto:[email protected]>
> http://openturns.org/mailman/listinfo/users 
> <http://openturns.org/mailman/listinfo/users>
> _______________________________________________
> OpenTURNS users mailing list
> [email protected]
> http://openturns.org/mailman/listinfo/users

_______________________________________________
OpenTURNS users mailing list
[email protected]
http://openturns.org/mailman/listinfo/users

Reply via email to