IsadoreNabi/SignalY: SignalY package
Authors/Creators
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.
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
- Is supplement to
- Software: https://github.com/IsadoreNabi/SignalY/tree/1.1.2 (URL)
Software
- Repository URL
- https://github.com/IsadoreNabi/SignalY