來源: http://www.douban.com/group/topic/14820131/
調整變量格式: 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 R*n(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 R*n(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 d1*d2(d*表示虛擬變量,計算d1、d2和d1*d2的這三種分類的y值是否有組內差異) anova y d1 d2 x1 d2*x1, continuous(x1)(x*表示連續的控制變量) 多元方差分析 webuse jaw manova y1 y2 y3 = gender fracture gender*fracture(按性別、是否骨折及二者的交互項對y1、y2和y3進行方差分析) manova y1 = gender fracture gender*fracture(相當于一元方差分析,以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的假設是沒有隨機效應和/或沒有序列相關,它的七個結果分別表示: 1) LM Test for random effects, assuming no serial correlation (假設沒有序列相關情況下對隨機效應進行LM檢驗) 2) Adjusted LM test for random effects, which works even under serial correlation (假設有序列相關的情況下對隨機LM檢驗) 3) One sided version of the LM test for random effects (假設沒有序列相關的情況下對隨機效應進行單邊檢驗) 4) One sided version of the adjusted LM test for random effects (假設有序列相關的情況下對隨機效應進行單邊檢驗) 5) LM test for first-order serial correlation, assuming no random effects (假設沒有隨機效應的情況下對一階序列相關進行檢驗) 6) Adjusted test for first-order serial correlation, which works even under random effects (假設有隨機效應的情況下對一階序列相關進行檢驗) 7) 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之后