Graphical lasso

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In statistics, the graphical lasso[1] is a penalized likelihood estimator for the precision matrix (also called the concentration matrix or inverse covariance matrix) of a multivariate elliptical distribution. Through the use of an L1 penalty, it performs regularization to give a sparse estimate for the precision matrix. In the case of multivariate Gaussian distributions, sparsity in the precision matrix corresponds to conditional independence between the variables therefore implying a Gaussian graphical model.

The graphical lasso was originally formulated to solve Dempster's covariance selection problem[2][3] for the multivariate Gaussian distribution when observations were limited. Subsequently, the optimization algorithms to solve this problem were improved[4] and extended[5] to other types of estimators and distributions.

Setting

[edit | edit source]

Let S be the sample covariance matrix of an independent identically distributed sample from a multivariate Gaussian distribution XN(μ,Σ). We are interested in estimating the precision matrix Σ1=Θ=(Θij).

The graphical lasso estimator Θ^ is the maximiser of the L1 penalised log-likelihood:

Θ^=argmaxΘ0(logdet(Θ)tr(SΘ)λi,j|Θij|)

where λ is a penalty parameter,[4] tr is the trace function and Θ0 refers to the set of positive definite matrices.

A popular alternative form of the graphical lasso removes the penalty on the diagonal, only penalising the off-diagonal entries:[6]

Θ^=argmaxΘ0(logdet(Θ)tr(SΘ)λij|Θij|)

Because the graphical lasso estimate is not invariant to scalar multiplication of the variables,[7] it is important to normalize the data before applying the graphical lasso.

Application

[edit | edit source]

To obtain the estimator in programs, users could use the R package glasso,[8] GraphicalLasso() class in the scikit-learn Python library,[9] or the skggm Python package[10] (similar to scikit-learn).

See also

[edit | edit source]

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).