LMMยถ

class glimix_core.lmm.LMM(y, X, QS=None, restricted=False)[source]ยถ

Fast Linear Mixed Models inference via maximum likelihood.

Examples

>>> from numpy import array
>>> from numpy_sugar.linalg import economic_qs_linear
>>> from glimix_core.lmm import LMM
>>>
>>> X = array([[1, 2], [3, -1]], float)
>>> QS = economic_qs_linear(X)
>>> covariates = array([[1], [1]])
>>> y = array([-1, 2], float)
>>> lmm = LMM(y, covariates, QS)
>>> lmm.fit(verbose=False)
>>> print('%.3f' % lmm.lml())
-3.649

One can also specify which parameters should be fitted:

>>> from numpy import array
>>> from numpy_sugar.linalg import economic_qs_linear
>>> from glimix_core.lmm import LMM
>>>
>>> X = array([[1, 2], [3, -1]], float)
>>> QS = economic_qs_linear(X)
>>> covariates = array([[1], [1]])
>>> y = array([-1, 2], float)
>>> lmm = LMM(y, covariates, QS)
>>> lmm.fix('delta')
>>> lmm.fix('scale')
>>> lmm.delta = 0.5
>>> lmm.scale = 1
>>> lmm.fit(verbose=False)
>>> print('%.3f' % lmm.lml())
-3.832
>>> lmm.unfix('delta')
>>> lmm.fit(verbose=False)
>>> print('%.3f' % lmm.lml())
-3.713

Notes

The LMM model can be equivalently written as

๐ฒ โˆผ ๐“(๐š‡๐œท, ๐‘ ((1-๐›ฟ)๐™บ + ๐›ฟ๐™ธ)),

and we thus have vโ‚€ = s (1 - ๐›ฟ) and vโ‚ = s ๐›ฟ. Consider the economic eigendecomposition of ๐™บ:

๐™บ = [๐š€โ‚€  ๐š€โ‚] [๐š‚โ‚€  ๐ŸŽ] [๐š€โ‚€แต€]
             [ ๐ŸŽ  ๐ŸŽ] [๐š€โ‚แต€]

and let

๐™ณ = [(1-๐›ฟ)๐š‚โ‚€ + ๐›ฟ๐™ธโ‚€ ๐ŸŽ ]

[ ๐ŸŽ ๐›ฟ๐™ธโ‚].

In order to eliminate the need of ๐š€โ‚, note that ๐š€๐š€แต€ = ๐™ธ implies that

๐š€โ‚๐š€โ‚แต€ = ๐™ธ - ๐š€โ‚€๐š€โ‚€แต€.

We will need to solve ((1-๐›ฟ)๐™บ + ๐›ฟ๐™ธ)๐ฑ = ๐ฎ for ๐ฑ. Let ๐™ณโ‚€ = ((1-๐›ฟ)๐š‚โ‚€ + ๐›ฟ๐™ธโ‚€) and let us define

๐™ฑ = ๐š€โ‚€๐™ณโ‚€โปยน๐š€โ‚€แต€                   if ๐›ฟ=0, and
๐™ฑ = ๐š€โ‚€๐™ณโ‚€โปยน๐š€โ‚€แต€ + ๐›ฟโปยน(๐™ธ - ๐š€โ‚€๐š€โ‚€แต€)  if ๐›ฟ>0.

We therefore have

๐ฑ = ๐™ฑ๐ฎ.
__init__(y, X, QS=None, restricted=False)[source]ยถ

Constructor.

Parameters
  • y (array_like) โ€“ Outcome.

  • X (array_like) โ€“ Covariates as a two-dimensional array.

  • QS (tuple) โ€“ Economic eigendecompositon in form of ((Q0, ), S0) of a covariance matrix K.

  • restricted (bool) โ€“ True for restricted maximum likelihood optimization; False otherwise. Defaults to False.

Methods

__init__(y,ย X[,ย QS,ย restricted])

Constructor.

covariance()

Covariance of the prior.

fit([verbose])

Maximise the marginal likelihood.

fix(param)

Disable parameter optimization.

get_fast_scanner()

Return FastScanner for association scan.

gradient()

Not implemented.

lml()

Log of the marginal likelihood.

mean()

Mean of the prior.

unfix(param)

Enable parameter optimization.

value()

Internal use only.

Attributes

X

Covariates matrix.

beta

Fixed-effect sizes.

beta_covariance

Estimates the covariance-matrix of the optimal beta.

delta

Variance ratio between K and I.

name

Name of this function.

ncovariates

Number of covariates.

nsamples

Number of samples.

scale

Scaling factor.

v0

First variance.

v1

Second variance.