I have managed to get an output of this coding which indicates which model with parameter p,d and h is the best fit model. However, I am stucked on how to forecast the future price with lead=6 with the p=8, d=8 and h=1. Can anyone help me out ? I am using SAS 9.4 and this model is functional coefficient autoregressive model.
The coding for fiding the best fit model is as follow:
proc import out=pepper
datafile='C:\Downloads\WPJan97toDec15.xls'
dbms=excel replace;
sheet='Sheet1';
getnames=yes;
run;
proc print data=pepper;
run;
Proc iml;
use pepper;
read all into y;
pdh=j(1,4,999);
print pdh;
APEh=j(4,1,0);
print APEh;
u0=sum(y)/nrow(y);
n=nrow(y);
sum=sum(y);
print sum;
print n;
print u0;
do p=1 to 8;
do d=1 to p;
x0=j(nrow(y),p,0);
do i= p+1 to nrow(y);
x0[i,]=y[i-1:i-p]`;
end;
do h=0.1 to 1 by 0.1;
do j=1 to 4;
t=nrow(y)-(7*j);
n=t-p;
x=j(t,p,0);
u=j(t,1,0);
do i= p+1 to t;
x[i,]=y[i-1:i-p]`;
u[i]=y[i-d];
end;
x1=x[p+1:t,];
u1=u[p+1:t,];
w=j(n,n,0);
w1=j(n,1,0);
x2=j(n,p,1);
do i=1 to n;
ind=(u1[i]-u0)/h;
if (ind<=1) then do;
w[i,i]=(0.75/h)*(1-((u1[i]-u0)*(u1[i]-u0))/(h*h));
w1[i,]=w[i,i];
x2[i,]=x1[i,]*(u1[i]-u0);
end;
else do;
w[i,i]=0;
w1[i,]=w[i,i];
x2[i,]=x1[i,]*(u1[i]-u0);
end;
end;
Xcurl=j(n,2*p,0);
xcurl=xl||x2;
y1=y[p+1:t,];
beta=inv(xcurl`*w*xcurl)*(xcurl`*w*y1);
beta1=beta[1: p,];
yhat=xcurl*beta;
error=y1-yhat;
apeerror=j(7,1,0);
apeerror=error[n-7*j+1:n-7*j+7,];
APEh[j]=(1/7)*apeerror`*apeerror;
end;
APE=sum(APEh)/4;
pdh=pdh//(p||d||h||APE);
end;
end;
end;
pdh=pdh[2:nrow(pdh),];
minAPE=min(pdh[,4]);
do i=1 to nrow(pdh);
if (pdh[i,4]=minAPE) then rw=i;
end;
result=pdh[rw,];
print beta1;