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

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