BookmarkSubscribeRSS Feed
siva5578
Calcite | Level 5

Please refer data below

 

 Customer1Customer2Customer3Customer4Customer5
Jan-18$5,000$8,000$5,250$6,125$3,000
Feb-18$5,100$8,300$5,500$6,625$3,050
Mar-18$5,200$8,600$5,750$7,125$3,100
Apr-18$5,300$8,900$6,000$7,625$3,150
May-18$5,400$9,200$6,250$8,125$3,200
Jun-18$5,500$9,500$6,500$8,625$3,250
Jul-18$5,600$9,800$6,750$9,125$3,300
Aug-18$5,700$10,100$7,000$9,625$3,350
Sep-18$5,800$10,400$7,250$10,125$3,400
Oct-18$5,900$10,700$7,500$10,625$3,450
Nov-18$6,000$11,000$7,750$11,125$3,500
Dec-18$6,100$11,300$8,000$11,625$3,550

 

For each customer, I am trying to create a curve that fits the past 12 months of data. Essentially, if it is a Polynomial fit (Y = Ax^2+Bx+C ), I am looking for coefficients A,B, C & the error ( MSE or RMSE etc..). 

 

I have used Proc Orthoreg/Reg etc.. to get the results but, this will alow me to do this for 1 account at a time. If I am dealing with large volume of accts, this is not an option at all. So, I don't think I can use SAS procedures for this. 

 

Is/Are there function(s) available in SAS that allows me to do that. I am looking for something similar to the "Polyfit" function in Python.

If not, is there a way to achieve the same results using SAS?

 

Thanks

6 REPLIES 6
PaigeMiller
Diamond | Level 26

You don't really indicate which variable is X and which variable is Y is in this data, so could you please clarify this?

 

In general, a polynomial function is fit through PROC GLM (although there are many other PROCs that will do this as well). Example:

 

proc glm data=have;
    model y = x x*x;
run;
quit;
--
Paige Miller
siva5578
Calcite | Level 5
The independent variable would be time period (month). The dependent variable would be the values listed in columns for each customer.

As I mentioned, I am trying to independently curve fit for each customer.
PaigeMiller
Diamond | Level 26

I added example code to my first reply. That should give you enough information to do this.

--
Paige Miller
siva5578
Calcite | Level 5

Paige,

 

Thanks for the response.

 

I have used Proc Orthoreg/Reg etc.. to get the results (Coefficients for the Polynomial equation), 1 account at a time. I think PROC GLM would work the same way. In the sample table I had provided, I would have to create separate SAS dataset for each customer and use PROC GLM for each of those datasets. If I am dealing with large volume of accts, this is not an option at all. So, I don't think I can use SAS PROC for this. Please correct me if I misunderstood how Proc GLM would work.

 

I think a SAS Function would be the way to go. Let me know your thoughts.

 

Thanks.

Siva

PaigeMiller
Diamond | Level 26

@siva5578 wrote:

 In the sample table I had provided, I would have to create separate SAS dataset for each customer and use PROC GLM for each of those datasets.


No, one data set works fine.

 

If I am dealing with large volume of accts, this is not an option at all. So, I don't think I can use SAS PROC for this. Please correct me if I misunderstood how Proc GLM would work.

Sure it works if you follow these instructions: https://blogs.sas.com/content/iml/2017/02/13/run-1000-regressions.html

 

--
Paige Miller
PeterClemmensen
Tourmaline | Level 20

What is your dependent variable here?

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

Creating Custom Steps in SAS Studio

Check out this tutorial series to learn how to build your own steps in SAS Studio.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 6 replies
  • 1994 views
  • 0 likes
  • 3 in conversation