自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用于時間序列概率預(yù)測的分位數(shù)回歸

人工智能
本文介紹了分位數(shù)回歸預(yù)測區(qū)間的概念,以及如何利用 NeuralProphet 生成預(yù)測區(qū)間。我們還強調(diào)了預(yù)測區(qū)間和置信區(qū)間之間的差異,這在商業(yè)應(yīng)用中經(jīng)常引起混淆。

分位數(shù)回歸滿足這一需求,提供具有量化機會的預(yù)測區(qū)間。它是一種統(tǒng)計技術(shù),用于模擬預(yù)測變量與響應(yīng)變量之間的關(guān)系,特別是當(dāng)響應(yīng)變量的條件分布令人感興趣時。與傳統(tǒng)的回歸方法不同,分位數(shù)回歸側(cè)重于估計響應(yīng)變量的條件量值,而不是條件均值。

圖(A): 分位數(shù)回歸圖(A): 分位數(shù)回歸

分位數(shù)回歸概念 

分位數(shù)回歸是估計?組回歸變量X與被解釋變量Y的分位數(shù)之間線性關(guān)系的建模?法。

以往的回歸模型實際上是研究被解釋變量的條件期望。??們也關(guān)?解釋變量與被解釋變量分布的 中位數(shù),分位數(shù)呈何種關(guān)系。它最早由Koenker和Bassett(1978)提出。

OLS回歸估計量的計算是基于最?化殘差平?。分位數(shù)回歸估計量的計算也是基于?種?對稱形式 的絕對值殘差最?化。其中,中位數(shù)回歸運?的是最?絕對值離差估計(LAD,least absolute deviations estimator)。 

分位數(shù)回歸的優(yōu)點 

(1)能夠更加全?的描述被解釋變量條件分布的全貌,?不是僅僅分析被解釋變量的條件期望(均 值),也可以分析解釋變量如何影響被解釋變量的中位數(shù)、分位數(shù)等。不同分位數(shù)下的回歸系數(shù)估 計量常常不同,即解釋變量對不同?平被解釋變量的影響不同。  

(2)中位數(shù)回歸的估計?法與最??乘法相?,估計結(jié)果對離群值則表現(xiàn)的更加穩(wěn)健,?且,分位 數(shù)回歸對誤差項并不要求很強的假設(shè)條件,因此對于?正態(tài)分布??,分位數(shù)回歸系數(shù)估計量則更 加穩(wěn)健。

分位數(shù)回歸相對于蒙特卡羅模擬具有哪些優(yōu)勢呢?首先,分位數(shù)回歸直接估計給定預(yù)測因子的響應(yīng)變量的條件量值。這意味著,它不像蒙特卡羅模擬那樣產(chǎn)生大量可能的結(jié)果,而是提供了響應(yīng)變量分布的特定量級的估計值。這對于了解不同層次的預(yù)測不確定性特別有用,例如二分位數(shù)、四分位數(shù)或極端量值。其次,分位數(shù)回歸提供了一種基于模型的預(yù)測不確定性估算方法,利用觀測數(shù)據(jù)來估計變量之間的關(guān)系,并根據(jù)這種關(guān)系進行預(yù)測。相比之下,蒙特卡羅模擬依賴于為輸入變量指定概率分布,并根據(jù)隨機抽樣生成結(jié)果。

NeuralProphet提供兩種統(tǒng)計技術(shù):(1) 分位數(shù)回歸和 (2)保形分位數(shù)回歸。共形分位數(shù)預(yù)測技術(shù)增加了一個校準過程來做分位數(shù)回歸。在本章中,我們將使用 Neural Prophet 的分位數(shù)回歸模塊。

環(huán)境要求

安裝 NeuralProphet。

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

導(dǎo)入需要的庫。

%matplotlib inline
from matplotlib import pyplot as plt
import pandas as pd
import numpy as np
import logging
import warnings
logging.getLogger('prophet').setLevel(logging.ERROR)
warnings.filterwarnings("ignore")

數(shù)據(jù)集

共享單車數(shù)據(jù)。該數(shù)據(jù)集是一個多變量數(shù)據(jù)集,包含每日租賃需求以及溫度或風(fēng)速等其他天氣領(lǐng)域。

data = pd.read_csv('/bike_sharing_daily.csv')
data.tail()

圖(B): 共享單車圖(B): 共享單車

繪制共享單車的數(shù)量圖。我們觀察到,需求量在第二年有所增加,而且有季節(jié)性規(guī)律。

# convert string to datetime64
data["ds"] = pd.to_datetime(data["dteday"])

# create line plot of sales data
plt.plot(data['ds'], data["cnt"])
plt.xlabel("date")
plt.ylabel("Count")
plt.show()

圖 (C):自行車租賃日需求量圖 (C):自行車租賃日需求量

為建模做最基本的數(shù)據(jù)準備。NeuralProphet 要求列名為 ds 和 y,這與 Prophet 的要求相同。

df = data[['ds','cnt']]
df.columns = ['ds','y']

構(gòu)建分位數(shù)回歸模型

直接在 NeuralProphet 中構(gòu)建分位數(shù)回歸。假設(shè)我們需要第 5、10、50、90 和 95 個量級的值。我們指定 quantile_list = [0.05,0.1,0.5,0.9,0.95],并打開參數(shù) quantiles = quantile_list。

from neuralprophet import NeuralProphet, set_log_level

