当前位置:首页 > 科技  > 软件

用于时间序列概率预测的共形分位数回归

来源: 责编: 时间:2024-05-11 09:18:46 87观看
导读预测中的不确定性对于决策者了解潜在结果和相关风险的范围非常重要。通过量化不确定性,企业可以做出更明智的决策,并有效地分配资源。关于预测的不确定性,前面有"用于时间序列概率预测的定量回归“ 和 ”时间序列概率预

预测中的不确定性对于决策者了解潜在结果和相关风险的范围非常重要。通过量化不确定性,企业可以做出更明智的决策,并有效地分配资源。关于预测的不确定性,前面有"用于时间序列概率预测的定量回归“ 和 ”时间序列概率预测的共形预测“的介绍。本文将介绍另一项重要技术--共形分位数回归(CQR)。共形分位数回归(CQR)结合了分位数回归(QR)和共形预测(CP),使两者相辅相成。WHy28资讯网——每日最新资讯28at.com

分位数回归 QR

QR 估算的是目标变量的条件量值,如中位数或第 90 个百分位数,而不是条件均值。通过分别估计不同水平预测变量的条件量值,可以很好地处理异方差。虽然大多数情况下量化值可以提供准确的预测区间,但当模型假设被违反时,量化值预测可能会不准确。WHy28资讯网——每日最新资讯28at.com

共形预测 CP

另一方面,CP 能确保预测区间中的实际值,而无需明确关注特定的量化值。它根据实际数据而非任何模型规范形成预测区间。对所有数据范围都会产生一个固定的宽度。WHy28资讯网——每日最新资讯28at.com

共形分位数回归CQR

为什么不同时使用 QR 和 CP 呢?共形分位数回归(CQR)技术提供了一个值得称赞的解决方案,可以提供具有有效覆盖保证的预测区间。这些覆盖保证是由量回归产生的。CQR 调整了预测区间,以确保实际值总是落在预测区间内,并达到所需的置信水平。WHy28资讯网——每日最新资讯28at.com

什么是CQR

CQR(Conformal Quantile Regression)的基本思想是建立分位数回归(QR)模型用于预测区间,并使用CP技术进行调整。上一章中介绍了CP如何建立预测区间,通过获取点预测值与实际值之间的误差得出容差区间,然后将其与点估计值相连形成预测区间。然而,QR已经给出了预测区间。要调整预测区间,我们需要修改CP方法为CQR,因为在量化预测中,CP以点预测为中心,而应用于预测区间的CQR则以预测区间的两个锚点(下限和上限)为中心。WHy28资讯网——每日最新资讯28at.com

CQR的发展过程称为一致性得分。符合性得分涉及实际值与预测区间上下限之间的距离。如果实际值持续高于上限或下限,则应根据一致性得分调整预测区间,确保在选定的时间水平下,实际值在预测区间内。一致性得分是大括号中两个项中较大的一项。WHy28资讯网——每日最新资讯28at.com

公式(1)公式(1)WHy28资讯网——每日最新资讯28at.com

其中,yt是实际值,Ql和Qu是低量化值和高量化值(下限和上限),ct是符合性得分WHy28资讯网——每日最新资讯28at.com

我们以图(A)中的示例来解释等式(1)。假设有六个实际值y1至y6及其相应的预测区间。在第一次预测中,实际值y1的预测区间在下限Ql和上限Qu之间,而y1更接近上限QU。每个预测区间都会有一个一致性得分。根据公式(1),第一个预测值c1的一致性分值为-2,处于-2和-5之间。当y在预测区间内时,一致性总是负数,而当实际值在预测区间外时,一致性总是正数。WHy28资讯网——每日最新资讯28at.com

图(A):一致性得分图(A):一致性得分WHy28资讯网——每日最新资讯28at.com

我们将为一致性得分绘制一个直方图,如图(B)所示。左侧的负分表示实际值在预测区间内。右侧的正分数表示预测区间无法捕捉实际值。WHy28资讯网——每日最新资讯28at.com

图(B):一致性得分直方图图(B):一致性得分直方图WHy28资讯网——每日最新资讯28at.com

可以根据容忍度确定一个阈值s。根据图(B),95% 一致性得分是 6.0。预测区间将会扩大,保证实际值包含在预测区间内。WHy28资讯网——每日最新资讯28at.com

形式上,CQR 根据下面的公式 (2) 调整分位数回归的预测区间。它从下限Ql中减去阈值s,再将阈值s加到上限QU:WHy28资讯网——每日最新资讯28at.com

公式(2)公式(2)WHy28资讯网——每日最新资讯28at.com

一致性得分可为负,表示所有预测区间均包含实际值。在这种情况下,符合性得分的加减可能导致预测区间变短。CQR 会根据 QR 在区间内的表现调整预测区间,对于始终低估或高估的 QR 会做出相应调整。WHy28资讯网——每日最新资讯28at.com

CQR 的构建

