/********************* compute the RMSE and MAE function   **************************/
vls1 = reshape(error(0),9,1);

forcsam = 1~5~seqa(10,10,2)';
dat_ob1 = xlsReadM("observedr.xls", "a1:t2355", 1, vls1[1]); obser1 = dat_ob1[.,forcsam];
vobser1 = obser1;

// NSW
dat1 = xlsReadM("Eforecasts_garch_rev.xls", "a1:t2355", 1, vls1[1]); fc1 = dat1[.,forcsam];
dat2 = xlsReadM("Eforecasts_gjr_rev.xls", "a1:t2355", 1, vls1[1]); fc2 = dat2[.,forcsam];
dat3 = xlsReadM("Eforecasts_egarch_rev.xls", "a1:t2355", 1, vls1[1]); fc3 = dat3[.,forcsam];
dat4 = xlsReadM("Eforecasts_aparch_rev.xls", "a1:t2355", 1, vls1[1]); fc4 = dat4[.,forcsam];
dat5 = xlsReadM("Eforecasts_msgarch_rev.xls", "a1:t2355", 1, vls1[1]); fc5 = dat5[.,forcsam];
dat6 = xlsReadM("Eforecasts_figarch_rev.xls", "a1:t2355", 1, vls1[1]); fc6 = dat6[.,forcsam];
dat7 = xlsReadM("elec_BMSM_revision.xls", "a1:d2355", 1, vls1[1]); fc7 = dat7;
dat8 = xlsReadM("Eforecasts_msfigarch_rev.xls", "a1:t2355", 1, vls1[1]); fc8 = dat8[.,forcsam];
dat9 = xlsReadM("Eforecasts_msfiaparch_rev.xls", "a1:t2355", 1, vls1[1]); fc9 = dat9[.,forcsam];
dat10 = xlsReadM("Eforecasts_fiaparch_rev.xls", "a1:t2355", 1, vls1[1]); fc10 = dat10[.,forcsam];
dat11 = xlsReadM("Eforecasts_stfigarch_rev.xls", "a1:t2355", 1, vls1[1]); fc11 = dat11[.,forcsam];
dat12 = xlsReadM("Eforecasts_stfiaparch_rev.xls", "a1:t2355", 1, vls1[1]); fc12 = dat12[.,forcsam];



R_g1 = sqrt(meanc((vobser1 - fc1).^2));
R_gjr1 = sqrt(meanc((vobser1 - fc2).^2));
R_eg1 = sqrt(meanc((vobser1 - fc3).^2));
R_ap1 = sqrt(meanc((vobser1 - fc4).^2));
R_mg1 = sqrt(meanc((vobser1 - fc5).^2));
R_fi1 = sqrt(meanc((vobser1 - fc6).^2));
R_msm1 = sqrt(meanc((vobser1 - fc7).^2));
R_msfig = sqrt(meanc((vobser1 - fc8).^2));
R_msfia = sqrt(meanc((vobser1 - fc9).^2));
R_fia = sqrt(meanc((vobser1 - fc10).^2));
R_stfig = sqrt(meanc((vobser1 - fc11).^2));
R_stfia = sqrt(meanc((vobser1 - fc12).^2));

Rregion1 = R_msm1'|R_g1'|R_gjr1'|R_eg1'|R_ap1'|R_fi1'|R_fia'|R_mg1'|R_msfig'|R_msfia'|R_stfig'|R_stfia';
Rresult1 = Rregion1;


M_g1 = meanc(abs(vobser1 - fc1));
M_gjr1 = meanc(abs(vobser1 - fc2));
M_eg1 = meanc(abs(vobser1 - fc3));
M_ap1 = meanc(abs(vobser1 - fc4));
M_mg1 = meanc(abs(vobser1 - fc5));
M_fi1 = meanc(abs(vobser1 - fc6));
M_msm1 = meanc(abs(vobser1 - fc7));
M_msfig = meanc(abs(vobser1 - fc8));
M_msfia = meanc(abs(vobser1 - fc9));
M_fia = meanc(abs(vobser1 - fc10));
M_stfig = meanc(abs(vobser1 - fc11));
M_stfia = meanc(abs(vobser1 - fc12));


Mregion1 = M_msm1'|M_g1'|M_gjr1'|M_eg1'|M_ap1'|M_fi1'|M_fia'|M_mg1'|M_msfig'|M_msfia'|M_stfig'|M_stfia';
Mresult1 = Mregion1;

print Rresult1~Mresult1;


