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.5.tar.gz
(17.9 kB
view details)
Built Distribution
DyGraph-0.0.5-py3-none-any.whl
(23.4 kB
view details)
File details
Details for the file DyGraph-0.0.5.tar.gz
.
File metadata
- Download URL: DyGraph-0.0.5.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06f29f37d90f262bc115fda2e6b2e5da9bf3f73fb3558a78e8a47c99d991fe79 |
|
MD5 | 16140eedb187bfd2806cabfe90bd57e0 |
|
BLAKE2b-256 | e14cc9d423ad2e0810cfe89a26f00484f15df4138711a433d3eea48b7d6b17d6 |
File details
Details for the file DyGraph-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: DyGraph-0.0.5-py3-none-any.whl
- Upload date:
- Size: 23.4 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 | 4164c2ef75c735599c989e4c1203829d2b40626e5aa9d185c619260b8cdbfb35 |
|
MD5 | 641094855624382153c5879572ec7e39 |
|
BLAKE2b-256 | 53539470870204425feea4b355d253d91d6ddc357baaaad1082b7606d4084df5 |