第一天學(xué)習(xí)Stata軟件做數(shù)據(jù)分析
利用系統(tǒng)自帶的數(shù)據(jù)熟悉常用的命令
1、導(dǎo)入數(shù)據(jù)
sysuse auto.dta

打開第一個(gè)源文件water1.dta,將它按year排序,然后再另存為文件(再以覆蓋方式保存)
use bloomberg-1.dta, replace
sort year
save bloomberg-2.dta, replace
1.1查看數(shù)據(jù)(字段類型為數(shù)值,字符串不行)的數(shù)量、平均數(shù)、標(biāo)準(zhǔn)差、最小值、最大值
summarize [varlist][if][in][,options] //字段描述
summarize price //描述價(jià)格這個(gè)字段
sum price //簡(jiǎn)寫的命令也可以被識(shí)別price是字段

1.2描述變量(字段)類型、格式、標(biāo)簽
describe [varlist] // 字段描述
describe, short


count if price > 5000

isid varlist //檢查是否為識(shí)別標(biāo)簽,類似于數(shù)據(jù)庫(kù)的主鍵
isid price //該字段是唯一值,不會(huì)報(bào)錯(cuò)
isid mpg //不是唯一值,會(huì)報(bào)錯(cuò)

unique var //需要安裝,用命令 ssc install unique


1.3tabstat
sysuse "nlsw88.dta", clear
\\\一維表形式如下:
tabstat wage hours age union race, stat(N mean sd min max) col(stat)
variable | N mean sd min max
-------------+--------------------------------------------------
wage | 2246 7.766949 5.755523 1.004952 40.74659
hours | 2242 37.21811 10.50914 1 80
age | 2246 39.15316 3.060002 34 46
union | 1878 .2454739 .4304825 0 1
race | 2246 1.282725 .4754413 1 3
----------------------------------------------------------------
\\\加入分組變量,匯報(bào)二維表形式:
tabstat wage hours age union race, by(married) stat(N mean sd min max) nototal long col(stat)
married variable | N mean sd min max
---------------------+--------------------------------------------------
single wage | 804 8.080765 6.336071 1.151368 40.19808
hours | 801 39.23845 9.099001 2 80
age | 804 39.21891 3.049911 34 46
union | 656 .2759146 .4473151 0 1
race | 804 1.404229 .5109335 1 3
---------------------+--------------------------------------------------
married wage | 1442 7.591978 5.399229 1.004952 40.74659
hours | 1441 36.09507 11.06107 1 80
age | 1442 39.1165 3.066058 34 45
union | 1222 .2291326 .4204468 0 1
race | 1442 1.214979 .4402987 1 3
------------------------------------------------------------------------
論文表1——基本統(tǒng)計(jì)量列表
Stata中神奇的bys!
2、數(shù)據(jù)字典
codebook [varlist][if][in][,options] //數(shù)據(jù)字典
codebook price mpg

codebook pric if price > 5000

codebook price in 10/20

幫助信息,新窗口顯示幫助信息
help codebook

2.1、新增字段generate命令sum() 函數(shù)
clear
input x1 x2
1 2
2 4
3 6
4 8
end

gen sum_x1 = sum(x1)
gen sum_x2 = sum(x2)
list, clean noobs

從結(jié)果中可以看出,gen 提供的 sum() 函數(shù)是累計(jì)求和。
2.2 egen命令的sum() 和rsum()函數(shù)
egen sum_x1=sum(x1)
egen sum_x2=sum(x2)
egen rsum_x = rsum(x1 x2)
egen rtotal_x = rowtotal(x1 x2)
list , clean noobs

從結(jié)果中可以看出,egen 提供的 sum() 函數(shù)計(jì)算該變量的總和,rsum() 計(jì)算行數(shù)值的相加和,rowtotal() 函數(shù)與 rsum() 功能一致。需要注意的是,rowtotal() 不能簡(jiǎn)寫為 rtotal()。
此外,egen 還提供了豐富的針對(duì)行操作的函數(shù),如 rowfirst()、rowlast()、rowmax()、rowmean()、rowmedian()、rowmin()、rowmiss()、rownonmiss()、rowpctile()、rowsd() 等,詳細(xì)介紹可以通過(guò) help egen 查看。
2.3egen和bys結(jié)合 分組計(jì)算和【三個(gè)變量,按兩個(gè)變量分組,第三個(gè)變量求和】
bys kind year:egen type_TotalAmount = sum(type_sumAmount)
通過(guò)kind類別 和year年份將數(shù)據(jù)分組,然后新增一列type_TotalAmount 計(jì)算出type_sumAmount的總和
table kind year, c(n type_sumAmount mean type_sumAmount mean type_sumAmount )

