![常用到的stata命令_第1页](http://file4.renrendoc.com/view/0aae7f1fa6f05917941189764d166b6f/0aae7f1fa6f05917941189764d166b6f1.gif)
![常用到的stata命令_第2页](http://file4.renrendoc.com/view/0aae7f1fa6f05917941189764d166b6f/0aae7f1fa6f05917941189764d166b6f2.gif)
![常用到的stata命令_第3页](http://file4.renrendoc.com/view/0aae7f1fa6f05917941189764d166b6f/0aae7f1fa6f05917941189764d166b6f3.gif)
![常用到的stata命令_第4页](http://file4.renrendoc.com/view/0aae7f1fa6f05917941189764d166b6f/0aae7f1fa6f05917941189764d166b6f4.gif)
![常用到的stata命令_第5页](http://file4.renrendoc.com/view/0aae7f1fa6f05917941189764d166b6f/0aae7f1fa6f05917941189764d166b6f5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安装estat:sscinstallestout,replace\2010-10-1411:38:15来自:杨囡囡(allawomanlackisawife)(转自人大论坛)调整变量格式:formatx1%10.3f 将x1的列宽固定为10,小数点后取三位formatx1%10.3g 将x1的列宽固定为10,有效数字取三位formatx1%10.3e——将x1的列宽固定为10,采用科学计数法formatx1%10.3fc——将x1的列宽固定为10,小数点后取三位,加入千分位分隔符formatx1%10.3gc——将x1的列宽固定为10,有效数字取三位,加入千分位分隔符formatx1%-10.3gc——将x1的列宽固定为10,有效数字取三位,加入千分位分隔符,加入“-”表示左对齐合并数据:use"C:\DocumentsandSettings\xks\桌面\2006.dta”,clearmergeusing"C:\DocumentsandSettings\xks'桌面\1999.dta”——将1999和2006的数据按照样本(observation)排列的自然顺序合并起来use"C:\DocumentsandSettings\xks\桌面\2006.dta”,clearmergeidusing"C:\DocumentsandSettings\xks\桌面'1999.dta”,uniquesort——将1999和2006的数据按照唯一的(unique)变量id来合并,在合并时对id进行排序(sort)建议采用第一种方法。对样本进行随机筛选:sample50在观测案例中随机选取50%的样本,其余删除sample50,count在观测案例中随机选取50个样本,其余删除查看与编辑数据:browsex1x2ifx3>3(按所列变量与条件打开数据查看器)editx1x2ifx3>3(按所列变量与条件打开数据编辑器)数据合并(merge)与扩展(append)merge表示样本量不变,但增加了一些新变量;append表示样本总量增加了,但变量数目不变。one-to-onemerge:数据源自statatutorial中的exampw1和exampw2第一步:将exampw1按v001〜v003这三个编码排序,并建立临时数据库tempw1clearuse"t:\statatut\exampw1.dta"su summarize的简写sortv001v002v003savetempw1第二步:对exampw2做同样的处理clearuse"t:\statatut\exampw2.dta"susortv001v002v003savetempw2第三步:使用tempw1数据库,将其与tempw2合并:clearusetempw1mergev001v002v003usingtempw2第四步:查看合并后的数据状况:ta_merge tabulate_merge的简写su第五步:清理临时数据库,并删除_merge,以免日后合并新变量时出错erasetempw1.dtaerasetempw2.dtadrop_merge数据扩展append:数据源自statatutorial中的fac19和newfacclearuse"t:\statatut\fac19.dta"taregionappendusing"t:\statatut\newfac"taregion合并后样本量增加,但变量数不变茎叶图:stemx1,line(2)(做x1的茎叶图,每一个十分位的树茎都被拆分成两段来显示,前半段为0〜4,后半段为5〜9)stemx1,width(2)(做x1的茎叶图,每一个十分位的树茎都被拆分成五段来显示,每个小树茎的组距为2)stemx1,round(100)(将x1除以100后再做x1的茎叶图)直方图采用auto数据库histogrammpg,discretefrequencynormalxlabel(1(1)5)(discrete表示变量不连续,frequency表示显示频数,normal加入正太分布曲线,xlabel设定x轴,1和5为极端值,(1)为单位)histogramprice,fractionnorm(fraction表示y轴显示小数,除了frequency和fraction这两个选择之外,该命令可替换为“percent”百分比,和“density”密度;未加上discrete就表示将price当作连续变量来绘图)histogramprice,percentby(foreign)(按照变量“foreign”的分类,将不同类样本的“price”绘制出来,两个图分左右排布)histogrammpg,discreteby(foreign,col(1))(按照变量“foreign”的分类,将不同类样本的“mpg”绘制出来,两个图分上下排布)histogrammpg,discretepercentby(foreign,total)norm(按照变量“foreign”的分类,将不同类样本的“mpg”绘制出来,同时绘出样本整体的“总”直方图)二变量图:graphtwowaylfitpriceweight||scatterpriceweight(作出price和weight的回归线图 “lfit”,然后与price和weight的散点图相叠加)twowayscatterpriceweight,mlabel(make)(做price和weight的散点图,并在每个点上标注“make”,即厂商的取值)twowayscatterpriceweight||lfitpriceweight,by(foreign)(按照变量foreign的分类,分别对不同类样本的price和weight做散点图和回归线图的叠加,两图呈左右分布)twowayscatterpriceweight||lfitpriceweight,by(foreign,col(1))(按照变量foreign的分类,分别对不同类样本的price和weight做散点图和回归线图的叠加,两图呈上下分布)twowayscatterpriceweight[fweight=displacement],msymbol(oh)(画出price和weight的散点图,“msybol(oh)”表示每个点均为中空的圆圈,[fweight=displacement]表示每个点的大小与displacement的取值大小成比例)twowayconnectedy1time,yaxis(1)||y2time,yaxis(2)(画出y1和y2这两个变量的时间点线图,并将它们叠加在一个图中,左边“yaxis(1)”为y1的度量,右边“yaxis(2)”为y2的)twowayliney1time,yaxis(1)||y2time,yaxis(2)(与上图基本相同,就是没有点,只显示曲线)graphtwowayscattervar1var4||scattervar2var4||scattervar3var4(做三个点图的叠加)graphtwowaylinevar1var4||linevar2var4||linevar3var4(做三个线图的叠加)graphtwowayconnectedvar1var4||connectedvar2var4||connectedvar3var4(叠加三个点线相连图)更多变量:graphmatrixabcy(画出一个散点图矩阵,显示各变量之间所有可能的两两相互散点图)graphmatrixabcd,half(生成散点图矩阵,只显示下半部分的三角形区域)用auto数据集:graphmatrixpricempgweightlength,halfby(foreign,totalcol(1))(根据foreign变量的不同类型绘制price等四个变量的散点图矩阵,要求绘出总图,并上下排列】=具)其他图形:graphboxy,over(x)yline(.22)(对应x的每一个取值构建y的箱型图,并在y轴的0.22处划一条水平线)graphbar(mean)y,over(x)对应x的每一个取值,显示y的平均数的条形图。括号中的“mean"也可换成median、sum、sd、p25、p75等graphbara1a2,over(b)stack(对应在b的每一个取值,显示a1和a2的条形图,a1和a2是叠放成一根条形柱。若不写入“stack”,则a1和a2显示为两个并排的条形柱)graphdot(median)y,over(x)(画点图,沿着水平刻度,在x的每一个取值水平所对应的y的中位数上打点)qnormx(画出一幅分位-正态标绘图)rcharta1a2a2(画出质量控制R图,显示a1到a3的取值范围)简单统计量的计算:ameansx(计算变量x的算术平均值、几何平均值和简单调和平均值,均显示样本量和置信区间)meanvarl[pweight=var2](求取分组数据的平均值和标准误,varl为各组的赋值,var2为每组的频数)summarizeyx1x2,detail(可以获得各个变量的百分比数、最大最小值、样本量、平均数、标准差、方差、峰度、偏度)***注意***stata中summarize所计算出来的峰度skewness和偏度kurtosis有问题,与ECELL和SPSS有较大差异,建议不采用stata的结果。summarizevar1[aweight=var2],detail(求取分组数据的统计量,var1为各组的赋值,var2为每组的频数)tabstatX1,stats(meannqmaxminsdvarcv)(计算变量X1的算术平均值、样本量、四分位线、最大最小值、标准差、方差和变异系数)概率分布的计算:(1) 贝努利概率分布测试:webusequickbitestquick==0.3,detail(假设每次得到成功案例1的概率等于0.3,计算在变量quick所显示的二项分布情况下,各种累计概率和单个概率是多少)bitesti10,3,0.5,detail(计算当每次成功的概率为0.5时,十次抽样中抽到三次成功案例的概率:低于或高于三次成功的累计概率和恰好三次成功概率)(2) 泊松分布概率:displaypoisson(7,6).44971106(计算均值为7,成功案例小于等于6个的泊松概率)displaypoissonp(7,6).14900278(计算均值为7,成功案例恰好等于6个的泊松概率)displaypoissontail(7,6).69929172(计算均值为7,成功案例大于等于6个的泊松概率)(3)超几何分布概率:displayhypergeometricp(10,3,4,2).3(计算在样本总量为10,成功案例为3的样本总体中,不重置地抽取4个样本,其中恰好有2个为成功案例的概率)displayhypergeometric(10,3,4,2).96666667(计算在样本总量为10,成功案例为3的样本总体中,不重置地抽取4个样本,其中有小于或等于2个为成功案例的概率)检验极端值的步骤:常见命令:tabulate、stem、codebook、summarize、list、histogram、graphbox、graghmatrixstep1.用codebook、summarize、histogram、graphboxs、graphmatrix、stem看检验数据的总体情况:codebookyx1x2summarizeyx1x2,detailhistogramx1,norm(正态直方图)graphboxx1(箱图)graphmatrixyx1x2,half(画出各个变量的两两x-y图)stemx1(做x1的茎叶图)可以看出数据分布状况,尤其是最大、最小值step2.用tabulate、list细致寻找极端值tabulatecodeifx1==极端值(作出x1等于极端值时code的频数分布表,code表示地区、年份等序列变量,这样便可找出那些地区的数值出现了错误)listcodeifx1==«端值(直接列出x1等于极端值时code的值,当x1的错误过多时,不建议使用该命令)listin-20/l(l表示lastone,-20表示倒数第20个样本,该命令列出了从倒数第20个到倒数第一个样本的各变量值)step3.用replace命令替换极端值replacex1=?ifx1==极端值去除极端值:keepify<1000dropify>1000对数据排序:sortxgsort+x(对数据按x进行升序排列)gsort-x(对数据按x进行降序排列)gsort-x,generate(id)mfirst(对数据按x进行降序排列,缺失值排最前,生成反映位次的变量id)对变量进行排序:orderyx3x1x2(将变量按照y、x3、x1、x2的顺序排列)生成新变量:genlogx1=log(x1)(得出x1的对数)genx1'=exp(logx1)(将logx1反对数化)genr61_100=1ifrank>=61&rank<=100(若rank在61与100之间,则新变量r61_100的取值为1,其他为缺失值)replacer61_100ifr61_100!=1("!表示不等于,若r61_100取值不为1,则将r61_100替换为0,就是将上式中的缺失值替换为0)genabs(x)(取x的绝对值)genceil(x)(取大于或等于x的最小整数)gentrunc(x)(取x的整数部分)genround(x)(对x进行四舍五入)genround(x,y)(以y为单位,对x进行四舍五入)gensqrt(x)(取x的平方根)genmod(x,y)(取x/y的余数)genreldif(x,y)(取x与y的相对差异,即|x-y|/(|y|+1))genlogit(x)(取ln[x/(1-x)])genx=autocode(x,n,xmin,xmax)(将x的值域,即xmax-xmin,分为等距的n份)genx=cond(x1>x2,x1,x2)(若x1>x2成立,则取x1,若x1>x2不成立,则取x2)sortxgengx=group(n)(将经过排序的变量x分为尽量等规模的n个组)egenzx1=std(x1)(得出x1的标准值,就是用(x1-avgx1)/sdx1)egenzx1=std(x1),m(0)s(1)(得出x1的标准分,标准分的平均值为0,标准差为1)egensdx1=sd(x1)(得出x1的标准差)egenmeanx1=mean(x1)(得出x1的平均值)egenmaxx1=max(x1)(最大值)egenminx1=min(x1)(最小值)egenmedx1=med(x1)(中数)egenmodex1=mode(x1)(众数)egentotalx1=total(x1)(得出x1的总数)egenrowsd=sd(x1x2x3)(得出x1、x2和x3联合的标准差)egenrowmean=mean(x1x2x3)(得出x1、x2和x3联合的平均值)egenrowmax=max(x1x2x3)(联合最大值)egenrowmin=min(x1x2x3)(联合最小值)egenrowmed=med(x1x2x3)(联合中数)egenrowmode=mode(x1x2x3)(联合众数)egenrowtotal=total(x1x2x3)(联合总数)egenxrank=rank(x)(在不改变变量x各个值排序的情况下,获得反映x值大小排序的xrank)数据计算器display命令:displayx[12](显示x的第十二个观察值)displaychi2(n,x)(自由度为n的累计卡方分布)displaychi2tail(n,x)(自由度为n的反向累计卡方分布,chi2tail(n,x)=1-chi2(n,x))displayinvchi2(n,p)(卡方分布的逆运算,若chi2(n,x)=p,那么invchi2(n,p)=x)displayinvchi2tail(n,p)(chi2tail的逆运算)displayF(n1,n2,f)(分子、分母自由度分别为n1和n2的累计F分布)displayFtail(n1,n2,f)(分子、分母自由度分别为n1和n2的反向累计F分布)displayinvF(n1,n2,P)(F分布的逆运算,若F(n1,n2,f)=p,那么invF(n1,n2,p)=f)displayinvFtail(n1,n2,p)(Ftail的逆运算)displaytden(n,t)(自由度为n的t分布)displayttail(n,t)(自由度为n的反向累计t分布)displayinvttail(n,p)(ttail的逆运算)给数据库和变量做标记:labeldata"~~~"(对现用的数据库做标记,"~~~"就是标记,可自行填写)labelvariablex"—”(对变量x做标记)labelvaluesxlabel1(赋予变量x一组标签:label1)labeldefinelabel11"a1"2"a2"(定义标签的具体内容:当x=1时,标记为a1,当x=2时,标记为a2)频数表:tabulatex1,sorttab1x1-x7,sort(做x1到x7的频数表,并按照频数以降序显示行)tablec1,c(nx1meanx1sdx1)(在分类变量c1的不同水平上列出x1的样本量和平均值)二维交互表:auto数据库:tablerep78foreign,c(nmpgmeanmpgsdmpgmedianmpg)centerrowcol(rep78,foreign均为分类变量,rep78为行变量,foreign为列变量,center表示结果显示在单元格中间,row表示计算行变量整体的统计量,col表示计算列变量整体的统计量)tabulatex1x2,all(做x1和x2的二维交互表,要求显示独立性检验chi2、似然比卡方独立性检验lrchi2、对定序变量适用的等级相关系数gamma和taub、以及对名义变量适用的V)tabulatex1x2,columnchi2(做x1和x2的二维交互表,要求显示列百分比和行变量和列变量的独立性检验一一零假设为变量之间独立无统计关系)tab2x1-x7,allnofreq(对x1到x7这七个变量两两地做二维交互表,不显示频数:nofreq)三维交互表:byx3,sort:tabulatex1x2,nofreqcolchi2(同时进行x3的每一个取值内的x1和x2的二维交互表,不显示频数、显示列百分比和独立性检验)四维交互表:tablex1x2x3,c(ferqmeanx1meanx2meanx3)by(x4)tabstatX1X2,by(X3)stats(meannqmaxminsdvarcv)col(stats)tabstatX1X2,by(X3)stats(meanrangeqsdvarcvp5p95median),[aw=X4](以X4为权重求X1、X2的均值,标准差、方差等)ttestX1=1countifX1==0countifX1>=0genX2=1ifX1>=0corrx1x2x3(做x1、x2、x3的相关系数表)swilkx1x2x3(用Shapiro-WilkWtest对x1、x2、x3进行正太性分析)sktestx1x2x3(对x1、x2、x3进行正太性分析,可以求出峰度和偏度)ttestx1=x2(对x1、x2的均值是否相等进行T检验)ttestx1,by(x2)unequal(按x2的分组方式对x1进行T检验,假设方差不齐性)sdtestx1=x2(方差齐性检验)sdtestx1,by(x2)(按x2的分组方式对x1进行方差齐性检验)聚类分析:clusterkmeansyx1x2x3,k(3) 依据y、x1、x2、x3,将样本分为n类,聚类的核为随机选取clusterkmeansyx1x2x3,k(3)measure(L1)start(everykth)——"start"用于确定聚类的核,"everykth"表示将通过构造三组样本获得聚类核:构造方法为将样本id为1、1+3、1+3x2、1+3x3......分为一组、将样本id为2、2+3、2+3x2、2+3x3......分为第二组,以此类推,将这三组的均值作为聚类的核;"measure"用于计算相似性和相异性的方法,"L1"表示采用欧式距离的绝对值,也直接可采用欧式距离(L2)和欧式距离的平方(L2squared)。PS:这个方法所得的结果与SPSS所得结果相同。sortc1c2(对c1和c2两个分类变量排序)byc1c2:regyx1x2x3(在c1、c2的各个水平上分别进行回归)bysortc1c2:regyx1x2x3ifc3=1(逗号前面相当于将上面两步骤合一,既排序又回归,逗号后面的“ifc3=1”表示只有在c3=1的情况下才进行回归)stepwise,pr(.2):regyx1x2x3(使用Backwardselection,去除P值大于0.2时变量)stepwise,pe(.2):regyx1x2x3(使用forwardselection,去除P值小于0.2时变量)stepwise,pr(.2)pe(.01):regyx1x2x3(使用backward-stepwiseselection,取P值在0.01和0.2之间的变量)stepwise,pe(.2)forward:regyx1x2x3(使用forward-stepwiseselection)regyx1x2x3predictYhat,xbpredictu,residpredictustd,stdr(获得残差的标准误)predictstd,stdp(获得y估计值的标准误)predictstdf,stdf(获得y预测值的标准误)predicte,e(1,12)(获得y在1到12之间的估计值)predictp,pr(1,12)(获得y在1到12之间的概率)predictrstu,rstudent(获得student的t值)predictlerg,leverage(获得杠杆值)predictckd,cooksd(获得cooksd)regyx1x2x3c1c2adjustx1x2x3,se(使得变量x1、x2和x3等于其均值,求y的预测值和标准误)adjustx1x2x3,stdfci(使得变量x1、x2和x3等于其均值,求y的预测值,预测标准误和置信区间)adjustx1x2,by(c1)seci(控制变量x1、x2,亦即取它们的均值,在分类变量c1的不同水平上求y预测值,标准误和置信区间)adjustx1x2x3,by(c1)stdfci(控制变量x1、x2、x3,亦即取它们的均值,在分类变量c1的不同水平上求y预测值,预测标准误和置信区间)adjustx1x2,by(c1c2)seci(控制变量x1、x2,在分类变量c1、c2的不同水平上求y的预测值,标准误和置信区间)adjustx1x2x3,by(c1c2)stdfc(控制变量x1、x2、x3,在分类变量c1、c2的不同水平上求y的预测值,预测标准误和置信区间)adjustx1=ax2=bx3=c,seci(当x1=a、x2=b、x3=c时,求y的预测值、标准误和置信区间)adjustx1=ax2=bx3=c,by(c1)seci(当x1=a、x2=b、x3=c时,在分类变量c1的不同水平上,求y的预测值、标准误和置信区间)adjustx1=ax2=bc1=1,by(c1)seci(当x1=a、x2=b,并假设所有的样本均为c1=1,求在分类变量c1的不同水平上,因为变量x3的均值不同,而导致的y的不同的预测值......)mvregY1Y2......:X1X2X3......(多元回归)mvregy1y2y3:x1x3x3(多元回归分析,y1y2y3为因变量,x1x3x3为自变量)以下命令只有在进行了mvreg之后才能进行test[y1](测试对y1的回归系数联合为0)test[y1]:x1x2(测试对y1的回归中x1、x2的系数为0)testx1x2x3(测试在所有的回归中,x1、x2、x3的系数均为0)test[y1=y2](对y1的回归和对y2的回归系数相等)test[y1=y2]:x1x2x3,mtest(对y1和y2的回归中,分别测试x1、x2、x3的系数是否相等,若没有mtest这个命令,则测试他们的联和统计)test[y1=y2=y3](三个回归的系数是否相等,可加mtest以分别测试)test[y1=y2=y3]:x1x2(测试三个回归中的x1、x2是否相等,可加mtest)est命令的用法:(1) 储存回归结果:regyx1x2x3(不限于reg,也可储存ivreg、mvreg、reg3)eststoreA(2) 重现回归结果:estreplayA(3) 对回归结果进行进一步分析estforA:sum(对A回归结果中的各个变量运行sum命令)异方差问题:获得稳健性标准误regyx1x2x3ifc1==1(当分类变量c1=1时,进行y和诸x的回归)regyx1x2x3,robust(回归后显示各个自变量的异方差-稳健性标准误)estatvif(回归之后获得VIF)estathettest,mtest(异方差检验)异方差检验的套路:(1)Breusch-pagan法:regyx1x2x3predictu,residgenusq=uA2regusqx1x2x3求F值displayR/(1-R)*n2/n1(n1表示分子除数,n2表示分母除数)displayFtail( )求LM值displayR*n(n表示总样本量)displaychi2tail( )white法:regyx1x2x3predictu,residgenusq=uA2predictygenysq=yA2regusqyysq求F值displayR/(1-R)*n2/n1(n1表示分子除数,n2表示分母除数)displayFtail( )求LM值displayR*n(n表示总样本量)displaychi2tail( )必要补充F值和LM值转换为P值的命令:displayFtail(n1,n2,a)(利用F值求p值,n1表示分子除数,n2表示分母除数,a为F值)displaychi2tail(n3,b)(利用LM值求p值,n3表示自由度的损失量,一般等于n1,b为LM值)异方差的纠正 WLS(weightedleastsquareestimator)(1)基本思路:regyx1x2x3[aw=x1](将x1作为异方差的来源,对方程进行修正)上式相当于:regy/(x1A0.5)1/(x1A0.5)x1/(x1A0.5)x2/(x1A0.5)x3/(x1A0.5),noconstant(2)纠正异方差的常用套路(构造h值)regyx1x2x3predictu,residgenusq=uA2genlogusq=log(usq)reglogusqx1x2x3predictggenh=exp(g)regyx1x2x3[aw=1/h]异方差hausman检验:regyx1x2x3eststoreA(将上述回归结果储存到A中)regyx1x2x3[aw=1/h]eststoreBhausmanAB当因变量为对数形式时(log(y))如何预测yreglogyx1x2x3predictkgenm=exp(k)regym,noconstantm的系数为iy的预测值=ixexp(k)方差分析:一元方差分析anovayg1/g1|g2/(g*表示不同分类变量,计算g1和交互项/g1|g2/这两种分类的y值是否存在组内差异)anovayd1d2d1*d2(d*表示虚拟变量,计算d1、d2和d1*d2的这三种分类的y值是否有组内差异)anovaydid2x1d2*x1,continuous(xl)(x*表示连续的控制变量)多元方差分析webusejawmanovay1y2y3=genderfracturegender*fracture(按性别、是否骨折及二者的交互项对y1、y2和y3进行方差分析)manovay1=genderfracturegender*fracture(相当于一元方差分析,以y1为因变量)webusenobetweengenmycons=1manovatest1test2test3=mycons,noconstantmatc=(1,0,-1\0,1,-1)manovatestmycons,ytransform(c)进行多元回归的方法:多元回归分析:(与mvreg相同)foreachvnameiny1y2y3((确定y变量组vname)reg'vname'x1x2x3(将y变量组中的各个变量与诸x变量进行回归分析,注意vname的标点符号)}上式等价于:mvregy1y2y3=x1x2x3reg3命令:(1)简单用法:reg3(y1=x1x2x3)(y2=x1x3x4)(y3=x1x2x5)测试y1coefs=0test[y1]测试不同回归中相同变量的系数:test[y1=y2=y3],commontest([y1=y2])([y1=y3]),commonconstant(constant表示包含截距项)(2)用reg3进行2SLSreg3(y1=y2x1x2)(y2=y1x4),2sls(2)用reg3进行OLSreg3(y1=y2x1x2)(y2=y1x4),ols对两个回归结果进行hausman检验:reg3(y1=x1x2x3)(y2=y1x4),2slseststoretwoslsreg3(y1=x1x2x3)(y2=y1x4),olseststoreolshausmantwoslsols,equations(1:1)(对两次回归中的方程1,即“y1=x1x2x3”进行hausman检验)hausmantwoslsols,equations(2:2)(对两次回归中的方程2,即“y2=y1x4”进行hausman检验)hausmantwoslsols,alleqs(对所有方程一起进行检验)检验忽略变量(模型的RESET):regyx1x2x3estatovtest滞后变量的制取对变量y滞后一期:geny_l1=y[_n-1]滞后两期:geny_l2=y[_n-2]以此类推。制取样本序号:genid=_n获得样本总量:genid=_N时间序列回归:回归元严格外生时AR(1)序列相关的检验regyx1x2predictu,residgenu_1=u[_n-1]reguu_1,noconstant回归之后,u_1的序数如果不异于零,则该序列不相关用Durbin-WatsonStatistics检验序列相关:tssetyear@(对时间序列回归中代表时间的变量进行定义)@regyx1x2dwstat@(求出时间序列回归的DW值)@durbina@(对该回归是否具有序列相关进行检验,H0为无序列相关,可根据chi2值求出P值)@durbina,small@(small可以根据F值求出P值,以代替chi2值)@durbina,force@(让检验能在robust、neway之后进行)@durbina,smalllag(1/10)@(lag可以求出更高阶滞后的序列相关,如本例中可求出1到10阶的序列相关)@durbina,robustlag(1/10)@(robust可进行异方差一稳健性回归,避免未知形式的异方差)@bgodfrey@(利用Breusch-Godfreytest求出高阶序列相关)@bgodfrey,smalllag(1/10)数据调查:surveydata源数据:dataset文件夹中的svydata步骤:1、定义surveydatasvysetpsuid[pweight=finalwgt],strata(stratid) 定义primarysamplingunit为psuid。可能是测试的编号,1or2 定义pweight为finalwgt 定义stratumidentifer为stratid。可能是测试中被试的编号,1to312、 生成malegenmale=(sex==1)if!missing(sex) 当sex不缺失且等于1时,male=sex3、 生成行变量为highbp,列变量为sizplace的表格svy,subpop(male):tabulatehighbpsizplace,colobspearsonlrnullwald subpop规定了以male为数据调查的范围 tabulatehighbpsizplace表示绘制行变量为highbp,歹。变量为sizplace的表格——col表示每一列的加总为100%,row表示每一行的加总为100%,cell表示横纵所有单元格的加总为100%——obs表示列出每个单元格的样本量,se表示列出每个单元格的标准误,ci表示列出每个单元格的置信区间 pearson表示求取pearson'schi-squired,皮尔逊的卡方检定 lr表示求取likelihoodratio null表示求取null-basedstatistics wald表示求取adjustedwald,llwald表示求取adjustedlog-linearWald,noadjust表示求取unadjustedWaldstatistics4、 svy:meanx1x2x3 对x1、x2、x3求取mean、se和ci5、 简单的tabulatetwoway(不用svyset就可执行)tab2yx,colchi2exactlr col、cell、row等均可换用,chi2指的是Pearson'schi-squared、exact指的是fisherexacttest>lr指的是likelihood-ratiochi-squared6、 svy的其他用法:svy:regyx建立人工数据集:创建一个包含从独立标准正态分布中抽取的2000个观察案例和三个随机Z1、Z2、Z3,并分别定义他们的平均值和标准差。matrixm=(0,2,3) 定义三个变量的平均值matrixsd=(1,.5,2) 定义三个变量的标准差drawnormz1z2z3,n(2000)means(m)sds(sd) 创建样本量为2000,均值和标准差符合上面定义的数据集补充:除了定义均值和标准差之外,还可定义相关矩阵和协方差矩阵等。logit回归logityx1x2x3——y必须为二分变量glogitoutcomedatapopulationdatax1x2x3 outcomedata为目标样本总量,populationdata为观测样本总量,outcomedata/populationdata的值便是一个概率,相当于logit命令中的y面板数据(PanelData)1、 基本套路:xtregyx1x2,reeststorerextregyx1x2,feeststorefehausmanrefe——如果hausman检验的结果为显著,则采用固定效应(fe)模型,不显著,则选取随机效应(re)模型2、 随机效应的检验:xtregyx1x2,rexttest0xttest1 xttest1是xttest0的扩展,若这xttest0的结果为显著,则采用随机效应(re)模型xttest1的假设是没有随机效应和/或没有序列相关,它的七个结果分别表示:LMTestforrandomeffects,assumingnoserialcorrelation(假设没有序列相关情况下对随机效应进行LM检验)AdjustedLMtestforrandomeffects,whichworksevenunderserialcorrelation(假设有序列相关的情况下对随机LM检验)3) OnesidedversionoftheLMtestforrandomeffects(假设没有序列相关的情况下对随机效应进行单边检验)4) OnesidedversionoftheadjustedLMtestforrandomeffects(假设有序列相关的情况下对随机效应进行单边检验)5) LMtestforfirst-orderserialcorrelation,assumingnorandomeffects(假设没有随机效应的情况下对一阶序列相关进行检验)6) Adjustedtestforfirst-orderserialcorrelation,whichworksevenunderrandomeffects(假设有随机效应的情况下对一阶序列相关进行检验)7) LMJointtestforrandomeffectsandserialcorrelation(随机效应和序列相关的联合检验)3、固定效应模型,可采用广义最小二乘法(gls)进行估算,也可采用固定效应方程(fe):xtserialyx1x2xtglsyx1x2xttest2xttest3 xtserial用于检验固定效应模型中的一阶序列自相关,可通用于xtgls和fe之前——xttest2用于检验不同厂商的相似性,若显著则各厂家的截面相似,可通用于xtgls和fe之后——xttest3用于检验固定效应模型中的异方差问题,若显著则有异方差,可通用于xtgls和fe之后http://hi.baidu.eom/cheerhappywo/blog/item/bd9f2f96a5dfb40ad21b70b0.html我常用到的stata命令最重要的两个命令莫过于help和search了。即使是经常使用stata的人也很难,也没必要记住常用命令的每一个细节,更不用说那些不常用到的了。所以,在遇到困难又没有免费专家咨询时,使用stata自带的帮助文件就是最佳选择。stata的帮助文件十分详尽,面面俱到,这既是好处也是麻烦。当你看到长长的帮助文件时,是不是对迅速找到相关信息感到没有信心?闲话不说了°help和search都是查找帮助文件的命令,它们之间的区别在于help用于查找精确的命令名,而search是模糊查找。如果你知道某个命令的名字,并且想知道它的具体使用方法,只须在stata的命令行窗口中输入help空格加上这个名字。回车后结果屏幕上就会显示出这个命令的帮助文件的全部内容。如果你想知道在stata下做某个估计或某种计算,而不知道具体该如何实现,就需要用search命令了。使用的方法和help类似,只须把准确的命令名改成某个关键词。回车后结果窗口会给出所有和这个关键词相关的帮助文件名和链接列表。在列表中寻找最相关的内容,点击后在弹出的查看窗口中会给出相关的帮助文件。耐心寻找,反复实验,通常可以较快地找到你需要的内容。下面该正式处理数据了。我的处理数据经验是最好能用stata的do文件编辑器记下你做过的工作。因为很少有一项实证研究能够一次完成,所以,当你下次继续工作时。能够重复前面的工作是非常重要的。有时因为一些细小的不同,你会发现无法复制原先的结果了。这时如果有记录下以往工作的do文件将把你从地狱带到天堂。因为你不必一遍又一遍地试图重现做过的工作。在stata窗口上部的工具栏中有个孤立的小按钮,把鼠标放上去会出现“bringdo-fileeditortofront”,点击它就会出现do文件编辑器。为了使do文件能够顺利工作,一般需要编辑do文件的“头”和“尾”。这里给出我使用的“头”和“尾”。/*(标签。简单记下文件的使命。)*/captureclear(清空内存中的数据)capturelogclose(关闭所有打开的日志文件)setmem128m(设置用于stata使用的内存容量)setmoreoff(关闭more选项。如果打开该选项,那么结果分屏输出,即一次只输出一屏结果。你按空格键后再输出下一屏,直到全部输完。如果关闭则中间不停,一次全部输出。)setmatsize4000(设置矩阵的最大阶数。我用的是不是太大了?)cdD:(进入数据所在的盘符和文件夹。和dos的命令行很相似。)logusing(文件名).log,replace(打开日志文件,并更新。日志文件将记录下所有文件运行后给出的结果,如果你修改了文件内容,replace选项可以将其更新为最近运行的结果。)use(文件名),clear(打开数据文件。)(文件内容)logclose(关闭日志文件。)exit,clear(退出并清空内存中的数据。)这个do文件的“头尾”并非我的发明,而是从沈明高老师那里学到的。版权归沈明高老师。(待续)我常用到的stata命令:(续)实证工作中往往接触的是原始数据。这些数据没有经过整理,有一些错漏和不统一的地方。比如,对某个变量的缺失观察值,有时会用点,有时会用-9,-99等来表示。回归时如果使用这些观察,往往得出非常错误的结果。还有,在不同的数据文件中,相同变量有时使用的变量名不同,会给合并数据造成麻烦。因此,拿到原始数据后,往往需要根据需要重新生成新的数据库,并且只使用这个新库处理数据。这部分工作不难,但是非常基础。因为如果在这里你不够小心,后面的事情往往会白做。假设你清楚地知道所需的变量,现在要做的是检查数据、生成必要的数据并形成数据库供将来使用。检查数据的重要命令包括codebook,su,ta,des和list。其中,codebook提供的信息最全面,缺点是不能使用if条件限制范围,所以,有时还要用别的帮帮忙。su空格加变量名报告相应变量的非缺失的观察个数,均值,标准差,最小值和最大值。ta空格后面加一个(或两个)变量名是报告某个变量(或两个变量二维)的取值(不含缺失值)的频数,比率和按大小排列的累积比率。des后面可以加任意个变量名,只要数据中有。它报告变量的存储的类型,显示的格式和标签。标签中一般记录这个变量的定义和单位。list报告变量的观察值,可以用if或in来限制范围。所有这些命令都可以后面不加任何变量名,报告的结果是正在使用的数据库中的所有变量的相应信息。说起来苍白无力,打开stata亲自实验一下吧。顺带说点儿题外话。除了codebook之外,上述统计类的命令都属于r族命令(又称一般命令)。执行后都可以使用returnlist报告储存在r()中的统计结果。最典型的r族命令当属summarize。它会把样本量、均值、标准差、方差、最小值、最大值、总和等统计信息储存起来。你在执行su之后,只需敲入returnlist就可以得到所有这些信息。其实,和一般命令的return命令类似,估计命令(又称e族命令)也有ereturn命令,具有报告,储存信息的功能。在更复杂的编程中,比如对回归分解,计算一些程序中无法直接计算的统计量,这些功能更是必不可少。检查数据时,先用codebook看一下它的值域和单位。如果有-9,-99这样的取值,查一下问卷中对缺失值的记录方法。确定它们是缺失值后,改为用点记录。命令是replace(变量名)=.if(变量名)==-9。再看一下用点记录的缺失值有多少,作为选用变量的一个依据。得到可用的数据后,我会给没有标签的变量加上注解。或者统一标签;或者统一变量的命名规则。更改变量名的命令是ren(原变量名)空格(新变量名)。定义标签的命令是labelvar(变量名)空格”(标签内容)”。整齐划一的变量名有助于记忆,简明的标签有助于明确变量的单位等信息。如果你需要使用通过原始变量派生出的新变量,那么就需要了解gen,egen和replace这三个命令°gen和replace常常在一起使用。它们的基本语法是gen(或replace)空格(变量名)=(表达式)。二者的不同之处在于gen是生成新变量,replace是重新定义旧变量。虚拟变量是我们常常需要用到的一类派生变量。如果你需要生成的虚拟变量个数不多,可以有两种方法生成。一种是简明方法:gen空格(变量名)=((限制条件))[这外面的小括弧是命令需要的,里面的小括弧不是命令需要的,只是说明“限制条件”并非命令]。如果某个观察满足限制条件,那么它的这个虚拟变量取值为1,否则为0。另一种要麻烦一点。就是gen(变量名)=1if(取值为一限制条件)replace(相同的变量名)=0if(取值为零的限制条件)两个方法貌似一样,但有一个小小的区别。如果限制条件中使用的变量都没有任何缺失值,那么两种方法的结果一样。如果有缺失值,第一种方法会把是缺失值的观察的虚拟变量都定义为0。而第二种方法可以将虚拟变量的取值分为三种,一是等于1,二是等于0,三是等于缺失值。这样就避免了把本来信息不明的观察错误地纳入到回归中去。下次再讲如何方便地生成成百上千个虚拟变量。我常用到的stata命令:(续)大量的虚拟变量往往是根据某个已知变量的取值生成的。比如,在某个回归中希望控制每个观察所在的社区,即希望控制标记社区的虚拟变量。社区数目可能有成百上千个,如果用上次的所说的方法生成就需要重复成百上千次,这也太笨了。大量生成虚拟变量的命令如下;ta(变量名),gen((变量名))第一个括号里的变量名是已知的变量,在上面的例子中是社区编码。后一个括号里的变量名是新生成的虚拟变量的共同前缀,后面跟数字表示不同的虚拟变量。如果我在这里填入山那么,上述命令就会新生成dl,d2,等等,直到所有社区都有一个虚拟变量。在回归中控制社区变量,只需简单地放入这些变量即可。一个麻烦是虚拟变量太多,怎么简单地加入呢?一个办法是用省略符号,d*表示所有d字母开头的变量,另一法是用破折号,d1-d150表示第一个到第150个社区虚拟变量(假设共有150个社区)。还有一种方法可以在回归中直接控制虚拟变量,而无需真的去生成这些虚拟变量。使用命令areg可以做到,它的语法是areg(被解释变量)(解释变量),absorb(变量名)absorb选项后面的变量名和前面讲的命令中第一个变量名相同。在上面的例子中即为社区编码。回归的结果和在reg中直接加入相应的虚拟变量相同。生成变量的最后一招是egen。egen和gen都用于生成新变量,但egen的特点是它更强大的函数功能。gen可以支持一些函数,egen支持额外的函数。如果用gen搞不定,就得用egen想办法了。不过我比较懒,到现在为止只用用取平均、加和这些简单的函数。有的时候数据情况复杂一些,往往生成所需变量不是非常直接,就需要多几个过程。曾经碰到原始数据中记录日期有些怪异的格式。比如,1991年10月23日被记录为19911023。我想使用它年份和月份,并生成虚拟变量。下面是我的做法:genyr二int(date)genmo=int((data-yr*10000)/100)tayr,gen(yd)tamo,gen(md)假设你已经生成了所有需要的变量,现在最重要的就是保存好你的工作。使用的命令是save空格(文件名),replace。和前面介绍的一样,replace选项将更新你对数据库的修改,所以一定要小心使用。最好另存一个新的数据库,如果把原始库改了又变不回去,就叫天不应叫地不灵了。我常用到的stata命令(续)前面说的都是对单个数据库的简单操作,但有时我们需要改变数据的结构,或者抽取来自不同数据库的信息,因此需要更方便的命令。这一类命令中我用过的有:改变数据的纵横结构的命令reshape,生成退化的数据库collapse,合并数据库的命令append和merge。纵列(longitudinal)数据通常包括同一个行为者(agent)在不同时期的观察,所以处理这类数据常常需要把数据库从宽表变成长表,或者相反。所谓宽表是以每个行为者为一个观察,不同时期的变量都记录在这个观察下,例如,行为者是厂商,时期有2000、2001年,变量是雇佣人数和所在城市,假设雇佣人数在不同时期不同,所在城市则不变。宽表记录的格式是每个厂商是一个观察,没有时期变量,雇佣人数有两个变量,分别记录2000年和2001年的人数,所在城市只有一个变量。所谓长表是行为者和时期共同定义观察,在上面的例子中,每个厂商有两个观察,有时期变量,雇佣人数和所在城市都只有一个,它们和时期变量共同定义相应时期的变量取值。在上面的例子下,把宽表变成长表的命令格式如下:reshapelong(雇佣人数的变量名),i((标记厂商的变量名))j((标记时期的变量名))因为所在城市不随时期变化,所以在转换格式时不用放在reshapelong后面,转换前后也不改变什么。相反地,如果把长表变成宽表则使用如下命令reshapewide(雇佣人数的变量名),i((标记厂商的变量名))j((标记时期的变量名))唯一的区别是long换成了wide。collapse的用处是计算某个数据库的一些统计量,再把它存为只含有这些统计量的数据库。用到这个命令的机会不多,我使用它是因为它可以计算中位数和从
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年律师事务所策划合作项目协议书
- 2025年公共交通业务经营权转让协议
- 2025年价格评估共享协议正式版
- 2025年双边租车策划协议
- 2025年设备租赁与运输合同协议范例
- 2025年体育赛事票务分销合同
- 2025年农产品蔬菜合作经营协议书
- 2025年偿还贷款计划协议
- 2025年互惠策划鞋类产品合作共识协议
- 2025年信息技术领域员工雇佣合同范本
- 经纤支镜气道球囊扩张术课件
- 汽车尾气污染与治理汽车尾气污染课件
- 河南神火兴隆矿业有限责任公司泉店煤矿矿产资源开采与生态修复方案
- 对外汉语教学论
- 砖数量自动计算、换算表
- 《十万个为什么》推进课(小学课件)
- 全国主要城市的月日均总辐照量和年日均总辐照量
- 会计公司员工手册
- GB/T 13404-2008管法兰用非金属聚四氟乙烯包覆垫片
- 任职宣布大会上的讲话(集团公司任命子公司领导班子成员)
- 红金大气商务风领导欢迎会PPT通用模板
评论
0/150
提交评论