Hi,
The Rosenblatt transformation is defined for the canonical ordering of the
variable, ie for a given multidimensional CDF F and a given input vector
x=(x_1,...,x_n) it computes the output vector z=(z_1,...,z_n) such that:
z_1=\Phi^{-1}(F_1(x_1)z_2=\Phi^{-1}(F_{2|1}(x_2|x_1)...z_n=\Phi^{-1}(F_{n|1,...,n-1}(x_n|x_1,...,x_{n-1})
Where:\Phi^{-1} is the inverse CDF of the standard Normal distribution and
F_{k|1,...,k-1} is the CDF of X_k knowing that X_1=x_1,...,X_{k-1}=x_{k-1}.
It can be built explicitely using the RosenblattEvaluation class. Assuming that
myDistribution is the identifier of your input distribution, you get your
transformation the following way:myTransformation =
Function(RosenblattTransformation(myDistribution))and you can then
composedmyTransformation with any other function.
If you want to build a transformation which maps a given multivariate
distribution with CDF F to another given distribution with CDF G, you can do
that using the DistributionTransformation class. For example, you can build the
previous Rosenblatt transformation using:myTransformation =
DistributionTransformation(myDistribution,
Normal(myDistribution.getDimension()))
It is exactly what is done within the FunctionalChaosAlgorithm class (FCA for
short). Your input distribution myDistribution is transformed into the measure
defining the inner product of your projection basis myMeasure, given by your
orthogonal function factory. If myFunction is the function you want to
approximate using FCA, and \psi is your orthonormal basis associated to
myMeasure, then it is H: z->myFunction(DistributionTransformation(myMeasure,
myDistribution)(z)) which is decomposed on
\psi:H(z)=\sum_{k=1}^N\alpha_k\psi_k(z)The approximation G of myFunction is
then:G(x)=H(DistributionTransformation(myDistribution, myMeasure)(x))
At the end, the Sobol indices computed by the FunctionalChaosSobolIndices are
the one linking Z, a random vector with independent components distributed
according to myMeasure, and H(Z). They are exactly the Sobol indices between X
(with distribution myDistribution) and G(X) if the transformation acts
componentwise (ie X has independent components), otherwise it is up to you to
go from the Z space into the X space (eg using Shapley's indices, see
https://pypi.org/project/shapley-effects/ and
https://gitlab.com/CEMRACS17/shapley-effects
There are many possible combinations of transformations, orthogonal bases and
so on. You can contact me directly if you want to further exchange on this
point, with a focus on your application.
Cheers
Régis
Le mercredi 19 juin 2019 à 17:04:21 UTC+2, Simon Rittel
<[email protected]> a écrit :
Hello Julien,
I appreciate that you try to help me reach my underlying objective.
Still I am not interested in ANCOVA proposed by Caniou (despite some
advantages it has), rather in a Rosenblatt transformation of dependent
variables into independent uniform ones in order to conduct then a PCE
so that one immediately receives mean and variance of the target model.
That's why I wonder how the in Openturns implemented Rosenblatt
transformation works, e. g. is it implemented only for some
distinctive known probabilities or uses it some kind of a kde obtained
from a arbitrary sample set.
Regards,
Simon
Quoting Julien Schueller | Phimeca <[email protected]>:
> <!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left:
> #800000 2px solid; } --><!-- p {margin-top:0; margin-bottom:0} -->
> ANCOVA is definitely what you are looking for, read again.
>
> If you use a PCE with the correlated data you'll get a correct sobol
> decomposition in the decorrelated input spaces through the
> iso-probabilistic transformation unfortunately these indices wont mean
> anything in terms of the actual original variables.
>
> j
>
> -------------------------
> DE : Simon Rittel <[email protected]>
> ENVOYé : lundi 17 juin 2019 16:23:31
> À : Julien Schueller | Phimeca
> CC : [email protected]
> OBJET : Re: [ot-users] reply: usage of
>
> Hello Julien,
>
> thank you for your reply.
> I should have mentioned in first place that I have read the paper on
> ANCOVA based on PCE. As far as I understood one neglects there the
> (necessary) assumption of independency of the input vectors in the PCE.
> I am rather interested in an approach where you define a specific
> ordering of the variables and make them independent. Can you provide
> me a short example how the implemented Rosenblatt transformation is
> supposed to work? Does it only worked the way it is implemented for
> some known distributions or incorporates it a kernel density
> estimation of a arbitrary data set?
>
> Thank you,
> Simon
>
> PS: Sorry for the fragmentary subject
>
> Quoting Julien Schueller | Phimeca <[email protected]>:
>
>> <!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left:
>> #800000 2px solid; } --><!-- p {margin-top:0; margin-bottom:0} -->
>> Hello Simon,
>>
>> Please have a look at the ANCOVA algorithm.
>>
>> Julien
>>
>> -------------------------
>> DE : [email protected] <[email protected]> de la part
>> de Simon Rittel <[email protected]>
>> ENVOYé : jeudi 13 juin 2019 17:23:28
>> À : [email protected]
>> OBJET : [ot-users] reply: usage of
>>
>> Hello,
>>
>> with one of the four implemented "SobolIndicesAlgorithm"s one can
>> compute the Sobol coefficients for a function with independent inputs.
>> Am I correct that there's no direct method implemented to calculate
>> these coefficients for dependent input variables?
>>
>> To cope with dependent inputs one could apply the well-known
>> Rosenblatt transformation before the sensitivity analysis. I saw that
>> there are already isoprobabilistic transformations implemented, but
>> from the documentation I couldn't figure out how exactly they are
>> meant to work (the theory, however, I do understand) and therefore
>> also how to use them. Maybe you could provide me a short example or
>> explain briefly how to generate a independent input vector with the
>> help of the implemented Rosenblatt transformation?
>>
>> I would appreciate your help on these two questions.
>>
>> Thank you,
>> Simon Rittel
>>
>> _______________________________________________
>> OpenTURNS users mailing list
>> [email protected]
>> 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