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.
,
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.