ecdfactory

ecdfactory

Construct a zero-mean elliptically contoured distribution structure

Syntax

D = ecdfactory(datadim, radialD)

Description

D = ecdfactory(datadim, radialD) returns a structure representing a datadim-dimensional ecd distribution with square radial pdf radialD.

Distribution Parameters

  • sigma (datadim-by-datadim) The scatter matrix.
  • radialD (parameter structure) Contains the parameters of the square radial pdf

Probability Density Function

The distribution has the following density:

$$ f(x;\mu,\Sigma)=
|\Sigma|^{-1/2} \pi^{-n/2} \gamma{n/2} (x^T \Sigma^{-1} x)^{1-n/2}
  p(x^T \Sigma^{-1} x) $$

where $n$ is the data space dimensions, $\Sigma$ is the scatter matrix and $p$ is the squared radial distribution.

Example

% Construct a 2-dimensional elliptical-gamma distribution
D = ecdfactory(2, gammafactory());
% Build a parameter structure for it:
theta = struct('sigma', [3 0; 0 2], 'radialD', struct('a', 3, 'b', 1));
% Plot the PDF:
x = -5:0.2:5;
y = -5:0.2:5;
[X, Y] = meshgrid(x, y);
data = [X(:) Y(:)]';
f = D.pdf(theta, data);
surf(X, Y, reshape(f, size(X)));

name

See distribution structure common members.

Flag to control the memory usage (resulting code will be slower)

M

See distribution structure common members.

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.

gaussianize

pdf

See distribution structure common members.

sample

See distribution structure common members.

randparam

See distribution structure common members.

init

See distribution structure common members.

penalizerparam

See distribution structure common members.

Penalizer Info

The default penalizer for this distribution is the Inverse-Wishart distribution for covariance and default prior for squared-radial.

Inverse-Wishart prior on covariance has the following form:

$$ f(\Sigma) =
|\Sigma|^{-(nu+d+1)/2} \exp(-0.5 trace(\Sigma^{-1} invLambda)) $$

where

  • nu (scalar) : Degrees of freedom.
  • invLambda (datadim-by-datadim matrix) : The inverse scale matrix.

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.

fixate

Make some parameters fixed

Syntax

newD = D.fixate(paramName, paramValue, ...)

Description

newD = D.fixate(paramName, paramValue, ...) returns the new gamma distribution newD where the specified parameters are fixed so that they won't change in estimation. paramName is the name of the parameter ('a' or 'b') and paramValue is its desired fixed value.

Example

D = gammafactory();
D = D.fixate('a', 2);

unfix

Undo fixate

Syntax

newD = D.unfix(paramName, ...)

Description

newD = D.unfix(paramName, ...) where D is a gamma distribution with fixed parameters, returns the new gamma distribution newD where the specified parameters are unfixed. paramName is the name of the parameter ('a' or 'b').

Example

D = gammafactory();
D = D.fixate('a', 2, 'b', 1);
D = D.unfix('a');

fullparam

Get the full parameter structure, given the variable parameter structure

Syntax

fulltheta = D.fullparam(theta)

Description

fulltheta = D.fullparam(theta) where D is a gamma distribution with fixed parameters, returns the full parameters of the gamma distribution including the fixed parameters. theta is a parameter structure for the distribution D (i.e. excluding the fixed parameters).

Example

D = gammafactory();
D = D.fixate('a', 2);
theta = struct('b', 1);
fulltheta = D.fullparam(theta)
fulltheta =
    b: 1
    a: 2