new;
//cls;


for g(1,3,1);

if g eq 1;
y1  = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Emerging.xls","B2:I292",2,"");
y2  = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Emerging.xls","B3:J293",4,"");
y3  = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Emerging.xls","B3:J293",6,"");
y4  = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Emerging.xls","B3:E293",8,"");

x1 = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Emerging.xls","B2:I292",1,"");
x2 = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Emerging.xls","B3:J293",3,"");
x3 = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Emerging.xls","B3:J293",5,"");
x4 = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Emerging.xls","B3:E293",7,"");


y2 = y2[.,1:cols(y2)-1];
x2 = x2[.,1:cols(x2)-1];
y3 = y3[.,1:cols(y3)-1];
x3 = x3[.,1:cols(x3)-1];

elseif g eq 2;	
y1  = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Developed.xls","B2:U292",2,"");
y2  = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Developed.xls","B3:V293",4,"");
y3  = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Developed.xls","B3:W293",6,"");
y4  = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Developed.xls","B3:U293",8,"");

x1 = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Developed.xls","B2:U292",1,"");
x2 = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Developed.xls","B3:V293",3,"");
x4 = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Developed.xls","B3:U293",7,"");
x3 = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Developed.xls","B3:W293",5,"");

y2 = y2[.,1:17]~y2[.,19:cols(y2)];
x2 = x2[.,1:17]~x2[.,19:cols(x2)];
x3 = x3[.,1:12]~x3[.,14:18]~x3[.,20:cols(x3)];
y3 = y3[.,1:12]~y3[.,14:18]~y3[.,20:cols(y3)];

elseif g eq 3;

y1  = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Global.xls","B2:AC292",2,"");
y2  = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Global.xls","B3:AE293",4,"");
y3  = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Global.xls","B3:AF293",6,"");
y4  = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Global.xls","B3:Y293",8,"");

x1 = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Global.xls","B2:AC292",1,"");
x2 = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Global.xls","B3:AE293",3,"");
x3 = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Global.xls","B3:AF293",5,"");
x4 = xlsreadm("C:\\Users\\nek-hka\\Dropbox\\08 One factor\\Application2\\Global.xls","B3:Y293",7,"");


y2 = y2[.,1:23]~y2[.,25:29];
x2 = x2[.,1:23]~x2[.,25:29];
y3 = y3[.,1:14]~y3[.,16:24]~y3[.,26:30];
x3 = x3[.,1:14]~x3[.,16:24]~x3[.,26:30];
endif;


mod  = 2;                            /* 0 = nothing, 1 = const, 2 = trend */   

for xv(1,4,1);
if     xv eq 1; x = ln(x1[1:rows(x1)-1,.]);        y = ln(1+y1[2:rows(y1),.]/100);  // DP ratio
elseif xv eq 2; x = ln(x2[1:rows(x2)-1,.]);        y = ln(1+y2[2:rows(y2),.]/100);  // EP ratio
elseif xv eq 3; x = x3[1:rows(x3)-1,.];            y = ln(1+y3[2:rows(y3),.]/100);  // SR
elseif xv eq 4; x = x4[1:rows(x4)-1,.];            y = ln(1+y4[2:rows(y4),.]/100);  // TS
endif;


t = rows(x);
n = cols(y);


{b,s,t} = endog(y,x);

/* printing options */



format/m1/rd 8,3;

b;;s;;t;;2*cdfnc(abs(t));
endfor;
endfor;

/* procs */

proc (3) = endog(y,xl);
local t,n,yu,xlu,xld,f,m,b,e,s2,v,s0,sx,zl,l,bx,u,dxl,ml,ux,xx,xl1,xll;

t    = rows(y);
n    = cols(y);
yu   = rec_detr_u(y); 
xlu  = rec_detr_u(xl);
xld  = rec_detr_d(xl);
f    = meanc(yu'); 

m    = eye(t)-f*inv(f'f)*f';
ml   = eye(t-1) - f[1:t-1,.]*inv(f[1:t-1,.]'f[1:t-1,.])*f[1:t-1,.]';
b    = sumc(diag(xld'm*yu))/sumc(diag(xld'm*xlu));
e    = m*yu - m*xlu*b;
e    = e[1:t-1,.];
xll  = lag(xl);
xll  = xll[2:t,.];
xl1  = xl[2:t,.];

xx   = sumc(diag(xll'xl1))/sumc(diag(xll'xll));
ux   = xl1 - xll*xx;

bx  = sumc(diag(ux'e))/sumc(diag(ux'ux));
u   = e - ux*bx;

sx  = sumc(diag(ux'ux));

s0  = inv(sx)*diag(ux'u)'diag(ux'u)*inv(sx);

t   = bx/sqrt(s0);

retp(bx,sqrt(s0),t);
endp;





proc (1) = rec_detr_d(y);
local t,n,i,x,d;

t = rows(y);
n = cols(y);
d = ones(t,1);                       
x = zeros(t,n);
i = 1;
do while i <= t;
x[i,.] = y[i,.] - sumc(y[1:i,.])'/i;
i      = i + 1;
endo;

retp(x);
endp;



proc (1) = rec_detr_u(y);
local t,n,i,x,d;

t = rows(y);
n = cols(y);
d = ones(t,1);                       
x = zeros(t,n);
i = 1;
do while i <= t;
x[i,.] = y[i,.] - sumc(y[i:t,.])'/(t-i+1);
i      = i + 1;
endo;

retp(x);
endp;



