BookmarkSubscribeRSS Feed
wutao9999
Obsidian | Level 7

I have a problem that is challenging to me about fitting coefficient parameter.  Here is the problem data (simple example)

CustomersDemandPrice
A503.3
A603.1
A403.4
B3002.6
B2502.7
B3502.35

The goal is to fit the coefficient parameter (A) about how demand responds to price changes. That is, Demand = C + A*Price + Error.

My point is that, such data cannot be directly used in fitting A, because there are big differences in bases of customer needs and pricing strategy differences for various customers. Herein, such two variations need to be removed by NORMALIZATION before we do regression. The normalization procedure means to put demand and price into the same level.  After normalization, the data becomes as below:

CustomersNormalized DemandNormalized Price
A50*(175/50) = 1752.94
A60*(175/50) = 2102.76
A40*(175/50) = 1403.03
B300*(175/300) = 1752.97
B250*(175/300) = 1463.08
B350*(175/300) = 2042.68

In the table, 175 is the overall demand average.

The purpose of the normalization procedure is to remove the variations existed in customer need bases and pricing differences for different customers. However, it still well preserves the sensitivity of prices on demand for each customer, and put them into the same level.  We can then do parameter A fitting after normalization.

My question to you is that:  Do you think whether this method is statistically valid?  If not, do you know any existing statistical method to handle such data issue?  Appreciate your help for this.

8 REPLIES 8
SteveDenham
Jade | Level 19

This obliterates any pre-existing differences in price due to customer group.  Why not fit separate slopes for each group, e.g.

Demand = intercept + beta1 * price * (indicator for customer group) + error.

This is pretty commonly done in PROC GLM.

Steve Denham

wutao9999
Obsidian | Level 7

We assume that all customers share the same price sensitivity, A is the same for all customers.

SteveDenham
Jade | Level 19

Then what is the meaning of 'A' and 'B' in the customers column?  If all customers have the characteristic A, there is certainly no need to be adjusting that I can readily see.

Steve Denham

wutao9999
Obsidian | Level 7


Sorry for mis-presenting the table. Coefficient A is different from Customer A listed in the table.  We should change the A and B in the table to Customer_A and Customer_B.

SteveDenham
Jade | Level 19

So I assume that you have many customers, and you want a common estimate of the slope.  That sounds like a random slopes regression to me.  Something like:

proc mixed data=yourdata;

class customer;

model demand=price;

random intercept price/subject=customer;

run;

Steve Denham

PaigeMiller
Diamond | Level 26

Do you think whether this method is statistically valid?

I agree with Steve, and if you wanted to do this in PROC GLM, you could force the slopes to be the same for each group (or not), it's up to you.

But the question isn't "is this method statistically valid"? For you to be using this method, you would have to be able to justify it based upon subject matter reasoning and knowledge (not statistical reasoning). You need to talk to the subject matter experts to see if they think this is reasonable.

--
Paige Miller
wutao9999
Obsidian | Level 7

In PROC GLM, can we set the intercept to be different for different groups?

Another way I have been thinking is to add a dummy variable for different groups.  Can the dummy variable account for the base differences for different groups?

SteveDenham
Jade | Level 19

In GLM, by putting the group variable in the class statement, it is setting different intercepts for each level of the group variable.  Use the NOINT option to get these estimates for each group, rather than the estimates as deviations from the overall intercept by group level.  Inclusion of the group variable in the CLASS statement automatically codes dummy variables for the different groups, so there would be no need to add constructed dummy variables.

Steve Denham

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 8 replies
  • 2033 views
  • 0 likes
  • 3 in conversation