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

Uploaded Source

Built Distribution

DyGraph-0.0.8-py3-none-any.whl (29.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: DyGraph-0.0.8.tar.gz
  • Upload date:
  • Size: 22.2 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.8.tar.gz
Algorithm Hash digest
SHA256 bd918a6298dca76ebab5435e9dd7e7824e910c04c1329780fa1be6402b3bdd7a
MD5 638159f33e91bf0e538f32cd696520a9
BLAKE2b-256 3a3a660b979a20343719d614ab1059feee4cdebbf89b89568dcd5a07d72f50ee

See more details on using hashes here.

File details

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

File metadata

  • Download URL: DyGraph-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 29.1 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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 ae45fb7b5bbaad070ec6647720b1933855859662d6dc7918a729caa6aac11532
MD5 5ac66e908c9203b83dc8c6004073c182
BLAKE2b-256 939536e7b3443f89a1095c144a12f406f038f9e9ce71b0c95eaea544c00bc48d

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