调整变量格式:
format x1 %10.3f ——将x1的列宽固定为10,小数点后取三位
format x1 %10.3g ——将x1的列宽固定为10,有效数字取三位
format x1 %10.3e ——将x1的列宽固定为10,采用科学计数法
format x1 %10.3fc ——将x1的列宽固定为10,小数点后取三位,加入千分位分隔符
format x1 %10.3gc ——将x1的列宽固定为10,有效数字取三位,加入千分位分隔符
format x1 %-10.3gc ——将x1的列宽固定为10,有效数字取三位,加入千分位分隔符,加入“-”表示左对齐
合并数据:
use "C:\Documents and Settings\xks\桌面\2006.dta", clear
merge using "C:\Documents and Settings\xks\桌面\1999.dta"
——将1999和2006的数据按照样本(observation)排列的自然顺序合并起来
use "C:\Documents and Settings\xks\桌面\2006.dta", clear
merge id using "C:\Documents and Settings\xks\桌面\1999.dta" ,unique sort
——将1999和2006的数据按照唯一的(unique)变量id来合并,在合并时对id进行排序(sort)
建议采用第一种方法。
对样本进行随机筛选:
sample 50
在观测案例中随机选取50%的样本,其余删除
sample 50,count
在观测案例中随机选取50个样本,其余删除
查看与编辑数据:
browse x1 x2 if x3>3 (按所列变量与条件打开数据查看器)
edit x1 x2 if x3>3 (按所列变量与条件打开数据编辑器)
数据合并(merge)与扩展(append)
merge表示样本量不变,但增加了一些新变量;append表示样本总量增加了,但变量数目不变。
one-to-one merge:
数据源自stata tutorial中的exampw1和exampw2
第一步:将exampw1按v001~v003这三个编码排序,并建立临时数据库tempw1
clear
use "t:\statatut\exampw1.dta"
su ——summarize的简写
sort v001 v002 v003
save tempw1
第二步:对exampw2做同样的处理
clear
use "t:\statatut\exampw2.dta"
su
sort v001 v002 v003
save tempw2
第三步:使用tempw1数据库,将其与tempw2合并:
clear
use tempw1
merge v001 v002 v003 using tempw2
第四步:查看合并后的数据状况:
ta _merge ——tabulate _merge的简写
su
第五步:清理临时数据库,并删除_merge,以免日后合并新变量时出错
erase tempw1.dta
erase tempw2.dta
drop _merge
数据扩展append:
数据源自stata tutorial中的fac19和newfac
clear
use "t:\statatut\fac19.dta"
ta region
append using "t:\statatut\newfac"
ta region
合并后样本量增加,但变量数不变
茎叶图:
stem x1,line(2) (做x1的茎叶图,每一个十分位的树茎都被拆分成两段来显示,前半段为0~4,后半段为5~9)
stem x1,width(2) (做x1的茎叶图,每一个十分位的树茎都被拆分成五段来显示,每个小树茎的组距为2)
stem x1,round(100) (将x1除以100后再做x1的茎叶图)
直方图
采用auto数据库
histogram mpg, discrete frequency normal xlabel(1(1)5)
(discrete表示变量不连续,frequency表示显示频数,normal加入正太分布曲线,xlabel设定x轴,1和5为极端值,(1)为单位)
histogram price, fraction norm
(fraction表示y轴显示小数,除了frequency和fraction这两个选择之外,该命令可替换为“percent”百分比,和“density”密度;未加上discrete就表示将price当作连续变量来绘图)
histogram price, percent by(foreign)
(按照变量“foreign”的分类,将不同类样本的“price”绘制出来,两个图分左右排布)
histogram mpg, discrete by(foreign, col(1))
(按照变量“foreign”的分类,将不同类样本的“mpg”绘制出来,两个图分上下排布)
histogram mpg, discrete percent by(foreign, total) norm
(按照变量“foreign”的分类,将不同类样本的“mpg”绘制出来,同时绘出样本整体的“总”直方图)
二变量图:
graph twoway lfit price weight || scatter price weight
(作出price和weight的回归线图——“lfit”,然后与price和weight的散点图相叠加)
twoway scatter price weight,mlabel(make)
(做price和weight的散点图,并在每个点上标注“make”,即厂商的取值)
twoway scatter price weight || lfit price weight,by(foreign)
(按照变量foreign的分类,分别对不同类样本的price和weight做散点图和回归线图的叠加,两图呈左右分布)
twoway scatter price weight || lfit price weight,by(foreign,col(1))
(按照变量foreign的分类,分别对不同类样本的price和weight做散点图和回归线图的叠加,两图呈上下分布)
twoway scatter price weight [fweight= displacement],msymbol(oh)
(画出price和weight的散点图,“msybol(oh)”表示每个点均为中空的圆圈,[fweight= displacement]表示每个点的大小与displacement的取值大小成比例)
twoway connected y1 time,yaxis(1) || y2 time,yaxis(2)
(画出y1和y2这两个变量的时间点线图,并将它们叠加在一个图中,左边“yaxis(1)”为y1的度量,右边“yaxis(2)”为y2的)
twoway line y1 time,yaxis(1) || y2 time,yaxis(2)
(与上图基本相同,就是没有点,只显示曲线)
graph twoway scatter var1 var4 || scatter var2 var4 || scatter var3 var4
(做三个点图的叠加)
graph twoway line var1 var4 || line var2 var4 || line var3 var4
(做三个线图的叠加)
graph twoway connected var1 var4 || connected var2 var4 || connected var3 var4
(叠加三个点线相连图)
更多变量:
graph matrix a b c y
(画出一个散点图矩阵,显示各变量之间所有可能的两两相互散点图)
graph matrix a b c d,half
(生成散点图矩阵,只显示下半部分的三角形区域)
用auto数据集:
graph matrix price mpg weight length,half by( foreign,total col(1) )
(根据foreign变量的不同类型绘制price等四个变量的散点图矩阵,要求绘出总图,并上下排列】=具)
其他图形:
graph box y,over(x) yline(.22)
(对应x的每一个取值构建y的箱型图,并在y轴的0.22处划一条水平线)
graph bar (mean) y,over(x)
对应x的每一个取值,显示y的平均数的条形图。括号中的“mean”也可换成median、sum、sd、p25、p75等
graph bar a1 a2,over(b) stack
(对应在b的每一个取值,显示a1和a2的条形图,a1和a2是叠放成一根条形柱。若不写入“stack”,则a1和a2显示为两个并排的条形柱)
graph dot (median)y,over(x)
(画点图,沿着水平刻度,在x的每一个取值水平所对应的y的中位数上打点)
qnorm x
(画出一幅分位-正态标绘图)
rchart a1 a2 a2
(画出质量控制R图,显示a1到a3的取值范围)
简单统计量的计算:
ameans x
(计算变量x的算术平均值、几何平均值和简单调和平均值,均显示样本量和置信区间)
mean var1 [pweight = var2]
(求取分组数据的平均值和标准误,var1为各组的赋值,var2为每组的频数)
summarize y x1 x2,detail
(可以获得各个变量的百分比数、最大最小值、样本量、平均数、标准差、方差、峰度、偏度)
注意
stata中summarize所计算出来的峰度skewness和偏度kurtosis有问题,与ECELL和SPSS有较大差异,建议不采用stata的结果。
summarize var1 [aweight = var2], detail
(求取分组数据的统计量,var1为各组的赋值,var2为每组的频数)
tabstat X1,stats(mean n q max min sd var cv)
(计算变量X1的算术平均值、样本量、四分位线、最大最小值、标准差、方差和变异系数)
概率分布的计算:
(1)贝努利概率分布测试:
webuse quick
bitest quick==0.3,detail
(假设每次得到成功案例‘1’的概率等于0.3,计算在变量quick所显示的二项分布情况下,各种累计概率和单个概率是多少)
bitesti 10,3,0.5,detail
(计算当每次成功的概率为0.5时,十次抽样中抽到三次成功案例的概率:低于或高于三次成功的累计概率和恰好三次成功概率)
(2)泊松分布概率:
display poisson(7,6)
.44971106
(计算均值为7,成功案例小于等于6个的泊松概率)
display poissonp(7,6)
.14900278
(计算均值为7,成功案例恰好等于6个的泊松概率)
display poissontail(7,6)
.69929172
(计算均值为7,成功案例大于等于6个的泊松概率)
(3)超几何分布概率:
display hypergeometricp(10,3,4,2)
.3
(计算在样本总量为10,成功案例为3的样本总体中,不重置地抽取4个样本,其中恰好有2个为成功案例的概率)
display hypergeometric(10,3,4,2)
.96666667
(计算在样本总量为10,成功案例为3的样本总体中,不重置地抽取4个样本,其中有小于或等于2个为成功案例的概率)
检验极端值的步骤:
常见命令:tabulate、stem、codebook、summarize、list、histogram、graph box、gragh matrix
step1.用codebook、summarize、histogram、graph boxs、graph matrix、stem看检验数据的总体情况:
codebook y x1 x2
summarize y x1 x2,detail
histogram x1,norm(正态直方图)
graph box x1(箱图)
graph matrix y x1 x2,half(画出各个变量的两两x-y图)
stem x1(做x1的茎叶图)
可以看出数据分布状况,尤其是最大、最小值
step2.用tabulate、list细致寻找极端值
tabulate code if x1==极端值(作出x1等于极端值时code的频数分布表,code表示地区、年份等序列变量,这样便可找出那些地区的数值出现了错误)
list code if x1==极端值(直接列出x1等于极端值时code的值,当x1的错误过多时,不建议使用该命令)
list in -20/l(l表示last one,-20表示倒数第20个样本,该命令列出了从倒数第20个到倒数第一个样本的各变量值)
step3.用replace命令替换极端值
replace x1=? if x1==极端值
去除极端值:
keep if y<1000
drop if y>1000
对数据排序:
sort x
gsort +x
(对数据按x进行升序排列)
gsort -x
(对数据按x进行降序排列)
gsort -x, generate(id) mfirst
(对数据按x进行降序排列,缺失值排最前,生成反映位次的变量id)
对变量进行排序:
order y x3 x1 x2
(将变量按照y、x3、x1、x2的顺序排列)
生成新变量:
gen logx1=log(x1)(得出x1的对数)
gen x1`=exp(logx1)(将logx1反对数化)
gen r61_100=1 if rank>=61&rank<=100(若rank在61与100之间,则新变量r61_100的取值为1,其他为缺失值)
replace r61_100 if r61_100!=1(“!=”表示不等于,若r61_100取值不为1,则将r61_100替换为0,就是将上式中的缺失值替换为0)
gen abs(x)(取x的绝对值)
gen ceil(x)(取大于或等于x的最小整数)
gen trunc(x)(取x的整数部分)
gen round(x)(对x进行四舍五入)
gen round(x,y)(以y为单位,对x进行四舍五入)
gen sqrt(x)(取x的平方根)
gen mod(x,y)(取x/y的余数)
gen reldif(x,y)(取x与y的相对差异,即|x-y|/(|y|+1))
gen logit(x)(取ln[x/(1-x)])
gen x=autocode(x,n,xmin,xmax)(将x的值域,即xmax-xmin,分为等距的n份)
gen x=cond(x1>x2,x1,x2)(若x1>x2成立,则取x1,若x1>x2不成立,则取x2)
sort x
gen gx=group(n)(将经过排序的变量x分为尽量等规模的n个组)
egen zx1=std(x1)(得出x1的标准值,就是用(x1-avgx1)/sdx1)
egen zx1=std(x1),m(0) s(1)(得出x1的标准分,标准分的平均值为0,标准差为1)
egen sdx1=sd(x1)(得出x1的标准差)
egen meanx1=mean(x1)(得出x1的平均值)
egen maxx1=max(x1)(最大值)
egen minx1=min(x1)(最小值)
egen medx1=med(x1)(中数)
egen modex1=mode(x1)(众数)
egen totalx1=total(x1)(得出x1的总数)
egen rowsd=sd(x1 x2 x3)(得出x1、x2和x3联合的标准差)
egen rowmean=mean(x1 x2 x3)(得出x1、x2和x3联合的平均值)
egen rowmax=max(x1 x2 x3)(联合最大值)
egen rowmin=min(x1 x2 x3)(联合最小值)
egen rowmed=med(x1 x2 x3)(联合中数)
egen rowmode=mode(x1 x2 x3) (联合众数)
egen rowtotal=total(x1 x2 x3)(联合总数)
egen xrank=rank(x)(在不改变变量x各个值排序的情况下,获得反映x值大小排序的xrank)
数据计算器display命令:
display x[12](显示x的第十二个观察值)
display chi2(n,x)(自由度为n的累计卡方分布)
display chi2tail(n,x)(自由度为n的反向累计卡方分布,chi2tail(n,x)=1-chi2(n,x))
display invchi2(n,p)(卡方分布的逆运算,若chi2(n,x)=p,那么invchi2(n,p)=x)
display invchi2tail(n,p)(chi2tail的逆运算)
display F(n1,n2,f)(分子、分母自由度分别为n1和n2的累计F分布)
display Ftail(n1,n2,f)(分子、分母自由度分别为n1和n2的反向累计F分布)
display invF(n1,n2,P)(F分布的逆运算,若F(n1,n2,f)=p,那么invF(n1,n2,p)=f)
display invFtail(n1,n2,p)(Ftail的逆运算)
display tden(n,t)(自由度为n的t分布)
display ttail(n,t)(自由度为n的反向累计t分布)
display invttail(n,p)(ttail的逆运算)
给数据库和变量做标记:
label data "~~"(对现用的数据库做标记,"~~"就是标记,可自行填写)
label variable x "~~~"(对变量x做标记)
label values x label1(赋予变量x一组标签:label1)
label define label1 1 "a1" 2 "a2"(定义标签的具体内容:当x=1时,标记为a1,当x=2时,标记为a2)
频数表:
tabulate x1,sort
tab1 x1-x7,sort(做x1到x7的频数表,并按照频数以降序显示行)
table c1,c(n x1 mean x1 sd x1)(在分类变量c1的不同水平上列出x1的样本量和平均值)
二维交互表:
auto数据库:
table rep78 foreign, c(n mpg mean mpg sd mpg median mpg) center row col
(rep78,foreign均为分类变量,rep78为行变量,foreign为列变量,center表示结果显示在单元格中间,row表示计算行变量整体的统计量,col表示计算列变量整体的统计量)
tabulate x1 x2,all
(做x1和x2的二维交互表,要求显示独立性检验chi2、似然比卡方独立性检验lrchi2、对定序变量适用的等级相关系数gamma和taub、以及对名义变量适用的V)
tabulate x1 x2,column chi2(做x1和x2的二维交互表,要求显示列百分比和行变量和列变量的独立性检验——零假设为变量之间独立无统计关系)
tab2 x1-x7,all nofreq(对x1到x7这七个变量两两地做二维交互表,不显示频数:nofreq)
三维交互表:
by x3,sort:tabulate x1 x2,nofreq col chi2(同时进行x3的每一个取值内的x1和x2的二维交互表,不显示频数、显示列百分比和独立性检验)
四维交互表:
table x1 x2 x3,c(ferq mean x1 mean x2 mean x3) by(x4)
tabstat X1 X2,by(X3) stats(mean n q max min sd var cv) col(stats)
tabstat X1 X2,by(X3) stats(mean range q sd var cv p5 p95 median),[aw=X4](以X4为权重求X1、X2的均值,标准差、方差等)
ttest X1=1
count if X1==0
count if X1>=0
gen X2=1 if X1>=0
corr x1 x2 x3(做x1、x2、x3的相关系数表)
swilk x1 x2 x3(用Shapiro-Wilk W test对x1、x2、x3进行正太性分析)
sktest x1 x2 x3(对x1、x2、x3进行正太性分析,可以求出峰度和偏度)
ttest x1=x2(对x1、x2的均值是否相等进行T检验)
ttest x1,by(x2) unequal(按x2的分组方式对x1进行T检验,假设方差不齐性)
sdtest x1=x2(方差齐性检验)
sdtest x1,by(x2)(按x2的分组方式对x1进行方差齐性检验)
聚类分析:
cluster kmeans y x1 x2 x3, k(3)
——依据y、x1、x2、x3,将样本分为n类,聚类的核为随机选取
cluster kmeans y x1 x2 x3, k(3) measure(L1) start(everykth)
—— "start"用于确定聚类的核,"everykth"表示将通过构造三组样本获得聚类核:构造方法为将样本id为1、1+3、1+3×2、 1+3×3……分为一组、将样本id为2、2+3、2+3×2、2+3×3……分为第二组,以此类推,将这三组的均值作为聚类的核;"measure"用 于计算相似性和相异性的方法,"L1"表示采用欧式距离的绝对值,也直接可采用欧式距离(L2)和欧式距离的平方(L2squared)。PS:这个方法 所得的结果与SPSS所得结果相同。
sort c1 c2(对c1和c2两个分类变量排序)
by c1 c2:reg y x1 x2 x3(在c1、c2的各个水平上分别进行回归)
bysort c1 c2:reg y x1 x2 x3 if c3=1(逗号前面相当于将上面两步骤合一,既排序又回归,逗号后面的“if c3=1”表示只有在c3=1的情况下才进行回归)
stepwise, pr(.2): reg y x1 x2 x3(使用Backward selection,去除P值大于0.2时变量)
stepwise, pe(.2): reg y x1 x2 x3(使用forward selection,去除P值小于0.2时变量)
stepwise, pr(.2) pe(.01):reg y x1 x2 x3(使用backward-stepwise selection,取P值在0.01和0.2之间的变量)
stepwise, pe(.2) forward: reg y x1 x2 x3(使用forward-stepwise selection)
reg y x1 x2 x3
predict Yhat,xb
predict u,resid
predict ustd,stdr(获得残差的标准误)
predict std,stdp(获得y估计值的标准误)
predict stdf,stdf(获得y预测值的标准误)
predict e,e(1,12)(获得y在1到12之间的估计值)
predict p,pr(1,12)(获得y在1到12之间的概率)
predict rstu,rstudent(获得student的t值)
predict lerg,leverage(获得杠杆值)
predict ckd,cooksd(获得cooksd)
reg y x1 x2 x3 c1 c2
adjust x1 x2 x3,se(使得变量x1、x2和x3等于其均值,求y的预测值和标准误)
adjust x1 x2 x3,stdf ci(使得变量x1、x2和x3等于其均值,求y的预测值,预测标准误和置信区间)
adjust x1 x2,by(c1) se ci(控制变量x1、x2,亦即取它们的均值,在分类变量c1的不同水平上求y预测值,标准误和置信区间)
adjust x1 x2 x3,by(c1) stdf ci(控制变量x1、x2、x3,亦即取它们的均值,在分类变量c1的不同水平上求y预测值,预测标准误和置信区间)
adjust x1 x2,by(c1 c2) se ci(控制变量x1、x2,在分类变量c1、c2的不同水平上求y的预测值,标准误和置信区间)
adjust x1 x2 x3,by(c1 c2) stdf ci(控制变量x1、x2、x3,在分类变量c1、c2的不同水平上求y的预测值,预测标准误和置信区间)
adjust x1=a x2=b x3=c,se ci(当x1=a、x2=b、x3=c时,求y的预测值、标准误和置信区间)
adjust x1=a x2=b x3=c,by(c1) se ci(当x1=a、x2=b、x3=c时,在分类变量c1的不同水平上,求y的预测值、标准误和置信区间)
adjust x1=a x2=b c1=1,by(c1) se ci(当x1=a、x2=b,并假设所有的样本均为c1=1,求在分类变量c1的不同水平上,因为变量x3的均值不同,而导致的y的不同的预测值……)
mvreg Y1 Y2 ……: X1 X2 X3……(多元回归)
mvreg y1 y2 y3: x1 x3 x3(多元回归分析,y1 y2 y3为因变量,x1 x3 x3为自变量)
以下命令只有在进行了mvreg之后才能进行
test [y1](测试对y1的回归系数联合为0)
test [y1]: x1 x2(测试对y1的回归中x1、x2的系数为0)
test x1 x2 x3(测试在所有的回归中,x1、x2、x3的系数均为0)
test [y1=y2](对y1的回归和对y2的回归系数相等)
test [y1=y2]: x1 x2 x3, mtest(对y1和y2的回归中,分别测试x1、x2、x3的系数是否相等,若没有mtest这个命令,则测试他们的联和统计)
test [y1=y2=y3](三个回归的系数是否相等,可加mtest以分别测试)
test [y1=y2=y3]: x1 x2 (测试三个回归中的x1、x2是否相等,可加mtest)
est命令的用法:
(1)储存回归结果:
reg y x1 x2 x3(不限于reg,也可储存ivreg、mvreg、reg3)
est store A
(2)重现回归结果:
est replay A
(3)对回归结果进行进一步分析
est for A:sum(对A回归结果中的各个变量运行sum命令)
异方差问题:
获得稳健性标准误
reg y x1 x2 x3 if c1==1(当分类变量c1=1时,进行y和诸x的回归)
reg y x1 x2 x3,robust(回归后显示各个自变量的异方差-稳健性标准误)
estat vif(回归之后获得VIF)
estat hettest,mtest(异方差检验)
异方差检验的套路:
(1)Breusch-pagan法:
reg y x1 x2 x3
predict u,resid
gen usq=u^2
reg usq x1 x2 x3
求F值
display R/(1-R)n2/n1(n1表示分子除数,n2表示分母除数)
display Ftail(……)
求LM值
display Rn(n表示总样本量)
display chi2tail(……)
(2)white法:
reg y x1 x2 x3
predict u,resid
gen usq=u^2
predict y
gen ysq=y^2
reg usq y ysq
求F值
display R/(1-R)n2/n1(n1表示分子除数,n2表示分母除数)
display Ftail(……)
求LM值
display Rn(n表示总样本量)
display chi2tail(……)
(3)必要补充
F值和LM值转换为P值的命令:
display Ftail(n1,n2,a)(利用F值求p值,n1表示分子除数,n2表示分母除数,a为F值)
display chi2tail(n3,b)(利用LM值求p值,n3表示自由度的损失量,一般等于n1,b为LM值)
异方差的纠正——WLS(weighted least square estimator)
(1)基本思路:
reg y x1 x2 x3 [aw=x1](将x1作为异方差的来源,对方程进行修正)
上式相当于:
reg y/(x1^0.5) 1/(x1^0.5) x1/(x1^0.5) x2/(x1^0.5) x3/(x1^0.5),noconstant
(2)纠正异方差的常用套路(构造h值)
reg y x1 x2 x3
predict u,resid
gen usq=u^2
gen logusq=log(usq)
reg logusq x1 x2 x3
predict g
gen h=exp(g)
reg y x1 x2 x3 [aw=1/h]
异方差hausman检验:
reg y x1 x2 x3
est store A(将上述回归结果储存到A中)
reg y x1 x2 x3 [aw=1/h]
est store B
hausman A B
当因变量为对数形式时(log(y))如何预测y
reg logy x1 x2 x3
predict k
gen m=exp(k)
reg y m,noconstant
m的系数为i
y的预测值=i×exp(k)
方差分析:
一元方差分析
anova y g1 / g1|g2 /(g表示不同分类变量,计算g1和交互项/ g1|g2 /这两种分类的y值是否存在组内差异)
anova y d1 d2 d1d2(d表示虚拟变量,计算d1、d2和d1d2的这三种分类的y值是否有组内差异)
anova y d1 d2 x1 d2x1, continuous(x1)(x表示连续的控制变量)
多元方差分析
webuse jaw
manova y1 y2 y3 = gender fracture genderfracture(按性别、是否骨折及二者的交互项对y1、y2和y3进行方差分析)
manova y1 = gender fracture genderfracture(相当于一元方差分析,以y1为因变量)
————————————
webuse nobetween
gen mycons = 1
manova test1 test2 test3 = mycons, noconstant
mat c = (1,0,-1 \ 0,1,-1)
manovatest mycons, ytransform(c)
进行多元回归的方法:
多元回归分析:(与mvreg相同)
foreach vname in y1 y2 y3 { (确定y变量组vname)
reg `vname' x1 x2 x3 (将y变量组中的各个变量与诸x变量进行回归分析,注意vname的标点符号)
}
上式等价于:
mvreg y1 y2 y3 = x1 x2 x3
reg3命令:
(1)简单用法:
reg3 (y1 = x1 x2 x3) (y2 = x1 x3 x4) (y3 = x1 x2 x5)
测试y1 coefs = 0
test [y1]
测试不同回归中相同变量的系数:
test [y1=y2=y3], common
test ([y1=y2]) ([y1=y3]), common constant(constant表示包含截距项)
(2)用reg3进行2SLS
reg3 (y1 = y2 x1 x2) (y2 = y1 x4),2sls
(2)用reg3进行OLS
reg3 (y1 = y2 x1 x2) (y2 = y1 x4),ols
对两个回归结果进行hausman检验:
reg3 (y1=x1 x2 x3)(y2=y1 x4),2sls
est store twosls
reg3 (y1=x1 x2 x3)(y2=y1 x4),ols
est store ols
hausman twosls ols,equations(1:1)(对两次回归中的方程1,即“y1=x1 x2 x3”进行hausman检验)
hausman twosls ols,equations(2:2)(对两次回归中的方程2,即“y2=y1 x4”进行hausman检验)
hausman twosls ols,alleqs(对所有方程一起进行检验)
检验忽略变量(模型的RESET):
reg y x1 x2 x3
estat ovtest
滞后变量的制取
对变量y滞后一期:
gen y_l1=y[_n-1]
滞后两期:
gen y_l2=y[_n-2]
以此类推。
制取样本序号:
gen id=_n
获得样本总量:
gen id=_N
时间序列回归:
回归元严格外生时AR(1)序列相关的检验
reg y x1 x2
predict u,resid
gen u_1=u[_n-1]
reg u u_1,noconstant
回归之后,u_1的序数如果不异于零,则该序列不相关
用Durbin-Watson Statistics检验序列相关:
tsset year @(对时间序列回归中代表时间的变量进行定义)@
reg y x1 x2
dwstat @(求出时间序列回归的DW值)@
durbina @(对该回归是否具有序列相关进行检验,H0为无序列相关,可根据chi2值求出P值)@
durbina,small @(small可以根据F值求出P值,以代替chi2值)@
durbina,force @(让检验能在robust、neway之后进行)@
durbina,small lag(1/10) @(lag可以求出更高阶滞后的序列相关,如本例中可求出1到10阶的序列相关)@
durbina,robust lag(1/10) @(robust可进行异方差—稳健性回归,避免未知形式的异方差)@
bgodfrey @(利用Breusch-Godfrey test求出高阶序列相关)@
bgodfrey,small lag(1/10)
数据调查:survey data
源数据:dataset文件夹中的svydata
步骤:
1、定义survey data
svyset psuid [pweight=finalwgt], strata(stratid)
——定义primary sampling unit为psuid。可能是测试的编号,1or2
——定义pweight为finalwgt
——定义stratum identifer为stratid。可能是测试中被试的编号,1to31
2、生成male
gen male= (sex==1) if !missing(sex)
——当sex不缺失且等于1时,male=sex
3、生成行变量为highbp,列变量为sizplace的表格
svy, subpop(male): tabulate highbp sizplace, col obs pearson lr null wald
——subpop规定了以male为数据调查的范围
——tabulate highbp sizplace表示绘制行变量为highbp,列变量为sizplace的表格
——col表示每一列的加总为100%,row表示每一行的加总为100%,cell表示横纵所有单元格的加总为100%
——obs表示列出每个单元格的样本量,se表示列出每个单元格的标准误,ci表示列出每个单元格的置信区间
——pearson表示求取pearson's chi-squired,皮尔逊的卡方检定
——lr表示求取likelihood ratio
——null表示求取null-based statistics
——wald表示求取adjusted wald,llwald表示求取adjusted log-linear Wald,noadjust表示求取unadjusted Wald statistics
4、svy:mean x1 x2 x3
——对x1、x2、x3求取mean、se和ci
5、简单的tabulate twoway(不用svyset就可执行)
tab2 y x,col chi2 exact lr
——col、cell、row等均可换用,chi2指的是Pearson's chi-squared、exact指的是fisher exact test、lr指的是likelihood-ratio chi-squared
6、svy的其他用法:
svy:reg y x
建立人工数据集:
创建一个包含从独立标准正态分布中抽取的2000个观察案例和三个随机Z1、Z2、Z3,并分别定义他们的平均值和标准差。
matrix m=(0,2,3) ——定义三个变量的平均值
matrix sd=(1,.5,2) ——定义三个变量的标准差
drawnorm z1 z2 z3,n(2000) means(m) sds(sd) ——创建样本量为2000,均值和标准差符合上面定义的数据集
补充:除了定义均值和标准差之外,还可定义相关矩阵和协方差矩阵等。
logit回归
logit y x1 x2 x3
——y必须为二分变量
glogit outcomedata populationdata x1 x2 x3
——outcomedata为目标样本总量,populationdata为观测样本总量,outcomedata/populationdata的值便是一个概率,相当于logit命令中的y
面板数据(Panel Data)
1、基本套路:
xtreg y x1 x2,re
est store re
xtreg y x1 x2,fe
est store fe
hausman re fe
——如果hausman检验的结果为显著,则采用固定效应(fe)模型,不显著,则选取随机效应(re)模型
2、随机效应的检验:
xtreg y x1 x2,re
xttest0
xttest1
——xttest1是xttest0的扩展,若这xttest0的结果为显著,则采用随机效应(re)模型
xttest1的假设是没有随机效应和/或没有序列相关,它的七个结果分别表示:
- LM Test for random effects, assuming no serial correlation
(假设没有序列相关情况下对随机效应进行LM检验) - Adjusted LM test for random effects, which works even under serial
correlation
(假设有序列相关的情况下对随机LM检验) - One sided version of the LM test for random effects
(假设没有序列相关的情况下对随机效应进行单边检验) - One sided version of the adjusted LM test for random effects
(假设有序列相关的情况下对随机效应进行单边检验) - LM test for first-order serial correlation, assuming no random effects
(假设没有随机效应的情况下对一阶序列相关进行检验) - Adjusted test for first-order serial correlation, which works even under
random effects
(假设有随机效应的情况下对一阶序列相关进行检验) - LM Joint test for random effects and serial correlation
(随机效应和序列相关的联合检验)
3、固定效应模型,可采用广义最小二乘法(gls)进行估算,也可采用固定效应方程(fe):
xtserial y x1 x2
xtgls y x1 x2
xttest2
xttest3
——xtserial用于检验固定效应模型中的一阶序列自相关,可通用于xtgls和fe之前
——xttest2用于检验不同厂商的相似性,若显著则各厂家的截面相似,可通用于xtgls和fe之后
——xttest3用于检验固定效应模型中的异方差问题,若显著则有异方差,可通用于xtgls和fe之后