/* performs OLS regressions of asset returns on instruments. */ output file = olsinst.out reset; load path = c:\j\newprod\data; save path = c:\j\newprod\data; load avdecret,avvwret,avewret,avustret; /* old codes load GPI82, gin82, gis82,gipd82,gir82,gcd82; */ load GPI82=gpiq, gin82=ginq, gis82=gisq, gipd82=gipdq, gir82=girq, gcd82=gcdq; load qterm,qdef,qvwdp,qewdp; load MP,DEI,UI,UPR,UTS; load gcn82=gcnq,gcs82=gcsq,gpop; cns = (gcn82+gcs82)./gpop; rf = avustret; rassetx = avdecret - avustret; inst = qterm; format /RD 6,2; ""; "Assets = 10 size, excess"; "Mean and sd of returns (quarterly %) " ; 100*meanc(rassetx)'; 100*stdc(rassetx)'; "Mean and sd of returns (annualized %) " ; 400*meanc(rassetx)'; 200*stdc(rassetx)'; "Return correlation matrix"; covar = (rassetx'rassetx/rows(rassetx)); covar./((diag(covar)*diag(covar)')^(1/2)); "Instruments = qterm"; gosub dools; inst = qdef; ""; "Instruments = qdef"; gosub dools; inst = qewdp; ""; "Instruments = qewdp"; gosub dools; inst = qterm~qdef~qewdp; ""; "Instruments = term, def, ewd/p"; gosub dools; inst = qterm~qewdp; ""; "Instruments = term, ewd/p"; gosub dools; end; dools: x = inst[1:rows(inst)-2,.]; /* inst from 47:1 to 90:2, */ y = rassetx[2:rows(rassetx),.]; rf = rf[2:rows(rf),.]; n = rows(x); /* no need to redo with scaled fact*/ k = cols(x); const = ones(n,1); xx = inv((const~x)'(const~x)); b2 = xx*((const~x)'(y)); resid = y-(const~x)*b2; s2 = sumc(resid^2)/(n-k-1) ; se = (diag(xx)*s2')^(1/2); t = b2./se; R2 = 1 - (stdc(resid)^2)./(stdc(y)^2); "Coefficients"; b2; "t"; t; "100*R2";100*R2'; "% p val " ; i = 1;olspval = zeros(rows(r2),1); do while i<=rows(r2); olspval[i] = 100*cdffc( R2[i]/(1-R2[i])*(n-k-1)/k , k ,n-k-1); i=i+1; endo; olspval'; return; output off;