當前位置:
首頁 > 最新 > 為啥時間序列模型經常用「狀態空間」表示

為啥時間序列模型經常用「狀態空間」表示

有一段沒有動筆寫文章了,主要是半年度剛過,各種會議開得像走馬燈一樣。現在終於鬧騰的安靜些了。

以下正文

其實說到狀態空間模型,最早接觸到這一名字的時候,還是在維基百科上。

那個時候因為要寫一個關於指數平滑更加深入研究的一個課件,結果在R的一個論壇中發現有個澳大利亞的學者對這個模型的式子講解時,用了「state function」和「measurement function」的叫法。而且,對於不同的指數平滑,狀態空間方程居然還能夠通用互換!

當時我就覺得很奇怪,因為我絞盡腦汁回憶讀書那會兒的課本,然後看中文的百度,並沒看到有關文字介紹和這兩個名詞有關。

後來隨著研究的不斷深入,我發現在老外的各種論文,乃至SPSS的求助文檔中,都喜歡用「狀態空間模型」的形式來討論。

例如,SPSS的幫助文檔的holt-winters指數平滑

而某些書本上的holt-winters指數平滑

上面兩張圖,除了字母不同外,連方程式的個數都不一樣。但要表示的意思確實是一樣的。

為了深入研究更多的時間序列模型,我也接觸到了更多的用狀態空間模型來解釋ARIMA(X),VAR(X),ST型的結構方程形式的。這樣一來,越是想要深入研究這些模型的時候,就越得不停的將同一種模型腦海里不停的切換2種方式來理解。彷彿就像說話時不停的用普通話翻譯廣東話。

下面我就具體舉一個簡單指數平滑用狀態空間模型的等價變化。雖然說他們是等價的,但是不停地在2種表達式之間進行切換去搞研究,一開始很容搞的人格分裂。

這種痛苦狀態其實持續了好長一段時間。以至於搞研究的時候,看到老外的論文就有些頭大——怎麼又是狀態空間方程!

然而,最頭大的還不是看論文,最頭大的是給別人講課!!

這種頭大首先自己要經歷一次兩種表現形式的轉換,等適應環境後,得想清楚如何給聽課的人說清楚。要知道,我的同事們就是聽課的人,他們的專業背景不一,有的是學數學的,有的是學工程的,有的是學計算機的,還有的是學國際貿易的……,他們往往會一遇到問題會問出各種層次難度的問題。甚至又一次我在用PPT講課的時候,我黑暗的會議室裡面聽到了一陣細微的鼾聲……(此處省略好多字)

所以,遇到這種表現形式來回變的場景,我得先在他們聽得頭暈眼花,準備向我提問各種花式難度係數的問題之前,把課件給講清楚。

因此,我的過來經驗是:世界上本沒有頭痛葯,頭大的次數多了,就有了。

那麼,既然老外們這麼喜歡用狀態空間方程,狀態空間方程又是什麼呢?

我嘗試用一個高中生能理解的方式來解釋下吧。

狀態空間方程是工程式控制制領域的專家們發明的,將其發揚光大的,是應用在了阿波羅計劃中。在阿波羅計劃結束後的上個世紀80年代,NASA披露的有關航天器導航、軌跡測量等方面的一系列論文中,特別介紹了狀態空間模型應用到了卡爾曼濾波技術。後來除了航天技術,在導彈、飛機的定位導航,以及後來的GPS汽車定位導航,無人駕駛技術中也廣泛應用了狀態空間方程。

如果去搜索《控制論》有關的知識,你會發現狀態空間方程甚至在控制論中是一個很重要的知識部分。而在別的應用領域,例如質量控制,工藝工程,甚至在計量經濟領域我們都可以用到這方面的知識。

既然狀態空間方程最早來源於航空航天,那我們就舉個簡單的火箭導航定位的例子來說:

當一個火箭A發射升空後,為了定位和預測出不同時刻的火箭的位置,人們必須要根據該火箭在歷史時刻的狀態,來進行測算下一時刻的位置。一般來說,火箭飛行時的位置,由很多狀態變數和控制因素決定,如下圖:

圖的左邊,表示火箭A升空後,地面和空中的各種觀測設備,例如光學望遠鏡、雷達、空間人造衛星等都會實時的觀測A的各種有關參數。

