AI对时间序列进行ADF检验
编辑
0
2025-06-27

提示词
有一个以日期为index的DataFrame,包含某金融产品的成交价,现在需要对其进行ADF检验,请给出示例代码。
答案
import pandas as pd
from statsmodels.tsa.stattools import adfuller
# 假设原始DataFrame为df,日期为index,包含"成交价"列
# 示例数据准备(可替换为实际数据)
# dates = pd.date_range(start='2023-01-01', end='2025-06-27', freq='D')
# prices = [100 + i*0.5 + 5*np.random.randn() for i in range(len(dates))]
# df = pd.DataFrame({'成交价': prices}, index=dates)
# 执行ADF检验
def adf_test(series):
result = adfuller(series.dropna()) # 自动处理缺失值[5](@ref)
adf_stat = result[0]
p_value = result[1]
critical_values = result[4]
# 格式化输出结果
output = pd.Series({
'ADF Statistic': f"{adf_stat:.4f}",
'p-value': f"{p_value:.4f}",
'1%临界值': critical_values['1%'],
'5%临界值': critical_values['5%'],
'10%临界值': critical_values['10%']
})
# 判断结论
if p_value < 0.05:
output['结论'] = "拒绝原假设,序列平稳"
else:
output['结论'] = "无法拒绝原假设,序列非平稳"
return output
# 调用检验函数
adf_result = adf_test(df['成交价'])
print(adf_result)
我使用了自己的数据,代码都是ai写的,只是注释了模拟数据行。
结果:
ADF Statistic -1.7580
p-value 0.4015
1%临界值 -3.433854
5%临界值 -2.863088
10%临界值 -2.567594
结论 无法拒绝原假设,序列非平稳
dtype: object
- 0
- 0
-
赞助
支付宝
微信
-
分享