renfanzi

 

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# <editable>

def execute():
    # <editable>
    \'\'\'
    载入模块
    \'\'\'
    import warnings
    from statsmodels.graphics.tsaplots import plot_acf  # 绘制自相关图
    from statsmodels.tsa.stattools import adfuller as ADF  # 单位根检验
    import matplotlib.pyplot as plt
    warnings.filterwarnings("ignore")
    import pandas as pd
    from sqlalchemy import create_engine
    \'\'\'
    连接数据库
    \'\'\'
    engine = create_engine(\'mysql+pymysql://root:123123qwe@127.0.0.1:3306/analysis\')
    \'\'\'
    选择目标数据
    \'\'\'
    params = {
        "sequence": "SUNACTIVITY",
    }
    inputs = {"table": \'纯随机性检验\'}
    data_sql = \'select \' + params[\'sequence\'] + \' from \' + inputs[\'table\']
    data_in = pd.read_sql_query(data_sql, engine)
    print(data_in)
    data_in = data_in.dropna()
    \'\'\'
    平稳性检验
    \'\'\'
    sequence = data_in[params[\'sequence\']]
    adf_result = ADF(sequence)
    test_statistic = adf_result[0]
    p_value = adf_result[1]
    use_lag = adf_result[2]
    nobs = adf_result[3]
    critical_1 = adf_result[4][\'5%\']
    critical_5 = adf_result[4][\'1%\']
    critical_10 = adf_result[4][\'10%\']
    data_out = \'\'
    data_out += \'平稳性检验结果\n\'
    data_out += \'检验结果\n\'
    data_out += \'Test statistic:\' + str(test_statistic) + \'\n\'
    data_out += \' p-value:\' + str(p_value) + \'\n\'
    data_out += \'Number of lags used:\' + str(use_lag) + \'\n\'
    data_out += \'Number of observations used for the ADF regression and calculation of the critical values:\' + str(
        nobs) + \'\n\'
    data_out += \'Critical values for the test statistic at the 5 %:\' + str(critical_1) + \'\n\'
    data_out += \'Critical values for the test statistic at the 1 %:\' + str(critical_5) + \'\n\'
    data_out += \'Critical values for the test statistic at the 10 %:\' + str(critical_10) + \'\n\'

    \'\'\'
    自相关图
    \'\'\'
    fig = plt.figure(figsize=(10, 4))
    ax1 = fig.add_subplot(111)
    plot_acf(sequence, ax=ax1, fft=True)
    plt.savefig(\'acf.png\')

    \'\'\'
    生成报告
    \'\'\'
    print(data_out)

    \'\'\'
    数据示例
            SUNACTIVITY
    0           5.0
    1          11.0
    2          16.0
    3          23.0
    4          36.0
    5          40.4
    6          29.8
    7          15.2
    8           7.5
    9           2.9
    10         83.4
    11         47.7
    12         47.8
    13         30.7
    14         12.2
    15         40.4
    16         29.8
    17         15.2
    18          7.5
    19          2.9
    20         12.6
    平稳性检验结果
    检验结果
    Test statistic:-3.125280514027156
     p-value:0.0247380100963531
    Number of lags used:0
    Number of observations used for the ADF regression and calculation of the critical values:20
    Critical values for the test statistic at the 5 %:-3.0216450000000004
    Critical values for the test statistic at the 1 %:-3.8092091249999998
    Critical values for the test statistic at the 10 %:-2.6507125

    \'\'\'


# </editable>


if __name__ == \'__main__\':
    execute()

 

分类:

技术点:

相关文章:

  • 2021-09-05
  • 2021-09-15
  • 2022-12-23
  • 2022-12-23
  • 2021-07-07
  • 2022-01-06
  • 2021-07-22
猜你喜欢
  • 2021-12-28
  • 2021-06-20
  • 2022-01-20
  • 2022-12-23
  • 2022-01-19
  • 2022-12-23
  • 2021-05-06
相关资源
相似解决方案