------------------------------------------------------------------------------- log: c:\bill\fall2008\econ30331\djia_random_walk.log log type: text opened on: 26 Oct 2010, 11:26:53 . . * get descriptive information about the data . desc Contains data from djia_daily_data.dta obs: 14,362 vars: 12 29 Oct 2008 19:47 size: 675,014 (94.1% of memory free) ------------------------------------------------------------------------------- storage display value variable name type format label variable label ------------------------------------------------------------------------------- open float %9.0g daily opening value, djia high float %9.0g daily high value, djia low float %9.0g daily low value, djia close float %9.0g daily closing value, djia volume double %10.0g daily volume shares traded month byte %8.0g month (1=jan, 2=feb) day byte %8.0g day of the month year int %8.0g year close1 float %9.0g weekday byte %8.0g 2=monday,3=tue,4=wed,5=thur,6=fri time int %8.0g per_change float %9.0g percentage change over previous day ------------------------------------------------------------------------------- Sorted by: . . * notice the variable time. the first day is . * 1, the second day 2, etc. . . * define the data as time series . * the variable time is the index . tsset time time variable: time, 1 to 14362 delta: 1 unit . . . ********************************* . ********************************* . * check EMH in daily returns . * will take the 1st difference between two . * adjacent trading days . ********************************* . ********************************* . . * take the ln of the daily closing price . gen ln_close=ln(close) . . * get the 1st difference . gen ln_close1=ln_close[_n-1] (1 missing value generated) . . . * test for random walk . * run a regression of change ln(closing price) . * on one period lag . reg ln_close ln_close1 Source | SS df MS Number of obs = 14361 -------------+------------------------------ F( 1, 14359) = . Model | 18001.7298 1 18001.7298 Prob > F = 0.0000 Residual | 1.18771395 14359 .000082716 R-squared = 0.9999 -------------+------------------------------ Adj R-squared = 0.9999 Total | 18002.9175 14360 1.25368507 Root MSE = .00909 ------------------------------------------------------------------------------ ln_close | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- ln_close1 | .9999874 .0000678 . 0.000 .9998545 1.00012 _cons | .0003808 .0004995 0.76 0.446 -.0005984 .00136 ------------------------------------------------------------------------------ . test ln_close1==1 ( 1) ln_close1 = 1 F( 1, 14359) = 0.03 Prob > F = 0.8520 . . * run a regression allowing for a time trend . reg ln_close ln_close1 time Source | SS df MS Number of obs = 14361 -------------+------------------------------ F( 2, 14358) = . Model | 18001.73 2 9000.86501 Prob > F = 0.0000 Residual | 1.18753582 14358 .000082709 R-squared = 0.9999 -------------+------------------------------ Adj R-squared = 0.9999 Total | 18002.9175 14360 1.25368507 Root MSE = .00909 ------------------------------------------------------------------------------ ln_close | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- ln_close1 | .9996845 .0002172 4602.61 0.000 .9992588 1.00011 time | 8.61e-08 5.87e-08 1.47 0.142 -2.89e-08 2.01e-07 _cons | .0019684 .0011915 1.65 0.099 -.0003672 .0043039 ------------------------------------------------------------------------------ . test ln_close1==1 ( 1) ln_close1 = 1 F( 1, 14358) = 2.11 Prob > F = 0.1464 . . * generate 1st difference in returns . gen dln_close=ln_close-ln_close1 (1 missing value generated) . . * now get the lag of the 1st difference . gen dln_close1=dln_close[_n-1] (2 missing values generated) . . * run a regression of the 1st difference on its lag . reg dln_close dln_close1 Source | SS df MS Number of obs = 14360 -------------+------------------------------ F( 1, 14358) = 69.43 Model | .005716048 1 .005716048 Prob > F = 0.0000 Residual | 1.18199835 14358 .000082323 R-squared = 0.0048 -------------+------------------------------ Adj R-squared = 0.0047 Total | 1.1877144 14359 .000082716 Root MSE = .00907 ------------------------------------------------------------------------------ dln_close | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- dln_close1 | .0693733 .0083254 8.33 0.000 .0530544 .0856921 _cons | .0002686 .0000758 3.55 0.000 .0001201 .0004171 ------------------------------------------------------------------------------ . . . * identify some stock anomalies . * generate month and day effects . gen dmonth2=month==2 . gen dmonth3=month==3 . gen dmonth4=month==4 . gen dmonth5=month==5 . gen dmonth6=month==6 . gen dmonth7=month==7 . gen dmonth8=month==8 . gen dmonth9=month==9 . gen dmonth10=month==10 . gen dmonth11=month==11 . gen dmonth12=month==12 . gen tue=weekday==3 . gen wed=weekday==4 . gen thur=weekday==5 . gen fri=weekday==6 . reg dln_close time dmonth* tue wed thur fri Source | SS df MS Number of obs = 14361 -------------+------------------------------ F( 16, 14344) = 4.04 Model | .005330308 16 .000333144 Prob > F = 0.0000 Residual | 1.18238652 14344 .000082431 R-squared = 0.0045 -------------+------------------------------ Adj R-squared = 0.0034 Total | 1.18771682 14360 .00008271 Root MSE = .00908 ------------------------------------------------------------------------------ dln_close | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- time | 3.87e-09 1.83e-08 0.21 0.832 -3.20e-08 3.97e-08 dmonth2 | -.0005082 .0003784 -1.34 0.179 -.0012499 .0002334 dmonth3 | -.0001697 .0003656 -0.46 0.643 -.0008863 .000547 dmonth4 | .0002654 .0003709 0.72 0.474 -.0004617 .0009924 dmonth5 | -.0005825 .0003684 -1.58 0.114 -.0013047 .0001397 dmonth6 | -.000632 .0003677 -1.72 0.086 -.0013527 .0000887 dmonth7 | -.0001027 .0003692 -0.28 0.781 -.0008264 .000621 dmonth8 | -.0006352 .0003647 -1.74 0.082 -.00135 .0000796 dmonth9 | -.0011273 .0003726 -3.03 0.002 -.0018577 -.0003969 dmonth10 | -.0003567 .0003651 -0.98 0.329 -.0010724 .000359 dmonth11 | .0002227 .0003743 0.60 0.552 -.0005109 .0009564 dmonth12 | .0002412 .0003692 0.65 0.514 -.0004826 .0009649 tue | .0009457 .000241 3.92 0.000 .0004733 .0014181 wed | .001302 .000241 5.40 0.000 .0008296 .0017743 thur | .0008147 .0002418 3.37 0.001 .0003407 .0012886 fri | .001219 .0002421 5.03 0.000 .0007444 .0016936 _cons | -.0003209 .0003295 -0.97 0.330 -.0009667 .0003249 ------------------------------------------------------------------------------ . test dmonth2 dmonth3 dmonth4 dmonth5 dmonth6 dmonth7 dmonth8 dmonth9 dmonth10 > dmonth11 dmonth12 ( 1) dmonth2 = 0 ( 2) dmonth3 = 0 ( 3) dmonth4 = 0 ( 4) dmonth5 = 0 ( 5) dmonth6 = 0 ( 6) dmonth7 = 0 ( 7) dmonth8 = 0 ( 8) dmonth9 = 0 ( 9) dmonth10 = 0 (10) dmonth11 = 0 (11) dmonth12 = 0 F( 11, 14344) = 2.67 Prob > F = 0.0020 . test tue wed thur fri ( 1) tue = 0 ( 2) wed = 0 ( 3) thur = 0 ( 4) fri = 0 F( 4, 14344) = 9.13 Prob > F = 0.0000 . . * get means of delta daily closing price . sum dln_close Variable | Obs Mean Std. Dev. Min Max -------------+-------------------------------------------------------- dln_close | 14361 .0002887 .0090945 -.2563152 .0966616 . . . . ********************************* . ********************************* . * check EMH in 2-day returns . * will take the 1st difference between two . * lagged days . ********************************* . ********************************* . . clear . use djia_daily_data . . * take the ln of the daily closing price . gen ln_close=ln(close) . . * get the 2nd difference . gen ln_close2=ln_close[_n-2] (2 missing values generated) . . * generate 1st difference . * in two day returns . gen dln_close=ln_close-ln_close2 (2 missing values generated) . . * now get the lag of the 1st difference . gen dln_close2=dln_close[_n-2] (4 missing values generated) . . . * now delete 1/2 of the obs . gen eventime=int(time/2)==time/2 . drop if eventime==0 (7181 observations deleted) . . * test for random walk . * run a regression of change ln(closing price) . * on 2 period period lag . reg ln_close ln_close2 Source | SS df MS Number of obs = 7180 -------------+------------------------------ F( 1, 7178) = . Model | 8997.60199 1 8997.60199 Prob > F = 0.0000 Residual | 1.26340943 7178 .000176011 R-squared = 0.9999 -------------+------------------------------ Adj R-squared = 0.9999 Total | 8998.8654 7179 1.25349845 Root MSE = .01327 ------------------------------------------------------------------------------ ln_close | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- ln_close2 | .9999709 .0001399 7149.79 0.000 .9996967 1.000245 _cons | .0007893 .0010307 0.77 0.444 -.0012311 .0028098 ------------------------------------------------------------------------------ . test ln_close2==1 ( 1) ln_close2 = 1 F( 1, 7178) = 0.04 Prob > F = 0.8351 . . * run a regression allowing for a time trend . reg ln_close ln_close2 time Source | SS df MS Number of obs = 7180 -------------+------------------------------ F( 2, 7177) = . Model | 8997.6024 2 4498.8012 Prob > F = 0.0000 Residual | 1.26300566 7177 .00017598 R-squared = 0.9999 -------------+------------------------------ Adj R-squared = 0.9999 Total | 8998.8654 7179 1.25349845 Root MSE = .01327 ------------------------------------------------------------------------------ ln_close | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- ln_close2 | .999326 .0004481 2230.04 0.000 .9984476 1.000204 time | 1.83e-07 1.21e-07 1.51 0.130 -5.39e-08 4.21e-07 _cons | .0041699 .0024583 1.70 0.090 -.000649 .0089888 ------------------------------------------------------------------------------ . test ln_close2==1 ( 1) ln_close2 = 1 F( 1, 7177) = 2.26 Prob > F = 0.1326 . . . * run a regression of the 2nd difference on its lag . reg dln_close dln_close2 Source | SS df MS Number of obs = 7179 -------------+------------------------------ F( 1, 7177) = 0.06 Model | .000010173 1 .000010173 Prob > F = 0.8100 Residual | 1.26336556 7177 .00017603 R-squared = 0.0000 -------------+------------------------------ Adj R-squared = -0.0001 Total | 1.26337573 7178 .000176007 Root MSE = .01327 ------------------------------------------------------------------------------ dln_close | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- dln_close2 | -.0028376 .0118038 -0.24 0.810 -.0259764 .0203013 _cons | .000578 .0001567 3.69 0.000 .0002707 .0008852 ------------------------------------------------------------------------------ . . . . ********************************* . ********************************* . * check EMH in weekly returns . * will take the returns between the last trading . * days of two adjacent weeks . ********************************* . ********************************* . . clear . use djia_daily_data . . gen date1=mdy(month,day,year) . gen date2=date1+3652 . gen weekno=int((date2-1)/7)+1 . . . keep day month year time date2 weekno close . . sort weekno . egen lastdayofweek=max(date2), by(weekno) . keep if lastdayofweek==date2 (11383 observations deleted) . . tsset time time variable: time, 3 to 14362, but with gaps delta: 1 unit . . * take the ln of the daily closing price . gen ln_close=ln(close) . . * get the 1st difference . gen ln_close1=ln_close[_n-1] (1 missing value generated) . . . * test for random walk . * run a regression of change ln(closing price) . * on one period lag . reg ln_close ln_close1 Source | SS df MS Number of obs = 2978 -------------+------------------------------ F( 1, 2976) = . Model | 3729.70939 1 3729.70939 Prob > F = 0.0000 Residual | 1.18735527 2976 .000398977 R-squared = 0.9997 -------------+------------------------------ Adj R-squared = 0.9997 Total | 3730.89674 2977 1.25324042 Root MSE = .01997 ------------------------------------------------------------------------------ ln_close | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- ln_close1 | .9999418 .000327 3057.48 0.000 .9993005 1.000583 _cons | .0018149 .0024098 0.75 0.451 -.0029101 .0065399 ------------------------------------------------------------------------------ . test ln_close1==1 ( 1) ln_close1 = 1 F( 1, 2976) = 0.03 Prob > F = 0.8588 . . * run a regression allowing for a time trend . reg ln_close ln_close1 time Source | SS df MS Number of obs = 2978 -------------+------------------------------ F( 2, 2975) = . Model | 3729.71026 2 1864.85513 Prob > F = 0.0000 Residual | 1.18648047 2975 .000398817 R-squared = 0.9997 -------------+------------------------------ Adj R-squared = 0.9997 Total | 3730.89674 2977 1.25324042 Root MSE = .01997 ------------------------------------------------------------------------------ ln_close | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- ln_close1 | .9984659 .0010488 952.02 0.000 .9964095 1.000522 time | 4.19e-07 2.83e-07 1.48 0.139 -1.36e-07 9.74e-07 _cons | .0095554 .005755 1.66 0.097 -.0017288 .0208397 ------------------------------------------------------------------------------ . test ln_close1==1 ( 1) ln_close1 = 1 F( 1, 2975) = 2.14 Prob > F = 0.1437 . . * generate 1st difference in returns . gen dln_close=ln_close-ln_close1 (1 missing value generated) . . * now get the lag of the 1st difference . gen dln_close1=dln_close[_n-1] (2 missing values generated) . . * run a regression of the 1st difference on its lag . reg dln_close dln_close1 Source | SS df MS Number of obs = 2977 -------------+------------------------------ F( 1, 2975) = 1.99 Model | .000792712 1 .000792712 Prob > F = 0.1586 Residual | 1.18607961 2975 .000398682 R-squared = 0.0007 -------------+------------------------------ Adj R-squared = 0.0003 Total | 1.18687232 2976 .000398815 Root MSE = .01997 ------------------------------------------------------------------------------ dln_close | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- dln_close1 | -.0258399 .0183251 -1.41 0.159 -.0617711 .0100913 _cons | .0014344 .0003668 3.91 0.000 .0007151 .0021537 ------------------------------------------------------------------------------ . . ********************************* . ********************************* . * check EMH in monthly returns . * will take the returns between the last trading . * days of two adjacent weeks . ********************************* . ********************************* . clear . use djia_daily_data . . keep day month year time close . . sort year month . egen lastdayofmonth=max(time), by(year month) . keep if lastdayofmonth==time (13676 observations deleted) . . tsset time time variable: time, 20 to 14362, but with gaps delta: 1 unit . . * take the ln of the daily closing price . gen ln_close=ln(close) . . * get the 1st difference . gen ln_close1=ln_close[_n-1] (1 missing value generated) . . . * test for random walk . * run a regression of change ln(closing price) . * on one period lag . reg ln_close ln_close1 Source | SS df MS Number of obs = 685 -------------+------------------------------ F( 1, 683) = . Model | 858.494448 1 858.494448 Prob > F = 0.0000 Residual | 1.15990765 683 .001698254 R-squared = 0.9987 -------------+------------------------------ Adj R-squared = 0.9986 Total | 859.654356 684 1.25680461 Root MSE = .04121 ------------------------------------------------------------------------------ ln_close | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- ln_close1 | .9997576 .0014061 711.00 0.000 .9969967 1.002518 _cons | .007807 .0103621 0.75 0.451 -.0125383 .0281524 ------------------------------------------------------------------------------ . test ln_close1==1 ( 1) ln_close1 = 1 F( 1, 683) = 0.03 Prob > F = 0.8632 . . * run a regression allowing for a time trend . reg ln_close ln_close1 time Source | SS df MS Number of obs = 685 -------------+------------------------------ F( 2, 682) = . Model | 858.498109 2 429.249054 Prob > F = 0.0000 Residual | 1.15624737 682 .001695377 R-squared = 0.9987 -------------+------------------------------ Adj R-squared = 0.9987 Total | 859.654356 684 1.25680461 Root MSE = .04117 ------------------------------------------------------------------------------ ln_close | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- ln_close1 | .9934451 .00452 219.79 0.000 .9845702 1.00232 time | 1.79e-06 1.22e-06 1.47 0.142 -6.03e-07 4.19e-06 _cons | .0408749 .0247724 1.65 0.099 -.0077645 .0895143 ------------------------------------------------------------------------------ . test ln_close1==1 ( 1) ln_close1 = 1 F( 1, 682) = 2.10 Prob > F = 0.1475 . . * generate 1st difference in returns . gen dln_close=ln_close-ln_close1 (1 missing value generated) . . * now get the lag of the 1st difference . gen dln_close1=dln_close[_n-1] (2 missing values generated) . . * run a regression of the 1st difference on its lag . reg dln_close dln_close1 Source | SS df MS Number of obs = 684 -------------+------------------------------ F( 1, 682) = 0.05 Model | .000082068 1 .000082068 Prob > F = 0.8262 Residual | 1.15987162 682 .001700692 R-squared = 0.0001 -------------+------------------------------ Adj R-squared = -0.0014 Total | 1.15995369 683 .001698322 Root MSE = .04124 ------------------------------------------------------------------------------ dln_close | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- dln_close1 | .0084114 .0382908 0.22 0.826 -.0667706 .0835933 _cons | .0059876 .0015937 3.76 0.000 .0028584 .0091168 ------------------------------------------------------------------------------ . end of do-file . clear . cd c:\bill\fall2008\econ30331 c:\bill\fall2008\econ30331 . do taylor_rule . * read in data . use taylor_rule . . * open log file . log using taylor_rule.log, replace log file already open r(604); end of do-file r(604); . log close log: c:\bill\fall2008\econ30331\djia_random_walk.log log type: text closed on: 26 Oct 2010, 15:46:44 -------------------------------------------------------------------------------