File: process_transformation.rst

package info (click to toggle)
openturns 1.26-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 67,708 kB
  • sloc: cpp: 261,605; python: 67,030; ansic: 4,378; javascript: 406; sh: 185; xml: 164; makefile: 101
file content (103 lines) | stat: -rw-r--r-- 3,546 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
.. _process_transformation:

Process transformation
----------------------

The objective here is to create a process :math:`Y` as the image through
a field function :math:`f_{dyn}` of another process :math:`X`:

.. math::

   \begin{aligned}
     Y=f_{dyn}(X)\end{aligned}


General case
~~~~~~~~~~~~

In the general case, :math:`X: \Omega \times\cD \rightarrow \Rset^{\inputDim}`
is a multivariate stochastic process of dimension :math:`\inputDim` where
:math:`\cD \in \Rset^n`,
:math:`Y: \Omega \times \cD' \rightarrow \Rset^q` a multivariate
stochastic process of dimension :math:`q` where
:math:`\cD' \in \Rset^p` and
:math:`f_{dyn}:\cD \times \Rset^{\inputDim} \rightarrow \cD' \times \Rset^q` and
:math:`f_{dyn}` is defined in :eq:`dynFct`.

We build the composite process :math:`Y` thanks to function :math:`f_{dyn}`
and the process :math:`X`.

The library proposes two kinds of field function: the value
functions defined in :eq:`spatFunc` and the vertex-value functions defined
in :eq:`tempFunc`.

Trend modifications
~~~~~~~~~~~~~~~~~~~

Very often, we have to remove a trend from a process or to add it. If
we note :math:`f_{trend}: \Rset^n \rightarrow \Rset^{\inputDim}` the function
modelling a trend, then the field function which consists in
adding the trend to a process is the vertex-value function
:math:`f_{temp}: \cD \times \Rset^{\inputDim} \rightarrow \Rset^n \times \Rset^{\inputDim}`
defined by:

  .. math::
    :label: trendTempFunc

     \begin{aligned}
       f_{temp}(\vect{t}, \vect{x})=(\vect{t},  \vect{x} +  f_{trend}(\vect{t}))\end{aligned}

The library enables to directly convert the function
:math:`f_{trend}` into the vertex-value function :math:`f_{temp}` thanks
to the *TrendTransform* object which maps :math:`f_{trend}` into the
vertex-value function :math:`f_{temp}`.

Then, the process :math:`Y` is built with the object
*CompositeProcess* from the data: :math:`f_{temp}` and the process
:math:`X` such that:

.. math::

    \begin{aligned}
      \forall \omega \in \Omega, \forall \vect{t} \in \cD, \quad Y(\omega, \vect{t}) = X(\omega, \vect{t}) + f_{trend}(\vect{t})\end{aligned}

Box Cox transformation
~~~~~~~~~~~~~~~~~~~~~~

If the transformation of the process :math:`X` into :math:`Y`
corresponds to the Box Cox transformation
:math:`f_{BoxCox}: \Rset^{\inputDim} \rightarrow \Rset^{\inputDim}` which transforms
:math:`X` into a process :math:`Y` with stabilized variance, then the
corresponding field function is the value function
:math:`f_{spat}: \cD \times \Rset^{\inputDim} \rightarrow \cD \times \Rset^{\inputDim}`
defined by:

.. math::
  :label: spatFuncBC

    \begin{aligned}
      f_{spat}(\vect{t}, \vect{x})=(\vect{t},f_{BoxCox}(\vect{x}))\end{aligned}

The library enables to directly convert the function
:math:`f_{BoxCox}` into the value function :math:`f_{spat}` thanks
to the *ValueFunction* object.
Then, the process :math:`Y` is built with the object
*CompositeProcess* from the data: :math:`f_{spat}` and the process
:math:`X` such that:

.. math::

     \begin{aligned}
       \forall \omega \in \Omega, \forall \vect{t} \in \cD, \quad Y(\omega, \vect{t}) = f_{BoxCox}(X(\omega, \vect{t}))\end{aligned}

.. topic:: API:

    - See :class:`~openturns.CompositeProcess`
    - See :class:`~openturns.TrendTransform`
    - See :class:`~openturns.BoxCoxFactory`

.. topic:: Examples:

    - See :doc:`/auto_stochastic_processes/plot_add_trend`
    - See :doc:`/auto_stochastic_processes/plot_trend_transform`
    - See :doc:`/auto_stochastic_processes/plot_box_cox_transform`