6 个版本 (重大变更)

0.6.0 2023 年 10 月 11 日
0.5.0 2022 年 9 月 29 日
0.4.0 2022 年 9 月 27 日
0.3.0 2022 年 9 月 25 日
0.1.0 2022 年 9 月 25 日

#471数学

Download history 29/week @ 2024-03-25 25/week @ 2024-04-01 13/week @ 2024-04-15 3/week @ 2024-05-13 4/week @ 2024-05-20 16/week @ 2024-05-27 46/week @ 2024-06-03 42/week @ 2024-06-10 28/week @ 2024-06-17 15/week @ 2024-06-24 42/week @ 2024-07-01 21/week @ 2024-07-08

每月 112 次下载
3 个 Crates 中使用 (2 个直接使用)

Apache-2.0

54KB
865 代码行

Rust 中的单位根测试

Build

描述

Rust 中时间序列数据的平稳性测试。

目前包括:无常数无趋势、常数或常数和趋势的 Dickey-Fuller 测试Augmented Dickey-Fuller 测试

许可证

本项目受 Apache License 2.0 许可证的约束。

用法

Augmented Dickey-Fuller 测试

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);
}

更多示例请见 此处

依赖项

~4MB
~78K SLoC