圖的右邊,是說火箭A的位置,可以用很多參數進行表示(或者用模型表徵),這些參數例如經度、緯度、高度、速度以及其他影響位置的顯著因子。當這些參數在t時刻時,科學家可以獲取到觀測到的參數數值。經過一定的數學模型進行推導,結合歷史t-1, t-2……時刻觀測誤差和模型的預測誤差,在經過一個比較微小的時刻△t後,就可以對該火箭A在t+1時刻的位置的各個參數進行預測,也就是定位或導航。

這個時候,各個參數從t時刻到t+1時刻的演化過程如何進行量化,就變得尤為重要了。

如果讀者想要了解更深入些,我們就得跳出高中,來到更高些的知識層面來進行說明

於是,人們就用以下2個方程式來表示火箭A的位置的各個參數的變化過程。

上面這兩個方程其實只是眾多狀態空間模型中的一個比較典型的表達式,這種表達式後面會用在經濟領域。為了能夠更好的轉換,我於是就挑了這種。

其中,狀態方程中,α頂上有個點兒·的,表示由各個狀態參數的估計值組成的狀態向量,例如經度、緯度……的估計值;而α頂上沒有點兒的,則代表了觀測值;各個參數下方的角標,則表示所在的時刻(下同);u表示各個控制變數組成的向量,例如發動機推力等等;Z表示α的觀測值和估計值在相鄰2個時刻之間的變化矩陣;B表示各個控制變數的係數矩陣。由於狀態參數的個數和控制變數的個數不一定一樣,因此他們的Z和B的階數不一定要一樣。

另外,y表示輸出變數組成的向量,你可以理解成想要輸出的因變數。它是由觀測值α經H矩陣映射到觀測空間的值,加上各控制變數u及其前饋影響矩陣D作用下的值,它們之間的線性和。也就是說這是個線性系統。

上面的狀態空間方程,最重要的係數矩陣Z,B, H, D,是要估計出來的。由於假定是在時不變場景下的計算,這些矩陣估計的結果是一個固定值,因此這些矩陣就不標註下標t了。

那如何去估算著些矩陣呢?

方法用到最多的是最大似然估計法,當然了也有其他。此處省略很多很多個計算公式

但如果計算場景是在時變假設下,那麼Z,B,H,D的估算,就是一個動態的過程,是要帶t標註的。那該如何估算呢?方法是有的,比方說卡爾曼濾波。

卡爾曼濾波的發明者是來自匈牙利的一個數學家魯道夫·卡爾曼,後來流亡到美國。據維基百科介紹,他是被NASA邀請到實驗室裡面介紹了這種方法後,被NASA的專家認為可以應用在解決阿波羅計劃的非線性軌跡預測的問題中。後來在NASA的論文中將其冠名卡爾曼濾波。不過後來也有文章說到,卡爾曼是在莫斯科和蘇聯數學家Stratonovich在一次莫斯科會議上會面後得到了後者的啟發,因此卡爾曼濾波也只是後者研究非線性濾波器中的一個特例。

在這裡我就不詳細展開講什麼是卡爾曼濾波了,我就用大家身邊最鮮活的手機導航做個簡單介紹。

上圖就是我們常見的場景,棕色的箭頭表示你的手機,藍色的曲線表示規劃的線路。

假定你在開車,那麼手機的導航軟體是如何知道你的實時位置和規劃線路有沒有偏差呢,或者再往後退一步,導航軟體如何知道你的手機在運動時的實時位置呢?

此時就會用到卡爾曼濾波的技術了。

如下圖

在時刻,你是剛剛發動汽車,此時你是靜止的。假設手機所在的車輛的速度為,經緯度為已知;此時你的手機位置就是上圖從左往右第一個棕色箭頭上。

當發動汽車經過了一個微小的時間後,也就是在1時刻,GPS信號偵測到此時你的手機位置經緯度,也就是觀測值。這個觀測值在上圖從左往右第一個空心箭頭的位置上。那能否就認為這個位置就是你的實時位置呢?答案是否定的。

因為任何觀測設備,都有觀測誤差,或者說雜訊誤差,這個是難以避免的。例如蘋果和安卓手機的GPS定位靈敏度和精度就不一樣,再例如同樣是安卓系統,但不同版本的安卓系統下,或者同一版本的安卓系統但是不同的品牌手機下,相同的GPS軟體定位的靈敏度和精度也不一樣。附近基站信號好壞是一種影響,可能有沒有建築物遮擋干涉也是一種影響,總之環境的干擾產生的雜訊很多。這樣一來,觀測到的手機位置,就不能直接拿來作為定位的直接結果。