quantile_list=[0.05,0.1,0.5,0.9,0.95 ]
# Model and prediction
m = NeuralProphet(
    quantiles=quantile_list,
    yearly_seasnotallow=True,
    weekly_seasnotallow=True,
    daily_seasnotallow=False
)
m = m.add_country_holidays("US")
m.set_plotting_backend("matplotlib")  # Use matplotlib

df_train, df_test = m.split_df(df, valid_p=0.2)
metrics = m.fit(df_train, validation_df=df_test, progress="bar")
metrics.tail()

分位數(shù)回歸預(yù)測

我們將使用 .make_future_dataframe()為預(yù)測創(chuàng)建新數(shù)據(jù)幀,NeuralProphet 是基于 Prophet 的。參數(shù) n_historic_predictions 為 100,只包含過去的 100 個數(shù)據(jù)點。如果設(shè)置為 True,則包括整個歷史數(shù)據(jù)。我們設(shè)置 period=50 來預(yù)測未來 50 個數(shù)據(jù)點。

future = m.make_future_dataframe(df, periods=50, n_historic_predictinotallow=100) #, n_historic_predictinotallow=1)

# Perform prediction with the trained models
forecast = m.predict(df=future)
forecast.tail(60)

預(yù)測結(jié)果存儲在數(shù)據(jù)框架 predict 中。

圖 (D):預(yù)測圖 (D):預(yù)測

上述數(shù)據(jù)框架包含了繪制地圖所需的所有數(shù)據(jù)元素。

m.plot(
    forecast, 
    plotting_backend="plotly-static"
    #plotting_backend = "matplotlib"
)

預(yù)測區(qū)間是由分位數(shù)值提供的!

圖 (E):分位數(shù)預(yù)測圖 (E):分位數(shù)預(yù)測

預(yù)測區(qū)間和置信區(qū)間的區(qū)別

預(yù)測區(qū)間和置信區(qū)間在流行趨勢中很有幫助,因為它們可以量化不確定性。它們的目標、計算方法和應(yīng)用是不同的。下面我將用回歸來解釋兩者的區(qū)別。在圖(F)中,我在左邊畫出了線性回歸,在右邊畫出了分位數(shù)回歸。

圖(F):置信區(qū)間與預(yù)測區(qū)間的區(qū)別圖(F):置信區(qū)間與預(yù)測區(qū)間的區(qū)別

首先,它們的目標不同:

  • 線性回歸的主要目標是找到一條線,使預(yù)測值盡可能接近給定自變量值時因變量的條件均值。
  • 分位數(shù)回歸旨在提供未來觀測值的范圍,在一定的置信度下。它估計自變量與因變量條件分布的不同量化值之間的關(guān)系。

其次,它們的計算方法不同:

  • 在線性回歸中,置信區(qū)間是對自變量系數(shù)的區(qū)間估計,通常使用普通最小二乘法 (OLS) 找出數(shù)據(jù)點到直線的最小總距離。系數(shù)的變化會影響預(yù)測的條件均值 Y。
  • 在分位數(shù)回歸中,你可以選擇依賴變量的不同量級來估計回歸系數(shù),通常是最小化絕對偏差的加權(quán)和,而不是使用OLS方法。

第三,它們的應(yīng)用不同:

  • 在線性回歸中,預(yù)測的條件均值有 95% 的置信區(qū)間。置信區(qū)間較窄,因為它是條件平均值,而不是整個范圍。
  • 在分位數(shù)回歸中,預(yù)測值有 95% 的概率落在預(yù)測區(qū)間的范圍內(nèi)。

寫在最后

本文介紹了分位數(shù)回歸預(yù)測區(qū)間的概念,以及如何利用 NeuralProphet 生成預(yù)測區(qū)間。我們還強調(diào)了預(yù)測區(qū)間和置信區(qū)間之間的差異,這在商業(yè)應(yīng)用中經(jīng)常引起混淆。后面將繼續(xù)探討另一項重要的技術(shù),即復(fù)合分位數(shù)回歸(CQR),用于預(yù)測不確定性。

責(zé)任編輯:武曉燕 來源: 數(shù)據(jù)STUDIO
相關(guān)推薦

2024-05-10 11:57:02

時間序列概率

2024-01-01 15:37:59

機器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2024-05-09 16:23:14

2022-11-24 17:00:01

模型ARDL開發(fā)

2023-10-13 15:34:55

時間序列TimesNet

2024-06-27 16:38:57

2022-08-16 09:00:00

機器學(xué)習(xí)人工智能數(shù)據(jù)庫

2021-08-05 13:49:39

Python工具開發(fā)

2021-07-01 21:46:30

PythonHot-Winters數(shù)據(jù)

2021-04-07 10:02:00

XGBoostPython代碼

2023-01-30 17:10:23

DeepTime元學(xué)習(xí)

2017-11-20 11:51:40

KerasLSTM深度學(xué)習(xí)

2021-07-02 10:05:45

PythonHot-winters指數(shù)平滑

2024-07-18 13:13:58

2025-01-14 13:32:47

2023-03-16 18:09:00

機器學(xué)習(xí)數(shù)據(jù)集

2024-12-23 13:30:00

2023-02-07 16:21:37

時間序列列數(shù)據(jù)集

2024-11-15 15:20:00

模型數(shù)據(jù)

2024-06-12 11:57:51

點贊
收藏

51CTO技術(shù)棧公眾號