# gaussianizationfactory

## gaussianizationfactory

Construct a Gaussianization distribution structure

Syntax

```D = gaussianization(LayerD, num)
D = gaussianization(LayerD)
```

Description

D = gaussianization(LayerD, num) returns a structure representing a gaussianization distribution. LayerD is a distribution structure defining gaussianization layer distribution type, and num is the number gaussianization layers

D = gaussianization(LayerD) where LayerD is a cell array of distribution structures defined on the same data space, constructs a heterogeneous gaussianization distribution D where each layer may be of a different distribution type.

Distribution Parameters

• D (num-by-1 cell array of distribution parameter structures) : Contains the parameters for each layer.

Probability Density Function

The distribution is defined to be whitened Gaussian distribution in the transformed domain. The transformation is given by : where is the number oflayers, represents the CDF of kth layer is the inverse CDF of Gaussian. Note that is computer together as Gaussianization for each layer

Example

```% Construct a Gaussianization distribution of two layers
D =
% Build a parameter structure for it:
theta{1} =
theta{2} =
% Plot the PDF:
x = 0:0.1:10;
y = 0:0.1:10;
surf
``` For more detailes look at the following paper: Chen, S. S., & Gopinath, R. A. (2000). Gaussianization.

## num

Number of layers

Syntax

```num = D.num()
```

Description

num = D.num() returns the number of layers in the Gaussianization distribution D.

Note: You need to include the parentheses () for this to work.

## layer

layer distributions

Syntax

```D_k = D.layer(idx)
```

Description

D_k = D.layer(idx) where idx is the index of a layer, gives the layer distribution structure at idx.

D_k = D.layer(idx) where idx is an index vector with more than one element, returns a cell array of the distribution structures indexed in idx.

Add a Gaussianization layer (to the variable layers)

Syntax

```newD = D.addlayer(CmptD)
[newD, newtheta] = D.addlayer(CmptD, theta, CmptTheta)
```

Description

newD = D.addlayer(CmptD) returns newD, a Gaussianization distribution with the same layers as D plus the new variable layer distribution CmptD.

[newD, newtheta] = D.addlayer(CmptD, theta, CmptTheta) also returns newtheta, the parameters for newD, given theta, the parameters for D, and CmptTheta, the parameters for CmptD.

## removelayer

Remove a layer

Syntax

```newD = D.removelayer(idx)
[newD, newtheta] = D.removelayer(idx, theta)
```

Description

newD = D.removelayer(idx) returns newD, a Gaussianization distribution the same as D where the layer at index idx is removed from its layers.

[newD, newtheta] = D.removelayer(idx, theta) also returns newtheta, the parameters for newD, given theta, the parameters for D.

## estimatedefault

Default estimation function for Gaussianization distribution. This function implements the expectation maximization (EM) method.

Syntax

```theta = D.estimatedefault(data)
theta = D.estimatedefault(data, options)
[theta, D] = D.estimatedefault(...)
[theta, D, info] = D.estimatedefault(...)
[theta, D, info, options] = D.estimatedefault(...)
```

Description

theta = D.estimatedefault(data) returns estimated parameters for the distribution D, using data.

theta = D.estimatedefault(data, options) utilizes applicable options from the options structure in the estimation procedure.

[theta, D] = D.estimatedefault(...) also returns D, the distribution structure for which theta is applicable. (This is the same as the distribution structure D from which you called estimate, and so it should not normally be used. The purpose of including it in the output is to maintain compatibility with other estimation functions).

[theta, D, info] = D.estimatedefault(...) also returns info, a structure array containing information about successive iterations performed by iterative estimation functions.

[theta, D, info, options] = D.estimatedefault(...) also returns the effective options used, so you can see what default values the function used on top of the options you possibly specified.

For information about the output theta, see Distribution Parameters Structure. The input argument data is described in Data Input Argument to Functions. You may also want to read about options or info arguments.

Available Options

This function supports the following options from the options described in estimation options.

• theta0
• verbosity
• plotCost
• crossVal
• minIter
• maxIter
• maxTime
• tolCost
• tolCostDiff
• statsfun
• stopfun

Returned info fields

This function puts the following fields in the returned info structure array. You can read more about them in our documentation on estimation statistics structure.

• iter
• cost
• time
• cvCost

## penalizerparam

Penalizer Info

The default penalizer for the Gaussianization distribution is the sum of the default penalizers of its layers.