得到如上圖的列表,但是想導(dǎo)出,嘗試了很多方法都沒有得到一個(gè)excel文件,導(dǎo)出的數(shù)據(jù)樣式會(huì)變,即便導(dǎo)出word、text、log等都不理想,
提示一個(gè)好方法:在展示框選中所有數(shù)據(jù),然后右鍵copy table 可以把數(shù)據(jù)的格式復(fù)制出來(lái)
image.png
2.4collapse命令,會(huì)覆蓋原有數(shù)據(jù),慎用,
collapse (sum)type_sumAmount ,by(year kind)
sort kind year

這個(gè)沒有用table做出來(lái)的直觀,后續(xù)遇到好的方法還會(huì)繼續(xù)更新
3、畫圖
3.1.histogram (直方圖)
histogram varname [if][in][weight][,[continuous_opts][discrete_opts]options]
//簡(jiǎn)寫為 hist 最常用的三種形式
hist varname
hist varname,freq
density 密度 den
fraction 分?jǐn)?shù)/小數(shù) frac
frequency 頻率 freq
percent 百分比 per
hist vaname, by(varname2)


3.2.graph box/ graph hbox horizontal 水平的
graph box vars [if][in][weight][,options]
graph hbox vars [if][in][weight][,options]
graph hbox price mpg length

graph box price mpg length

3.3.小提琴圖,選裝 ssc install vioplot
vioplot price
vioplot price, over(foreign)

graph query schemes
stata 默認(rèn)主題是s2color建議選用s1mono

set scheme s1mono //Stata重啟之前設(shè)置為s1mono
set scheme s1mono, perm //永久設(shè)置為s1mono (灰度圖像)

3.4.散點(diǎn)圖
[twoway] scatter varlist [if][in][weight][,options]
最基礎(chǔ)的形式: twoway scatter y x
進(jìn)階形式; twoway scatter y1 y2 y3 ……x
twoway scatter weight length price

twoway scatter mpg weight, msymbol() mcolor() msize()
msymbol() 改變形狀 help symbolstyle
mcolor() 改變顏色 help colorstyle
msize() 改變大小 help markersizestyle






twoway scatter mpg weight price, msymbol(D) mcolor(red) msize(medium)
twoway scatter mpg length weight price, mcolor(black blue red) msize(medium)

twoway scatter mpg length weight price, by(foreign) mcolor(black blue red) msize(medium)

4.Twoway命令入門
sysuse uslifeexp, clear
美國(guó)期望壽命的數(shù)據(jù)
help twoway

示例如下:
4.1帶散點(diǎn)的折線圖
twoway connected le year //帶散點(diǎn)的折線圖

twoway connected le_male le_female year

4.2垂直線圖
twoway dropline le year //垂直線圖

twoway dropline le_male le_female year

4.3脈沖圖,y2會(huì)覆蓋在y1上,
twoway spike le year //脈沖圖

twoway spike le le_male le_female year
twoway spike le le_female le_male year


4.4 面積圖 y2會(huì)覆蓋在y1上,注意下圖區(qū)別
twoway area le_male le_female year // y1會(huì)被覆蓋,看不到
twoway area le_female le_male year


4.5 lowess圖,相對(duì)于散點(diǎn)圖平滑曲線
twoway lowess le year //平滑曲線
lowess le year // 平滑曲線,疊加散點(diǎn)


4.6graph twoway lfit y x (y對(duì)x回歸的回歸直線)

5、統(tǒng)計(jì)描述指標(biāo)
ci mean : 連續(xù)變量mean的置信區(qū)間
proportion(可簡(jiǎn)寫為prop):分類變量mean的置信區(qū)間
pwcoor:變量的配對(duì)相關(guān)性
graph matrix:相關(guān)性矩陣
示例
實(shí)力使用數(shù)據(jù)導(dǎo)入
sysuse auto, clear
5.1ci mean : 連續(xù)變量mean的置信區(qū)間
ci 是confidence intervals的縮寫,
ci means [varlist][if][in][weight][,options]
cii means #obs #mean #sd [,level(#)]
默認(rèn)95%置信區(qū)間
ci mean mpg price, level(95)

