电竞比分网-中国电竞赛事及体育赛事平台

分享

基礎方法 | 用Stata完成量化論文全流程示例!附超詳細do文件

 湖經(jīng)松哥 2022-06-14 發(fā)布于湖北

Method 

量化研究已經(jīng)逐漸成為社會科學研究的主流,其重要地位無需贅述。
 
好的選題+嚴謹?shù)哪P?熟練的軟件操作=一篇好的論文
 
對于Stata的操作而言,市場上的書籍、課程等琳瑯滿目, 而本文側(cè)重于如何使用Stata完成一篇量化論文的數(shù)據(jù)處理,滿滿的干貨,相信各位讀者尤其是初學者如果能夠操作一遍,一定會對Stata的運用有所掌握。
圖片

圖片

圖片

本文從數(shù)據(jù)清理、描述性統(tǒng)計、循環(huán)命令的使用、雙變量分析、因子分析、線性回歸、Logistic回歸、表格輸出等方面詳細地介紹Stata的使用。
跑一個模型對于看似十分簡單,的確也十分簡單,只需要一行命令,但是“跑模型”的功夫盡在“模型”前。
在這里,我們利用CGSS2015數(shù)據(jù),假定來研究“錢能買來快樂嗎?”即收入對主觀幸福感的影響
01 打開數(shù)據(jù)

方法1:通過命令方式

use 'D: cgss2015_14.dta', clear 

方法2:窗口點擊(更推薦,不用寫路徑)

點擊菜單欄第一個文件夾的標志,然后打開數(shù)據(jù)

圖片

點擊后會在屏幕上出現(xiàn)一行命令,可以將其復制到do文件中,便于下次使用

圖片

02 查看數(shù)據(jù)/變量

例如:我們最關心的兩個變量一個是收入,一個是主觀幸福感,我們可以先查看一下變量的基本情況

tab a36

圖片

sum a8a

圖片

03 數(shù)據(jù)/變量管理
熟悉stata或者是量化研究處理流程的讀者可能清楚,跑一個模型可能在這一步需要花費很大的力氣,在這里我們將詳細地來進行操作示范
*幾個常用命令:gen  recode  rename  replace
 
*Part ONE 基本人口學變量處理
社會科學的研究中基本人口學變量是必不可少的,本部分的命令也可以復制到以后的其他研究中使用,事半功倍!
*性別
gen gender=a2 //生成一個新變量gendergender這個變量就是原來的a2變量
*年齡
gen age=2015-a301 //生成一個新變量age,這個變量為2015減去出生年
*民族
gen nation=a4
replace nation=. if nation<0 //stata中用.或者空格來表示缺失值,這樣軟件就能識別出,否則將會代入計算
recode nation (1=1 '漢族')(else=0 '少數(shù)民族'),gen(newnation)
*教育程度
gen edu=a7a
replace edu=. if edu<0
recode edu(1 2 3=1 '小學及以下')(4=2 '初中')(5 6 7 8=3 '高中(專)')(else=4 '大專及以上'),gen(newedu)
*政治面貌
gen party=0
replace party=1 if a10==4
replace party=. if a10<0
*戶口
gen hukou= a18
recode hukou (1=0 '農(nóng)業(yè)戶口')(7=. )(else=1 '非農(nóng)戶口'),gen(urban)  //將沒有戶口處理為缺失值
global population  gender age newnation newedu party urban
/*定義全局宏,用處就是將上述所有人口學變量定義為population,在接下來的回歸時就不
需要每個變量都敲一遍,通過輸入$population就可以*/
*PART TWO 自變量處理
*我們的研究問題是:錢能不能買來快樂?我們用個人全年總收入測量“錢”,相關處理如下:
 gen income=a8a
 replace income=. if income<0
 /*在回歸分析中有一個重要的假定,就是變量要服從正態(tài)分布,我們可以通過直方圖的形式
 來觀察變量是否服從正太分布,具體命令如下:*/
 hist income, percent normal title('收入分布')
 /*做完圖之后我們發(fā)現(xiàn),收入這個變量呈現(xiàn)明顯的左偏的分布態(tài)勢,根據(jù)統(tǒng)計學原理,
 針對左偏的變量我們一般采用取對數(shù)的形式來糾正,命令如下:*/
 gen lnincome=log(income+1)
 /*生成收入對數(shù)變量,選擇收入+1的原因是,對數(shù)運算的數(shù)學原理中不允許出現(xiàn)0,而收入
 變量中有0值,為了讓這些0收入的樣本進入,我們將其+1,這也不會對最后的結(jié)果產(chǎn)生較大影響*/
 hist lnincome, percent normal title('收入對數(shù)分布') //調(diào)整之后收入對數(shù)是符合正態(tài)分布的
*PART THREE 因變量處理
*我們的研究問題是:錢能不能買來快樂?我們用主觀幸福感測量“快樂”,相關處理如下:
gen happy=a36
replace happy=. if happy<0
 
*PART FOUR 控制變量
在研究中除了要控制基本的人口學變量之外,還要控制一些混雜因素,正常情況下,控制變量的選擇要依照理論,這里僅為了方法上的展示,我們擬控制如下變量:個人能力和社會階層這兩個變量
*個人能力
/*我們擬采用CGSS問卷中的:您覺得自己的以下能力是什么水平?(問卷P11)進行測量
主要包括四個方面:聽普通話、說普通話、聽英語、說英語等能力,對于這四個題目我們
可以通過一個循環(huán)命令來解決,不需要繁瑣的寫很多命令,具體如下:*/
forvalue i=49/52{
  replace a`i'=. if a`i'<0
}
另外的一個問題,如果我們把這四個問題都放入模型會產(chǎn)生嚴重的多重共線性問題,
為了避免這一問題,我們可以用因子分析的方法解決,具體如下:
factor a49-a52
rotate
predict f1
rename f1 ability  //f1這個因子得分變量重命名為ability
*社會階層
gen
replace class=. if class<0
global var class ability
04 回歸分析
*PART ONE 一般線性回歸
reg happy lnincome  //reg是線性回歸的命令,后面第一個變量是因變量,其余順序無要求
reg happy lnincome $population $var  //人口學變量和控制變量均利用全局宏簡寫
 
*PART TWO Logistic回歸
ologit happy income  //ologit是序次logistic回歸的命令,后面第一個變量是因變量,其余順序無要求
ologit happy income $population $var
 
可以看出,回歸分析只是一行命令而已,真正的工作是在第三步:數(shù)據(jù)/變量管理中
05 表格輸出
經(jīng)過一些列的數(shù)據(jù)分析后,到底如何將結(jié)果變成可以直接貼在論文的圖表呢?
在這里介紹幾個命令,可以將描述性統(tǒng)計以及回歸分析的表格直接輸入到word中。
*PART ONE 描述性表格輸出
ssc install asdoc, replace //安裝外部命令,用于表格輸出
       
asdoc sum income lnincome happy $population $var, ///
      stat(N mean sd  p25 p75) fs(12) dec(2) ///
         save(summary1.doc)
stat表示需要輸出的描述性統(tǒng)計變量,具體而言,
stat(N mean sd  p25 p75) 表示輸出的統(tǒng)計變量為樣本數(shù)、算術平均數(shù)、標準差、t 值、1% 分位數(shù)、99% 分位數(shù),fs(#) Font size 的縮寫,表示字號大小為 # 鎊,dec(#) 為 Decimal points 的縮寫,表示輸出結(jié)果保留到小數(shù)點后 #
輸出的結(jié)果如下圖:
圖片
 /*以下命令只能用于Stata15.0以上版本
ssc install sum2docx,replace
sum2docx income lnincome happy $population $var   ///
         using table1.docx,append obs mean(%9.2f) ///
               sd min(%9.0g) median(%9.0g) max(%9.0g)   ///
               title('表1描述性統(tǒng)計')
shellout table1.docx
*PART TWO 回歸表格輸出
*方法一:利用outreg2命令
ssc  install outreg2,replace //安裝外部命令,用于表格輸出
reg happy lnincome
est sto m1 //將這個模型保存為m1
reg happy lnincome $population $var 
est sto m2 //將這個模型保存為m2
outreg2 [m1 m2] using 'd:\', excel dec(3) alpha(0.001, 0.01, 0.05)
/*m1m2共同輸出到表格中,保存到d盤,dec(3)指保留三位小數(shù),alpaha()指顯著性水平*/
 
*方法二:
findit ettab
reg happy lnincome
est sto m1 //將這個模型保存為m1
reg happy lnincome $population $var 
est sto m2 //將這個模型保存為m2
esttab m1 m2 using result.rtf,se r2 mtitle star(+ 0.1  * 0.05  ** 0.01)
/*m1和m2共同輸出到表格中,輸出包括標準誤,r平方,和顯著性水平,保存位置為當前cd的位置*/

圖片

·END·
 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多