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.4.tar.gz
(17.9 kB
view details)
Built Distribution
DyGraph-0.0.4-py3-none-any.whl
(23.4 kB
view details)
File details
Details for the file DyGraph-0.0.4.tar.gz
.
File metadata
- Download URL: DyGraph-0.0.4.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 | e5c0a0bd4c4cac9b4a2070848b01e5fc523d48d19c03d547e053c3f78c9d3c49 |
|
MD5 | 9672bec447b92424dc1a23def7b2f421 |
|
BLAKE2b-256 | 7519ce9f4ac68befce6105a752da9ca6279e25f4ea143bb6d58b2094422eaab5 |
File details
Details for the file DyGraph-0.0.4-py3-none-any.whl
.
File metadata
- Download URL: DyGraph-0.0.4-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 | 358bb8e973922879beb257f60ddec7ce20a9465deac835c1465c7b1d0c2772b8 |
|
MD5 | 182a41aef9a22abe5faf76a25efedb23 |
|
BLAKE2b-256 | 4030b4c5ab57f30f9af4bbe9f2755f406f15f0c271849faae3b596127b1b147e |