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

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.

Part 2

a)

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.

b)

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.

c)

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.