R語言用多項式回歸和ARIMA模型預測電力負荷時間序列數據

2021-03-02 拓端數據部落
原文連結:http://tecdat.cn/?p=18037

 

根據我們對溫度的預測,我們可以預測電力消耗。繪製電力消耗序列圖:

 

我們可以嘗試一個非常簡單的模型,其中日期Y_t的消耗量是時間,溫度(以多項式形式表示)以及工業生產指數IPI_t的函數。

 lm(Load~1+Time+as.factor(Week)+poly(Temp,3)+Temp+IPI,data=elect )

溫度影響的多項式函數來自下圖(去除線性趨勢後的消耗序列)

 

我們還可以假設自回歸形式,其中Y_ {t} 是Y_ {t-1} 的函數


lm(Load~1+Load1+Time+as.factor(Week)+poly(Temp,3)+Temp1+IPI,data=elect

然後,我們可以嘗試進行預測。第二個模型的問題是自回歸部分。要預測Y_ {t + h} ,我們必須使用在t + h-1,Y ^ t + h − 1中所作的預測。







IPI = elect[futur,"IPI"])for(t in 1:110){base_prevision[t+1,"Load1"] = p}

然後,我們可以預測 Y ^ t與觀察值 Yt進行比較。

 

 

我們在夏季估計良好(我們預測了8月上半月的高峰),但我們低估了冬季的消耗量。

最後,我們可以忽略解釋變量,而直接嘗試建立時間序列模型。

plot(elect[passe,"Load"],type="l") 

 

令人擔憂的是該序列的異方差,其最小斜率低於最大斜率。