// QLD
vls1 = reshape(error(0),9,1);

forcsam = 1~5~seqa(10,10,2)';
dat_ob2 = xlsReadM("observedr.xls", "a1:t2249", 2, vls1[1]); obser2 = dat_ob2[.,forcsam];
vobser2 = obser2;

// Region 2

dat1 = xlsReadM("Eforecasts_garch_rev.xls", "a1:t2249", 2, vls1[1]); fc1 = dat1[.,forcsam];
dat2 = xlsReadM("Eforecasts_gjr_rev.xls", "a1:t2249", 2, vls1[1]); fc2 = dat2[.,forcsam];
dat3 = xlsReadM("Eforecasts_egarch_rev.xls", "a1:t2249", 2, vls1[1]); fc3 = dat3[.,forcsam];
dat4 = xlsReadM("Eforecasts_aparch_rev.xls", "a1:t2249", 2, vls1[1]); fc4 = dat4[.,forcsam];
dat5 = xlsReadM("Eforecasts_msgarch_rev.xls", "a1:t2249", 2, vls1[1]); fc5 = dat5[.,forcsam];
dat6 = xlsReadM("Eforecasts_figarch_rev.xls", "a1:t2249", 2, vls1[1]); fc6 = dat6[.,forcsam];
dat7 = xlsReadM("elec_BMSM_revision.xls", "a1:d2249", 2, vls1[1]); fc7 = dat7;
dat8 = xlsReadM("Eforecasts_msfigarch_rev.xls", "a1:t2249", 2, vls1[1]); fc8 = dat8[.,forcsam];
dat9 = xlsReadM("Eforecasts_msfiaparch_rev.xls", "a1:t2249", 2, vls1[1]); fc9 = dat9[.,forcsam];
dat10 = xlsReadM("Eforecasts_fiaparch_rev.xls", "a1:t2249", 2, vls1[1]); fc10 = dat10[.,forcsam];
dat11 = xlsReadM("Eforecasts_stfigarch_rev.xls", "a1:t2249", 2, vls1[1]); fc11 = dat11[.,forcsam];
dat12 = xlsReadM("Eforecasts_stfiaparch_rev.xls", "a1:t2249", 2, vls1[1]); fc12 = dat12[.,forcsam];





//RMSE for region 2

R_g1 = sqrt(meanc((vobser2 - fc1).^2));
R_gjr1 = sqrt(meanc((vobser2 - fc2).^2));
R_eg1 = sqrt(meanc((vobser2 - fc3).^2));
R_ap1 = sqrt(meanc((vobser2 - fc4).^2));
R_mg1 = sqrt(meanc((vobser2 - fc5).^2));
R_fi1 = sqrt(meanc((vobser2 - fc6).^2));
R_msm1 = sqrt(meanc((vobser2 - fc7).^2));
R_msfig = sqrt(meanc((vobser2 - fc8).^2));
R_msfia = sqrt(meanc((vobser2 - fc9).^2));
R_fia = sqrt(meanc((vobser2 - fc10).^2));
R_stfig = sqrt(meanc((vobser2 - fc11).^2));
R_stfia = sqrt(meanc((vobser2 - fc12).^2));

Rregion1 = R_msm1'|R_g1'|R_gjr1'|R_eg1'|R_ap1'|R_fi1'|R_fia'|R_mg1'|R_msfig'|R_msfia'|R_stfig'|R_stfia';
Rresult1 = Rregion1;

// MAE for region 2

M_g1 = meanc(abs(vobser2 - fc1));
M_gjr1 = meanc(abs(vobser2 - fc2));
M_eg1 = meanc(abs(vobser2 - fc3));
M_ap1 = meanc(abs(vobser2 - fc4));
M_mg1 = meanc(abs(vobser2 - fc5));
M_fi1 = meanc(abs(vobser2 - fc6));
M_msm1 = meanc(abs(vobser2 - fc7));
M_msfig = meanc(abs(vobser2 - fc8));
M_msfia = meanc(abs(vobser2 - fc9));
M_fia = meanc(abs(vobser2 - fc10));
M_stfig = meanc(abs(vobser2 - fc11));
M_stfia = meanc(abs(vobser2 - fc12));


Mregion1 = M_msm1'|M_g1'|M_gjr1'|M_eg1'|M_ap1'|M_fi1'|M_fia'|M_mg1'|M_msfig'|M_msfia'|M_stfig'|M_stfia';
Mresult1 = Mregion1;

print Rresult1~Mresult1;

