天天看點

拓端tecdat|R語言用收縮估計股票beta系數回歸分析Microsoft收益率風險

配對交易提出的問題之一是股票的貝塔值相對于市場的不穩定估計。這是一個可能的解決方案的建議,這并不是真正的解決方案。

看看下圖:

拓端tecdat|R語言用收縮估計股票beta系數回歸分析Microsoft收益率風險

Microsoft的滾動系數(回歸:MSFT~SPY)- 120 天的視窗,純藍色是使用完整樣本估計的 beta

我們可以看到截距并沒有太大的波動,這确實意味着如果市場不波動,MSFT 也不會。然而,beta在穩定的市場(貝塔 = 1)和中性(貝塔 = 0)之間波動。

當然,随着視窗的縮短,事情會變得更加不穩定,120 天大緻意味着最近的 6 個月,這并不短。也許我們可以在長期(穩定)估計和短期估計之間找到一個折衷方案。

一種方法是簡單地平均兩個估計值。另一種是使用收縮估計的方式對它們進行平均。但現在,這種方法的一個簡單解釋是平均計算 X 矩陣中的離散度,在我們的例子中,它隻是市場收益和截距,目前周期是否波動?可以使用 X 矩陣的奇異值分解來給出解釋。

我們得到一個新的 beta 估計值,它是短期和長期估計值的平均值。我們需要決定應用多少收縮。我們有一個參數,稱為超參數,它決定了要應用的收縮量,低數字意味着對長期估計的拉動較小,而一個高的數字意味着對長期的拉動較大,是以對短期估計的權重較小。結果是:

拓端tecdat|R語言用收縮估計股票beta系數回歸分析Microsoft收益率風險

你可以看到,你應用的縮減量越大,估計值就越接近它的長期值。将超參數取為0.1将防止β值波動到負值區域,但仍為可能的結構性變化留出一些空間。你可以用這個方案來調和不穩定的估計程式和常識性的論點,例如,可能在這段時間内β值确實是負的,但這有意義嗎? 可能你的估計值變成負的,隻是因為你想允許結構性變化,這是一件好事,這導緻了 "不那麼直覺 "的估計。

以下代碼包含一個函數,用于繪制您自己的資料,将希望檢視的時間範圍、視窗長度和股票代碼作為輸入。

1.  ret <<- matrix # 收益矩陣
2.   
3.  for (i in 1:l){
4.   
5.  dat0 = (getSymbols
6.   
7.   
8.  ret<<- dat - 1
9.   
10.  }
11.   
12.   
13.   
14.  for (i in 1:(n-w)){
15.   
16.  bet0[i]  = lm
17.  bet1[i]  = lm
18.  }
19.   
20.   
21.  btt <<- lm$coef[2] # 我們以後需要它作為一個先驗平均數
22.   
23.  plot
24.  abline
25.   
26.  legend
27.   
28.  plotbe
29.   
30.   
31.   
32.  Aok <- 0.01 #又稱正則化參數
33.   
34.  A = Amoink*diag(2)
35.   
36.  # 你可以嘗試用不同的值來代替對角線
37.   
38.  # 也許你不想在另一個應用程式中縮小截距
39.   
40.  prbeta
41.   
42.   
43.   
44.  poet = matrix
45.  for (i in 2:(n-wl)){ 
46.   
47.  bet0[i]  = lm$coef[1]
48.   
49.  bet1[i]  = lm$coef[2]
50.   
51.  x = cbind
52.   
53.  post[i,] = solve
54.  }
55.   
56.   
57.   
58.  plot(postbet
59.   
60.  lines      
拓端tecdat|R語言用收縮估計股票beta系數回歸分析Microsoft收益率風險

繼續閱讀