n=length(passe)="l")m=aggregate(electby=list(as.fpoints(sort((1xM=((1:n)[vM])regm=lm(m$x~xm,col="blue")regM=lm(M$x~xM,col="blue")abline(regm,lty=2)abline(regM,lty=2)


 

經典(簡單)的解決方案是取對數


plot(electplot(z,type="l")B = data.frame(z=z,t=1:length


 

然後,我們必須消除線性趨勢,以平穩序列


z = residuals(lm(z~t,data=B))



arima(Z,order = c(4,0,0),seasonal = list(order = c(1

第一個模型是穩定的,沒有單位根。我們可以嘗試引入季節性單位根



arima(Z,order = c(0,0,0),seasonal = list(order = c(0,1,

最後,最後一個要簡單一些



arima(Z,order = c(1,0,0),seasonal = list(order = c(2,0,0)))

然後,我們將所有預測存儲在資料庫中

然後將線性趨勢添加到殘差的預測中

在這裡,我們在 logY上建立了線性模型,即 logY〜N(μ,σ2),因此 E [Y] = exp(μ+σ2/ 2)


sqrt(predict(modelz1,n.ahead = 111)$se^2+sigma^2),


 

我們在這裡假設兩個模型(線性趨勢和自回歸模型的線性)的預測估計量是獨立的,因此我們可以對方差項求和。另外,Y的預測是

 exp(DOz$z1+1/2*DONNseu$seu1^2),

我們比較三個模型的預測(與觀察值)

 

 

我們與之前的預測進行比較,


lines(futur,base_previcol="orange")

 

 

夏季預測會有所偏差,而冬季預測我們有所改善。

更多內容,請點擊左下角「閱讀原文」查看報告全文



關注我們

案例精選、技術乾貨 第一時間與您分享

長按二維碼加關注

更多內容,請點擊左下角「閱讀原文」查看報告全文


相關焦點

  • R語言用ARIMA模型預測巧克力的興趣趨勢時間序列
    p=18850  在本文中我們對在Google趨勢上的關鍵字「 Chocolate 」序列進行預測。序列如下> report = read.csv(url,skip=6,header=FALSE,nrows=636)> plot(X,type="l") 每月建立一個ARIMA模型比每周建立一個容易。因此,我們將每月數據序列化,將預測與觀察結果進行比較。
  • 用 Python 為時間序列預測創建 ARIMA 模型
    它是一類模型,它捕獲時間序列數據中的一套不同的標準時間結構。ARIMA模型的信息還可以參考這裡:https://www.statsmodels.org/devel/generated/statsmodels.tsa.arima_model.ARIMAResults.html在本教程中,您將了解如何使用Python為時間序列數據開發ARIMA模型。
  • [STATA] 時間序列模型 - ARIMA檢驗
    一、背景介紹時間序列模型是將一個或一組變量按照時間次序排列,用於解釋變量和相互關係的數學表達式,所得到的離散數字組成的序列集合。時間序列模型,可分為平穩時間序列和非平穩時間序列。平穩時間序列可以用來擬合回歸方程進行未來的預測,而非平穩的時間序列不能直接做回歸,會產生沒有實際意義的偽回歸。
  • R語言時間序列分析
    循環波動的周期可能會持續一段時間,但與趨勢不同,它不是朝著單一方向的持續變動,而是漲落相同的交替波動;- 不規則波動:是時間序列中除去趨勢、季節變動和周期波動之後的隨機波動。不規則波動通常總是夾雜在時間序列中,致使時間序列產生一種波浪形或震蕩式的變動。
  • R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
    p=18860 簡介時間序列分析是統計學中的一個主要分支,主要側重於分析數據集以研究數據的特徵並提取有意義的統計信息來預測序列的未來值。時序分析有兩種方法,即頻域和時域。前者主要基於傅立葉變換,而後者則研究序列的自相關,並且使用Box-Jenkins和ARCH / GARCH方法進行序列的預測。
  • 【R函數學習】R語言時間序列函數整理
    interp= c(「before」,」linear」,」after」) ) #可以選擇插值方法,before末次觀測值法,after下次觀測結轉法as.contiguous(x) #返回x中最長的連續無缺失值的序列片段,如果有兩個等長的序列片段,則返回第一個。
  • 時間序列預測的深度學習:電力負荷案例
    在這項工作中,我們調查和實驗評估了應用於短期負荷預測問題的最相關的深度學習模型,為該領域最優解的標準化評估和識別鋪平了道路。重點介紹了三大類模型,即遞歸神經網絡、序列對序列結構和最近發展起來的時態卷積神經網絡。本文的主要貢獻總結如下:1.一個全面的評估。
  • R語言時間序列函數大全(收藏!)
    = as.xts(tm) #包xtssm = as.timeSeries(tm) #包timeSeries#判斷是否為規則時間序列is.regular(x)#排序zoo()和xts()會強制變換為正序(按照時間名稱)timeSeries不會強制排序;其結果可以根據sort函數排序,也可以採用
  • ARIMA模型:全國考研人數預測
    本文選用R語言為基礎分析語言,選取1995-2020年全國碩士研究生報名人數,擬結合ARIMA模型對未來五年的研究生考試報名人數進行預測。ARIMA模型,又稱整合移動平均自回歸模型(移動也可稱作滑動),是時間序列預測分析的主要模型之一。
  • 利用ARIMA構建高性能時間序列模型(附Python代碼)
    簡記為ARIMA(p,d,q),名稱為差分整合移動平均自回歸模型。ARIMA的實際就是差分運算與ARMA模型的組合,這意義關係重大,這說明任何非平穩序列如果能夠通過適當階數的差分實現差分後平穩,就可以對差分序列進行ARMA擬合了。而ARMA模型的分析方法非常成熟,這意味著對差分平穩序列的分析也將是非常簡單、非常可靠的。
  • 時間序列模型matlab代碼 - CSDN
    自回歸(AR)項是指差分序列的滯後,移動平均(MA)項是指誤差的滯後,而I是用於使時間序列平穩的差分數。ARIMA模型假設數據平穩 – 這意味著數據的變化不依賴於時間變化。白噪聲序列和具有循環特性的序列也可以視為平穩序列。數據應為單變量– ARIMA處理單個變量。自動回歸就是關於過去值的回歸。
  • R語言多項式回歸
    利用多項式回歸,我們可以擬合n>1張訂單所產生的數據的模型,並且能試著建一個非線性模型。怎樣擬合一個多項式回歸首先,當我們要創建一串虛擬隨機數的時候,我們必須總要記得寫set.seed(n)。set.seed(20)預測變量q:使用seq來快速產生等間距的序列:q <- seq(from=0, to=20, by=0.1)預測y值:y <- 500 + 0.4 * (q-10)^3我們現在產生一些噪音並把它添加到模型中:
  • 獨家 | ARIMA/Sarima與LSTM的時間序列數據集成學習(附連結)
    :自回歸AR模型以時間序列的前一個值和當前殘差來線性地表示時間序列的當前值,而移動平均MA模型則用時間序列的當前值和先前的殘差序列來線性地表示時間序列的當前值。此外,將均值輸入邏輯回歸層以預測樣本的標籤。ARIMAARIMA算法為捕捉時間序列數據中時間結構的一類模型,然而,單獨用ARIMA模型卻很難對變量之間的非線性關係進行建模。自回歸整合移動平均模型(ARIMA) 是一種將自回歸(AR)過程和移動平均(MA)過程相結合的廣義自回歸移動平均(ARMA)模型,它構建了時間序列的複合模型。
  • 用R語言做時間序列分析(附數據集和源碼)
    時間序列(time series)是一系列有序的數據。通常是等時間間隔的採樣數據。
  • R語言和Python實現回歸分析
    1)實際上完全沒有關係的變量,在利用樣本數據進行計算時也可能得到一個較大的相關係數值(尤其是時間序列數值)2)當樣本數較少,相關係數就很大。我們期望回歸平方和佔比越大,那麼我們的模型就越好;但是回歸平方和<=總平方和;
  • 迅速上手的時間序列分析教程
    根據觀測值的不同頻率,可將時間序列分成小時、天、星期、月份、季度和年等時間形式的序列。有時候,你也可以將秒鐘和分鐘作為時間序列的間隔,如每分鐘的點擊次數和訪客數等等。 為什麼我們要對時間序列進行分析呢?因為當你想對一個序列進行預測時,首先要完成分析這個步驟。
  • 通過Python 代碼實現時間序列數據的統計學預測模型
    統計模型與統計要素時間序列分析常用統計模型單變量時間序列統計學模型,如:平均方法、平滑方法、有/無季節性條件的 ARIMA 模型。多變量時間序列統計學模型,如:外生回歸變量、VAR。附加或組件模型,如:Facebook Prophet、ETS。結構化時間序列模型,如:貝葉斯結構化時間序列模型、分層時間序列模型。在本篇文章中,我們主要關注 SARIMA 和 Holt-winters 方法。
  • r語言 tseries - CSDN
    =」ts」)print(x, style=」ts」, by=」quarter」)四、【圖形展示】plot.zoo(x)plot.xts(x)plot.zoo(x, plot.type=」single」) #支持多個時間序列數據在一個圖中展示plot(x, plot.type=」single」) #支持多個時間序列數據在一個圖中展示
  • 對比R語言和Python,教你實現回歸分析
    1)實際上完全沒有關係的變量,在利用樣本數據進行計算時也可能得到一個較大的相關係數值(尤其是時間序列數值)2)當樣本數較少,相關係數就很大。我們期望回歸平方和佔比越大,那麼我們的模型就越好;但是回歸平方和<=總平方和;
  • ARIMA時間序列模型-操作篇
    上期我們介紹了ARIMA模型的理論,在理論的基礎上,本期將結合實例進行軟體操作,本期介紹ARIMA模型的SPSS操作,以方便大家對照用自己的數據:如果數據有缺失,是無法做ARIMA的模型預測的,所以第一步是缺失值的填補。