% does repetitive calculations for crspreg function docrspreg(ret,vwretd,spretd,tb3mret); disp(' mean monthly arithmetic return, % and *12'); er = mean(ret); disp([100*er 1200*er]); disp(' sd monthly arithmetic return, % and *root 12'); sdr = std(ret); disp([100*sdr 100*12^0.5*sdr]); disp(' number frequency of -100% returns, then total nunmber. zeros ignored in log return calculations %'); disp([sum(ret==-1) sum(ret==-1)/rows(ret) rows(ret)]); disp(' mean and sd of log monthly returns, % and *12'); elnr = mean(log(1+ret(ret>-1))); sdlnr = std(log(1+ret(ret>-1))); disp([100*elnr 100*12^0.5*elnr]); disp([100*sdlnr 100*12^0.5*sdlnr]); disp(' mean arithmetic returns implied by lognormal model -- monthly and annual'); disp([100 1200]*(exp(elnr+1/2*sdlnr^2)-1)); % regressions on market returns lhv = ret-tb3mret; rhv = [ones(rows(vwretd),1) vwretd-tb3mret]; lags = 0; weight = 0; [bv,sebv,R2v,R2vadj,v,F] = olsgmm(lhv,rhv,lags,weight); disp(' monthly CAPM in levels, VWNYSE. 1200*alpha 1200*se(alpha) beta se(beta) 100*adj R2'); disp([bv(1)*1200 sebv(1)*1200 bv(2) sebv(2) 100*R2vadj]); rhv = [ones(rows(spretd),1) spretd-tb3mret]; [bv,sebv,R2v,R2vadj,v,F] = olsgmm(lhv,rhv,lags,weight); disp(' monthly CAPM in levels, S&P500. 1200*alpha 1200*se(alpha) beta se(beta) 100*adj R2'); disp([bv(1)*1200 sebv(1)*1200 bv(2) sebv(2) 100*R2vadj]); lhv = log(1+ret(ret>-1))-log((1+tb3mret(ret>-1))); rhv = [ones(rows(ret(ret>-1)),1) log(1+vwretd(ret>-1))-log(1+tb3mret(ret>-1))]; [bv,sebv,R2v,R2vadj,v,F] = olsgmm(lhv,rhv,lags,weight); disp(' monthly CAPM in logs, VWNYSE. 1200*alpha 1200*se(alpha) beta se(beta) 100*adj R2'); disp([bv(1)*1200 sebv(1)*1200 bv(2) sebv(2) 100*R2vadj]); rhv = [ones(rows(ret(ret>-1)),1) log(1+spretd(ret>-1))-log(1+tb3mret(ret>-1))]; [bv,sebv,R2v,R2vadj,v,F] = olsgmm(lhv,rhv,lags,weight); disp(' monthly CAPM in logs, S&P500. 1200*alpha 1200*se(alpha) beta se(beta) 100*adj R2'); disp([bv(1)*1200 sebv(1)*1200 bv(2) sebv(2) 100*R2vadj]);