BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
pmorel3
Obsidian | Level 7

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


ChrisNZ
Tourmaline | Level 20

Unsure it's related, but you have a bug. Fix this:

 

NOTE: Variable rtsx is uninitialized.

SAS Innovate 2025: Call for Content

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!

Submit your idea!

How to Concatenate Values

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 16 replies
  • 3899 views
  • 2 likes
  • 5 in conversation