




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上stata回歸分析完整步驟吐血推薦*下載連乘函數prod,方法為:findit dm71sort stkcd date /對公司和日期排序gen r1=1+r /r為實際公司的股票收益率gen r2=1+r_yq /r_yq為公司的預期股票收益率egen r3=prod(r1),by(stkcd date) /求每個公司事件日的累計復合收益率egen r4=prod(r2),by(stkcd date) /求每個公司事件日的累計預期的復合收益率gen r=r4-r3capture clear (清空內存中的數據)capture log close (關閉所有打開的日志
2、文件)set mem 128m (設置用于stata使用的內存容量)set more off (關閉more選項。如果打開該選項,那么結果分屏輸出,即一次只輸出一屏結果。你按空格鍵后再輸出下一屏,直到全部輸完。如果關閉則中間不停,一次全部輸出。)set matsize 4000 (設置矩陣的最大階數。我用的是不是太大了?)cd D: (進入數據所在的盤符和文件夾。和dos的命令行很相似。)log using (文件名).log,replace (打開日志文件,并更新。日志文件將記錄下所有文件運行后給出的結果,如果你修改了文件內容,replace選項可以將其更新為最近運行的結果。)use (文件
3、名),clear (打開數據文件。)(文件內容)log close (關閉日志文件。)exit,clear (退出并清空內存中的數據。)假設你清楚地知道所需的變量,現在要做的是檢查數據、生成必要的數據并形成數據庫供將來使用。檢查數據的重要命令包括codebook,su,ta,des和list。其中,codebook提供的信息最全面,缺點是不能使用if條件限制范圍,所以,有時還要用別的幫幫忙。su空格加變量名報告相應變量的非缺失的觀察個數,均值,標準差,最小值和最大值。ta空格后面加一個(或兩個)變量名是報告某個變量(或兩個變量二維)的取值(不含缺失值)的頻數,比率和按大小排列的累積比率。des
4、后面可以加任意個變量名,只要數據中有。它報告變量的存儲的類型,顯示的格式和標簽。標簽中一般記錄這個變量的定義和單位。list報告變量的觀察值,可以用if或in來限制范圍。所有這些命令都可以后面不加任何變量名,報告的結果是正在使用的數據庫中的所有變量的相應信息。說起來蒼白無力,打開stata親自實驗一下吧。順帶說點兒題外話。除了codebook之外,上述統(tǒng)計類的命令都屬于r族命令(又稱一般命令)。執(zhí)行后都可以使用return list報告儲存在r()中的統(tǒng)計結果。最典型的r族命令當屬summarize。它會把樣本量、均值、標準差、方差、最小值、最大值、總和等統(tǒng)計信息儲存起來。你在執(zhí)行su之后,只
5、需敲入return list就可以得到所有這些信息。其實,和一般命令的return命令類似,估計命令(又稱e族命令)也有ereturn命令,具有報告,儲存信息的功能。在更復雜的編程中,比如對回歸分解,計算一些程序中無法直接計算的統(tǒng)計量,這些功能更是必不可少。檢查數據時,先用codebook看一下它的值域和單位。如果有-9,-99這樣的取值,查一下問卷中對缺失值的記錄方法。確定它們是缺失值后,改為用點記錄。命令是replace (變量名)=. if (變量名)=-9。再看一下用點記錄的缺失值有多少,作為選用變量的一個依據。得到可用的數據后,我會給沒有標簽的變量加上注解?;蛘呓y(tǒng)一標簽;或者統(tǒng)一變量
6、的命名規(guī)則。更改變量名的命令是ren (原變量名)空格(新變量名)。定義標簽的命令是label var (變量名)空格”(標簽內容)”。整齊劃一的變量名有助于記憶,簡明的標簽有助于明確變量的單位等信息。如果你需要使用通過原始變量派生出的新變量,那么就需要了解gen,egen和replace這三個命令。gen和replace常常在一起使用。它們的基本語法是gen (或replace)空格(變量名)(表達式)。二者的不同之處在于gen是生成新變量,replace是重新定義舊變量。虛擬變量是我們常常需要用到的一類派生變量。如果你需要生成的虛擬變量個數不多,可以有兩種方法生成。一種是簡明方法:gen空
7、格(變量名)(限制條件)這外面的小括弧是命令需要的,里面的小括弧不是命令需要的,只是說明“限制條件”并非命令。如果某個觀察滿足限制條件,那么它的這個虛擬變量取值為1,否則為0。另一種要麻煩一點。就是gen (變量名)1 if (取值為一限制條件)replace(相同的變量名)0 if (取值為零的限制條件)兩個方法貌似一樣,但有一個小小的區(qū)別。如果限制條件中使用的變量都沒有任何缺失值,那么兩種方法的結果一樣。如果有缺失值,第一種方法會把是缺失值的觀察的虛擬變量都定義為0。而第二種方法可以將虛擬變量的取值分為三種,一是等于1,二是等于0,三是等于缺失值。這樣就避免了把本來信息不明的觀察錯誤地納入
8、到回歸中去。下次再講如何方便地生成成百上千個虛擬變量。大量的虛擬變量往往是根據某個已知變量的取值生成的。比如,在某個回歸中希望控制每個觀察所在的社區(qū),即希望控制標記社區(qū)的虛擬變量。社區(qū)數目可能有成百上千個,如果用上次的所說的方法生成就需要重復成百上千次,這也太笨了。大量生成虛擬變量的命令如下;ta (變量名), gen((變量名))第一個括號里的變量名是已知的變量,在上面的例子中是社區(qū)編碼。后一個括號里的變量名是新生成的虛擬變量的共同前綴,后面跟數字表示不同的虛擬變量。如果我在這里填入d,那么,上述命令就會新生成d1,d2,等等,直到所有社區(qū)都有一個虛擬變量。在回歸中控制社區(qū)變量,只需簡單地放
9、入這些變量即可。一個麻煩是虛擬變量太多,怎么簡單地加入呢?一個辦法是用省略符號,d*表示所有d字母開頭的變量,另一法是用破折號,d1-d150表示第一個到第150個社區(qū)虛擬變量(假設共有150個社區(qū))。還有一種方法可以在回歸中直接控制虛擬變量,而無需真的去生成這些虛擬變量。使用命令areg可以做到,它的語法是areg (被解釋變量) (解釋變量), absorb(變量名)absorb選項后面的變量名和前面講的命令中第一個變量名相同。在上面的例子中即為社區(qū)編碼?;貧w的結果和在reg中直接加入相應的虛擬變量相同。生成變量的最后一招是egen。egen和gen都用于生成新變量,但egen的特點是它更
10、強大的函數功能。gen可以支持一些函數,egen支持額外的函數。如果用gen搞不定,就得用egen想辦法了。不過我比較懶,到現在為止只用用取平均、加和這些簡單的函數。有的時候數據情況復雜一些,往往生成所需變量不是非常直接,就需要多幾個過程。曾經碰到原始數據中記錄日期有些怪異的格式。比如,1991年10月23日被記錄為。我想使用它年份和月份,并生成虛擬變量。下面是我的做法:gen yr=int(date)gen mo=int(data-yr*10000)/100)ta yr, gen( yd)ta mo, gen( md)假設你已經生成了所有需要的變量,現在最重要的就是保存好你的工作。使用的命令
11、是save空格(文件名),replace。和前面介紹的一樣,replace選項將更新你對數據庫的修改,所以一定要小心使用。最好另存一個新的數據庫,如果把原始庫改了又變不回去,就叫天不應叫地不靈了。前面說的都是對單個數據庫的簡單操作,但有時我們需要改變數據的結構,或者抽取來自不同數據庫的信息,因此需要更方便的命令。這一類命令中我用過的有:改變數據的縱橫結構的命令reshape,生成退化的數據庫collapse,合并數據庫的命令append和merge??v列(longitudinal)數據通常包括同一個行為者(agent)在不同時期的觀察,所以處理這類數據常常需要把數據庫從寬表變成長表,或者相反。
12、所謂寬表是以每個行為者為一個觀察,不同時期的變量都記錄在這個觀察下,例如,行為者是廠商,時期有2000、2001年,變量是雇傭人數和所在城市,假設雇傭人數在不同時期不同,所在城市則不變。寬表記錄的格式是每個廠商是一個觀察,沒有時期變量,雇傭人數有兩個變量,分別記錄2000年和2001年的人數,所在城市只有一個變量。所謂長表是行為者和時期共同定義觀察,在上面的例子中,每個廠商有兩個觀察,有時期變量,雇傭人數和所在城市都只有一個,它們和時期變量共同定義相應時期的變量取值。在上面的例子下,把寬表變成長表的命令格式如下:reshape long (雇傭人數的變量名), i((標記廠商的變量名)) j(
13、(標記時期的變量名))因為所在城市不隨時期變化,所以在轉換格式時不用放在reshapelong后面,轉換前后也不改變什么。相反地,如果把長表變成寬表則使用如下命令reshape wide (雇傭人數的變量名), i((標記廠商的變量名)) j((標記時期的變量名))唯一的區(qū)別是long換成了wide。collapse的用處是計算某個數據庫的一些統(tǒng)計量,再把它存為只含有這些統(tǒng)計量的數據庫。用到這個命令的機會不多,我使用它是因為它可以計算中位數和從1到99的百分位數,這些統(tǒng)計量在常規(guī)的數據描述命令中沒有。如果要計算中位數,其命令的語法如下collapse (median) ((變量名)), by(
14、(變量名))生成的新數據庫中記錄了第一個括號中的變量(可以是多個變量)的中位數。右面的by選項是根據某個變量分組計算中位數,沒有這個選項則計算全部樣本的中位數。合并數據庫有兩種方式,一種是增加觀察,另一種是增加變量。第一種用append,用在兩個數據庫的格式一樣,但觀察不一樣,只需用append空格using空格(文件名)就可以狗尾續(xù)貂了。簡單明了,不會有什么錯。另一種就不同了,需要格外小心。如果兩個數據庫中包含共同的觀察,但是變量不同,希望從一個數據庫中提取一些變量到另一個數據庫中用merge。完整的命令如下:use(文件名)打開輔助數據庫sort (變量名)根據變量排序,這個變量是兩個數據
15、庫共有的識別信息save (文件名),replace保存輔助數據庫use(文件名)打開主數據庫sort (變量名)對相同的變量排序merge (變量名) using (文件名), keep((變量名))第一個變量名即為前面sort后面的變量名,文件名是輔助數據庫的名字,后面的變量名是希望提取的變量名ta_merge顯示_merge的取值情況。_merge等于1的觀察是僅主庫有的,等于2的是僅輔助庫有的,等于3是兩個庫都有的。drop if_merge=2刪除僅僅來自輔助庫的觀察dropmerge刪除_mergesave (文件名),replace將合并后的文件保存,通常另存講到這里似乎對于數據
16、的生成和處理應該閉嘴了。大家可能更想聽聽估計、檢驗這些事情。但我并不想就此止住,因為實際中總是有一些簡單套用命令無法輕易辦到的特殊要求。此時至少有兩條路可以通向羅馬:一是找到更高級的命令一步到位;二是利用已知簡單命令多繞幾個圈子達到目的。下面講一個令我刻骨銘心的經歷,這也是迄今我所碰到的生成新數據中最繁復的了。原始數據中包含了可以識別屬于同一個家庭中所有個人的信息和家庭成員與戶主關系的信息。目的是利用這些信息建立親子關系。初步的構想是新數據庫以子輩為觀察,找到他們的父母,把父母的變量添加到每個觀察上。我的做法如下:usea1,clear打開全部樣本數據庫keep ifgender=2&
17、agemos>=96&a8=1&line<10保留已婚的一定年齡的女性replace a5=1 ifa5=0變量a5標記和戶主的關系。等于0是戶主,等于1是戶主的配偶。這里不加區(qū)分地將戶主及其配偶放在一起。keep if a5=1|a5=3|a5=7保留是戶主(1),是戶主的子女(3),或是戶主的兒媳(7)的那些人。ren hhf將所需變量加上后綴f,表示女性ren linelf將所需變量加上后綴f,表示女性sort wave hhidsaveb1,replace排序并保存keep ifa5f=1留下其中是戶主或戶主配偶的saveb2,replace保存use b1
18、,clearkeep if a5f=3|a5f=7saveb3,replace留下其中是戶主女兒或兒媳的并保存usea3,clear打開與戶主關系是戶主子女的兒童數據庫sort wave hhidmerge wave hhid using CHNS01b2, keep(hf lf)ta _mergedrop if _merge=2sort hhid linewave處理兩代戶,將戶主配偶女性庫與兒童庫合并by hhid line wave: egen x=count(id)drop x_merge計算每個年份家庭匹配的情況,x只取值1,表明兩代戶匹配成功saveb4,replace保存usea
19、4,clear打開與戶主關系是戶主孫子女的兒童數據庫sort wave hhidmerge wave hhid using CHNS01b3, keep(a5f a8f schf a12f hf agemosfc8f lf)ta _mergedrop if_merge=2處理三代戶,將戶主女兒或兒媳女性庫與孫子女兒童庫合并sort hhid line waveby hhid line wave: egen x=count(id)gen a=agemosf-agemosdrop ifa<216&x=3計算每個年份家庭匹配的情況,x不只取1,三代戶匹配不完全成功。刪除不合理的樣本,標
20、準是年齡差距和有三個可能母親的那些家庭。gen xx=x_n+1gen xxx=x_n-1gen y=lf if x=1replace y=lf_n+1 if x=2&xx=1replace y=lf_n-1 if x=2&xxx=1keep if x=1|(lf=y&x=2)對于有兩個可能母親的兒童,有相同編碼的女性出現兩次的情況。上面的做法是為了保證不刪除這部分樣本。drop a x xx xxx y _mergesaveb5,replace保存合并后的數據庫對男性數據的合并完全類似,不贅述。log closeexit,clear我的方法是屬于使用簡單命令反復迂回地
21、達到目的那一類的,所以非常希望有更簡便的方法來替代。不過做實證時往往不是非常追求程序的漂亮,常常也就得過且過了。stata強大的功能體現在它可以方便地回歸微觀數據。而回歸也是微觀實證中最重要的方法。下面就開始講stata中和回歸有關的常用命令?;净貧w方法有兩種:線性設定下的最小二乘法(OLS)和兩階段最小二乘法(2SLS)。他們在實證分析中應用廣泛,十分詳細地掌握這兩種方法是實證研究的基本要求。講解的順序是先依次介紹如何在stata中實現OLS和2SLS估計,然后再分析如何在實際問題中選擇合理的方法。后一部分受Joshua Angrist教授的影響很大,因此,在后面引用他的思想時會詳細注明。
22、假設你已經清楚地了解待估計方程的形式,那么回歸命令的基本格式就十分簡單明了:reg (被解釋變量) (解釋變量1) (解釋變量2)方程中的相應變量可以簡單地放在reg的后面。執(zhí)行上面的命令后,stata會出現兩個表格,分別報告一些方差分析和回歸的參數估計結果。我們最關心的是參數的大小和顯著性,這在第二個表格中列出。表格的最左邊一欄列出了解釋變量,在它的右邊是相應的系數估計值,然后依次是估計值的標準誤,t比率,原假設為系數的真實值等于零時錯誤地拒絕該假設的概率p值,以及該估計值的置信度為(1-5%)的置信區(qū)間。我看到回歸結果的第一眼是瞄著最關心的解釋變量的符號、大小和顯著性??纯唇忉屪兞坑绊懙姆?/p>
23、向和大小是不是符合理論的預期,是不是合乎常識,以及這個估計值是不是顯著。標記顯著性的統(tǒng)計量是t統(tǒng)計量,在經典假設下,它服從t分布。t分布和標準正態(tài)分布形狀很相似,但它的“尾巴”要比標準正態(tài)分布的“肥”一些,在樣本量比較小的時候尤其明顯,當樣本量趨于無窮時,t分布的極限分布是標準正態(tài)分布。大家對標準正態(tài)分布的分布函數上一些關鍵點比較熟悉,比如,1.96是97.5%的關鍵點,1.64是95%的關鍵點,所以,我們希望知道什么時候可以安全地使用標準正態(tài)分布。下表列出了一些小自由度下二者的差異(Beyer 1987 “CRC Standard Mathematical Tables, 28th ed.”
24、;Goulden 1956 “Methods of Statistical Analysis, 2nd ed.”)??梢钥闯觯杂啥瘸^一百時,二者的差別就已經相當小了。所以,當樣本量的數量級是100個或以上時,可以直接認為t比率服從標準正態(tài)分布,并以此做檢驗。90% 95% 97.5% 99.5%1 3.07768 6.31375 12.7062 63.65672 1.88562 2.91999 4.30265 9.924843 1.63774 2.35336 3.18245 5.840914 1.53321 2.13185 2.77645 4.604095 1.47588 2.01505
25、2.57058 4.0321410 1.37218 1.81246 2.22814 3.1692730 1.31042 1.69726 2.04227 2.75000100 1.29007 1.66023 1.98397 2.625891.28156 1.64487 1.95999 2.57588讀者讀到這里可能會笑話我了,stata不是已經報告了t檢驗的p值和置信區(qū)間了嗎?為什么不直接察看這些結果呢?原因在于實證文獻往往只報告參數的估計值和標準誤,需要讀者自己將估計值和標準誤相除,計算顯著性。而且當你在寫實證文章時,也應該報告參數的估計值和標準誤。這比報告估計值和它的p值更規(guī)范。伴隨回歸命令
26、的一個重要命令是predict。回歸結束后,使用它可以得到和回歸相關的一些關鍵統(tǒng)計量。語法如下:predict (新變量名), (統(tǒng)計量名)這里的統(tǒng)計量名是一些選項。常用的選項有:xb(回歸的擬合值。這是默認選項,即不加任何選項時,predict賦予新變量前一個回歸的擬合值。);residuals(殘差);leverage(杠桿值)。下面具一個例子來解釋predict的用法。有時樣本中的一個特別的觀察值會顯著地改變回歸結果。這樣的觀察值可以籠統(tǒng)地分為三類:outliers,leverage和influence。Outliers是針對殘差而言的,指那些回歸中殘差很大的觀察;leverage是針對
27、解釋變量而言的,是解釋變量相對其平均值偏里很大的觀察;influence是針對估計結果而言的。如果去掉這個觀察會明顯地改變估計值,那么這個觀察就是一個influence。Influence可以看作outliers和leverage共同作用的結果。異常觀察可能是由于樣本的特性,也可能是因為錄入錯誤。總之,我們希望找到它們?;貧w后的predict命令可以發(fā)現這些異常觀察(命令來自UCLA的“Regression with Stata”第二章)。發(fā)現outliers,leverage和influence的命令如下:predict rs, rstudentpredict l, leveragepred
28、ict csd, cooksdpredict df, dfits這些統(tǒng)計量都有相應的關鍵值。當統(tǒng)計量(或其絕對值)超過關鍵值時就應該仔細檢查相應的觀察,確認是否屬于錄入錯誤。rstudent是用來發(fā)現outliers的統(tǒng)計量,其關鍵值是2,2.5和3。leverage 是用來發(fā)現leverage 的統(tǒng)計量,其關鍵值是(2k+2)/n,其中k解釋變量的個數,n是樣本量。Cooksd和DFITS是探測influence的統(tǒng)計量。它們都綜合了殘差和杠桿的信息,而且二者非常類似,只是單位不同,因而給出的結果也差不多。Cooksd的關鍵值是4/n。DFITS的關鍵值是2*sqrt(k/n)。(續(xù))在使用
29、最小二乘法估計時,兩個通常被質疑的問題是數據是否存在多重共線性和異方差。多重共線性是指解釋變量之間的相關性。通常我們假設解釋變量之間是相關的,而且允許解釋變量存在相關性,并控制可以觀察的因素正是OLS的優(yōu)點。如果把多重共線性看作一個需要解決的問題,那么需要把它解釋為相關性“較大”。這樣,變量之間沒有相關性不好,相關性太大也不好,優(yōu)劣的分割真是頗費琢磨。而且多重共線性并沒有違反任何經典假定,所以,這個問題沒有很好的定義。本質上講,在樣本給定時,多重共線性問題無法解決,或者說它是一個偽問題。先看一下為什么解釋變量之間的相關性大會有問題。在OLS回歸的經典假設(除正態(tài)假設外)下,某個系數的OLS估計
30、值的總體方差與擾動項的方差成正比,與解釋變量的總方差(一般地,我們視解釋變量為隨機變量)成反比,是該變量對其它解釋變量回歸的擬合優(yōu)度的增函數。這個擬合優(yōu)度可以理解為該變量的總變動中可以由其他解釋變量解釋的部分。當這個值趨近于1時,OLS估計值的總體方差趨向于無窮大??傮w方差大時,樣本方差也大的概率就大,t檢驗就會不準確。盡管多重共線性沒有違背任何經典假設,但是OLS方法有時無法準確估計一些參數。這個問題可以理解為數據提供的信息不足以精確地計算出某些系數。最根本的解決方法當然是搜集更大的樣本。如果樣本給定,也許我們應該修改提出的問題,使我們能夠根據樣本數據做出更精確的判斷。去掉一個解釋變量,或者
31、合并一些解釋變量可以減少多重共線性。不過要注意的是去掉相關的解釋變量會使估計有偏。實際操作時使用方差膨脹系數衡量解釋變量的多重共線性。我們只需在回歸之后使用vif命令就可以得到方差膨脹系數。在命令行中敲入vif并回車,stata會報告一個包含所有解釋變量的方差膨脹系數的表格,如果方差膨脹系數大于10,這個變量潛在地有多重共線性問題。異方差是一個更值得關注的問題。首先簡單地介紹一下異方差會帶來哪些問題。第一、異方差不影響OLS估計的無偏性和一致性。第二、異方差使估計值方差的估計有偏,所以此時的t檢驗和置信區(qū)間無效。第三、F統(tǒng)計量不再服從F分布,LM統(tǒng)計量不再服從漸進卡方分布,相應的檢驗無效。第四、異方差使OLS不再是有效估計。總之,異方差影響推斷是否有效,降低估計的效率,但對估計值的無偏性和一致性沒有影響。知道
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國益母草顆粒產業(yè)銷售態(tài)勢及消費趨勢研究報告
- 2025至2030中國疲勞管理軟件行業(yè)產業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 《護理文書》考核試卷(附答案)
- 采陶方法培訓課件
- 教育技術在高校課程建設中的應用案例
- 智慧課堂教育心理學引領的教學模式創(chuàng)新
- 教育政策與人才培養(yǎng)的關聯(lián)性研究
- 抖音商戶直播銷售額達成通報制度
- 公交優(yōu)先政策與城市交通擁堵治理:2025年交通擁堵治理的公共交通優(yōu)先政策實施路徑研究
- Benzoyl-coenzyme-A-sodium-Benzoyl-CoA-sodium-生命科學試劑-MCE
- 體檢中心接待規(guī)范流程
- 夏季食堂食品安全注意事項
- 知識產權合規(guī)管理體系解讀
- JJF(陜) 035-2020 雨滴譜式降水現象儀現場校準規(guī)范
- 科研倫理與學術規(guī)范(研究生)期末試題
- 2024年網格員考試題庫完美版
- 出入境交通運輸工具檢查課件
- 2024年廣東省安全員C證(專職安全生產管理人員)考試試題題庫
- 防雨雪冰凍應急演練
- GB/T 44536-2024CVD陶瓷涂層熱膨脹系數和殘余應力試驗方法
- 大疆在線測評題
評論
0/150
提交評論