Crates.io | unit-root |
lib.rs | unit-root |
version | 0.6.0 |
source | src |
created_at | 2022-09-25 02:20:50.646415 |
updated_at | 2023-10-11 17:05:44.35085 |
description | Unit root tests |
homepage | https://github.com/ssoudan/unit-root |
repository | https://github.com/ssoudan/unit-root |
max_upload_size | |
id | 673410 |
size | 107,396 |
Stationarity tests for time-series data in Rust.
At the moment: Dickey-Fuller test and Augmented Dickey-Fuller test with no constan no trend, constant or constant and trend.
This project is licensed under the terms of the Apache License 2.0.
Augmented Dickey-Fuller test:
use unit_root::prelude::distrib::{AlphaLevel,Regression};
use unit_root::prelude::nalgebra::DVector;
use unit_root::prelude::*;
fn main() {
let y = DVector::from_row_slice(&[
-0.89642362,
0.3222552,
-1.96581989,
-1.10012936,
-1.3682928,
1.17239875,
2.19561259,
2.54295031,
2.05530587,
1.13212955,
-0.42968979,
]);
let lag = 2;
// compute the test statistic
let regression = Regression::Constant;
let report = tools::adf_test(&y, lag, regression).unwrap();
// critical values for the model with a constant but no trend:
let critical_value: f32 = distrib::dickeyfuller::get_critical_value(
regression,
report.size,
AlphaLevel::OnePercent,
)
.unwrap();
assert_eq!(report.size, 8);
// comparison
let t_stat = report.test_statistic;
println!("t-statistic: {}", t_stat);
println!("critical value: {}", critical_value);
}
See examples for more.