Published February 12, 2026 | Version 1.1.2
Software Open

IsadoreNabi/SignalY: SignalY package

Description

SignalY

Signal Extraction from Panel Data via Bayesian Sparse Regression and Spectral Decomposition

SignalY is a comprehensive R toolkit for extracting latent signals from panel data through multivariate time series analysis. It addresses three fundamental problems in applied econometrics and signal processing: which variables matter (column selection), what is the underlying structure (series decomposition), and what is the persistence regime (unit root characterization).

Performance Benchmarks (Recovery Tests)

| Task | Method | Recovery Metric | |------|--------|----------------| | Factor structure (3 latent factors) | PCA / DFM | r > 0.95, exact factor count | | Sparse variable selection (5 of 50) | Horseshoe | F1 > 0.85, Precision > 0.90 | | Logarithmic trend recovery | EMD | r > 0.95 with true trend | | Multi-scale cycle extraction | Wavelet (D3+D4) | r > 0.70 with true cycle | | Stochastic trend + AR(2) cycle | HP-GC Bayesian | trend r > 0.90, cycle r > 0.50 | | Stationarity classification | Unit Root Battery | 4/4 correct on synthetic data |

Key Features

| Feature | Description | |---------|-------------| | Horseshoe Regression | Bayesian sparse selection via regularized Horseshoe priors (Piironen & Vehtari, 2017) with shrinkage profile diagnostics | | PCA with Bootstrap Significance | Principal components with block bootstrap confidence intervals and entropy-based topology analysis | | Dynamic Factor Models | Bai & Ng (2002) information criteria for automatic factor selection with VAR dynamics | | Wavelet Decomposition | MODWT via Daubechies wavelets with multi-resolution variance analysis (Percival & Walden, 2000) | | Empirical Mode Decomposition | Data-adaptive IMF extraction for non-stationary and non-linear signals (Huang et al., 1998) | | HP-GC Bayesian Filter | Grant & Chan (2017) unobserved-components Hodrick-Prescott with MCMC-estimated smoothing | | Unit Root Battery | ADF, Phillips-Perron, KPSS, and ERS tests with automated synthesis and persistence classification | | Integrated Orchestrator | signal_analysis() runs all methods in a single call with automated interpretation |

Architecture

SignalY is organized around three analytical layers that can be used independently or chained together:

┌─────────────────────────────────────────────────────────────────┐
│                     signal_analysis()                           │
│              Master orchestrator with print/summary/plot        │
├──────────────┬──────────────────────┬───────────────────────────┤
│  COLUMN      │  SERIES              │  PERSISTENCE              │
│  SELECTION   │  DECOMPOSITION       │  ANALYSIS                 │
│              │                      │                           │
│ fit_horseshoe│ filter_wavelet       │ test_unit_root            │
│ pca_bootstrap│ filter_emd           │   ADF, PP, KPSS, ERS      │
│ estimate_dfm │ filter_hpgc          │   Automated synthesis     │
│              │ filter_all           │                           │
├──────────────┴──────────────────────┴───────────────────────────┤
│                      UTILITIES                                  │
│  apply_to_columns · compute_entropy · iplot · interpolate_na    │
└─────────────────────────────────────────────────────────────────┘

Typical Workflow Scenarios

Scenario A — Column Selection Only: You have a high-dimensional predictor matrix and need to identify which variables are structurally relevant. Use fit_horseshoe() for sparse Bayesian selection, pca_bootstrap() for factor structure, or estimate_dfm() for dynamic factors.

Scenario B — Series Decomposition Only: You have a univariate time series and need to extract its trend, cycle, and residual components. Use filter_wavelet(), filter_emd(), or filter_hpgc().

Scenario C — Unit Root Analysis Only: You need to characterize the persistence properties of a series. Use test_unit_root() for a comprehensive battery of tests with automated synthesis.

Scenario D — Mixed Workflow: Select relevant variables → construct a composite signal → decompose it → test stationarity of extracted components. Use signal_analysis() to orchestrate the full pipeline, or chain the individual functions.

Quick Example

library(SignalY)

# Prepare data
data <- data.frame(Y = as.vector(Y), X)

# Run full analysis pipeline
result <- signal_analysis(
  data = data,
  y_formula = "Y",
  methods = c("wavelet", "emd", "pca", "dfm", "unitroot"),
  verbose = TRUE
)

# Inspect results
print(result)
summary(result)
plot(result)

Citation

@software{SignalY,
  title = {SignalY: Signal Extraction from Panel Data via Bayesian Sparse
           Regression and Spectral Decomposition},
  author = {Gómez Julián, José Mauricio},
  year = {2026},
  url = {https://github.com/IsadoreNabi/SignalY},
  version = {1.1.1}
}

License

MIT License. See LICENSE for details.

See more in the Wiki page.

Files

IsadoreNabi/SignalY-1.1.2.zip

Files (118.6 kB)

Name Size Download all
md5:e8d07182a67b39fdb6c13e06ad290a3e
118.6 kB Preview Download

Additional details

Related works