Overload List
| # | Signature | Description |
|---|---|---|
| 1 | void Covariance(TVec *X, double &aResult, bool NormN = true); | Covariance/variance. |
| 2 | void Covariance(TDenseMtxVec *X, TDenseMtxVec *Y, TMtx *aResult, bool NormN = true); | Calculate the variance-covariance matrix (Result), assuming vectors X and Y are two variable and their elements are the observations. |
| 3 | void Covariance(TMtx *X, TMtx *aResult, bool NormN = true); | Calculate the covariance matrix (Result), assuming matrix X columns are variables and its rows are observations. |
Overload 1: void Covariance(TVec *X, double &aResult, bool NormN = true);
Covariance/variance.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec * | Defines sample (variable) values (observables). In this case X is treated as row and not (as normally) column vector. |
| 2 | aResult | double & | Returns the covariance (in this case equal to variance) for X vector elements. Because in this case X is represented as row vectro, the the result is simply scalar value E(X(T)*X)-E(X(T))E(X) = Var(X). |
| 3 | NormN = true | bool | If true (default value), the result will be normalized with number of observations (N), otherwise it will be normalized with N-1. |
The covariance between two real-valued random variables x and y,with expected values E(x)=mu and E(y)=nu is defined as:
where E(x), E(y) are x and y expected values.
For more info about covariance definition and properties check thd following links:
Overload 2: void Covariance(TDenseMtxVec *X, TDenseMtxVec *Y, TMtx *aResult, bool NormN = true);
Calculate the variance-covariance matrix (Result), assuming vectors X and Y are two variable and their elements are the observations.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TDenseMtxVec * | |
| 2 | Y | TDenseMtxVec * | |
| 3 | aResult | TMtx * | |
| 4 | NormN = true | bool |
For column-vector valued random variables X and Y with respective expected values mu and nu, and respective scalar components m and n, the covariance is defined to be the m-by-n matrix called the covariance matrix:
Overload 3: void Covariance(TMtx *X, TMtx *aResult, bool NormN = true);
Calculate the covariance matrix (Result), assuming matrix X columns are variables and its rows are observations.
By definition the covariance matrix is a matrix of covariances between elements of a vector. It is the natural generalization to higher dimensions of the concept of the variance of a scalar-valued random variable.
If X columns represent observation samples (variables), it's rows sample(s) values (observables), muj Xj j-th column average value, then the covariance matrix is defined as:
or in matrix form:
where E is the expected value. The inverse of this matrix, is called the inverse covariance matrix or the precision matrix.
Note
This version does all necessary calculations to calculate covariance matrix.