【數學課堂】為什麼學線性代數
量化課堂也有一陣子沒更新了,從現在起將陸續推出一套數學課堂,內容將含括量化交易會用到的數學基礎:線性代數、數學分析、測度論、概率統計、隨機過程,還有為沒經歷過嚴格數學訓練的同學準備的數學邏輯和證明方法基礎。數學課堂目標是能讓學員有能力理解量化分析相關文獻中的數學和統計學論證。目標不小,咱慢慢來。
先從線性代數開始。
先從「為什麼要學線性代數」開始。
0.1導語
線性代數是數學中最基礎卻極其重要的一門學科,因為任何科學領域都繞不過線性代數,把線性代數稱數學中最有必要掌握的一門也不為過。就拿其他數學分支來說,代數中的群表示論的基本是從任意群到矩陣群(一般線性群的子群)的同態映射;分析中的泛函分析是對無限維度的賦范線性空間和其上的線性運算元的研究;幾何中的流形是局部同胚於線性空間的拓撲空間,它們的切從是用線性空間來表示,這些線性的性質也延伸到上同調的理論;在離散數學中,代數圖論是用鄰接矩陣來表示一個圖並用線性代數的技術展開研究,還有正如其名的矩陣胚,是有限域上的矩陣的一種延伸,在圖論和組合學中有重要應用。
當然線性代數的作用遠不局限於數學中,在物理、工程、計算機、金融、人工智慧等科學領域中,線性代數以及上述需要線性代數的數學分支都有不計其數的應用場景。本篇介紹線性代數在各個方面的一些應用,覆蓋面肯定不全,但足以展示線性代數的常用概念以及它對量化交易的重要性。
0.2解決線性系統
線性最直接的應用應該就在於解決線性系統。大家一定都熟悉雞兔同籠的問題。我們就舉個例子,有一個籠子里有好多雞和兔子和螞蟻,三個物種分別有22、44、66 只腳。雞和兔子加起來一共有 22 只腳,兔子和螞蟻加起來一共 46 只腳,雞和螞蟻加起來一共 60隻腳,請問三種動物各有多少。
設我們有雞 x 只、兔 y 只和螞蟻 z 只,那麼上面的條件可以寫為系統
通過線性代數的符號我們可以將這個系統寫為矩陣和向量的乘積
使用 NumPy(或者手算,3×3 的矩陣並不大),我們計算出等式中矩陣的逆矩陣為
所以可以計算出
有 7 只雞、1 只兔子和 9 只螞蟻。
0.3空間的操作
線性代數中兩個主要的數學對象是空間本身,叫做線性空間,和對線性空間的各種操作,叫做矩陣,它等同於線性映射,有時也叫做線性變換。比如說,一個二維的旋轉矩陣的形式
它的作用是將整個空間旋轉 的弧度(radian)。比如說,我們有一張圖片(圖片源:SciPy 資料庫)
這個圖片的像素為 1024×768,它的信息被儲存為一個矩陣的數據
的值代表這個圖片在坐標 的顏色。我們想把這個圖片旋轉 ,也就是 ,那麼就要把這個圖片所在的整個二維空間用旋轉矩陣 進行變換。一個坐標
在轉變之後的新坐標是
那麼就在一個新的畫板上,把坐標 的顏色定義為 , 得到的就是旋轉 之後的圖像結果(因為旋轉之後的坐標不是整數,整數化之後留下一些黑點,這需要其他的圖像處理技巧來解決,這裡就不延伸)
然後我們可以使用另一個矩陣
來進行同樣的操作,這次得出的結果是把圖片按 軸拉伸為 倍並按 軸擠壓為 倍,得出結果
0.4線性回歸
線性回歸是統計學中一個常用的工具,給定一組二維空間上的點(後面圖中的藍點)
我們想找到一條線(後面圖中的綠線)
並希望這條綠線和這些藍點是最貼近的。評判「最近」的方法就是使數據點離之線的距離平方和(圖中紅色線段的平方的和)
是最小的。
但是,直接分析這個 RSS 函數比較困難,這時就能用到矩陣的強大表達力了,我們可以把這個公式寫為矩陣的形式。設
和
以及
上面的公式可以被轉寫為矩陣形式
然後通過矩陣微積分的方法可以推導出,當
時,RSS 的值是最小的,它給我們下圖中的這條綠線。
當然,線性回歸的公式 (1) 不僅僅適用於二維空間中,如果我們有更高維的數據點
並想找到一條直線
來擬合這組高維的數據,等式 (1) 的結論同樣適用,只不過矩陣 會更大,有 列,相應的 長度為 。值得強調的是,如果沒有矩陣的表述方法,公式 (1) 將會是不可想像的複雜,我們有這樣簡短的表達式全歸功於矩陣的簡便性。
0.5MPT 資產配置
在現代資產配置理論(MPT)的模型中,假設有風險資產 ,對應隨機變數 對於一個權重向量 ,這個向量對應的組合有收益率和方差
所有這些資產組合的期望和標準差放到坐標圖上構成一個子彈狀的圖像
所有這些點在最左端勾勒出的曲線叫做有效前沿,是給定一個收益率能找到的風險最小的組合,這條曲線對於資產配置理論有著至關重要的意義,而計算出這條曲線就需要矩陣的幫助。定義協方差矩陣
以及
通過拉格朗日乘子,可以算出,設
可以算出有效前沿的曲線
根據這個公式可以畫出有效前沿的曲線
0.6Markov 鏈
Markov 鏈是隨機過程的一種,在這個鏈中每個時間點出現某種狀態的概率取決於上一個時間的狀態。比如,我們假設股市的漲跌符合 Markov 鏈的模型,將每天漲跌的狀態分為「漲」、「平」、「跌」三種。「漲」代表當天漲幅 1% 以上,「跌」代表當天跌幅 1%以上,當漲跌在正負 1% 之內時視為「平」。通過統計,我們得出下述概率關係:
在這個表中,從一個狀態到另一個狀態的數字代表從今天狀態到明天狀態的概率,比如說,如果今天漲,那麼明天繼續漲的概率是 28%,如果今天跌,那麼明天平的概率是 51% 。考慮這麼一個問題,如果當前的狀態是「漲」,那麼 2 天后狀態的概率分布是什麼?
解決這個問題需要使用轉移矩陣,這個矩陣的第 列的第 個數就是從狀態 到狀態 的概率,如下
想計算 2天後的狀態概率,我們取轉移矩陣的 2 次方
從第一列(也就是對應著「漲」的那裡一列)讀出來,如果今天是「漲」,那麼兩天後有23.44% ,的概率是漲,58.38%會平,另有18.18%概率會跌。
那如果是 250天之後呢?我們取轉移矩陣的 250 次方。這個運算雖然對於人腦來說有點大,但用計算機來算還是很快的,
這個矩陣的三列的的數都是一樣的,理解起來也很直觀,由於時間隔得太過久遠,具體今天是什麼狀態對250 天后的狀態已經沒有什麼影響了,這個矩陣的一列代表的就是三種狀態整體的分布,也就是說在整體上,每一天都有 23.34%的概率是漲,58.22%概率平,18.4% 的概率跌。
有些時候轉移矩陣不一定收斂得這麼快(尤其是狀態很多矩陣很大的情況下),可能計算出 發現每列之間的的差別還是比較大,而我們又想知道幾種狀態無條件的概率分布,那麼就需要計算轉移矩陣冪的極限
這個看起來可能無從下手,但通過對角化的方法可以解決這個問題,即把 分解為
這裡 是一個可逆矩陣, 是一個對角矩陣,它在對角線上的值是 的特徵值,即
要注意的是這些特徵值 不一定是實數,有可能是複數。在這個表示下, 的次方的
極限可以寫為
如果 那麼 ,如果 但是 ,那麼 不會收斂,如果 ,而由於 的每一列加和都是 它的特徵值不可能有它的特徵值不可能有 。根據這個觀測,計算對角矩陣次方的極限 就很簡單了,相應地 的極限也就計算出來了。
比如說,通過特徵值和特徵向量的分析,上面例子中的轉移矩陣可以寫為
這裡
根據上面的結論,
這和之前計算的 是吻合的。
0.7多元正態分布
正態分布是概率論和統計學中最最最重要的概率分布。一個均值為 方差為 的正態分布函數是
但是現實中很多數據不是一維的,而是多元的,這就要用到多元的正態分布。對於一列長度為 維的均值向量 和協方差矩陣 ,相應的多元正態分布函數是
舉例來說,下面展示的就是兩個二元正態分布。
這兩個二元正態分布的每一個變數都是 的正態分布,但是放到一起的二元分布的熱力圖卻截然不同。這兩個二元分布的差別就在於它們的協方差矩陣 ,通過研究這個矩陣可以分析出多元正態分布形狀。一個 協方差矩陣一個重要的特性就是 是正定矩陣,它有一個正交的特徵向量基 ,每個 對應特徵值 ,也就是說 並且 是 的一個基,並且相當於 時有 .
對於一個分布 ,和某個 ,它的同概率輪廓為
這個輪廓是一個橢圓體,橢圓體的中心是 ,,它的 個主軸的方向是
分別對應 ,並且主軸的長度分別是 對於某個 。
比如說,上面第一個圖中的分布的協方差矩陣是
這個矩陣的特徵值是 和 ,分別對應特徵向量
那麼這個分布的同概率橢球的主軸分別在 和 的方向,長度分別是 和 ,如下圖所示。
通過對正定矩陣的分析,我們可以對聯合正態分布的同概率橢球有清晰的認識,這對這些分布的分析起到很大作用。
0.8結語
不學好線性代數是無法在這個世界生存下去的。
到JoinQuant查看原文並參與討論:https://www.joinquant.com/post/8655?tag=algorithm
推薦閱讀:
※量化策略系列教程:06技術指標MA策略
※量化策略系列教程:19AR-MA 策略
※雪球殺豬榜里的趨勢突破策略
※哈工大智能薦股靠譜嗎?你怎麼看?
※Python入門到精通視頻課程(11)