如何複製 John Hussman 的衰退預測方法?
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%(再次,這個標準本身並不會造成很大的衰退風險)。
這是我對其實際含義的解釋:
- [ 3 個月 AA 金融商業票據利率]-[ 3 個月國庫固定到期利率 (GS3M) ] > 0
的 6 個月變化 2.標準普爾 500 指數每月的 6 個月變化收盤價 < 0
- PMI < 50
3b。或 [ [PMI < 54] 和 6 個月就業百分比變化< 1.3]
- [ 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 <- na.omit(CPF3M-GS3M) #6 month increase CS <- na.omit(CS-Lag(CS,6)) names(CS) <- 'CS' ################################################# # 2. Stock Prices ################################################# getSymbols('SP500',src='FRED') SP500 <- Cl(to.monthly(SP500)) #Re-index to start of month library(lubridate) index(SP500) <- as.Date(ISOdate(year(index(SP500)),month(index(SP500)),1)) #6 month increase SP500 <- na.omit(SP500-Lag(SP500,6)) names(SP500) <- 'SP500' ################################################# # 3. ISM Purchasing Managers index ################################################# #A. PMI getSymbols('NAPM',src='FRED') #Non-farm emploment PMI <- NAPM names(PMI) <- 'PMI' #B. Employment getSymbols('PAYEMS',src='FRED') #Non-farm emploment PAYEMS <- na.omit((PAYEMS-Lag(PAYEMS,12))/Lag(PAYEMS,12)) #12 month increase names(PAYEMS) <- 'PAYEMS' ################################################# # 4. Yield Curve ################################################# getSymbols('GS10',src='FRED') #3-Month Treasury YC <- na.omit(GS10-GS3M) names(YC) <- 'YC' ################################################# # Put it all together ################################################# P.A <-(CS>0) & #1. Credit spreads widening over 6 months (SP500<0) & #2. Stocks falling over 6 months (PMI<50) & #3. PMI below 50 (YC<2.5) #4. 10 year vs 3 year yields below 2.5% P.B <- (CS>0) & #1. Credit spreads widening over 6 months (SP500<0) & #2. Stocks falling over 6 months (PMI<54) & #3. PMI below 54 (PAYEMS<1.3) & #3.B 1Y employment growth below 1.3% (YC<3.1) #4. 10 year vs 3 year yields below 2.5% P.Rec <- P.A | P.B names(P.Rec) <- 'P.Rec' P.Rec$P.Rec <- as.numeric(P.Rec$P.Rec) #Actual Recessions getSymbols('USREC',src='FRED') chartSeries(P.Rec) chartSeries(USREC) #Compare ReccessionForecast <- na.omit(cbind(P.Rec,USREC)) start <- min(index(ReccessionForecast)) ReccessionForecast <- 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 個月期國債的錯誤。