計算

轉移矩陣:離散 -> 連續時間

  • May 12, 2015

我有對應於 Tauchen (1986) 的程式碼(Python 等價於this),它生成離散時間 AR(1) 過程的離散近似值。

例如,如果您將網格大小設置為 3,它會為您提供一個生產力向量

[A_1, A_2, A_3,]

和轉移機率矩陣

A_11, A_12, A_13
A_21, A_22, A_23
A_31, A_32, A_33

其中 row i, columnj為您提供從i到的轉換機率j,並且滿足每一行的總和約為 1。

我想知道如何將其轉換為轉換矩陣的連續時間等價物;一組控制狀態之間流量的Poisson機率。

在這方面我只記得我們可以使用以下方法得到Poisson機率的線性近似

$$ Prob(i \to j) = \lim_{\Delta\to0} \exp(-\lambda_{ij}\Delta) \approx 1-\lambda_{ij}\Delta $$ 但我看不出這如何幫助我將以前的矩陣轉換為 $ \lambda $ s…我期待著任何建議。

認為 $ B $ 是一個 $ n\times n $ Poisson轉換率矩陣,其中 $ B_{ij}\geq 0 $ 為了 $ i\neq j $ 表示狀態的速率 $ i $ 狀態轉換 $ j $ , 和 $ B_{ii}\leq 0 $ 給出狀態的速率 $ i $ 過渡到所有其他狀態。每一行 $ B $ 總和為 0。

那麼如果 $ p(t) $ 表示時間的機率分佈 $ t $ ,根據定義 $ B $ 我們有 ODE

$$ \dot{p}(t) = Bp(t) $$ 我們知道這種 ODE 的解決方案是什麼樣的: $ p(t)=e^{Bt}p(0) $ , 在哪裡 $ e^{Bt} $ 是矩陣指數 $ Bt $ . 所以,如果我們想要 $ B $ 生成馬爾可夫轉移矩陣 $ A $ 後 $ t=1 $ ,我們需要有 $ e^B=A $ . 原則上,得到 $ B $ ,我們需要反轉矩陣指數,取矩陣對數 $ A $ . 問題是每個矩陣都有許多矩陣對數——一維複數空間中的對數有無限多的分支,當我們在 $ n $ 維空間。這些對數中的大多數都不是令人滿意的Poisson轉移矩陣:也許它們不是真實的,或者條目沒有正確的符號。然而,它們中可能不止一個:在某些情況下,Poisson不止一個 $ B $ 對應於馬爾可夫 $ A $ , 就像在某些情況下沒有Poisson $ B $ 對應於 $ A $ . 很亂。

幸運的是,有一種情況相對簡單,幾乎可以肯定包括你自己的情況:當 $ A $ 是積極的、不同的實數。在這種情況下,只有一個對數 $ A $ 這將是真實的,並且很容易計算:您只需將矩陣對角化為 $ A=V\Sigma V^{-1} $ 並取特徵值的實對數,得到 $ B=V\Omega V^{-1} $ , 在哪裡 $ \omega_{ii} = \log(\sigma_{ii}) $ . 實際上,您不需要自己執行此操作:如果您使用命令 $ \text{logm}(A) $ 在 Matlab 中(大概也是 Python),它會準確地給你這個 $ B $ .

鑑於這種 $ B $ ,您所要做的就是驗證它實際上是一個Poisson矩陣。第一個要求,即所有行總和為零,由於構造 $ B $ .** 第二個要求,即對角元素為負,非對角元素為正,並不總是成立(我認為),但你很容易檢查。

為了看到這一點,我會考慮一個 $ A $ 對於類似於離散化 AR(1) 的三態馬爾可夫過程。

$$ A = \begin{pmatrix}0.5 & 0.4 & 0.1 \ 0.2 & 0.6 & 0.2 \ 0.1 & 0.4 & 0.5\end{pmatrix} $$ 現在,如果我輸入 $ B=\text{logm}(A) $ 進入Matlab,我得到 $$ B = \begin{pmatrix}-0.86 & 0.80 & 0.06 \ 0.40 & -0.80 & 0.40 \ 0.06 & 0.80 & -0.86\end{pmatrix} $$ 這確實是一個有效的Poisson轉移矩陣,因為我們可以很容易地檢查行的總和是否為零並且具有正確的符號——所以這就是我們的答案。 具有正特徵值的情況非常重要,因為它涵蓋了馬爾可夫鏈中沒有某種振盪行為的所有情況(這將需要負或複雜的特徵值),大概包括您的離散 AR(1)。

更一般地說, $ \text{logm} $ Matlab 上的命令將為我們提供矩陣對數,這是主標量對數的類似物,它使所有特徵值之間具有虛部 $ -\pi $ 和 $ \pi $ . 問題是這不一定是我們想要的對數,通過查看它我們可能會錯過Poisson $ B $ 確實會產生 $ A $ . (這就是為什麼我們不必擔心這一點的正特徵值情況非常好。)儘管如此,即使在這些其他情況下,嘗試看看它是否有效也沒有什麼壞處。

順便說一下這個問題看看有沒有 $ B $ 生成一些馬爾可夫矩陣 $ A $ 已被廣泛研究。它被稱為可嵌入性問題:請參閱Davies 撰寫的這篇出色的調查文章中的一些概述和參考資料。不過,我不是問題技術方面的專家。這個答案更多地基於我自己的黑客經驗和直覺。

我覺得有義務通過附議 ecksc 的評論來結束,並說可能有更好、更直接的方法將離散擬合的 AR(1) 轉換為有限狀態連續時間過程——而不是僅僅採用通過 Tauchen 方法獲得的矩陣和使其連續。但我個人不知道更好的方法是什麼!


**解釋(雖然我很生疏): $ A $ 具有唯一的 Perron-Frobenius 特徵值為 1,並且由於 $ A $ 是隨機的 這個特徵值的右特徵向量是單位向量 $ e $ . 當我們取矩陣對數時,這仍然是正確的特徵向量,現在的特徵值為 0。

引用自:https://economics.stackexchange.com/questions/4765