# 1. Measure the own price elasticity of X
modelX <- log(oz_X) ~ log(pX)
fitX <- lm(modelX)
summary(fitX)
## 
## Call:
## lm(formula = modelX)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.6564 -0.2395 -0.0788  0.1190  1.2732 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -16.5304     0.3840  -43.05   <2e-16 ***
## log(pX)      -6.9446     0.1074  -64.63   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3671 on 726 degrees of freedom
## Multiple R-squared:  0.8519, Adjusted R-squared:  0.8517 
## F-statistic:  4177 on 1 and 726 DF,  p-value: < 2.2e-16
#Self price elasticity for X is -6.9. 

# 2. Measure the own price elasticity of Y
modelY <- log(oz_Y) ~ log(pY)
fitY <- lm(modelY)
summary(fitY)
## 
## Call:
## lm(formula = modelY)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.9059 -0.6063  0.0550  0.6057  3.4900 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -15.5981     0.8990  -17.35   <2e-16 ***
## log(pY)      -6.6942     0.2519  -26.57   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9671 on 726 degrees of freedom
## Multiple R-squared:  0.4931, Adjusted R-squared:  0.4924 
## F-statistic: 706.1 on 1 and 726 DF,  p-value: < 2.2e-16
#Self price elasticity for Y is -6.69

# 3. Qualitatively compare the elasticities. What do you infer?
## The self price elasticity for X is -6.9. That is, for every 1% increase in the price of X (Coke), the demand of X drops by 6.9%.
## The self price elasticity for Y is -6.69. That is, for every 1% increase in the price of Y (Pepsi), the demand of Y drops by -6.69%
## Hence, if the retailer wants to offer a discount, he should offer it on X(Coke) because demand will increase more in comparison to Y (Pepsi).
# 4. Measure the cross-price elasticity of X w.r.t Y
modelXY <- log(oz_X) ~ log(pY)
fitXY <- lm(modelXY)
summary(fitXY)
## 
## Call:
## lm(formula = modelXY)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.3777 -0.5510 -0.4059 -0.1456  2.5414 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   9.4395     0.8857  10.658   <2e-16 ***
## log(pY)       0.3268     0.2482   1.317    0.188    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9528 on 726 degrees of freedom
## Multiple R-squared:  0.002383,   Adjusted R-squared:  0.001008 
## F-statistic: 1.734 on 1 and 726 DF,  p-value: 0.1883
#Cross price elasticity of X wrt Y is 0.32. However, the p-value is not significant (it is 0.188). Hence, we cannot reject our null hypotheses.

# 5. Measure the cross-price elasticity of Y w.r.t X
modelYX <- log(oz_Y) ~ log(pX)
fitYX <- lm(modelYX)
summary(fitYX)
## 
## Call:
## lm(formula = modelYX)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.3541 -0.9954 -0.0906  0.9914  3.6652 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  11.1712     1.4169   7.884 1.16e-14 ***
## log(pX)       0.8120     0.3965   2.048   0.0409 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.354 on 726 degrees of freedom
## Multiple R-squared:  0.005745,   Adjusted R-squared:  0.004376 
## F-statistic: 4.195 on 1 and 726 DF,  p-value: 0.0409
#Cross price elasticity of Y wrt X is 0.8. 

# 6. Are they the same? Or different? What do you infer?
# The cross price elasicities are different. Also, as already stated, we can't comment on cross-price elasticity of X w.r.t Y. The cross price elasticity of Y wrt X is 0.8. That is, with 1% increase in the price of X, the demand off Y increase by 0.8%.
# 7. Measure the price elasticity of X when a deal is (not) offered?
modelDealX <- log(oz_X) ~ log(pX)*deal_X
fitDealX <- lm(modelDealX)
summary(fitDealX)
## 
## Call:
## lm(formula = modelDealX)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.47804 -0.11484 -0.01953  0.06748  1.28798 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        -2.4229     0.5048  -4.800 1.93e-06 ***
## log(pX)            -2.9133     0.1435 -20.302  < 2e-16 ***
## deal_XYes          -3.9397     1.3448  -2.930   0.0035 ** 
## log(pX):deal_XYes  -1.4255     0.3588  -3.973 7.80e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2288 on 724 degrees of freedom
## Multiple R-squared:  0.9426, Adjusted R-squared:  0.9424 
## F-statistic:  3966 on 3 and 724 DF,  p-value: < 2.2e-16
#The difference in the price elasticity when the deal is offered vs not offered is -1.4. The price elasticity when deal is not offered is -2.9. The price elasticity when the deal is offered is -4.3. 

# 8. Is the price elasticity of X when a deal is offered different than the price elasticity when a deal is not offered?
## The difference in the price elasticity when the deal is offered vs not offered is -1.4. Since p-value is significant (<0.05) we can comment that the elasticities are statistically significant. It is a good idea to offer a deal on X.

# 9. Measure the price elasticity of Y when a deal is (not) offered?
modelDealY <- log(oz_Y) ~ log(pY)*deal_Y
fitDealY <- lm(modelDealY)
summary(fitDealY)
## 
## Call:
## lm(formula = modelDealY)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.83238 -0.61046  0.02982  0.60163  3.06752 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        -3.5422     1.7345  -2.042   0.0415 *  
## log(pY)            -3.2352     0.4947  -6.539 1.17e-10 ***
## deal_YYes          -7.0003     6.7669  -1.034   0.3013    
## log(pY):deal_YYes  -2.2084     1.7845  -1.238   0.2163    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.927 on 724 degrees of freedom
## Multiple R-squared:  0.5355, Adjusted R-squared:  0.5335 
## F-statistic: 278.2 on 3 and 724 DF,  p-value: < 2.2e-16
# The difference in the price elasticity when the deal is offered vs not offered is -2.2. The price elasticity when deal is not offered is -3.2. The price elasticity when the deal is offered is -5.4.

# 10 Is the price elasticity of Y when a deal is offered different than the price elasticity when a deal is not offered?
# The difference in the price elasticity when the deal is offered vs not offered is -2.2. However, the p-value is not less than 0.05. It is 0.2163. Hence, we cannot reject the null hypotheses and can't comment if the price elasticity of Y when a deal is offered different than the price elasticity when a deal is not offered.

```