You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Facebook Prophet库中获取股价最后一段趋势线段的斜率?

获取Facebook Prophet最后一段趋势的斜率

方法1:从模型拟合参数提取

Prophet的分段趋势斜率变化存储在模型的params['delta']中,初始趋势斜率为params['k']。最后一段趋势的斜率等于初始斜率加上所有delta的总和:

# 假设已拟合好模型model
initial_slope = model.params['k'][0]
total_delta = sum(model.params['delta'][0])
final_slope = initial_slope + total_delta

# 判断趋势方向
if final_slope > 0:
    print("上涨趋势")
elif final_slope < 0:
    print("下跌趋势")
else:
    print("横盘趋势")

方法2:从预测结果的趋势列计算

如果需要结合具体预测时间点的趋势值,可通过预测结果的trend列,取最后两个时间点计算斜率:

# 假设预测结果为forecast
last_two_points = forecast[['ds', 'trend']].tail(2)
# 计算时间差(单位:天)
time_interval = (last_two_points['ds'].iloc[1] - last_two_points['ds'].iloc[0]).days
# 计算斜率
slope = (last_two_points['trend'].iloc[1] - last_two_points['trend'].iloc[0]) / time_interval

# 判断趋势方向
if slope > 0:
    print("上涨趋势")
elif slope < 0:
    print("下跌趋势")
else:
    print("横盘趋势")

补充说明

  • 方法1直接调用模型拟合的原生参数,能精准反映模型学习到的最后一段趋势斜率;
  • 方法2基于预测输出计算,更贴合实际预测的时间节点趋势;
  • 若开启了MCMC采样(默认关闭),params中的参数会是数组形式,此时可取均值来代表最终斜率:initial_slope = model.params['k'].mean(),total_delta = model.params['delta'].mean().sum()。

内容的提问来源于stack exchange,提问作者Anton Bocharov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 19:45:56