A package for estimating dynamic graphical lasso with heavy tailed distributions
Project description
DyGraph
A package for dynamic graph estimation.
pip install DyGraph
from sklearn.datasets import make_sparse_spd_matrix
import DyGraph as dg
import numpy as np
from scipy.stats import multivariate_t as mvt
Generate some data.
d = 5 # number of nodes
A = make_sparse_spd_matrix(d, alpha=0.6)
X = mvt.rvs(loc = np.zeros(d),df = 4, shape = np.linalg.inv(A), size=200)
max_iter = 100
obs_per_graph = 50
alpha = 0.05
kappa = 0.1
kappa_gamma = 0.1
tol = 1e-4
Gaussian
dg_opt = dg.dygl_inner_em(X, obs_per_graph = obs_per_graph, max_iter = max_iter, lamda = alpha, kappa = kappa, tol = tol, lik_type='gaussian')
dg_opt.fit(temporal_penalty = 'element-wise')
access the graphs via:
dg_opt.theta
t, inner and outer. Can give degrees of freedom, or estimate
# inner
dg_opt_t_inner = dg.dygl_inner_em(X = X, obs_per_graph = obs_per_graph, max_iter = max_iter, lamda = alpha, kappa = kappa, tol = tol, lik_type='t')
dg_opt_t_inner.fit(temporal_penalty = 'element-wise')
# outer
dg_opt_t_outer = dg.dygl_outer_em(X = X, obs_per_graph = obs_per_graph, max_iter = max_iter, lamda = alpha, kappa = kappa, tol = tol, lik_type='t')
dg_opt_t_outer.fit(temporal_penalty = 'element-wise', nu = [4]*4) # Note one nu/DoF for each graph.
Group t
# outer
dg_opt_gt_outer = dg.dygl_outer_em(X = X, obs_per_graph = obs_per_graph, max_iter = max_iter, lamda = alpha, kappa = kappa, tol = tol, lik_type='group-t')
dg_opt_gt_outer.fit(temporal_penalty = 'element-wise', nu = [[4] * d]*4, groups = [0]*d) # Note one nu/DoF for each graph and feature/group, all features in same group
skew group t
# outer
dg_opt_sgt_outer = dg.dygl_outer_em(X = X, obs_per_graph = obs_per_graph, max_iter = max_iter, lamda = alpha, kappa = kappa, kappa_gamma = kappa_gamma, tol = tol, lik_type='skew-group-t')
dg_opt_sgt_outer.fit(temporal_penalty = 'element-wise', nu = None, groups = [0]*d) # nus estimate, all features in same group
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
DyGraph-0.0.7.tar.gz
(22.7 kB
view details)
Built Distribution
DyGraph-0.0.7-py3-none-any.whl
(29.6 kB
view details)
File details
Details for the file DyGraph-0.0.7.tar.gz
.
File metadata
- Download URL: DyGraph-0.0.7.tar.gz
- Upload date:
- Size: 22.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6543f2dd83ce22b782c8fc7b9913e0c697efdf9622420db0548ccec151de7431 |
|
MD5 | 1d2cb18b2f0cca55e81e7d10c17f9d2b |
|
BLAKE2b-256 | c558f3fbeecbd3a1f4566fc33e4fbf56c5e5e49f2dd23306b1cb9e0421aecbbf |
File details
Details for the file DyGraph-0.0.7-py3-none-any.whl
.
File metadata
- Download URL: DyGraph-0.0.7-py3-none-any.whl
- Upload date:
- Size: 29.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00bd2a6796854667bb59d25cfb1b0453845c4a820efb613cfdd1c6ea6f13f90b |
|
MD5 | bfaef1fe4f8c844d47ed81d4b5f9b1fd |
|
BLAKE2b-256 | 5b00bc0e7cf177c52355af5dc4ba8dce2640a482e729e1cdeb15bb826b95e6a2 |