那怎麼辦?不要方。

此時,定位軟體也會對手機所在的車輛的前進方向、速度進行計算,通過一個特定的模型,預測出手機應該在的那個位置,就是上圖從左往右的第一個淺棕色箭頭位置。有些車載GPS定位,是根據車輪的轉向角度或方向盤旋轉角度,以及儀錶盤的瞬時速度,預測出車的下個時點位置。

接下來用卡爾曼濾波根據測量誤差和觀測誤差進行運算,得到一個加權的結果,這個結果才是後來在屏幕中顯示的經過一個微小的時間後,1時刻手機的位置。也就是從左往右第2個棕色箭頭。

又過了一個微小時刻,GPS信號偵測到了手機所在的一個新的位置,以及定位軟體預測出了手機所在的一個新的位置,也即是上圖從左往右第2個空心箭頭和淺棕色箭頭。然後再根據歷史的測量誤差和預測誤差進行修正,加權計算,得到了在2時刻手機應該在的位置,也就是最右邊那個棕色箭頭。以此類推……

就這樣,你的手機的位置就不停的被實時的觀測到了。因此才有可能根據自己的實時位置,來判斷有沒有偏離規劃的線路。

那麼經過這個例子,我們可以看出狀態空間方程實際上是不停的通過觀測對象的歷史數據的狀態演化測算,來對觀測對象進行研究的。

當我們把具體化的物理對象,變成抽象的經濟數據時,狀態空間方程就變成了時間序列的重要研究方法了。也正是搞清楚了狀態空間方程到底是怎麼一回事兒之後,我們才能夠明白以及回答本文的開篇問題,為啥時間序列研究愛用狀態空間方程形式。

我做了下歸納總結,狀態空間方程的應用,和經典的時間序列模型相比,有這些優點:

1、參數可變的研究,讓模型預測和解釋力更強。

之所以這麼講,實際上還是要舉例子來做對比。我們常說,線性回歸模型的精度往往讓人失望,是因為預測的殘差太大,擬合效果不高。這是因為在最小二乘法中,在現有的樣本範圍里,變數的係數是固定不變的。例如yt=axt+b這個模型中,係數a和b由於固定不變,因此解釋變數與被解釋變數之間的關係就非常簡單的固化成一個線性的模式。

實際的業務當然遠遠不是一條直線那麼簡單的。往往會出現過程中變參數的情況。例如下圖,一個實際中的數據序列呈現出一個隨機過程,每一小段的鋸齒變化,就是不同a和b作為係數所組成的小直線。也就是存在著變參的過程。

這樣一來,狀態空間方程通過研究這些參數的狀態變化過程,並且計量出了參數的變化規律,就能計算出或擬合出更好的曲線。因而模型的預測對於業務部門而言,可信度也比較高,畢竟是動態的去尋找參數的變化規律,而沒有那麼僵化。

1、狀態空間方程,採用了馬爾科夫過程的形式,模型的可理解性更強。

還是回到經典的「一次指數平滑」模型,我記得課本上是這麼介紹模型的。

在沒有線性趨勢、沒有季節性因素的時間序列中,在t-1時刻預測t時刻水平因子的值,可以用t時刻的實際觀測值,和水平因子在t-1時刻的估計值進行加權平均,而權重就是平滑係數α。因此,整個模型,其實是不停的「吐故納新」的過程。

上面的模型介紹,其實看文字都看的懂。不過有個地方實際上感覺有些晦澀:就是為什麼水平因子可以用實際觀測值和歷史的預測值做加權平均。應該是建立在一個特定的經濟理論基礎上的吧。這個過程講解對於初學者來說,結論來的感覺有些突然。

如果用狀態空間方程來表示的話,內容比較豐富

首先,模型定義了預測誤差et;

其次,第二行是狀態方程,即相鄰兩個時點的水平因子,它的演化過程受預測誤差擾動的影響,影響的程度可以用α係數表示。這個就很容易理解。

最後,第三行的測量方程則說明了觀測樣本未來t+1時刻的預測值,可以用t時刻的水平因子值表示。

以上兩種模型介紹作對比,字數差不多,但理解難度上,我的確感覺到狀態空間方程會容易些。

不知道這樣的解讀,大家是否也和我感覺一樣,如果有不同的解讀,歡迎留言。

--------------------------------------------

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 statist3927 的精彩文章:

TAG:statist3927 |