【Stata教程】如何用Stata分析面板數據

2021-03-02 社會科學中的機器學習

在計量研究中,用於實證分析的數據主要有時間序列數據、橫截面數據以及面板數據。其中,面板數據(panel data)是指在時間序列上取多個截面,在這些截面上同時選取樣本觀測值所構成的樣本數據,面板數據能夠幫助我們處理難以觀測的個體效應與時間效應。比如說,我們研究上海市16個區縣洗衣液的消費情況,我們認為洗衣液的價格、居民收入會影響消費情況。但與此同時,民族的風俗習慣、廣告投放也會影響消費。但是對於某一個體而言,民族的風俗習慣不會有大的變化,因此我們能夠控制個體效應。而廣告通常是在某一年通過網絡媒體投放,我們可以認為,所有區縣在特定的年份接受了相同的廣告投放,因此我們能夠控制時間效應。在這篇推送中,我們主要介紹如何使用固定效應模型處理面板數據。

下載數據

各位讀者可以複製連結http://dss.princeton.edu/training/Panel101.dta,下載我們需要的數據。

首先我們需要定義面板數據。具體來說,面板數據有兩個維度,一個是時間維度,一個是橫截面維度。定義了這兩個維度之後,我們就可以分別通過兩個維度的數值確定唯一的觀察值。在stata中,我們使用xtset這一命令來定義面板數據。在本案例中,時間變量是year,截面變量是county。因此我們輸入命令如下:

xtset country year


定義好時間、截面變量之後,我們可以對面板數據的各個截面繪製時間序列圖。在Stata中,xtline是面板數據繪圖的基本命令,我們輸入如下的操作:

xtline y


上圖中,每個county都建立了單獨的坐標系,如果我們想把它們繪製在一起,可以輸入下面的命令:

xtline y, overlay

回歸分析

bysort country: egen y_mean=mean(y)

這一命令的含義是:我們新建一列變量,並將新變量命名為y_mean,某county某年y_mean的數值,等於該county所有年y的平均值。

twoway scatter y country, msymbol(circle_hollow) || connected y_mean country, msymbol(diamond) || , xlabel(1 "A" 2 "B" 3 "C" 4 "D" 5 "E" 6 "F" 7 "G")


圖中橫軸表示不同的county,縱軸表示y的平均值。紅色實心菱形表示該county各年平均的y值,藍色空心圓圈表示該county不同年y值的分布。

bysort year: egen y_mean1=mean(y)

這一命令的含義是:我們新增一列叫做「y_mean1」的變量,某county某年該變量的值等於該年份所有county的平均值。

twoway scatter y year, msymbol(circle_hollow) || connected y_mean1 year, msymbol(diamond) || , xlabel(1990(1)1999)


接下來我們進行OLS回歸:

regress y x1

輸出結果如下:

twoway scatter y x1, mlabel(country) || lfit y x1, clstyle(p2)


上圖中,橫軸表示x1,縱軸表示y。藍色實心點表示實際的數據,即x1等於橫軸對應值時,y等於縱軸對應值。紅色線為擬合直線。

最小二乘虛擬變量模型(least squares dummy variable model, LSDV)

首先我們控制縣的固定效應,並進行y對x的回歸,輸入命令如下:

xi: regress y x1 i.country

predict yhat

新建一列變量,其數值等於y的擬合值。

separate y, by(country)separate yhat, by(country)twoway connected yhat1-yhat7 x1, msymbol(none diamond_hollow triangle_hollow square_hollow + circle_hollow x) msize(medium) mcolor(black black black black black black black) || lfit y x1, clwidth(thick) clcolor(black)


圖中橫軸表示x1,縱軸表示yhat的值,不同顏色的線代表不同的縣,而黑色實線表示OLS估計的結果。

其他方法

我們還可以使用xtreg、areg命令處理固定效應模型。具體命令如下:

xtreg y x1, fe

areg y x1, absorb(country)

總結

在這篇推送中,我們一共闡述了虛擬變量、xtreg、areg三種處理固定效應的方法。。為了對比這三種方法,我們輸入如下的命令:

xtreg y x1 x2 x3, feestimates store fixedxi: regress y x1 x2 x3 i.countryestimates store olsareg y x1 x2 x3, absorb(country)estimates store aregestimates table fixed ols areg, star stats(N r2 r2_a)