vls1 = reshape(error(0),9,1);

forcsam = 1~5~seqa(10,10,2)';
dat_ob2 = xlsReadM("observedr.xls", "a1:t2254", 3, vls1[1]); obser3 = dat_ob2[.,forcsam];
vobser3 = obser3;

// Region 3 - SA

dat1 = xlsReadM("Eforecasts_garch_rev.xls", "a1:t2254", 3, vls1[1]); fc1 = dat1[.,forcsam];
dat2 = xlsReadM("Eforecasts_gjr_rev.xls", "a1:t2254", 3, vls1[1]); fc2 = dat2[.,forcsam];
dat3 = xlsReadM("Eforecasts_egarch_rev.xls", "a1:t2254", 3, vls1[1]); fc3 = dat3[.,forcsam];
dat4 = xlsReadM("Eforecasts_aparch_rev.xls", "a1:t2254", 3, vls1[1]); fc4 = dat4[.,forcsam];
dat5 = xlsReadM("Eforecasts_msgarch_rev.xls", "a1:t2254", 3, vls1[1]); fc5 = dat5[.,forcsam];
dat6 = xlsReadM("Eforecasts_figarch_rev.xls", "a1:t2254", 3, vls1[1]); fc6 = dat6[.,forcsam];
dat7 = xlsReadM("elec_BMSM_revision.xls", "a1:d2254", 3, vls1[1]); fc7 = dat7;
dat8 = xlsReadM("Eforecasts_msfigarch_rev.xls", "a1:t2254", 3, vls1[1]); fc8 = dat8[.,forcsam];
dat9 = xlsReadM("Eforecasts_msfiaparch_rev.xls", "a1:t2254", 3, vls1[1]); fc9 = dat9[.,forcsam];
dat10 = xlsReadM("Eforecasts_fiaparch_rev.xls", "a1:t2254", 3, vls1[1]); fc10 = dat10[.,forcsam];
dat11 = xlsReadM("Eforecasts_stfigarch_rev.xls", "a1:t2254", 3, vls1[1]); fc11 = dat11[.,forcsam];
dat12 = xlsReadM("Eforecasts_stfiaparch_rev.xls", "a1:t2254", 3, vls1[1]); fc12 = dat12[.,forcsam];




//RMSE for region 3

R_g1 = sqrt(meanc((vobser3 - fc1).^2));
R_gjr1 = sqrt(meanc((vobser3 - fc2).^2));
R_eg1 = sqrt(meanc((vobser3 - fc3).^2));
R_ap1 = sqrt(meanc((vobser3 - fc4).^2));
R_mg1 = sqrt(meanc((vobser3 - fc5).^2));
R_fi1 = sqrt(meanc((vobser3 - fc6).^2));
R_msm1 = sqrt(meanc((vobser3 - fc7).^2));
R_msfig = sqrt(meanc((vobser3 - fc8).^2));
R_msfia = sqrt(meanc((vobser3 - fc9).^2));
R_fia = sqrt(meanc((vobser3 - fc10).^2));
R_stfig = sqrt(meanc((vobser3 - fc11).^2));
R_stfia = sqrt(meanc((vobser3 - fc12).^2));

Rregion1 = R_msm1'|R_g1'|R_gjr1'|R_eg1'|R_ap1'|R_fi1'|R_fia'|R_mg1'|R_msfig'|R_msfia'|R_stfig'|R_stfia';
Rresult1 = Rregion1;

// MAE for region 3

M_g1 = meanc(abs(vobser3 - fc1));
M_gjr1 = meanc(abs(vobser3 - fc2));
M_eg1 = meanc(abs(vobser3 - fc3));
M_ap1 = meanc(abs(vobser3 - fc4));
M_mg1 = meanc(abs(vobser3 - fc5));
M_fi1 = meanc(abs(vobser3 - fc6));
M_msm1 = meanc(abs(vobser3 - fc7));
M_msfig = meanc(abs(vobser3 - fc8));
M_msfia = meanc(abs(vobser3 - fc9));
M_fia = meanc(abs(vobser3 - fc10));
M_stfig = meanc(abs(vobser3 - fc11));
M_stfia = meanc(abs(vobser3 - fc12));


Mregion1 = M_msm1'|M_g1'|M_gjr1'|M_eg1'|M_ap1'|M_fi1'|M_fia'|M_mg1'|M_msfig'|M_msfia'|M_stfig'|M_stfia';
Mresult1 = Mregion1;

print Rresult1~Mresult1;

