This is the extract of my log just before the one I inserted first.
We can see how dataset previsions_US was created.
Here we see how I created variable "f_dmspe09" which seems missed.
5590 /*Calculer les prévisions combinées selon les 5 méthodes différentes*/ 5591 5592 data previsions_US; 5593 merge m.oos_zdp m.oos_zdy m.oos_zep m.oos_zde m.oos_zsvar /*m.oos_zcsp*/ m.oos_zbm m.oos_zntis m.oos_ztbl m.oos_zlty 5593! m.oos_zltr m.oos_ztms m.oos_zdfy m.oos_zdfr m.oos_zinfl; 5594 by obs date; 5595 5596 pred_mean=mean(pred_zdp, pred_zdy, pred_zep, pred_zde, pred_zsvar, /*pred_zcsp, */pred_zbm, pred_zntis, pred_ztbl, 5596! pred_zlty, pred_zltr, pred_ztms, pred_zdfy, pred_zdfr, pred_zinfl); 5597 res2_mean=(act_oos-pred_mean)**2; 5598 5599 pred_mediane=median(pred_zdp, pred_zdy, pred_zep, pred_zde, pred_zsvar, /*pred_zcsp, */pred_zbm, pred_zntis, pred_ztbl, 5599! pred_zlty, pred_zltr, pred_ztms, pred_zdfy, pred_zdfr, pred_zinfl); 5600 res2_mediane=(act_oos-pred_mediane)**2; 5601 5602 max=max(pred_zdp, pred_zdy, pred_zep, pred_zde, pred_zsvar, /*pred_zcsp, */pred_zbm, pred_zntis, pred_ztbl, pred_zlty, 5602! pred_zltr, pred_ztms, pred_zdfy, pred_zdfr, pred_zinfl); 5603 min=min(pred_zdp, pred_zdy, pred_zep, pred_zde, pred_zsvar, /*pred_zcsp, */pred_zbm, pred_zntis, pred_ztbl, pred_zlty, 5603! pred_zltr, pred_ztms, pred_zdfy, pred_zdfr, pred_zinfl); 5604 5605 5606 if (pred_zdp=max or pred_zdp=min) then v1=.; else v1=pred_zdp; 5607 if (pred_zdy=max or pred_zdy=min) then v2=.; else v2=pred_zdy; 5608 if (pred_zep=max or pred_zep=min) then v3=.; else v3=pred_zep; 5609 if (pred_zde=max or pred_zde=min) then v4=.; else v4=pred_zde; 5610 if (pred_zsvar=max or pred_zsvar=min) then v5=.; else v5=pred_zsvar; 5611 /*if (pred_zcsp=max or pred_zcsp=min) then v6=.; else v6=pred_zcsp;*/ 5612 if (pred_zbm=max or pred_zbm=min) then v7=.; else v7=pred_zbm; 5613 if (pred_zntis=max or pred_zntis=min) then v8=.; else v8=pred_zntis; 5614 if (pred_ztbl=max or pred_ztbl=min) then v9=.; else v9=pred_ztbl; 5615 if (pred_zlty=max or pred_zlty=min) then v10=.; else v10=pred_zlty; 5616 if (pred_zltr=max or pred_zltr=min) then v11=.; else v11=pred_zltr; 5617 if (pred_ztms=max or pred_ztms=min) then v12=.; else v12=pred_ztms; 5618 if (pred_zdfy=max or pred_zdfy=min) then v13=.; else v13=pred_zdfy; 5619 if (pred_zdfr=max or pred_zdfr=min) then v14=.; else v14=pred_zdfr; 5620 if (pred_zinfl=max or pred_zinfl=min) then v15=.; else v15=pred_zinfl; 5621 5622 pred_trim=mean(v1, v2, v3, v4, v5, /*v6, */v7, v8, v9, v10, v11, v12, v13, v14, v15); 5623 res2_trim=(act_oos-pred_trim)**2; 5624 5625 phi09inv = phi09inv_zdp + phi09inv_zdy + phi09inv_zep + phi09inv_zde + phi09inv_zsvar + phi09inv_zcsp + phi09inv_zbm + 5625! phi09inv_zntis + phi09inv_ztbl + phi09inv_zlty + phi09inv_zltr + phi09inv_ztms + phi09inv_zdfy + phi09inv_zdfr + 5625! phi09inv_zinfl; 5626 w09_zdp = phi09inv_zdp / phi09inv; u09_zdp=w09_zdp*pred_zdp; 5627 w09_zdy = phi09inv_zdy / phi09inv; u09_zdy=w09_zdy*pred_zdy; 5628 w09_zep = phi09inv_zep / phi09inv; u09_zep=w09_zep*pred_zep; 5629 w09_zde = phi09inv_zde / phi09inv; u09_zde=w09_zde*pred_zde; 5630 w09_zsvar = phi09inv_zsvar / phi09inv; u09_zsvar=w09_zsvar*pred_zsvar; 5631 /*w09_zcsp = phi09inv_zcsp / phi09inv; u09_zcsp=w09_zcsp*pred_zcsp;*/ 5632 w09_zbm = phi09inv_zbm / phi09inv; u09_zbm=w09_zbm*pred_zbm; 5633 w09_zntis = phi09inv_zntis / phi09inv; u09_zntis=w09_zntis*pred_zntis; 5634 w09_ztbl = phi09inv_ztbl / phi09inv; u09_ztbl=w09_ztbl*pred_ztbl; 5635 w09_zlty = phi09inv_zlty / phi09inv; u09_zlty=w09_zlty*pred_zlty; 5636 w09_zltr = phi09inv_zltr / phi09inv; u09_zltr=w09_zltr*pred_zltr; 5637 w09_ztms = phi09inv_ztms / phi09inv; u09_ztms=w09_ztms*pred_ztms; 5638 w09_zdfy = phi09inv_zdfy / phi09inv; u09_zdfy=w09_zdfy*pred_zdfy; 5639 w09_zdfr = phi09inv_zdfr / phi09inv; u09_zdfr=w09_zdfr*pred_zdfr; 5640 w09_zinfl = phi09inv_zinfl / phi09inv; u09_zinfl=w09_zinfl*pred_zinfl; 5641 5642 pred_dmspe09=sum(u09_zdp, u09_zdy, u09_zep, u09_zde, u09_zsvar, /*u09_zcsp, */u09_zbm, u09_zntis, u09_ztbl, u09_zlty, 5642! u09_zltr, u09_ztms, u09_zdfy, u09_zdfr, u09_zinfl); 5643 res2_dmspe09=(act_oos-pred_dmspe09)**2; 5644 5645 phi1inv = phi1inv_zdp + phi1inv_zdy + phi1inv_zep + phi1inv_zde + phi1inv_zsvar + /*phi1inv_zcsp +*/phi1inv_zbm + 5645! phi1inv_zntis + phi1inv_ztbl + phi1inv_zlty + phi1inv_zltr + phi1inv_ztms + phi1inv_zdfy + phi1inv_zdfr + phi1inv_zinfl 5645! ; 5646 w1_zdp = phi1inv_zdp / phi1inv; u1_zdp=w1_zdp*pred_zdp; 5647 w1_zdy = phi1inv_zdy / phi1inv; u1_zdy=w1_zdy*pred_zdy; 5648 w1_zep = phi1inv_zep / phi1inv; u1_zep=w1_zep*pred_zep; 5649 w1_zde = phi1inv_zde / phi1inv; u1_zde=w1_zde*pred_zde; 5650 w1_zsvar = phi1inv_zsvar / phi1inv; u1_zsvar=w1_zsvar*pred_zsvar; 5651 /*w1_zcsp = phi1inv_zcsp / phi1inv; u1_zcsp=w1_zcsp*pred_zcsp;*/ 5652 w1_zbm = phi1inv_zbm / phi1inv; u1_zbm=w1_zbm*pred_zbm; 5653 w1_zntis = phi1inv_zntis / phi1inv; u1_zntis=w1_zntis*pred_zntis; 5654 w1_ztbl = phi1inv_ztbl / phi1inv; u1_ztbl=w1_ztbl*pred_ztbl; 5655 w1_zlty = phi1inv_zlty / phi1inv; u1_zlty=w1_zlty*pred_zlty; 5656 w1_zltr = phi1inv_zltr / phi1inv; u1_zltr=w1_zltr*pred_zdp; 5657 w1_ztms = phi1inv_ztms / phi1inv; u1_ztms=w1_ztms*pred_ztms; 5658 w1_zdfy = phi1inv_zdfy / phi1inv; u1_zdfy=w1_zdfy*pred_zdfy; 5659 w1_zdfr = phi1inv_zdfr / phi1inv; u1_zdfr=w1_zdfr*pred_zdfr; 5660 w1_zinfl = phi1inv_zinfl / phi1inv; u1_zinfl=w1_zinfl*pred_zinfl; 5661 5662 pred_dmspe1=sum(u1_zdp, u1_zdy, u1_zep, u1_zde, u1_zsvar, /*u1_zcsp, */u1_zbm, u1_zntis, u1_ztbl, u1_zlty, u1_zltr, 5662! u1_ztms, u1_zdfy, u1_zdfr, u1_zinfl); 5663 res2_dmspe1=(act_oos-pred_dmspe1)**2; 5664 5665 res2_n_oos=res_n_oos**2; 5666 5667 f_mean=res2_n_oos-(res2_mean-((pred_n_oos-pred_mean)**2)); 5668 f_mediane=res2_n_oos-(res2_mediane-((pred_n_oos-pred_mediane)**2)); 5669 f_trim=res2_n_oos-(res2_trim-((pred_n_oos-pred_trim)**2)); 5670 f_dmspe09=res2_n_oos-(res2_dmspe09-((pred_n_oos-pred_dmspe09)**2)); 5671 f_dmspe1=res2_n_oos-(res2_dmspe1-((pred_n_oos-pred_dmspe1)**2)); 5672 5673 if 195001 le date le 197212 then periode="1950-1972"; 5674 if 197301 le date le 199512 then periode="1973-1995"; 5675 if 199601 le date le 201812 then periode="1996-2018"; 5676 5677 keep obs date periode act_oos pred_n_oos res_n_oos res2_n_oos 5678 pred_zdp pred_zdy pred_zep pred_zde pred_zsvar /*pred_zcsp */pred_zbm pred_zntis pred_ztbl pred_zlty pred_zltr 5678! pred_ztms pred_zdfy pred_zdfr pred_zinfl 5679 res_zdp res_zdy res_zep res_zde res_zsvar /*res_zcsp */res_zbm res_zntis res_ztbl res_zlty res_zltr res_ztms 5679! res_zdfy res_zdfr res_zinfl 5680 res2_zdp res2_zdy res2_zep res2_zde res2_zsvar /*res2_zcsp */res2_zbm res2_zntis res2_ztbl res2_zlty res2_zltr 5680! res2_ztms res2_zdfy res2_zdfr res2_zinfl 5681 pred_mean pred_mediane pred_trim pred_dmspe09 pred_dmspe1 5682 res2_mean res2_mediane res2_trim res2_dmspe09 res2_dmspe1 5683 f_mean f_mediane f_trim f_dmspe09 f_dmspe1; 5684 run; 5685 proc print data=previsions_US; 5686 run; 5687 5688 data previsions_US; set previsions_US; 5689 if res2_mean=. then res2_n_mean=.; else res2_n_mean=res2_n_oos; 5690 if res2_mediane=. then res2_n_mediane=.; else res2_n_mediane=res2_n_oos; 5691 if res2_trim=. then res2_n_trim=.; else res2_n_trim=res2_n_oos; 5692 if res2_dmspe09=. then res2_n_dmspe09=.; else res2_n_dmspe09=res2_n_oos; 5693 if res2_dmspe1=. then res2_n_dmspe1=.; else res2_n_dmspe1=res2_n_oos; 5694 run; 5695 5696 proc print data=previsions_US; 5697 run; 5698 5699 PROC EXPORT DATA=previsions_US 5700 OUTFILE= "C:\Users\NPMOR\Desktop\Pas\results\CF_OS_prev_US.xlsx" 5701 DBMS=XLSX REPLACE; 5702 RUN; 5703 5704 5705
Unsure it's related, but you have a bug. Fix this:
NOTE: Variable rtsx is uninitialized.
,
Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.
Explore Now →Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.