結果顯示,這三種方法的估計結果相同。

文章來源:普林斯頓Stata教程,部分文字進行刪改。更多請點擊「閱讀原文」

廣受歡迎的微信公共帳號「社會科學中的數據可視化」每周推送ArcGIS、Python、R、Stata等軟體在社會科學各領域中的運用實例及教程。本帳號由復旦大學經濟學院陳碩教授及其團隊負責。歡迎媒體及學界與我們展開內容合作,聯繫郵箱sksjksh@163.com。查看以前推送:點「社會科學中的數據可視化」並選擇「查看歷史消息」。搜尋帳號: SKSJKSH或掃描二維碼如下:

相關焦點

  • 用Stata搞實證之面板模型入門
    另一個可行的方法則是採用主成分分析降維分析,但是這種方法,又需要用一個複雜的公式換算,過程繁瑣且麻煩,一些類似KMO檢驗的東西還可能根本過不去因此,強師傅更推薦採用面板數據來處理本科以及碩士的畢業論文實證,因為其檢驗簡單,而且更易操作,總之就是坑少好摸對於很多上了計量課就浪起來的同學來說,可能還分不清計量裡的三種數據結構橫截面數據:舉例來說,就是中國2020年30個省份的GDP時間序列數據
  • 零基礎學Stata 數據分析再不怕
    也正因為如此,很多學生在修完了一個學年的計量經濟學課程後,仍然不知道該如何完成OLS估計。在學術圈如果是做應用計量(特別是橫截面數據、面板數據),Stata是不二之選,因為不管是管理數據還是跑回歸,實在太太太方便了。現在主流期刊的應用微觀計量文章裡面能用到的模型stata幾乎都有,而且其中的絕大多數都是用stata做的。而且最大的優點是,簡單!
  • Stata:斷點回歸分析教程
    、面板數據),Stata是不二之選,因為不管是管理數據還是跑回歸,實在太太太方便了。現在主流期刊的應用微觀計量文章裡面能用到的模型stata幾乎都有,而且其中的絕大多數都是用stata做的。而且最大的優點是,簡單! Stata 與 SPSS、SAS 並稱為當今三大統計軟體。與後者相比,Stata 體積小巧、簡單易懂且功能強大。
  • stata編程初步+三種數據類型​
    面板數據、截面數據、時間序列數據 面板數據含義面板數據(Panel Data)是將「截面數據」和「時間序列數據」綜合起來的一種數據類型。具有「橫截面」和「時間序列」兩個維度,當這類數據按兩個維度進行排列時,數據都排在一個平面上,與排在一條線上的一維數據有著明顯的不同,整個表格像是一個面板,所以稱為面板數據(Panel Data)。它是截面上個體在不同時間點的重複測量數據。
  • 零基礎的同學如何用stata做一元線性回歸模型?
    stata軟體越來越受研究生的喜歡,很多研究生在做統計研究、學術分析的時候,也多選用此軟體。網上有關stata的教程有很多,但對於沒有基礎的同學來說,學起來稍微就有些吃力了。那麼,零基礎的同學應該如何學習呢?如何用stata做出滿意的一元線性回歸模型呢 ?
  • stata 面板數據攻略
    1、將數據在excel 表格中按以下順序排列好。第一列為年份,第二列為省份(省份用1-31個數字表示,字符不行),後面幾列為變量。
  • 乾貨貼 | STATA與面板回歸模型(一)
    和spss、eviews等可視化軟體相比,stata用起來要方便的多,敲代碼的快樂,真的是體驗後才能知曉!以下是本人在本科畢業論文中使用的代碼,都是從各網站搜索而來,如有不當之處,歡迎留言指正!設定面板:xtset symbol year生成平方項:gen x2=x^2生成滯後項:gen lag_x= L.x生成差分項:gen D_x=D.x(一階差分)gen D2_x=D2
  • Stata+R:門檻回歸教程
    進行回歸分析,一般需要研究係數的估計值是否穩定。很多經濟變量都存在結構突變問題,使用普通回歸的做法就是確定結構突變點,進行分段回歸。這就像我們高中學習的分段函數。但是對於大樣本、面板數據如何尋找結構突變點。所以本文在此講解面板門限回歸的問題,門限回歸也適用於時間序列。
  • Python與Stata在數據處理區別
    雖然使用標記Index或 MultiIndex可以啟用複雜的分析,並且最終是 pandas 理解的重要部分,但是對於這種比較,我們基本上會忽略它, Index並且只是將其DataFrame視為列的集合。2、數據輸入/輸出從價值觀構建數據幀通過將數據放在input語句之後並指定列名,可以從指定值構建Stata數據集。
  • 一文收藏stata14&15小抄:常用命令匯總
    Basic stata command 本節主要對stata一些基礎命令例如導入導出和描述性分析以及創建新變量進行學習。圖1.7 stata探索性/描述性分析 查看數據結構>2   stata數據轉換 Data Transformation本節主要對stata數據樣本修改、變量標籤以及合併、保存、縱橫變換進行學習。
  • Stata語言中的常用函數及其用法解釋, 在附上42篇Stata相關學習資料
    高級計量經濟學及Stata應用"和"Stata十八講"配套數據,13.數據管理的Stata程序功夫秘籍,14.非線性面板模型中內生性解決方案以及Stata命令,15.把動態面板命令講清楚了,對Stata的ado詳盡解,16.半參數估計思想和Stata操作示例,17.Stata最有用的points都在這裡,無可替代的材料,18.PSM傾向匹配Stata操作詳細步驟和代碼,乾貨十足,19.隨機前沿分析和包絡數據分析
  • NBA與Stata
    今天,小編通過nba2stata這個命令,拿到NBA球員的賽場數據,來感受球隊領袖那殺手般的意志。nba2stata是外部命令,需要使用search nba2stata查找並安裝。nba2stata共有四個語法結構,分別是:(1)抓取球員比賽數據。
  • 【學習記·第38期】stata常見問題及解決辦法
    gen age=age^24. stata裡邊怎麼取對數啊?gen lnx=log(x)5.如何用STATA求自然對數?如說:ln(X^2)=-4.8536,如何求X啊?: reg y x1 x2 i.province9.有會面板數據單位根檢驗,協整實證研究的嗎?
  • 人生苦短,我學stata
    、門檻回歸、動態面板、數據管理專題、時間序列計量、橫截面計量等專題零基礎入門,循序漸進,系統學習,助你掌握高級計量及Stata應用在學術圈如果是做應用計量(特別是橫截面數據、面板數據),Stata是不二之選,因為不管是管理數據還是跑回歸,實在太太太方便了。
  • 經驗分享 | 如何自學stata?教你在不同階段高效使用資源
    SPSS軟體在描述統計、假設檢驗(T、F、卡方、方差齊性、正態性、信效度等檢驗)、回歸分析、相關分析、因子分析、聚類分析、判別分析、主成分、因子分析、路徑分析、中介效應和調節效應檢驗、時間序列分析、ARIMA預測等,具有很好的應用;但是在面板數據處理方面,基本不用。
  • 【乾貨分享】PVAR模型的stata操作流程(附操作文件)
    簡單目錄:stata操作界面簡介PVAR的基本操作流程圖第一步輸入數據(以導入Excel數據為例)第二步 調整數據格式第三步 描述性分析第四步 面板單位根檢驗第五步 協整檢驗第六步 確定最優滯後階數第七步 格蘭傑因果檢驗
  • 【重發】面板門檻模型-stata命令xthreg介紹
    如果模型的研究對象包含多個個體、多個年度,那麼就是面板門檻模型。    目前,Stata14沒有官方命令可以估計門檻模型或者面板門檻模型,最新的Stata15加入了估計門檻模型的功能,但依然不能估計面板門檻模型。所以,一般我們還是藉助外部命令,在Stata14版本下估計面板門檻模型。一、命令介紹目前面板門限回歸有兩個命令。
  • 原創·一流書單:最全的中外文stata學習資源(I)
    導讀:成功最大的捷徑是讀一流的書,如何學習stata,則有眾多的資料可供參考。
  • Stata | Stata 書籍清單
    ,對面板數據(含長面板、動態面板、非線性面板)、時間序列(含 VAR、單位根、協整)、自然實驗、重複截面數據、GMM、自助法、蒙特卡羅法、分位數回歸、門限回歸、非參數估計、處理效應、空間計量、久期分析、貝葉斯估計等均做了較深入的分析。
  • Stata15.0中文版正式發布!又要騙我去學習了
    來源:stata官網,https://www.stata.com/new-in-stata/chinese-interface