stata 基础操作
sysuse auto dta., //使用数据,","表示一种选择//
clear //清空//
sum //描述性统计//
codebook //描述数据//
pwd //显示工作路径 present working direction//
cd //改变工作路径//
xpose //转置//
insheet using shuju1.csv,clear //输入表格//
gen newvarname = log(varname) //取对数//
//在取对数的时候,如何处理一些缺失值("." 表示缺失)和取对数无意义的值,见下//
gen lwage3=.
replace lwage3 = log(p_wage) if p_wage>0
replace lwage3 = 0 if p_wage==0
sum var1 var2 //对某个变量进行描述性统计,采用空格隔开//
count if var==0 // "!="是不等于, ">="大于等于 "<="小于等于//
作图
tab var
scatter y x, by(var) //by后跟着分组变量//
sysuse auto.dta //打开系统自带的auto数据//
scatter price turn, by (foreign)
separate price,by( rep78) //根据rep78对变量进行分组//
scatter price1 price2 price3 price4 price5 turn //做出散点图//
drop price1 price2 price3 price4 price5 //drop 删除新生成变量//
5.3第二次课
运用2014年cfps
rename qea204 dating //重命名qea204 为dating//
egen marriage = group(dating) //"egen" 生产新的变量 "group()"函数用于分组//
gen marryway=.
replace marryway=1 if marriage == 4|marriage==5|marriage==6|marriage==7 // "="在stata语言中表示赋值,"=="表示相等,"|"表示或者//
replace marryway=2 if marriage ==8|marriage ==9|marriage==10
replace marryway=3 if marriage ==11
replace marryway=4 if marriage==marriage ==12|marriage == 13
drop if marryway==. //删除空值//
keep if marryway !=. //删除空值的另一种语言//
交叉分组
sysuse auto.dta,clear
tab rep.78
tab foreign
egen rfon=group(rep78 foreign) //交叉分组//
5.6课程笔记
replace varname = [value] in 1 //把varname的第一行的变量改为某一个值//
//使用上次课下载的gdp的数据//
//通过窗口中的打开数据文档进行数据输入//
replace gdp2009 = 1111 in 1 //把gdp2009的第一行的值变为1111//
replace gdp2012 = . in 20/30 //把gdp2009的第20行到30行的值变为//
sysuse auto.dta,clear
ssc install vioplot // "ssc install "安装新命令//
vioplot price //作price 的小提琴图//
vioplot price, over(foreign)
seperate price,by (foreign) //根据foreign对price进行分组//
scatter price0 price1 turn // 只有最后一个变量是横轴//
hist price,
hist price, bin(5) //作直方图用hist,五个直方//
hist price, bin(5) freq //纵轴显示频数//
hist price, bin(5) freq by(foreign) // 单个参数命令之间要空格,以便stata识别//
scatter price weight
scatter price weight if price>=5000 //对价格在5000以上的车的price和weight做散点图//
scatter price weight if price<=5000
vioplot price if price !=5000
tab foreign,gen(foreign)
****生成虚拟变量
tab foreign1 //生成虚拟变量//
vioplot price if foreign1==1
vioplot price if foreign1!=1
hist price if foreign1==1
hist price if foreign1==1, bin(6), freq
tab rep78
hist price if foreign1 ==1&rep78<=3,bin(6) freq //并且//
hist price if foreign1 ==1|rep78<=3,bin(6) freq //或者//
gen pricetype=
5.10课程笔记
sysuse auto.dta
scatter price weight || lfit price weight //做散点图的同时拟合直线//
scatter price weight || lfit price weigh||, by(foreign)
scatter price weight || lfit price weigh||, by(foreign)
kdensity price //核密度图//
kdensity price, by (rep78)
graph bar price //柱状图//
graph hbar price, by(foreign) //hbar横向//
graph bar price, by(foreign) by(rep78) //两次分组//
****生成虚拟变量
tab foreign, gen(foreign) //生成虚拟变量//
tab foreign, gen(jinkou)
gen dummy = (price>=5000)
gen dummy1 = (price>=3000&price<=6000)
clear
sysuse nlsw88.dta,clear
graph bar wage, over(married) over(industry)
graph hbar wage, over(married) over(industry)
graph hbar wage, over(married) over(industry)
tab race
graph hbar wage,over(married) over(race) over(occupation)
****数据的标准化处理
sysuse auto.dta
sum price
gen pricestd1=(price-3291)/12615
sum pricestd1
ssc install center //中心化处理//
center price
drop c_price
center price,standardize //处理方法1//
center price, gen(stdprice) standardize //处理方法2//
****缩尾处理
ssc install winsor
winsor price,p(0.05) gen(pricewsr)//除掉前后5%的数据//
winsor price,h(6) gen(pricewsr) //除掉前后六个值,总共16//
5.13课堂笔记
gen dv=D.var //一阶差分//
***时间序列数据
sysuse uslifeexp.dta
sum
tsset year //设置时间序列数据//
gen le_1=L.le //注意大写 滞后一期//
gen le_2=L2.le // 生产滞后二期变量//
gen led_1=d.le //差分//
gen leD_1=D.le //差分//
gen DD=led_1-leD_1
list DD
list DD in 10/20
list DD in 10/20, sep(2)
list DD in 60
****相关性
cor le le_male le_female
pwcorr
pwcorr le le_male le_female
pwcorr le le_male le_female,sig star(0.05) // 显示显著性//
pwcorr le le_male le_female,sig star(0.01)
sysuse auto.dta, clear
regress price mpg
regress price mpg headroom,r //稳健标准误//
****检验是否存在异方差
estat imtest, white //怀特检验//
reg price mpg headroom weight,r
predict yhat
predict re2,residual
gen gap=yhat+re2-price
sum gap
estat imtest, white
****确定变量个数 做一次回归 进行一次赤池准则检验 AIC 越小越好
tab foreign, gen(foreign)
reg price mpg headroom weight turn foreign1,r
estat ic //赤池准则//
****数据标准化处理
egen pricestd=std(price)
ssc install center
center price, standardize
5.17课程笔记
sysuse auto.dta,clear
reg price turn mpg
estimate store r1
reg price turn mpg,r
estimate store r2
outreg2 [r1 r2] using huigui.xls
outreg2 [r1 r2] using huigui.xls, replace tstat //显示t值//
outreg2 [r1 r2] using huigui.xls, replace tstat bdec(4)
outreg2 [r1 r2] using huigui.xls, replace tstat bdec(4) tdec(2) //b值保留四位小数,t值保留两位小数//
outreg2 [r1 r2] using huigui.xls, replace tstat bdec(4) tdec(2) e(r2_a)
esttab r1 r2 using huigui1.xls
est store ols
esttab ols using ols.rtf, star(* 0.1 ** 0.05 *** 0.01)
5.20课程笔记
cd D:\邢悦\计量经济学
insheet using 年度数据.csv
*****处理面板数据
reshape long gdp,i(province) j(year)
**** 变成长数据
reshape wide gdp,i(province) j(year)
****变成宽数据
reshape long gdp,i(province) j(year11)
sort year11 province
***按年份排序
sort province year11
***按省份排序
encode province,gen(location) ///红变蓝
decode location,gen(province1) ////蓝变红
****tostring数值型
****destring字符串
cd D:\邢悦\计量经济学
use cfps2014adult_20161230.dta,clear
cd D:\邢悦\计量经济学
use cfps2014adult_20161230.dta,clear
****重新编码,将0与10对换
recode qm2012 (0=10) (10=0) (1=9) (9=1)(8=2) (2=8) (3=7) (7=3) (4=6)(6=4)
list qm2012
****重新编码,将0与10对换,生成qm2012a
recode qm2012 (0=10) (10=0) (1=9) (9=1)(8=2) (2=8) (3=7) (7=3) (4=6)(6=4),gen(qm2012a)
list qm2012a
5.24课程笔记
****主成分分分析
sysuse auto.dta
pca headroom rep78 weight length turn displacement
****主成分分析条件:
*****①KMO检验;
estat kmo
***②球形检验
estat smc
predict f1 f2
*****多重共线性检验
estat vif
***工具变量
cd D:\邢悦\计量经济学\高级计量经济学及stata应用(第二版)全部数据\高级计量经济学及stata应用(第二版)全部数据
use grilic.dta
reg lw s rns smsa,r
reg lw iq s rns smsa,r
***两阶段最小二乘法
***工具变量(这有四个工具变量med kww mrt age(四个工具变量情况几乎没有),iq是核心自变量)
ivregress 2sls lw s rns smsa (iq=med kww mrt age),r
****加first是报告第一阶段回归结果
ivregress 2sls lw s rns smsa (iq=med kww mrt age),r first
est store sls
***最大似然估计
ivregress liml lw s rns smsa (iq=med kww mrt age),r first
est store liml
****矩估计
ivregress gmm lw s rns smsa (iq=med kww mrt age),r first
est store gmm1
*矩估计的另一种
ivregress gmm lw s rns smsa (iq=med kww mrt age),r first igmm
est store igmm
ssc install estout,replace
esttab sls liml gmm1 igmm
****弱工具变量检验
ivregress 2sls lw s rns smsa (iq=med kww mrt age),r first
estat overid
estat firststage,all forcenonrobust
****该命令给出第一阶段的估计结果以及各种统计量,包括排除外生变量的相关性检验。All选项给出所有的拟合优度统计量。如果模型存在多个内生变量,则stata给出R2、偏R2、调整的R2 、F统计量;如果模型存在多个内生变量,则stata给出Shea偏R2和调整的偏R2。
****forcenonrobust给出最小特征值统计量及其临界值,即使采用稳健估计(这一检验的假设条件是误差项为独立正态分布)。
****Forcenonrobust 指在2sls或LIML估计中即使采用稳健标准差也进行Sargan and Basmann检验(这一检验的假设的假设条件是误差项为独立正态分布)
****ivreg2这个版本用不了
ssc install ivreg2
ivreg2 lw s rns smsa (iq=med kww),r
ivreg2 lw s rns smsa (iq=med kww),r end(iq)
ivreg2 lw s rns smsa (iq=med kww),r redundant(mrt age)
****豪斯曼检验(不能加稳健性检验r)
reg lw s rns smsa
est store ols
ivregress 2sls lw s rns smsa (iq=med kww mrt age)
est store iv
hausman iv ols,constant sigmamore
****hausman iv ols ,常数 希腊字母
hausman iv ols
***无常数项的回归
reg lw s rns smsa,noconstant
sysuse auto.dta,clear
reg price turn weight length
**无常数项的稳健性标准误的回归
reg price turn weight length,noc r
reg price turn weight length if foreign==0
reg price turn weight length if foreign==1
tab rep78
reg price turn weight length if rep78==3
cd D:\邢悦\计量经济学\高级计量经济学及stata应用(第二版)全部数据\高级计量经济学及stata应用(第二版)全部数据
use traffic.dta,clear
*根据洲和年分组,再进行回归,这样做不出来
bys state year:reg unrate perinc
bys state:reg unrate perinc
bys year:reg unrate perinc
bys state:egen unratesum=total(unrate)
5.27课程笔记
cd D:\stata15\GJ\shuju.cq
use traffic.dta
xtsum
xtsum fatal gspch
xtline fatal gspch
reg fatal unrate perinc beertax
est store r1
reg fatal unrate perinc beertax,r
est store r2
xtset state year
xtreg fatal unrate perinc beertax //默认随机效应模型//
est store r3
xtreg fatal unrate perinc beertax,re
est store r4
xtreg fatal unrate perinc beertax,fe
est store r5
xtreg fatal unrate perinc beertax,fe r
est store r6
xtreg fatal unrate perinc beertax,fe r cl(state) //r是robust,cluster 聚类//
est store r7
xtreg fatal unrate perinc beertax,fe cl(state)
est store r8
esttab r1 r2 r3 r4 r5 r6
***
***普通标准误 同方差
***稳健标准误 异方差 不相关
***聚类稳健标准误 组内相关 cl()
**** 组内不相关 vce cluster()
***F检验 使用混合回归还是个体效应模型
xtreg fatal unrate perinc beertax,fe //不加r,回归结果下方的F的P值,拒绝原假设 选择个体效应模型//
***豪斯曼检验 使用fe还是re
xtreg fatal unrate perinc beertax,fe
est store fe
xtreg fatal unrate perinc beertax,re
est store re
hausman fe re, constant sigmamore //常数项 sigmamore
xtreg fatal unrate perinc beertax i.state,fe r
est store r1
reg fatal unrate perinc beertax i.state,r
est store r2
est r1 r2
***时间的固定效应
tab year, gen(year)
xtreg fatal unrate perinc beertax year1-year6,fe r //双向固定效应 year1-year6是时间固定,fe 个体固定//
est store r1
tab state,gen(state)
xtreg fatal unrate perinc beertax state1-state47,fe r
est store r2
xtreg fatal unrate perinc beertax state1-state47 year1-year6,r //双向固定效应的另一种表达方式//
est store r3
est r1 r2 r3
5.31课程笔记
cd D:\stata15\GJ\shuju.cq
use traffic.dta,clear
xtivreg fatal unrate beertax (perinc=emppop),fe
xtivreg fatal unrate beertax (perinc=emppop),fd //组间估计,用的较少//
xtivreg fatal unrate beertax (perinc=emppop),re
xtivreg fatal unrate beertax (perinc=emppop),
***动态面板
use mus08psidextract.dta,clear
**差分GMM
***两阶段最小二乘法
xtabond lwage occ south smsa ind,lag(1)
xtabond lwage occ south smsa ind,lag(2)
xtabond lwage occ south smsa ind,lag(1) r
xtabond lwage occ south smsa ind,lag(2) r
**lag(1)表示滞后一期进入了方程成为了内生变量
xtabond lwage occ south smsa ind,lag(1) r //默认工具变量为滞后2期 滞后3期 直到第一期的变量//
xtabond lwage occ south smsa ind,lag(1) maxldep(1) r //一个变量作为工具变量,也就是滞后二期作为工具变量//
xtabond lwage occ south smsa ind,lag(1) maxldep(2) r //两个变量作为工具变量,也就是滞后二期,滞后三期作为工具变量//
***假设union是内生变量,将其引入差分方程中 运用end()
xtabond lwage occ south smsa ind,lag(1) maxldep(1) endogenous(union,lag(0,1)) r //lag(0,1) 逗号的1表示滞后变量的个数,逗号前的0表示union的滞后期数//
**两个内生性变量
xtabond lwage occ south smsa ind,lag(1) maxldep(1) endogenous(union,lag(0,1)) endogenous(ed,lag(0,1)) r
xtabond lwage occ south smsa ind,lag(1) maxldep(1) endogenous(union,lag(1,1)) endogenous(ed,lag(0,1)) r
xtabond lwage occ south smsa ind,lag(1) maxldep(1) endogenous(union,lag(1,3)) endogenous(ed,lag(2,3)) r
xtabond lwage occ south smsa ind,lag(1) maxldep(1) endogenous(union,lag(2,3)) endogenous(ed,lag(2,3)) r
xtabond lwage occ south smsa ind,lag(2)
**两步法 twostep
xtabond lwage occ south smsa ind,lag(2) maxldep(1) twostep r
xtabond lwage occ south smsa ind,lag(1) maxldep(1) endogenous(union,lag(0,1)) twostep r
***要通过两个检验
***过度识别检验
estat sargon
***相关性检验(在twostep下检验)
estata abond
***系统GMM
xtdpdsys lwage occ south smsa ind,lag(1) maxldep(1) endogenous(union,lag(0,1)) endogenous(ed,lag(0,1)) r