常用到的stata命令_第1頁
常用到的stata命令_第2頁
常用到的stata命令_第3頁
常用到的stata命令_第4頁
常用到的stata命令_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

安裝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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論