Learn R Programming

⚠️There's a newer version (0.1.5) of this package.Take me there.

VLTimeCausality: Variable-Lag Time Series Causality Inference Framework

A framework to infer causality on a pair of time series of real numbers based on Variable-lag Granger causality (VL-Granger) and transfer entropy (VL-Transfer Entropy).

Typically, Granger causality and transfer entropy have an assumption of a fixed and constant time delay between the cause and effect. However, for a non-stationary time series, this assumption is not true. For example, considering two time series of velocity of person A and person B where B follows A. At some time, B stops tying his shoes, then running to catch up A. The fixed-lag assumption is not true in this case.

We propose a framework that allows variable-lags between cause and effect in Granger causality and transfer entropy to allow them to deal with variable-lag non-stationary time series.

Installation

You can install our package from CRAN

install.packages("VLTimeCausality")

For the newest version on github, please call the following command in R terminal.

remotes::install_github("DarkEyes/VLTimeSeriesCausality")

This requires a user to install the "remotes" package before installing VLTimeSeriesCausality.

Example: Inferred VL-Granger causality time series

In the first step, we generate time series TS$X and TS$Y where TS$X causes TS$Y with variable-lags.

library(VLTimeCausality)
# Generate simulation data
TS <- VLTimeCausality::SimpleSimulationVLtimeseries()

We can plot time series using the following function.

VLTimeCausality::plotTimeSeries(TS$X,TS$Y)

A sample of generated time series pair that has a causal relation is plotted below:

We use the following function to infer whether X causes Y.

# Run the function
out<-VLTimeCausality::VLGrangerFunc(Y=TS$Y,X=TS$X)

The result of VL-Granger causality is below:

out$BICDiffRatio
[1] 0.8882051

out$XgCsY
[1] TRUE

If out$XgCsY is true, then it means that X VL-Granger-causes Y. The value out$BICDiffRatio is a BIC difference ratio. If out$BICDiffRatio>0, it means that X is a good predictor of Y behaviors. The closer out$BICDiffRatio to 1, the stronger we can claim that X VL-Granger-causes Y.

Citation

Chainarong Amornbunchornvej, Elena Zheleva, and Tanya Berger-Wolf (2019). Variable-lag Granger Causality for Time Series Analysis. In Proceedings of the 6th IEEE International Conference on Data Science and Advanced Analytics (DSAA), pp. 21-30. IEEE. https://doi.org/10.1109/DSAA.2019.00016 arXiv

Contact

Copy Link

Version

Install

install.packages('VLTimeCausality')

Monthly Downloads

516

Version

0.1.1

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Chainarong Amornbunchornvej

Last Published

May 17th, 2020

Functions in VLTimeCausality (0.1.1)

VLGrangerFunc

VLGrangerFunc
GrangerFunc

GrangerFunc
plotTimeSeries

plotTimeSeries
checkMultipleSimulationVLtimeseries

checkMultipleSimulationVLtimeseries
MultipleSimulationVLtimeseries

MultipleSimulationVLtimeseries
VLTransferEntropy

VLTransferEntropy
SimpleSimulationVLtimeseries

SimpleSimulationVLtimeseries
followingRelation

followingRelation
multipleVLTransferEntropy

multipleVLTransferEntropy
multipleVLGrangerFunc

multipleVLGrangerFunc