跳到主要內容

迴歸估計需要滾動嗎?

在金融計算中,迴歸的參數估計是基本而且重要的。舉凡市場模型的系統風險參數估計、市場流動性的Kyle值等等,我們都必須透過迴歸來估計參數;參數的估計,一次也不可能只估計一檔股票,也不可能假定參數沒有結構性轉變,用全部的樣本估計一個參數,然後就草草結束工作。

因此,這裡提出一個假設性的問題,迴歸參數估計用於投資交易時,需要滾動逐季估計嗎?以下,抓取5檔股票來每季計算系統風險Beta值。資料抓取的期間為"2002-01-01"~"2021-12-31",所有的資料抓取自Yahoo Finance。每季度計算Beta值的重點是讓程式如何判斷每一季的區間。R套件"xts"裡面有endpoints可以使用。不過,通常建議學習者儘量不要使用套件函數,而是自己根據邏輯寫出每個季度的區間。以下是我處理季度的方法 (當然每個人有自己的處理方式)。

處理完季度的判讀後,後續就是寫迴圈逐季估計參數。此處,乃透過雙迴圈執行,雙迴圈包含季度迴圈與公司迴圈。估計完畢,可以得到的參數估計如下:

透過數字,粗略可以看到每檔股票的Beta每季的變動幅度不算小。接續,來看一下圖形會更清楚。

圖形清楚畫出了5檔股票"2002-01-01"~"2021-12-31"的每一個季度Beta。這個圖形給了計量交易者很大的啟示:就算大股票,其Beta的變異每季還是相當大,因此如果想要透過Beta進行投資時,如果即時估計出每檔股票相對均衡的Beta值就很重要了。


留言

這個網誌中的熱門文章

R語言初探

相較於Python語言,R語言用在機器學習與即時運算比較不方便,因此R語言的業界實務應用比較少。然而,就金融計量分析與非即時 (盤後) 分析與計算,R語言算是相當好用與足夠。因此,在金融資料分析與實證研究上,就選擇R語言來處理。 以下是個簡單的例子。透過套件 (1) xts,(2) quantmod,抓取資料,並且搭配200天的移動平均線,即可畫出技術分析的圖形。 上面截圖,總共只需要25行程式,實際上可以更加精簡,讓程式變得更少行數。在程式截圖一點必須提醒,即第20行的價格調整。此處之所要價格調整,乃是因為現金股利與股票股利的調整計算。 技術分析與K線,在金融計量上算是相當基本,在實務的運用上的有效性也是見仁見智,所以此處只是讓學習者了解R語言的方便性與應用。至於金融計量的分析與應用,則須要搭配財金理論 (例如,投資人行為偏誤),因此大量閱讀金融理論,培養金融素養與心法,才是建構交易策略與邏輯的不二法門。 ### R程式參考如下### # Authors: Hsiu-Chuan Lee                                                                    # Email: hclee.finance@gmail.com                         rm(list=ls()) Sys.setlocale("LC_TIME","english") packages=c("xts",            "quantmod") for(i in packages){   if(!require(i,character.only = TRUE)) instal...

由Yahoo Finance 連續抓取資料

廚師在做菜,沒有食材,就沒有可口料理;但如何快速與新鮮獲取食材,這就必須透過物流處理。相同的,金融計算與分析的過程,如何快速抓取資料是一件非常重要的事情,沒有大量的資料,就無法分析。 教學的過程,都必須特別強調在資訊與科技的進步下,如何確實執行"資料不落地",所謂的資料不落地,就是不手動抓取資料。 在學術教學或者是學生的論文研究,基本上都是要求需要透過TEJ 的API來獲取即時資料。TEJ 的API需要額外購買,通常都是業界機構或者學術機構才有本錢購買。 就外部教學上,都是透過R語言的"qauntmod"套件進行示範。換句話說,就一般業餘的使用者而言,通常都是建議透過Yahoo Finance來取得盤後資料。這裡必須提醒,Yahoo Finance所取得盤後資料,難免會有些錯誤,但基於免費的精神下,也就不太強求了! 以下,就透過套件與迴圈來連續抓取資料。