BookmarkSubscribeRSS Feed
t75wez1
Pyrite | Level 9

Hello,

I have weekly time series POS data from retail on store level where the dependent variable is demand for a product in volume and the independent variables are product price, and a binary intervention dummy variable to indicate promotion within certain time frame on retail store level with location and address.

 

What statistical analysis can determine if the promotion impacts demand/sales?  Do any of you have any suggestions or recommendations? Any feedback would be very much appreciated!

 

Ethan

P.S. I do have SAS/ETS available.

5 REPLIES 5
PaigeMiller
Diamond | Level 26

@t75wez1 

I see you have posted this in the Forecasting part of the SAS Communities. But in your other post on this topic, your initial description was not sufficient, and after questioning, you provided a lot more information. That information needs to be provided here. Right now, no one can provide the correct answer based on what you have said here.

--
Paige Miller
t75wez1
Pyrite | Level 9

Ok. Thanks for point it out.

My goal is not forecasting for the future months with historical data.  I expected to build a A/B test and have no idea on how to define a control and a test group.

 

Not clear on how to implement the example below to design A/B test. 

 

Not sure if comparing the results with X1 and without X1 by running the ARIMA model below twice.

 

Could anyone shed some light on it?

Thanks,

 

Here is the time series data and ARIMA code:

 

/*--------------------------------------------------------------

                    SAS Sample Library

        Name: ariex04.sas
 Description: Example program from SAS/ETS User's Guide,
              The ARIMA Procedure
       Title: An Intervention Model for Ozone Data
     Product: SAS/ETS Software
        Keys: time series analysis
        PROC: ARIMA
       Notes:

--------------------------------------------------------------*/

title1 'Intervention Data for Ozone Concentration';
title2 '(Box and Tiao, JASA 1975 P.70)';
data air;
   input ozone @@;
   label ozone  = 'Ozone Concentration'
         x1     = 'Intervention for post 1960 period'
         summer = 'Summer Months Intervention'
         winter = 'Winter Months Intervention';
   date = intnx( 'month', '31dec1954'd, _n_ );
   format date monyy.;
   month = month( date );
   year = year( date );
   x1 = year >= 1960;
   summer = ( 5 < month < 11 ) * ( year > 1965 );
   winter = ( year > 1965 ) - summer;
datalines;
2.7  2.0  3.6  5.0  6.5  6.1  5.9  5.0  6.4  7.4  8.2  3.9
4.1  4.5  5.5  3.8  4.8  5.6  6.3  5.9  8.7  5.3  5.7  5.7
3.0  3.4  4.9  4.5  4.0  5.7  6.3  7.1  8.0  5.2  5.0  4.7
3.7  3.1  2.5  4.0  4.1  4.6  4.4  4.2  5.1  4.6  4.4  4.0
2.9  2.4  4.7  5.1  4.0  7.5  7.7  6.3  5.3  5.7  4.8  2.7
1.7  2.0  3.4  4.0  4.3  5.0  5.5  5.0  5.4  3.8  2.4  2.0
2.2  2.5  2.6  3.3  2.9  4.3  4.2  4.2  3.9  3.9  2.5  2.2
2.4  1.9  2.1  4.5  3.3  3.4  4.1  5.7  4.8  5.0  2.8  2.9
1.7  3.2  2.7  3.0  3.4  3.8  5.0  4.8  4.9  3.5  2.5  2.4
1.6  2.3  2.5  3.1  3.5  4.5  5.7  5.0  4.6  4.8  2.1  1.4
2.1  2.9  2.7  4.2  3.9  4.1  4.6  5.8  4.4  6.1  3.5  1.9
1.8  1.9  3.7  4.4  3.8  5.6  5.7  5.1  5.6  4.8  2.5  1.5
1.8  2.5  2.6  1.8  3.7  3.7  4.9  5.1  3.7  5.4  3.0  1.8
2.1  2.6  2.8  3.2  3.5  3.5  4.9  4.2  4.7  3.7  3.2  1.8
2.0  1.7  2.8  3.2  4.4  3.4  3.9  5.5  3.8  3.2  2.3  2.2
1.3  2.3  2.7  3.3  3.7  3.0  3.8  4.7  4.6  2.9  1.7  1.3
1.8  2.0  2.2  3.0  2.4  3.5  3.5  3.3  2.7  2.5  1.6  1.2
1.5  2.0  3.1  3.0  3.5  3.4  4.0  3.8  3.1  2.1  1.6  1.3
 .    .    .    .    .    .    .    .    .    .    .    .
;

proc arima data=air;

   /* Identify and seasonally difference ozone series */
   identify var=ozone(12)
            crosscorr=( x1(12) summer winter ) noprint;

   /* Fit a multiple regression with a seasonal MA model */
   /*     by the maximum likelihood method               */
   estimate q=(1)(12) input=( x1 summer winter )
            noconstant method=ml;

   /* Forecast */
   forecast  lead=12 id=date interval=month out=arimaout;

run;
Reeza
Super User
Are all products under the same promotion? If not the control group is products not under promotion and experimental are those who have a promotion. Difference in Difference model can be used here. https://www.princeton.edu/~otorres/DID101.pdf

If everything is under promotion then you can do a bayesian structural time series model. https://en.wikipedia.org/wiki/Bayesian_structural_time_series#:~:text=Bayesian%20structural%20time%2.... Not sure how SAS does this one.
t75wez1
Pyrite | Level 9

The certain number of stores are under same promotion versus the rest of stores are no promotion at all. D-I-D models seems to be promising. but how to implement in SAS code?

Thanks, 

Reeza
Super User

https://www.lexjansen.com/search/searchresults.php?q=difference+in+difference+model#gsc.tab=0&gsc.q=...

 

GLM/MIXED are typically used. See a few of the links and decide which works best for you. 

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

Multiple Linear Regression in SAS

Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 5 replies
  • 825 views
  • 0 likes
  • 3 in conversation