//TAS
vls1 = reshape(error(0),9,1);

forcsam = 1~5~seqa(10,10,2)';
dat_ob2 = xlsReadM("observedr.xls", "a1:t2355", 4, vls1[1]); obser2 = dat_ob2[.,forcsam];
vobser4 = obser2;

// Region 4
dat1 = xlsReadM("Eforecasts_garch_rev.xls", "a1:t2355", 4, vls1[1]); fc1 = dat1[.,forcsam];
dat2 = xlsReadM("Eforecasts_gjr_rev.xls", "a1:t2355", 4, vls1[1]); fc2 = dat2[.,forcsam];
dat3 = xlsReadM("Eforecasts_egarch_rev.xls", "a1:t2355", 4, vls1[1]); fc3 = dat3[.,forcsam];
dat4 = xlsReadM("Eforecasts_aparch_rev.xls", "a1:t2355", 4, vls1[1]); fc4 = dat4[.,forcsam];
dat5 = xlsReadM("Eforecasts_msgarch_rev.xls", "a1:t2355", 4, vls1[1]); fc5 = dat5[.,forcsam];
dat6 = xlsReadM("Eforecasts_figarch_rev.xls", "a1:t2355", 4, vls1[1]); fc6 = dat6[.,forcsam];
dat7 = xlsReadM("elec_BMSM_revision.xls", "a1:d2355", 4, vls1[1]); fc7 = dat7;
dat8 = xlsReadM("Eforecasts_msfigarch_rev.xls", "a1:t2355", 4, vls1[1]); fc8 = dat8[.,forcsam];
dat9 = xlsReadM("Eforecasts_msfiaparch_rev.xls", "a1:t2355", 4, vls1[1]); fc9 = dat9[.,forcsam];
dat10 = xlsReadM("Eforecasts_fiaparch_rev.xls", "a1:t2355", 4, vls1[1]); fc10 = dat10[.,forcsam];
dat11 = xlsReadM("Eforecasts_stfigarch_rev.xls", "a1:t2355", 4, vls1[1]); fc11 = dat11[.,forcsam];
dat12 = xlsReadM("Eforecasts_stfiaparch_rev.xls", "a1:t2355", 4, vls1[1]); fc12 = dat12[.,forcsam];



//RMSE for region 4

R_g1 = sqrt(meanc((vobser4 - fc1).^2));
R_gjr1 = sqrt(meanc((vobser4 - fc2).^2));
R_eg1 = sqrt(meanc((vobser4 - fc3).^2));
R_ap1 = sqrt(meanc((vobser4 - fc4).^2));
R_mg1 = sqrt(meanc((vobser4 - fc5).^2));
R_fi1 = sqrt(meanc((vobser4 - fc6).^2));
R_msm1 = sqrt(meanc((vobser4 - fc7).^2));
R_msfig = sqrt(meanc((vobser4 - fc8).^2));
R_msfia = sqrt(meanc((vobser4 - fc9).^2));
R_fia = sqrt(meanc((vobser4 - fc10).^2));
R_stfig = sqrt(meanc((vobser4 - fc11).^2));
R_stfia = sqrt(meanc((vobser4 - fc12).^2));

Rregion1 = R_msm1'|R_g1'|R_gjr1'|R_eg1'|R_ap1'|R_fi1'|R_fia'|R_mg1'|R_msfig'|R_msfia'|R_stfig'|R_stfia';
Rresult1 = Rregion1;
// MAE for region 4

M_g1 = meanc(abs(vobser4 - fc1));
M_gjr1 = meanc(abs(vobser4 - fc2));
M_eg1 = meanc(abs(vobser4 - fc3));
M_ap1 = meanc(abs(vobser4 - fc4));
M_mg1 = meanc(abs(vobser4 - fc5));
M_fi1 = meanc(abs(vobser4 - fc6));
M_msm1 = meanc(abs(vobser4 - fc7));
M_msfig = meanc(abs(vobser4 - fc8));
M_msfia = meanc(abs(vobser4 - fc9));
M_fia = meanc(abs(vobser4 - fc10));
M_stfig = meanc(abs(vobser4 - fc11));
M_stfia = meanc(abs(vobser4 - fc12));


Mregion1 = M_msm1'|M_g1'|M_gjr1'|M_eg1'|M_ap1'|M_fi1'|M_fia'|M_mg1'|M_msfig'|M_msfia'|M_stfig'|M_stfia';
Mresult1 = Mregion1;

print Rresult1~Mresult1;

