0

我有幾年的氣溫週期性時間序列,我希望能夠預測它的未來值。平滑週期時間序列的適當方法?

我已經計算出的平均值在可用的年價值在今年,其工程確定的每一個小時,但它顯然是相當嘈雜,因爲我只是有四年的數據。

  • 單向前進可能是做高斯平滑,但更好的選擇可能是將樣條擬合到它。
  • 我搜查,發現lm.circular,它看起來像一個可行的解決方案的候選人。
    • 它沒有指定任何式方式,所以沒有要求它適合樣的方式。
    • 我試圖lm.circular使用1次多項式,但一個現實的問題出現了:它耗盡了內存。請注意,一個標準的lm幾乎是瞬間的,並且在相同的數據上使用沒有明顯的內存
    • 我也試着要求它適合一個Von Mises(type ='c-l'),它問我一個'init '參數,並且我從描述中無法真正理解我應該放入'init'中的內容嗎?
  • 使用正常的lm不是一個真正的選擇,因爲它會在期間的任何一端產生可怕的結果。
  • 我想另一種可能性是使用ets/HoltWinters,時間序列頻率等於一年中的小時數?

我不太確定哪種方式是最好的方式,但我懷疑這是一個很常見的問題,並且可能有非常標準的處理方法?

回答

1

好吧,我發現在最後一個超級簡單的方法。你不需要任何花哨的包裝,只需使用標準lm和應用正弦和餘弦的時間表:

model <- lm(y ~ I(sin(x/periodlength*2*pi) * I(cos(x/periodlength*2*pi)), trainingdata) 

...。然後你可以調整這個公式你的心臟的內容。

(編輯:噢,這是超級快,不會使用太多的內存)。

+0

這是一種方法,但它可能會導致一個沒有任何意義的模型(並且其結果非常糟糕)。 –

0

我使用ARIMA預測未來值

正是這樣

fit <- auto.arima(values)//for getting order of ARIMA 
//here values-> time series data 

future.values<-predict(fit,n.ahead=24)//used for predicting future values 
//n.ahead-> u can give the maximum number of values you want to predict 

下面的鏈接將幫助您瞭解更多的細節

http://www.jstatsoft.org/v27/i03/paper

注:「值「必須是時間序列數據。如果我們不能將時間序列數據轉換爲 ,如 values.ts < -ts(values,frequency =)

+0

arima可以處理非平穩系列嗎?它與迴歸和ets/HoltWinters相比如何? –

+0

我給了汽車。arima a shot;我承認我沒有意識到我應該正常化東西。由此產生的損失對我來說確實很好。看看這張圖,它忽略了任何趨勢,並且在預測未來預測的情況下會出現一些小雞,並且就我看到的情況而言,它只會產生一個抑制振動,漸近於一條直線? –