微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

关于 Adfuller 测试结果变化的问题

如何解决关于 Adfuller 测试结果变化的问题

我有一个系列,我正在尝试运行线性回归并确定平稳性。当我将窗口移动到下一个样本时,平稳性测试从静止变为非静止。这是预期的吗?我的印象是平稳性会随着时间慢慢改变。这是我收集到的测试用例。

这里,x1,y1 是第一组实验的数据。 x2 和 y2 用于第二组。 x2,y2 几乎与 x1,y1 相似(我只是删除 x1 和 y1 的第一个值并在最后推入新样本以获得 x2,y2 系列)。但是 adf 结果却大不相同(p-val 从 0.001945 变为 0.7519)。 “滞后”似乎也非常不同(0 对 15)。感谢有人可以为我澄清这一点


import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from statsmodels.tsa.stattools import adfuller
from regressors import stats

x1 = [966.0,956.9,949.85,944.7,970.85,950.9,951.35,948.45,954.95,951.2,953.6,957.5,967.55,959.3,955.15,948.8,947.4,938.1,950.8,947.05,935.25,928.6,914.15,924,935.55,919.15,925.05,939.3,927.75,940.05,945.7,978.4,982.45,1001.75,1011,1002.15,1009.9,1007.5,1019.75,975.4,1011.45,1010.4,1009,1008.25,1017.65,1048.7,1055.75,1066.55,1093.7,1106.8,1132.1,1157.8,1137,1108.25,1127.5,1125.9,1137.5,1148.35,1129.05,1122.5,1112.45,1090.85,1076.55,1074.85,1060.6,1072.3,1062.55,1093.95,1104,1112.75,1136.55,1091.05,1117.75,1124.2,1133.45,1123.7,1110.55,1096.75,1103.35,1139.85,1140.05,1115.65,1113.2,1100,1137.85,1140.9,1126.45,1134.65,1143.5,1153.35,1175.2,1167.75,1163.2,1164.55,1154.6,1165.7,1159.2,1189.8,1177.3,1220.5,1253.05,1236.05,1240.3,1250.3,1246.8,1255.8,1260.45,1288.25,1293.8,1282.1,1262.15,1312.1,1376.2,1371.75,1387.15,1370.5,1344.95,1312.05,1316.65,1339.45,1339.7,1340.85,1325.1,1301,1276.2,1239.05,1260.9,1271.25,1284.65,1279.35,1272.1,1303.55,1305.55,1296.5,1292.65,1309.8,1309.65,1290.4,1281.3,1292.45,1291.3,1265.2,1266.35,1274.3,1274.55,1253.3,1267,1304.5,1343.55,1330.35,1316.7,1335.75,1345.55,1368.15,1374.85,1373.6,1384,1387,1337.1,1344.45,1370.8,1371.55,1353.75,1333.8,1336.2,1385.3,1368.05,1385.2,1409.9,1411.05,1430.2,1439.85,1441.05,1425.75,1397.15,1360.75,1362.55,1351.35,1351.1,1348.5,1356,1356.35,1354.35,1352.05,1329.4,1341.5,1361.6,1352.55,1339.55,1330.65,1327,1316.4,1330.5,1341,1335.8,1340.8]
x2 = [956.9,1340.8,1352.8]

y1 = [280.95,281.55,281.05,278.2,279.65,277.4,276.2,277,276.5,281.95,282.7,279.75,274.2,273.35,272.7,269.95,272.05,272.35,271.3,271.6,273.7,282.85,276,278.75,282.55,284.55,293.3,307.2,307.35,312.15,311.7,316.5,311.9,312.25,314.85,304.7,313.9,311.55,311.5,313.55,313.05,333.95,330.05,335.3,359.45,374,377.5,375.95,350.45,341.6,339.65,343.2,346.75,343.45,344.45,342.4,339.8,334.05,335.65,337.45,340.7,334.8,342.95,345.4,345.75,351.95,342.3,345.55,344.15,345.45,348.7,345.3,342.6,346.3,355.85,355.5,350,354.85,350.5,352.85,358.9,360.3,360.8,358.45,363.7,359.5,355.9,353.5,349.35,352.7,358.4,356.9,363.55,353.95,364.2,385.55,382.2,382.9,385,384.4,386.25,388.1,396.4,406.3,406.4,406.75,430.2,446.8,457.7,459,454.35,438.55,431.55,430.25,444.95,445.8,444.75,437.25,446.45,431.9,417.9,421.5,428.35,433.5,429.9,425.55,435.3,439.35,439,437,442,439.7,437.55,432.95,429.95,418.7,415.5,423.1,421.3,410.3,414.4,430.4,435.5,438.8,420.85,416.9,419.2,426.7,425.2,426.35,429.3,419.65,410.15,410.5,414.45,411,399.65,403.9,418.1,414.15,416.4,425.45,427.15,438,442.1,450.1,432.6,418.95,430.7,469.2,472.75,470.1,486.65,475.7,480.3,485.05,489.3,489.85,492.75,487.35,481.95,490.6,512.3,515.25,525.95,518.4,507.6,498.45,500.5,509.2,511.9,508.65]
y2 = [281.55,508.65,514.7]

x_train = np.array(x1).reshape((-1,1))
y_train = np.array(y1)
model = LinearRegression().fit(x_train,y_train)
residues = stats.residuals(model,x_train,y_train,'raw')
adf_result = adfuller(residues)
print(adf_result)

x_train = np.array(x2).reshape((-1,1))
y_train = np.array(y2)
model = LinearRegression().fit(x_train,'raw')
adf_result = adfuller(residues)
print(adf_result)

输出

通过X1,Y1:(-3.9123257881734177,0.0019459855963443135,15,184,{ '1%':-3.466398230774071, '5%':-2.8773796387256514,'10%':-2.575213838610586},1234.5454010045535)

使用X2,Y2:(-1.0037181258360757,0.751905785667101,0,199,{ '1%':-3.4636447617687436, '5%':-2.8761761179270766,'10%':-2.57457158581854},1236.084974615374)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。