setwd("~/Documents/MSBA/pricing/hw2")
pizza = read.csv('pizza.csv')
head(pizza)
## Week U.Vol.DiGiorno Price.DiGiorno U.Vol.Fresch
## 1 WEEK ENDING 11/22/03 7394 4.99 2483
## 2 WEEK ENDING 11/29/03 5721 5.00 4054
## 3 WEEK ENDING 12/06/03 6084 5.10 16585
## 4 WEEK ENDING 12/13/03 5965 4.99 11527
## 5 WEEK ENDING 12/20/03 7002 4.99 2693
## 6 WEEK ENDING 12/27/03 6237 4.99 1916
## Price.Fresch U.Vol.JO Price.JO U.Vol.RB Price.RB U.Vol.Tomb Price.Tomb
## 1 4.99 36815 2.50 6702 4.00 9486 3.98
## 2 4.83 29019 2.50 4990 4.00 7450 4.00
## 3 4.48 79794 2.00 5681 4.00 8102 4.00
## 4 4.49 32075 2.50 23893 3.33 8970 4.00
## 5 4.99 37042 2.33 6294 3.99 9146 4.00
## 6 4.99 32268 2.43 26025 3.00 9100 3.89
## U.Vol.TO Price.TO
## 1 11380 2.26
## 2 8460 2.29
## 3 6521 2.34
## 4 9384 2.23
## 5 9276 2.25
## 6 6469 2.26
dim(pizza)
## [1] 156 13
logpizza = log(pizza[,2:13])
head(logpizza)
## U.Vol.DiGiorno Price.DiGiorno U.Vol.Fresch Price.Fresch U.Vol.JO
## 1 8.908424 1.607436 7.817223 1.607436 10.51366
## 2 8.651899 1.609438 8.307459 1.574846 10.27571
## 3 8.713418 1.629241 9.716254 1.499623 11.28720
## 4 8.693664 1.607436 9.352447 1.501853 10.37583
## 5 8.853951 1.607436 7.898411 1.607436 10.51981
## 6 8.738255 1.607436 7.557995 1.607436 10.38183
## Price.JO U.Vol.RB Price.RB U.Vol.Tomb Price.Tomb U.Vol.TO Price.TO
## 1 0.9162907 8.810161 1.386294 9.157572 1.381282 9.339613 0.8153648
## 2 0.9162907 8.515191 1.386294 8.915969 1.386294 9.043104 0.8285518
## 3 0.6931472 8.644883 1.386294 8.999866 1.386294 8.782783 0.8501509
## 4 0.9162907 10.081341 1.202972 9.101641 1.386294 9.146761 0.8020016
## 5 0.8458683 8.747352 1.383791 9.121072 1.386294 9.135186 0.8109302
## 6 0.8878913 10.166813 1.098612 9.116030 1.358409 8.774777 0.8153648
attach(logpizza)
fit.digiorno = lm(logpizza$U.Vol.DiGiorno ~ logpizza$Price.DiGiorno
+ logpizza$Price.Fresch + logpizza$Price.JO + logpizza$Price.RB +
logpizza$Price.Tomb + logpizza$Price.TO,
data=logpizza)
summary(fit.digiorno)
##
## Call:
## lm(formula = logpizza$U.Vol.DiGiorno ~ logpizza$Price.DiGiorno +
## logpizza$Price.Fresch + logpizza$Price.JO + logpizza$Price.RB +
## logpizza$Price.Tomb + logpizza$Price.TO, data = logpizza)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.59668 -0.22407 -0.03977 0.15929 1.33692
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 14.61082 0.50721 28.806 < 2e-16 ***
## logpizza$Price.DiGiorno -4.23020 0.23987 -17.635 < 2e-16 ***
## logpizza$Price.Fresch 0.94110 0.15304 6.149 6.81e-09 ***
## logpizza$Price.JO 0.07138 0.18424 0.387 0.699
## logpizza$Price.RB -0.07568 0.14531 -0.521 0.603
## logpizza$Price.Tomb -0.13090 0.16570 -0.790 0.431
## logpizza$Price.TO -0.17412 0.20569 -0.846 0.399
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2977 on 149 degrees of freedom
## Multiple R-squared: 0.7424, Adjusted R-squared: 0.732
## F-statistic: 71.58 on 6 and 149 DF, p-value: < 2.2e-16
fit.fresch = lm(logpizza$U.Vol.Fresch ~ logpizza$Price.Fresch
+ logpizza$Price.Fresch + logpizza$Price.JO + logpizza$Price.RB +
logpizza$Price.Tomb + logpizza$Price.TO, data=logpizza)
summary(fit.fresch)
##
## Call:
## lm(formula = logpizza$U.Vol.Fresch ~ logpizza$Price.Fresch +
## logpizza$Price.Fresch + logpizza$Price.JO + logpizza$Price.RB +
## logpizza$Price.Tomb + logpizza$Price.TO, data = logpizza)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.88955 -0.32290 -0.09725 0.17956 2.46346
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 12.6543 0.8039 15.741 <2e-16 ***
## logpizza$Price.Fresch -4.0752 0.2840 -14.348 <2e-16 ***
## logpizza$Price.JO 0.5826 0.3287 1.773 0.0783 .
## logpizza$Price.RB 0.6864 0.2675 2.566 0.0113 *
## logpizza$Price.Tomb -0.0649 0.3060 -0.212 0.8323
## logpizza$Price.TO 0.7829 0.3729 2.100 0.0374 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5546 on 150 degrees of freedom
## Multiple R-squared: 0.5895, Adjusted R-squared: 0.5758
## F-statistic: 43.08 on 5 and 150 DF, p-value: < 2.2e-16
fit.JO = lm(logpizza$U.Vol.JO ~ logpizza$Price.JO
+ logpizza$Price.Fresch + logpizza$Price.JO + logpizza$Price.RB +
logpizza$Price.Tomb + logpizza$Price.TO, data=logpizza)
summary(fit.JO)
##
## Call:
## lm(formula = logpizza$U.Vol.JO ~ logpizza$Price.JO + logpizza$Price.Fresch +
## logpizza$Price.JO + logpizza$Price.RB + logpizza$Price.Tomb +
## logpizza$Price.TO, data = logpizza)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.40741 -0.14077 -0.01953 0.13273 1.10787
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.00591 0.29938 43.442 < 2e-16 ***
## logpizza$Price.JO -4.18175 0.12240 -34.166 < 2e-16 ***
## logpizza$Price.Fresch -0.08208 0.10577 -0.776 0.438978
## logpizza$Price.RB 0.29043 0.09960 2.916 0.004091 **
## logpizza$Price.Tomb 0.38646 0.11395 3.392 0.000889 ***
## logpizza$Price.TO 0.63447 0.13886 4.569 1.02e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2065 on 150 degrees of freedom
## Multiple R-squared: 0.8917, Adjusted R-squared: 0.8881
## F-statistic: 247.1 on 5 and 150 DF, p-value: < 2.2e-16
fit.RB = lm(logpizza$U.Vol.RB ~ logpizza$Price.RB
+ logpizza$Price.Fresch + logpizza$Price.JO + logpizza$Price.RB +
logpizza$Price.Tomb + logpizza$Price.TO, data=logpizza)
summary(fit.RB)
##
## Call:
## lm(formula = logpizza$U.Vol.RB ~ logpizza$Price.RB + logpizza$Price.Fresch +
## logpizza$Price.JO + logpizza$Price.RB + logpizza$Price.Tomb +
## logpizza$Price.TO, data = logpizza)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.96661 -0.13651 -0.01974 0.13251 1.70824
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 12.1319 0.4631 26.197 < 2e-16 ***
## logpizza$Price.RB -3.6992 0.1541 -24.010 < 2e-16 ***
## logpizza$Price.Fresch 0.2436 0.1636 1.489 0.13858
## logpizza$Price.JO 0.6112 0.1893 3.228 0.00153 **
## logpizza$Price.Tomb 0.5607 0.1763 3.181 0.00178 **
## logpizza$Price.TO 0.2114 0.2148 0.984 0.32662
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3195 on 150 degrees of freedom
## Multiple R-squared: 0.8043, Adjusted R-squared: 0.7978
## F-statistic: 123.3 on 5 and 150 DF, p-value: < 2.2e-16
fit.Tomb = lm(logpizza$U.Vol.Tomb ~ logpizza$Price.Tomb
+ logpizza$Price.Fresch + logpizza$Price.JO + logpizza$Price.RB +
logpizza$Price.Tomb + logpizza$Price.TO, data=logpizza)
summary(fit.Tomb)
##
## Call:
## lm(formula = logpizza$U.Vol.Tomb ~ logpizza$Price.Tomb + logpizza$Price.Fresch +
## logpizza$Price.JO + logpizza$Price.RB + logpizza$Price.Tomb +
## logpizza$Price.TO, data = logpizza)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.80029 -0.16033 0.01432 0.13664 1.65585
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.3287 0.4863 27.408 <2e-16 ***
## logpizza$Price.Tomb -3.6670 0.1851 -19.812 <2e-16 ***
## logpizza$Price.Fresch -0.1049 0.1718 -0.611 0.5423
## logpizza$Price.JO 0.5102 0.1988 2.566 0.0113 *
## logpizza$Price.RB 0.2236 0.1618 1.382 0.1690
## logpizza$Price.TO 0.3387 0.2256 1.502 0.1353
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3355 on 150 degrees of freedom
## Multiple R-squared: 0.7351, Adjusted R-squared: 0.7263
## F-statistic: 83.26 on 5 and 150 DF, p-value: < 2.2e-16
fit.TO = lm(logpizza$U.Vol.TO ~ logpizza$Price.TO
+ logpizza$Price.Fresch + logpizza$Price.JO + logpizza$Price.RB +
logpizza$Price.Tomb + logpizza$Price.TO, data=logpizza)
summary(fit.TO)
##
## Call:
## lm(formula = logpizza$U.Vol.TO ~ logpizza$Price.TO + logpizza$Price.Fresch +
## logpizza$Price.JO + logpizza$Price.RB + logpizza$Price.Tomb +
## logpizza$Price.TO, data = logpizza)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.55850 -0.16185 -0.00075 0.14054 0.75199
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 10.8692 0.3492 31.128 < 2e-16 ***
## logpizza$Price.TO -4.6321 0.1619 -28.602 < 2e-16 ***
## logpizza$Price.Fresch 0.2653 0.1234 2.150 0.0331 *
## logpizza$Price.JO 0.5847 0.1428 4.096 6.86e-05 ***
## logpizza$Price.RB 0.1971 0.1162 1.696 0.0919 .
## logpizza$Price.Tomb 0.6655 0.1329 5.007 1.53e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2409 on 150 degrees of freedom
## Multiple R-squared: 0.8502, Adjusted R-squared: 0.8453
## F-statistic: 170.3 on 5 and 150 DF, p-value: < 2.2e-16
If DiGiorno raises its price by 1%, the average percentage decrease in its demand is 4.23%, given all else equal.
If DiGiorno drops its price by 1%, the average percentage increase in its demand is 4.23%, given all else equal.
If Red Baron raises its price by 1%, the average percentage decrease in its demand is 3.69%, given all else equal.
If DiGiorno drops its price by 1%, the average percentage increase in its demand is 3.69%, given all else equal.
If JO raises its price by 1%, the average percentage decrease in its demand is 4.18%, given all else equal.
If JO drops its price by 1%, the average percentage increase in its demand is 4.18%, given all else equal.
comments
We define reservation price as price in the first period in this dataset. So, any price above reservation price constitutes a loss for consumer, and any price below is a gain. The coefficients for price are all negative and significant for all 5 brands, so the higher actual price is, the more loss consumers see, and the lower sales is.