其过程可概括如下:WHy28资讯网——每日最新资讯28at.com

  • 首先,我们将历史时间序列数据分为训练期、校准期和测试期。
  • 然后在训练数据上训练分位数回归模型。应用训练模型生成校准数据的量化预测。
  • 然后根据公式 (1) 计算一致性得分。绘制符合性得分直方图,以定义容差水平,如图 (B)。
  • 然后根据公式 (2) 调整不同量化值的预测区间。

环境要求

NeuralProphet 有三个选项:(i) 分位数回归 (QR)(ii) 保形预测 (CP)(iii) 保形分位数回归 (CQR),用于处理预测的不确定性。WHy28资讯网——每日最新资讯28at.com

!pip install neuralprophet!pip uninstall numpy!pip install git+https://github.com/ourownstory/neural_prophet.git numpy==1.23.5

数据

%matplotlib inlinefrom matplotlib import pyplot as pltimport pandas as pdimport numpy as npimport loggingimport warningslogging.getLogger('prophet').setLevel(logging.ERROR)warnings.filterwarnings("ignore")data = pd.read_csv('/bike_sharing_daily.csv')# 数据获取:公众号:数据STUDIO 后台回复 云朵君data.tail()

图(C):自行车租赁数据图(C):自行车租赁数据WHy28资讯网——每日最新资讯28at.com

数据集包含每日租赁需求、天气信息(如温度和风速)等多变量数据。在进行建模之前,需要对数据进行最基本的准备。NeuralProphet 要求列名为ds和y。WHy28资讯网——每日最新资讯28at.com

# convert string to datetime64data["ds"] = pd.to_datetime(data["dteday"])df = data[['ds','cnt']]df.columns = ['ds','y']

建模

使用具有趋势和季节性模式的NeuralProphet模型,可以添加其他组件,如AR、假期和其他协变量。目前代码已进行了注释。WHy28资讯网——每日最新资讯28at.com

from neuralprophet import NeuralProphetquantile_list=[0.05,0.95 ]# Model and predictioncqr_model = NeuralProphet(    quantiles=quantile_list,    #n_changepoints=10,    yearly_seasnotallow=True,    weekly_seasnotallow=True,    daily_seasnotallow=False,    # Add the autogression    #n_lags=10,    # Forecast the next 50 days    #n_forecasts= 50)cqr_model = cqr_model.add_country_holidays("US")#cqr_model.set_plotting_backend("matplotlib")  # Use matplotlib

训练、验证和测试数据

共形分位数回归的一个关键步骤是将训练数据分为训练数据和校准数据,用于构建符合性得分。WHy28资讯网——每日最新资讯28at.com

df_train, df_test = cqr_model.split_df(df, valid_p=0.2)df_train, df_cal = cqr_model.split_df(df_train, freq="D", valid_p=1.0 / 11)[df_train.shape, df_test.shape, df_cal.shape]# [(532, 2), (146, 2), (53, 2)]

用三种颜色绘制不同的数据集。WHy28资讯网——每日最新资讯28at.com

图(D)图(D)WHy28资讯网——每日最新资讯28at.com

验证数据作为模型验证集。WHy28资讯网——每日最新资讯28at.com

metrics = cpr_model.fit(df_train, validation_df=df_cal, progress="bar")metrics.tail()

图片图片WHy28资讯网——每日最新资讯28at.com

共形分位数回归

创建一个future数据集,在df数据的最后日期之后有50个周期。它将包括所有历史数据的模型预测。或者,如果指定n_historic_predictinotallow=40,它将只包含40个历史数据点及其预测结果。WHy28资讯网——每日最新资讯28at.com

NeuralProphet 的 CQR 选项是method=cqr。我们将通过.conformal_prediction()启用保形预测。WHy28资讯网——每日最新资讯28at.com

future = cpr_model.make_future_dataframe(df, periods=50,      n_historic_predictinotallow=True)# Parameter for CQRmethod = "cqr"alpha = 0.05# Enable conformal prediction on the pre-trained modelscqr_forecast = cqr_model.conformal_predict(    # df_test, # You can also use df_test    future,    calibration_df=df_cal,    alpha=alpha,    method=method,    show_all_PI=True,)cqr_forecast

图片图片WHy28资讯网——每日最新资讯28at.com

绘制预测结果和预测区间图。CQR 预测区间宽度变化。在图(E)中,95% 的情况下,实际值都在预测区间内,因为 CP 可以确保实际值在预测区间内的时间为95%。WHy28资讯网——每日最新资讯28at.com

fig = cqr_model.plot(cqr_forecast,     #plotting_backend = "matplotlib"    plotting_backend="plotly-static")

图(E)图(E)WHy28资讯网——每日最新资讯28at.com

WHy28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-87969-0.html用于时间序列概率预测的共形分位数回归

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 请停止使用 TypeScript 接口

下一篇: 绝妙 C++ 技巧:轻松掌握数值交换!

标签:
  • 热门焦点
Top