`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.

`name`

See distribution structure common members.

`M`

See distribution structure common members.

`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`.

`addlayer`

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`.

`dim`

See distribution structure common members.

`datadim`

See distribution structure common members.

`ll`

See distribution structure common members.

`llvec`

See distribution structure common members.

`llgrad`

See distribution structure common members.

`llgraddata`

See distribution structure common members.

`cdf`

See distribution structure common members.

`pdf`

See distribution structure common members.

`sample`

See distribution structure common members.

`randparam`

See distribution structure common members.

`init`

See distribution structure common members.

`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`

See distribution structure common members.

**Penalizer Info**

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

`penalizercost`

See distribution structure common members.

`penalizergrad`

See distribution structure common members.

`sumparam`

See distribution structure common members.

`scaleparam`

See distribution structure common members.

`sumgrad`

See distribution structure common members.

`scalegrad`

See distribution structure common members.

`entropy`

See distribution structure common members.

`kl`

See distribution structure common members.

`AICc`

See distribution structure common members.

`BIC`

See distribution structure common members.

`display`

See distribution structure common members.