R

如何複製 John Hussman 的衰退預測方法?

  • August 10, 2011

John Hussman有一個他經常在他的部落格上發布的衰退預測方法,我正在嘗試使用公開可用的數據來複製它。我想評估他預測衰退的準確性,並親自嘗試解決同樣的問題。這是 Hussman 博士對衰退“警告”的標準:

1:信用利差擴大:在過去 6 個月中,商業票據與 3 個月期國債收益率之間的利差或道瓊斯公司債券指數收益率與 10 年期國債收益率之間的利差有所增加。

2:股價下跌:標準普爾 500 指數低於 6 個月前的水平。這本身並不罕見,這就是為什麼人們說過去 6 次衰退中有 11 次是市場下跌,但股價下跌作為更廣泛綜合症的一部分非常重要。

3:ISM採購經理人指數疲軟:PMI低於50,或,

3:(備選):ISM 和就業增長放緩:採購經理人指數低於 54,加上就業增長放緩:非農就業總增長率低於上一年的 1.3%(這是馬蒂·茨威格多年前在巴倫文章中指出的一個數字),或者失業率從 12 個月的低點上升 0.4% 或更多。

4:收益率曲線適中或平坦:如果條件 3 生效,10 年期國債收益率不超過 3 個月國債收益率的 2.5%,或者如果條件 3(替代)生效,則任何差異小於 3.1%(再次,這個標準本身並不會造成很大的衰退風險)。

這是我對其實際含義的解釋:

  1. [ 3 個月 AA 金融商業票據利率]-[ 3 個月國庫固定到期利率 (GS3M) ] > 0

的 6 個月變化 2.標準普爾 500 指數每月的 6 個月變化收盤價 < 0

  1. PMI < 50

3b。或 [ [PMI < 54] 和 6 個月就業百分比變化< 1.3]

  1. [ 3 個月國庫固定到期率]-[ 10 年期國庫固定到期率] < 2.5 或(如果 3b,< 3.1)

這看起來像是對約翰·哈斯曼方法論的正確解釋嗎?我錯過了什麼重要的東西嗎?一旦我確定了正確的數據和正確的計算,我將在 R 中發布一些程式碼來自動計算“衰退警告”指數。


編輯:這是我迄今為止在 R 中的程式碼,我歡迎在這里或我的部落格上發表任何評論。

#Code to re-create John Hussman's Recession warning index
#http://www.hussmanfunds.com/wmc/wmc110801.htm
#R code by Zach Mayer

rm(list = ls(all = TRUE)) #CLEAR WORKSPACE
library(quantmod)

#################################################
# 1. Credit spreads
#################################################

getSymbols('CPF3M',src='FRED') #3-Month Financial Commercial Paper 
getSymbols('GS3M',src='FRED') #3-Month Treasury
CS &lt;- na.omit(CPF3M-GS3M)

#6 month increase
CS &lt;- na.omit(CS-Lag(CS,6))
names(CS) &lt;- 'CS'

#################################################
# 2. Stock Prices
#################################################
getSymbols('SP500',src='FRED')
SP500 &lt;- Cl(to.monthly(SP500))

#Re-index to start of month
library(lubridate)
index(SP500) &lt;- as.Date(ISOdate(year(index(SP500)),month(index(SP500)),1))

#6 month increase
SP500 &lt;- na.omit(SP500-Lag(SP500,6))
names(SP500) &lt;- 'SP500'

#################################################
# 3. ISM Purchasing Managers index
#################################################

#A. PMI
getSymbols('NAPM',src='FRED') #Non-farm emploment
PMI &lt;- NAPM
names(PMI) &lt;- 'PMI'

#B. Employment
getSymbols('PAYEMS',src='FRED') #Non-farm emploment
PAYEMS &lt;- na.omit((PAYEMS-Lag(PAYEMS,12))/Lag(PAYEMS,12)) #12 month increase
names(PAYEMS) &lt;- 'PAYEMS'

#################################################
# 4. Yield Curve
#################################################
getSymbols('GS10',src='FRED') #3-Month Treasury
YC &lt;- na.omit(GS10-GS3M)
names(YC) &lt;- 'YC'

#################################################
# Put it all together
#################################################

P.A &lt;-(CS&gt;0) & #1. Credit spreads widening over 6 months
                   (SP500&lt;0) & #2. Stocks falling over 6 months
                   (PMI&lt;50) &      #3. PMI below 50
                   (YC&lt;2.5)        #4. 10 year vs 3 year yields below 2.5%
P.B &lt;- (CS&gt;0) & #1. Credit spreads widening over 6 months
                   (SP500&lt;0) & #2. Stocks falling over 6 months
                   (PMI&lt;54) &      #3. PMI below 54
                   (PAYEMS&lt;1.3) &  #3.B 1Y employment growth below 1.3%
                   (YC&lt;3.1)        #4. 10 year vs 3 year yields below 2.5%

P.Rec &lt;- P.A | P.B
names(P.Rec) &lt;- 'P.Rec'
P.Rec$P.Rec &lt;- as.numeric(P.Rec$P.Rec)

#Actual Recessions
getSymbols('USREC',src='FRED') 
chartSeries(P.Rec)
chartSeries(USREC)

#Compare
ReccessionForecast &lt;- na.omit(cbind(P.Rec,USREC))
start &lt;- min(index(ReccessionForecast))
ReccessionForecast &lt;- ts(ReccessionForecast,frequency=12,start=c(year(start),month(start)))
plot(ReccessionForecast)

我認為您對#1的解釋可能有誤。拋開 Akshay 的擔憂(實際上非常相關),您可以在美聯儲的 H15數據發布頁面上找到商業票據數據和其他相關利率。在那裡,您將找到金融和非金融公司的 CP 利率數據,以及 3個月國庫券利率。我不確定 Hussman 是否會使用金融或非金融 CP 利率,他可能在只有一種利率時創造了這個,後來已經停止使用。在任何情況下,您都希望將 3 個月的 CP 與 3 個月的國庫券進行比較,以使其保持對等。您可能需要自己進行一些研究才能了解如何複製舊的 CP 率。

美聯儲頁面也有公司債券數據,您可能需要查看穆迪經驗豐富的 Baa 指數數據,並與 10 年期國債固定期限進行比較。或者,根據 Akshay 的建議,您可以使用同一頁面中的州和地方債券利率(也與 10 年期國債相比)。如果您可以訪問巴克萊(雷曼)數據,您就有更多選擇。在這種情況下,您需要查看投資級公司指數的 OAS。然而,美聯儲系列將擁有最長的歷史,恕我直言,在為本質上很少有獨立觀察的事物建構指標時,這是最重要的問題。

順便說一句,您似乎也犯了在#4 中使用 3 年期而不是 3 個月期國債的錯誤。

引用自:https://quant.stackexchange.com/questions/1618