cii mean 166 19509 4379, level(95)

5.2分類變量的置信區(qū)間:
choice 1
ci proportions [varlist][if][weight][,prop_options options]
ci prop foreign

缺點(diǎn): ci prop 只能 用于二分類變量(binary)
ci rep78


choice 2
proportion 分類變量的置信區(qū)間
proportion varlist [if][in][weight][,options]
prop
默認(rèn)95%置信區(qū)間
prop foreign


prop foreign rep78, miss //不忽略缺省值

6、pwcorr查看變量的相關(guān)性
pwcorr [varlist][if][in][weight][,pwcorr_options]
pwcorr price headroom mpg displacement //考慮price、headroom、mpg、displacement這四個(gè)變量的相關(guān)性

如果要展示P值,需要在后面加“, sig”
pwcorr price headroom mpg displacement, sig

pwcorr price headroom mpg displacement, star(0.05)

graph matrix繪制相關(guān)性矩陣
//geraph matrix varlist [if][in][weight][,options]
graph matrix price headroom mpg displacement
graph matrix price headroom mpg displacement, half

學(xué)習(xí)參考:
https://www.zhihu.com/question/35871900
https://zhuanlan.zhihu.com/p/54759702
常用命令
- 命令【1】:導(dǎo)入數(shù)據(jù)一般做實(shí)證分析使用的是excel中的數(shù)據(jù),其后綴名為.xls,需要將其修改為.csv
insheet using name.csv, clear - 命令【2】:刪除重復(fù)變量
sort var1 var2
duplicatesdrop var1 var2, force - 命令【3】:合并數(shù)據(jù)(merge 合并)
use data1, clear
merge m:m var1 var2 using data2
drop if _merge==2
drop if _merge==1
drop _merge - 命令【4】:描述性統(tǒng)計(jì)分析
tabstat var1var2, stat(n min mean median p25 p75 max sd), if groupvar==0 or 1
輸出到word中:
logout, save(name) word replace: tabstat var, stat(n min mean p50 max sd) col(stat)f(%9.2g) - 命令【5】:結(jié)果輸出
安裝命令包
ssc install estout, replace
單個(gè)回歸
reg y x
esttab using name.rtf, compress nogap r2 ar2 star(* 0.1 ** 0.05 *** 0.01)
多個(gè)回歸一起
reg y x1
est store m1
reg y x2
est store m2
esttab m1 m2 using name.rtf, compress nogap r2 ar2 star(* 0.1 ** 0.05 *** 0.01) - 【命令6】生成滯后、差分?jǐn)?shù)據(jù)
tsset code year
gen newvarname=l.varname
gen newvarname=d.varname - 【命令7】多重共線檢驗(yàn)之方差膨脹因子
reg y x1 x2 x3
vif
【命令8】多重共線修正之逐步回歸
stepwise, pe(0.1): reg y x - 【命令9】檢驗(yàn)是否遺漏高次項(xiàng)
reg y xestat ovtest
或者
estat ovtest, rhs
【命令10】 樣本檢驗(yàn)兩樣本均值T檢驗(yàn)
ttest var, by(groupvar)
兩樣本中位數(shù)Z檢驗(yàn)
ranksum var, by(groupvar) - 【命令11】 生成虛擬變量
tab year, gen(year)
tab industry, gen(industry) - 【命令12】 數(shù)據(jù)縮尾處理
findit winsor2
之后安裝
winsor2 varname, replace cut(1 99) - 【命令13】異方差檢驗(yàn)懷特檢驗(yàn)
ssc install whitetst
reg y x1 x2
estat imtest, white
處理:“OLS+穩(wěn)健標(biāo)準(zhǔn)差”
reg y x1 x2 x3, robust - 【命令14】 DW檢驗(yàn)
gen id=_n
tsset id
estat dwatson - 【命令15】計(jì)算兩個(gè)日期之間的間隔天數(shù)
gen td=date(trading_date,'YMD')
gen ed=date(eventdate,'YMD')
form td ed %td
gen d=ed-td

