FactorSVResult.communality#

FactorSVResult.communality()[source]#

Time-averaged share of each series’ variance carried by the factors, (k,).

Computed draw by draw from the model’s own decomposition diag(Lambda H_t Lambda') / (diag(Lambda H_t Lambda') + D_t) and averaged over time and draws, so it is in (0, 1) and ordered by how strongly each series loads relative to its own noise.

Return type:

NDArray[double]

Returns:

An array of shape (k,).

Example

>>> import numpy as np
>>> rng = np.random.default_rng(0)
>>> f = rng.standard_normal(200)
>>> y = np.outer(f, [1.0, 0.8, 0.3]) + 0.3 * rng.standard_normal((200, 3))
>>> res = FactorSV(y, n_factors=1).fit(n_draws=200, n_burn=50, seed=0)
>>> share = res.communality()
>>> share.shape, bool(np.all((share > 0) & (share < 1)))
((3,), True)
>>> bool(share[0] > share[1] > share[2])
True