R 语言的 ADF 和 Python 的 adfuller 算出来不一样,哪个有 bug?

问答 不忘初心 ⋅ 于 2019-05-22 16:51:00 ⋅ 最后回复由 青牛 2019-05-23 08:52:23 ⋅ 2160 阅读

先看 R 的:

library(psymonitor)
y <- c(0.796491122, -0.632473454, 0.591378141, 0.274361070, 2.234289299, 0.746846750, 0.213032970, -2.409676566, -1.671995924, 0.599171274, 1.076922187, 0.455016454, -0.351731783, -0.934165425, 0.689092161, 1.290156578, -0.568377985, -0.666238022, -1.307348817, -0.301336002, 1.123142293, 1.421745766, -0.213636558, -2.041609288, -0.781327102, 0.852446874, -0.811867278, -0.628830040, -0.453595713, -0.711754248, -0.528693763, -0.326200436, -1.212438339, -0.403364652, -0.129957051, -1.501438862, 0.762356429, -0.984573300, -2.422512068, -0.623423068, -0.349406663, -1.534402029, -0.110360289, -0.819992605, -0.355100261, 0.033968866, -0.415617391, 1.366497596, 0.627212033, -0.203093817, -1.184174794, 1.449397006, -1.378482920, -0.676448526, -1.712985053, 0.427513774, -0.032154653, 0.054279590, 0.229626038, -0.355026447, -0.717534505, 0.065464101, 0.145287423, 0.147376003, -0.695308539, -0.507632425, 0.005778099, 0.531349818, -0.419911440, -1.944993614, -0.600786315, 0.056157318, 0.779156749, 1.244814514, 0.166525401, -0.188432298, -0.679167772, -0.247456651, 1.338450123, 0.920877640, 0.303166377, -0.504028688, -0.301552252, 2.209247794, 0.020439669, -0.858028654, -0.188983853, -0.939225268, -0.397653229, 1.190530485, 1.454608645, 0.226684026, 1.405712606, -0.308385422, -0.204995237, -0.540898258, 0.978106548, -2.038949575, 0.400163804, -0.945084539)
ADF(y, IC = 1, adflag = 6)
$ADF Statistic using AIC
[1] -3.726819
ADF(y, IC = 2, adflag = 6)
$ADF Statistic using BIC
[1] -3.342752
Python 版:

import numpy as np
import statsmodels.tsa.stattools as st
y = np.array([缩减字数])
st.adfuller(y, 6, "c", "AIC")
(-3.7268193412213826, 0.0037513464767358943, 6, 93, {'1%': -3.502704609582561, '5%': -2.8931578098779522, '10%': -2.583636712914788}, 251.2028623838342)
st.adfuller(y, 6, "c", "BIC")
(-8.480162966674953, 1.4001550801061544e-13, 0, 99, {'1%': -3.498198082189098, '5%': -2.891208211860468, '10%': -2.5825959973472097}, 258.22146258193135)
以上,两个语言的库分别实现 ADF 算法,AIC 时,两个库得出一样结果,但 BIC 时,结果就不同了。

成为第一个点赞的人吧 :bowtie:
回复数量: 1
  • 青牛 国内首批大数据从业者,就职于金山,担任大数据团队核心研发工程师
    2019-05-23 08:52:23

    计算方法不一样把 这个要看源码

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter