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

本文從數(shù)據(jù)清理、描述性統(tǒng)計、循環(huán)命令的使用、雙變量分析、因子分析、線性回歸、Logistic回歸、表格輸出等方面詳細地介紹Stata的使用。跑一個模型對于看似十分簡單,的確也十分簡單,只需要一行命令,但是“跑模型”的功夫盡在“模型”前。在這里,我們利用CGSS2015數(shù)據(jù),假定來研究“錢能買來快樂嗎?”即收入對主觀幸福感的影響方法1:通過命令方式 use 'D: cgss2015_14.dta', clear 方法2:窗口點擊(更推薦,不用寫路徑) 點擊菜單欄第一個文件夾的標志,然后打開數(shù)據(jù)  點擊后會在屏幕上出現(xiàn)一行命令,可以將其復制到do文件中,便于下次使用
例如:我們最關心的兩個變量一個是收入,一個是主觀幸福感,我們可以先查看一下變量的基本情況 tab a36 
sum a8a  熟悉stata或者是量化研究處理流程的讀者可能清楚,跑一個模型可能在這一步需要花費很大的力氣,在這里我們將詳細地來進行操作示范*幾個常用命令:gen recode rename replace社會科學的研究中基本人口學變量是必不可少的,本部分的命令也可以復制到以后的其他研究中使用,事半功倍! gen gender=a2 //生成一個新變量gender,gender這個變量就是原來的a2變量gen age=2015-a301 //生成一個新變量age,這個變量為2015減去出生年replace nation=. if nation<0 //在stata中用.或者空格來表示缺失值,這樣軟件就能識別出,否則將會代入計算recode nation (1=1 '漢族')(else=0 '少數(shù)民族'),gen(newnation)recode edu(1 2 3=1 '小學及以下')(4=2 '初中')(5 6 7 8=3 '高中(專)')(else=4 '大專及以上'),gen(newedu)replace party=1 if a10==4recode hukou (1=0 '農(nóng)業(yè)戶口')(7=. )(else=1 '非農(nóng)戶口'),gen(urban) //將沒有戶口處理為缺失值 global population gender age newnation newedu party urban/*定義全局宏,用處就是將上述所有人口學變量定義為population,在接下來的回歸時就不需要每個變量都敲一遍,通過輸入$population就可以*/ *我們的研究問題是:錢能不能買來快樂?我們用個人全年總收入測量“錢”,相關處理如下: 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)分布的 *我們的研究問題是:錢能不能買來快樂?我們用主觀幸福感測量“快樂”,相關處理如下: replace happy=. if happy<0在研究中除了要控制基本的人口學變量之外,還要控制一些混雜因素,正常情況下,控制變量的選擇要依照理論,這里僅為了方法上的展示,我們擬控制如下變量:個人能力和社會階層這兩個變量 /*我們擬采用CGSS問卷中的:您覺得自己的以下能力是什么水平?(問卷P11)進行測量主要包括四個方面:聽普通話、說普通話、聽英語、說英語等能力,對于這四個題目我們可以通過一個循環(huán)命令來解決,不需要繁瑣的寫很多命令,具體如下:*/另外的一個問題,如果我們把這四個問題都放入模型會產(chǎn)生嚴重的多重共線性問題,為了避免這一問題,我們可以用因子分析的方法解決,具體如下:rename f1 ability //將f1這個因子得分變量重命名為ability replace class=. if class<0 reg happy lnincome //reg是線性回歸的命令,后面第一個變量是因變量,其余順序無要求reg happy lnincome $population $var //人口學變量和控制變量均利用全局宏簡寫ologit happy income //ologit是序次logistic回歸的命令,后面第一個變量是因變量,其余順序無要求ologit happy income $population $var可以看出,回歸分析只是一行命令而已,真正的工作是在第三步:數(shù)據(jù)/變量管理中經(jīng)過一些列的數(shù)據(jù)分析后,到底如何將結(jié)果變成可以直接貼在論文的圖表呢?在這里介紹幾個命令,可以將描述性統(tǒng)計以及回歸分析的表格直接輸入到word中。ssc install asdoc, replace //安裝外部命令,用于表格輸出asdoc sum income lnincome happy $population $var, /// stat(N mean sd p25 p75) fs(12) dec(2) ///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ù)點后 # 位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) ///ssc install outreg2,replace //安裝外部命令,用于表格輸出 reg happy lnincome $population $var outreg2 [m1 m2] using 'd:\', excel dec(3) alpha(0.001, 0.01, 0.05)/*將m1和m2共同輸出到表格中,保存到d盤,dec(3)指保留三位小數(shù),alpaha()指顯著性水平*/reg happy lnincome $population $var esttab m1 m2 using result.rtf,se r2 mtitle star(+ 0.1 * 0.05 ** 0.01) /*m1和m2共同輸出到表格中,輸出包括標準誤,r平方,和顯著性水平,保存位置為當前cd的位置*/
|