0
$\begingroup$

According to this article, calculating elasticity of demand for different models is:

enter image description here

I generate data for 5% reduction in prices with a corresponding 10% increasing in sales: price elasticity = (+10%/-5%)=-2 and get different result coefficient from linear model.

price <- double(length = 10L)
price[1] <- 200
for(i in 2:10)price[i] <- price[i-1]*.95 # price sequence with step =  -5% of last value
sales <- numeric(10)
sales[1] <- 1000
for(i in 2:10)sales[i] <- sales[i-1]*1.1 # sales sequence with step =  +10% of last value
plot(price,sales,type="b")
+.1/-.05 #price elastic = -2
m <- lm(log(sales)~log(price))
coef(m) #price elastic = -1.858141 it's not equal -2
$\endgroup$
1
  • $\begingroup$ The data you constructed used the Level-Level transformation, while the model you estimated used the Log-Log transformation. Therefore, your model is not the same as the data-generating process, which implies that you are not estimating the parameters of the data generating process. $\endgroup$
    – jbowman
    Commented Feb 4 at 2:07

1 Answer 1

0
$\begingroup$

If $P2=P1*0.95$ then $P3=P2*0.95=P1*(0.95)^2$. So if $P1=100$ then $P2=95$ and $P3=90.25$ which isn't a 5% price step. I think your data generating process is incorrect which leads to a price elasticity from the model that doesn't match what you think it ought to be ($\frac{0.1}{-0.05}=-2$). As for the latter question, I do not have an answer for the price elasticity extraction in trend-seasonality problem.

$\endgroup$
1
  • $\begingroup$ Ok, as @Brennan suggests: (price.index <- seq(from=1,by=-.05,length.out =20)) (price <- 200 * price.index) # price sequence with step = -5% of BASE(!) value (sales.index <- seq(from=1,by=.1,length.out =20)) (sales <- 1000*sales.index) # sales sequence with step = +10% of BASE(!) value plot(price,sales,type="b") +.1/-.05 #price elastic = -2 m <- lm(log(sales)~log(price)) coef(m) #price elastic = -0.3516593 it's not equal -2 $\endgroup$ Commented May 18, 2021 at 9:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.