// VIC
vls1 = reshape(error(0),9,1);

forcsam = 1~5~seqa(10,10,2)';
dat_ob2 = xlsReadM("observedr.xls", "a1:t2183", 5, vls1[1]); obser2 = dat_ob2[.,forcsam];
vobser5 = obser2;

// Region 5

dat1 = xlsReadM("Eforecasts_garch_rev.xls", "a1:t2183", 5, vls1[1]); fc1 = dat1[.,forcsam];
dat2 = xlsReadM("Eforecasts_gjr_rev.xls", "a1:t2183", 5, vls1[1]); fc2 = dat2[.,forcsam];
dat3 = xlsReadM("Eforecasts_egarch_rev.xls", "a1:t2183", 5, vls1[1]); fc3 = dat3[.,forcsam];
dat4 = xlsReadM("Eforecasts_aparch_rev.xls", "a1:t2183", 5, vls1[1]); fc4 = dat4[.,forcsam];
dat5 = xlsReadM("Eforecasts_msgarch_rev.xls", "a1:t2183", 5, vls1[1]); fc5 = dat5[.,forcsam];
dat6 = xlsReadM("Eforecasts_figarch_rev.xls", "a1:t2183", 5, vls1[1]); fc6 = dat6[.,forcsam];
dat7 = xlsReadM("elec_BMSM_revision.xls", "a1:d2183", 5, vls1[1]); fc7 = dat7;
dat8 = xlsReadM("Eforecasts_msfigarch_rev.xls", "a1:t2183", 5, vls1[1]); fc8 = dat8[.,forcsam];
dat9 = xlsReadM("Eforecasts_msfiaparch_rev.xls", "a1:t2183", 5, vls1[1]); fc9 = dat9[.,forcsam];
dat10 = xlsReadM("Eforecasts_fiaparch_rev.xls", "a1:t2183", 5, vls1[1]); fc10 = dat10[.,forcsam];
dat11 = xlsReadM("Eforecasts_stfigarch_rev.xls", "a1:t2183", 5, vls1[1]); fc11 = dat11[.,forcsam];
dat12 = xlsReadM("Eforecasts_stfiaparch_rev.xls", "a1:t2183", 5, vls1[1]); fc12 = dat12[.,forcsam];



//RMSE for region 5

R_g1 = sqrt(meanc((vobser5 - fc1).^2));
R_gjr1 = sqrt(meanc((vobser5 - fc2).^2));
R_eg1 = sqrt(meanc((vobser5 - fc3).^2));
R_ap1 = sqrt(meanc((vobser5 - fc4).^2));
R_mg1 = sqrt(meanc((vobser5 - fc5).^2));
R_fi1 = sqrt(meanc((vobser5 - fc6).^2));
R_msm1 = sqrt(meanc((vobser5 - fc7).^2));
R_msfig = sqrt(meanc((vobser5 - fc8).^2));
R_msfia = sqrt(meanc((vobser5 - fc9).^2));
R_fia = sqrt(meanc((vobser5 - fc10).^2));
R_stfig = sqrt(meanc((vobser5 - fc11).^2));
R_stfia = sqrt(meanc((vobser5 - fc12).^2));

Rregion1 = R_msm1'|R_g1'|R_gjr1'|R_eg1'|R_ap1'|R_fi1'|R_fia'|R_mg1'|R_msfig'|R_msfia'|R_stfig'|R_stfia';
Rresult1 = Rregion1;

// MAE for region 5

M_g1 = meanc(abs(vobser5 - fc1));
M_gjr1 = meanc(abs(vobser5 - fc2));
M_eg1 = meanc(abs(vobser5 - fc3));
M_ap1 = meanc(abs(vobser5 - fc4));
M_mg1 = meanc(abs(vobser5 - fc5));
M_fi1 = meanc(abs(vobser5 - fc6));
M_msm1 = meanc(abs(vobser5 - fc7));
M_msfig = meanc(abs(vobser5 - fc8));
M_msfia = meanc(abs(vobser5 - fc9));
M_fia = meanc(abs(vobser5 - fc10));
M_stfig = meanc(abs(vobser5 - fc11));
M_stfia = meanc(abs(vobser5 - fc12));


Mregion1 = M_msm1'|M_g1'|M_gjr1'|M_eg1'|M_ap1'|M_fi1'|M_fia'|M_mg1'|M_msfig'|M_msfia'|M_stfig'|M_stfia';
Mresult1 = Mregion1;

print Rresult1~Mresult1;
