🍎 連享會主頁:lianxh.cn
New! lianxh 命令發布了: GIF 動圖介紹
隨時搜索 Stata 推文、教程、手冊、論壇,安裝命令如下:
. ssc install lianxh
連享會 · 最受歡迎的課
🍓 2021 Stata 寒假班
⌚ 2021 年 1.25-2.4
🌲 主講:連玉君 (中山大學);江艇 (中國人民大學)
👉 課程主頁:https://gitee.com/arlionn/PX
作者:王俊 (中山大學)
郵箱:wangj676@mail2.sysu.edu.cn
目錄
1. 滾動窗口回歸
2. rollreg 命令
3. rolling 命令
4. rolling2 命令
5. asreg 命令
6. 參考文獻
7. 相關推文
溫馨提示: 文中連結在微信中無法生效。請點擊底部「閱讀原文」。
1. 滾動窗口回歸
此前,連享會分享了推文「滾動吧統計量!Stata數據處理」(微信版),重點介紹了如果獲取滾動窗口統計量,如均值、標準差等。
在實證中分析中,我們也經常要以某個長度的窗口進行滾動回歸。例如,在計算企業風險承擔水平時,我們就需要計算連續三年的經行業調整的 ROA 標準差。
本文的主要目的是介紹滾動窗口回歸命令 rollreg、rolling、rolling2、asreg 的用法,以幫助大家在實證分析中更好應用該方法。
2. rollreg 命令
語法
rollreg [depvar varlist] [if exp] [in range], move(#) | add(#) |
dropfirst(#) stub(abbrev) [ robust bw(#) kernel(choice) noconstant
graph(summary|full) ]當然,在回歸之前,必須要使用 tsset 或 xtset 聲明時間序列或面板數據。
案例
webuse invest2, clear
xtset company time
//外網無法下載時,可以訪問連享會數據倉庫下載
//數據地址:https://gitee.com/arlionn/data/blob/master/data01/invest2.dta
*設定移動窗口為5
rollreg market invest time, move(5) stub(mktM)
3. rolling 命令語法
rolling [exp_list] [if] [in], window(#) [options] : command
window(#) 設定滾動的窗口大小,相當於每次滾動過程中需要的連續數據個數;recursive 設定起始點不變,每次滾動窗口加 1;rrecursive 設定結束點不變,每次滾動窗口加 1;clear 用滾動的結果來替換原內存,即使原來內存裡的數據沒有被保存;stepsize(#) 設定每次滾動窗口增加的時期個數;start(time_constant) 滾動的起始時間點;end(time_constant) 滾動的結束時間點。在滾動回歸之前,必須要 tsset 或 xtset 聲明時間變量。當使用 rolling 命令時,window(#) 選項是必須的,其含義是每次回歸的窗口大小。
案例
clear
webuse lutkepohl2, clear
tsset qtr
rolling _b _se, window(30): regress dln_inv dln_inc dln_consump
list start end in 1/10
//外網無法下載時,可以訪問連享會數據倉庫下載
//數據地址:https://gitee.com/arlionn/data/blob/master/data01/lutkepohl2.dta+--+
| start end |
|--|
1. | 1960q1 1967q2 |
2. | 1960q2 1967q3 |
3. | 1960q3 1967q4 |
4. | 1960q4 1968q1 |
5. | 1961q1 1968q2 |
|--|
6. | 1961q2 1968q3 |
7. | 1961q3 1968q4 |
8. | 1961q4 1969q1 |
9. | 1962q1 1969q2 |
10. | 1962q2 1969q3 |
+--+可以看出來,從 1960q1 到 1967q2 共有 30 個時間單位,之後起始點和結束點都加 1,窗口大小保持不變。
webuse lutkepohl2, clear
tsset qtr
rolling _b _se, window(30) recursive: ///
regress dln_inv dln_inc dln_consump
list start end in 1/10當設定 recursive 選項時,起始時點被固定,結束時點每次向後滾動一個單位,那麼 window 的大小也就會從 30 依次加 1。在該例中,觀察值一共有 92 個,而滾動回歸的窗口是 30,所以回歸的總次數是 92-30+1=63。
+--+
| start end |
|--|
1. | 1960q1 1967q2 |
2. | 1960q1 1967q3 |
3. | 1960q1 1967q4 |
4. | 1960q1 1968q1 |
5. | 1960q1 1968q2 |
|--|
6. | 1960q1 1968q3 |
7. | 1960q1 1968q4 |
8. | 1960q1 1969q1 |
9. | 1960q1 1969q2 |
10. | 1960q1 1969q3 |
+--+可以看出,從 1960q1 到 1967q2 共有 30 個時間單位,而後每次回歸窗口加 1,起始點不變。
webuse lutkepohl2, clear
tsset qtr
rolling _b _se, window(30) rrecursive: ///
regress dln_inv dln_inc dln_consump
list start end in -10/-1
//外網無法下載時,可以訪問連享會數據倉庫下載
//數據地址:https://gitee.com/arlionn/data/blob/master/data01/lutkepohl2.dta當設定 rrecursive 選項時,結束時點被固定,起始時點每次滾動向前推 1 單位。
+--+
| start end |
|--|
54. | 1973q2 1982q4 |
55. | 1973q3 1982q4 |
56. | 1973q4 1982q4 |
57. | 1974q1 1982q4 |
58. | 1974q2 1982q4 |
|--|
59. | 1974q3 1982q4 |
60. | 1974q4 1982q4 |
61. | 1975q1 1982q4 |
62. | 1975q2 1982q4 |
63. | 1975q3 1982q4 |
+--+可以看出,1975q3 到 1982q4 是 30 個時間單位,每次回歸窗口加 1,結束時點不變。
Stata 默認會以 _b 開頭來命名估計出的係數,並將結果保存下來。另外,可以在 rolling 後加上 _se,那麼 stata 會將每個係數的標準差以 _se 為開頭存下來。
4. rolling2 命令另外一個命令是 rolling2。這個命令的做法其實和 rolling 是差不多的,但最大的一個不同點是,rolling 在對面板數據進行滾動回歸時,會分組進行滾動回歸,而 rolling2 就是混合回歸。
例如,利用 help rolling2 的示例數據進行演示。
*rolling 滾動回歸
webuse grunfeld , clear
rolling _b _se, window(8): ///
regress invest mvalue kstock
count
//外網無法下載時,可以訪問連享會數據倉庫下載
//數據地址:https://gitee.com/arlionn/data/blob/master/data01/grunfeld.dtagrunfeld.dta 是一份面板數據,共有 10 家公司,每家公司有 20 年數據,即總共 200 個觀察值。當使用上述命令進行滾動回歸時,每家公司會被分開分別進行滾動回歸,那麼總的回歸次數就是 (20-8+1)*10=130。
*rolling2 滾動回歸
webuse grunfeld, clear
rolling2 _b _se, window(8) onepanel: ///
regress invest mvalue kstock
count當使用 rolling2 的時候,它會將整個面板數據混合回歸,也就是說,從整個面板數據中滾動找出 8 年的數據來回歸,那麼總的回歸次數就是 20-8+1=13 次。
5. asreg 命令滾動窗口回歸需要大量的循環,但在運行的時候會遇到很多數據結構問題,諸如非平衡面板數據、重複值、缺失值等。而 asreg 對不同的數據結構並不會採用一種固定的方式估計,恰恰相反,它能識別出不同類別的數據集結構,並採用合適的方法。
除此之外,asreg 命令是利用 Mata 語言來完成的。因此,asreg 在數據集特別大的時候,優勢非常明顯,能夠節約大量的時間。同時,asreg 可以將估計結果輸出到現有內存中,這就減少了再去將估計結果與原數據集合併的麻煩。
語法
asreg depvar indepvars [if] [in] ///
[, window([rangevar] #) ///
recursive minimum(#) ///
by(varlist) statistics_options]
recursive:起始點固定,結束點和滾動窗口增長;minimum(#):用來回歸的最小的觀察值個數。案例
. webuse grunfeld, clear
. bys company: asreg invest mvalue kstock, ///
wind(year 10) min(5)分組估計執行完後,會自動產生一組以 _ 開頭的新變量:
. des _*
variable name variable label
---
_Nobs No of observatons
_R2 R-squared
_adjR2 Adjusted R-squared
_b_mvalue Coefficient of mvalue
_b_kstock Coefficient of kstock
_b_cons Constant of the regression我們也可以查看一下具體估計結果:
. list company year _Nobs _R2 _b_mv in 1/10, clean
company year _Nobs _R2 _b_mva~e
1. 1 1935 . . .
2. 1 1936 . . .
3. 1 1937 . . .
4. 1 1938 . . .
5. 1 1939 5.000 0.995 0.054
6. 1 1940 6.000 0.706 0.062
7. 1 1941 7.000 0.576 0.065
8. 1 1942 8.000 0.500 0.052
9. 1 1943 9.000 0.507 0.052
10. 1 1944 10.000 0.460 0.057關於 asreg 更詳細介紹,請參考 help asreg。
6. 參考文獻
溫馨提示: 文中連結在微信中無法生效。請點擊底部「閱讀原文」。
Zivot, E., J. Wang. 2003, Rolling analysis of time series[C], Modeling financial time series with s-plus®, Springer, 299-346. -Link1- -Link2-StataProfessor - Rolling window regressions in Stata -Link-StataProfessor - Rolling regressions, beta, t-statistics, and SE in Stata -Link-StataProfessor - Stata Rolling command vs asreg for rolling regressions: Similarities and differences -Link-7. 相關推文
溫馨提示: 文中連結在微信中無法生效。請點擊底部「閱讀原文」。
Note:產生如下推文列表的命令為:lianxh runby 滾動 分組 盈餘, m
Stata數據處理:用-astile-快速創建分組穿透財務障眼法:盈餘管理指標測算及 Stata 實操Stata繪圖:用-bytwoway-實現快速分組繪圖
安裝最新版 lianxh 命令:ssc install lianxh, replace
連享會 · 最受歡迎的課
🍓 2021 Stata 寒假班
⌚ 2021 年 1.25-2.4🌲 主講:連玉君 (中山大學);江艇 (中國人民大學)
👉 課程主頁:https://gitee.com/arlionn/PX
🍏 🍏 🍏 🍏
連享會主頁:🍎 www.lianxh.cn
直播視頻:lianxh.duanshu.com
免費公開課:
直擊面板數據模型:https://gitee.com/arlionn/PanelData - 連玉君,時長:1小時40分鐘Stata 33 講:https://gitee.com/arlionn/stata101 - 連玉君, 每講 15 分鐘.Stata 小白的取經之路:https://gitee.com/arlionn/StataBin - 龍志能, 2 小時部分直播課課程資料下載 👉 https://gitee.com/arlionn/Live (PPT,dofiles等)溫馨提示: 文中連結在微信中無法生效,請點擊底部「閱讀原文」。
關於我們🍎 連享會 ( 主頁:lianxh.cn ) 由中山大學連玉君老師團隊創辦,定期分享實證分析經驗。👉 直達連享會:【百度一下:連享會】即可直達連享會主頁。亦可進一步添加 主頁,知乎,面板數據,研究設計 等關鍵詞細化搜索。New! lianxh 命令發布了: 在 Stata 命令窗口中輸入 ssc install lianxh 即可安裝,隨時搜索連享會推文、Stata 資源,詳情:help lianxh。連享會主頁 lianxh.cn
🎦 連享會小程序:掃一掃,看推文,看視頻……
🍉 掃碼加入連享會微信群,提問交流更方便
🍅 連享會學習群-常見問題解答匯總:
👉 https://gitee.com/arlionn/WD
New! lianxh 命令發布了: GIF 動圖介紹
隨時搜索連享會推文、Stata 資源,安裝命令如下:
. ssc install lianxh
使用詳情參見幫助文件 (有驚喜):
. help lianxh