Skip to main content

A package for estimating dynamic graphical lasso with heavy tailed distributions

Project description

Tests Coverage Status

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


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.2.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

DyGraph-0.0.2-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

Details for the file DyGraph-0.0.2.tar.gz.

File metadata

  • Download URL: DyGraph-0.0.2.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for DyGraph-0.0.2.tar.gz
Algorithm Hash digest
SHA256 2ef1a8fc0bbb2dad5901f162e47bf0c2a3be38c5e4f7ccb7bdbec8bf9097fc45
MD5 8fe9c38df3c4bfb802e1a4509eeab3a7
BLAKE2b-256 3398f1856c864ecaed923335e4c81306d5104bd7994d09483da08003b51c0b92

See more details on using hashes here.

File details

Details for the file DyGraph-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: DyGraph-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 23.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for DyGraph-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 837f38735a7da2c1575bcfdcfa6cd6198c91f6220511af89d7802d8dbadbedc9
MD5 7bb6b21fa831a0a8005ddb40bce540fb
BLAKE2b-256 1b04fe9377cc221956a1ab42cfc36b2e2fca6bbaf2f1e0242aa7b9b0e78a7a1a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page