pset1_data1 <- read_csv("C:/Users/chuck/OneDrive/Documents/Econ170/pset1_data1_alt.csv")
## Parsed with column specification:
## cols(
## P = col_double(),
## Q = col_double(),
## C = col_double()
## )
head(pset1_data1)
## # A tibble: 6 x 3
## P Q C
## <dbl> <dbl> <dbl>
## 1 106. 85.5 53
## 2 124 44.6 62
## 3 122. 75.9 60.9
## 4 92.8 57.2 46.4
## 5 97.4 89.7 48.7
## 6 115. 69 57.3
typeof(pset1_data1)
## [1] "list"
pset1_data1_df <- as.data.frame(pset1_data1)
head(pset1_data1_df)
## P Q C
## 1 105.9 85.5 53.0
## 2 124.0 44.6 62.0
## 3 121.8 75.9 60.9
## 4 92.8 57.2 46.4
## 5 97.4 89.7 48.7
## 6 114.7 69.0 57.3
model1 <- lm(Q ~ P, data = pset1_data1_df)
summary(model1)
##
## Call:
## lm(formula = Q ~ P, data = pset1_data1_df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -20.674 -13.202 -1.189 12.684 19.424
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 122.25431 10.73995 11.383 3.08e-15 ***
## P -0.51593 0.09886 -5.219 3.81e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 13.32 on 48 degrees of freedom
## Multiple R-squared: 0.362, Adjusted R-squared: 0.3487
## F-statistic: 27.23 on 1 and 48 DF, p-value: 3.814e-06
After performing our OLS estimate on the data from pset1_data1_alt.csv that our values for a and b are a = 122.254 and b = 0.516.
Now using our estimates for a and b, we can use the fact that MR = MC in monopoly pricing to find the monopoly prices for each location and then throw that into a new csv file.
a = 122.254
b = 0.516
mq <- 1/2 * (a - b * pset1_data1_df$C)
mq
## [1] 47.4530 45.1310 45.4148 49.1558 48.5624 46.3436 47.9174 45.2858 50.0072
## [10] 47.0144 47.4788 44.6408 51.7100 48.2270 48.0980 54.2642 45.0020 40.9772
## [19] 48.8204 47.4788 49.4138 47.2466 49.2074 48.4850 44.0474 50.4200 49.7234
## [28] 48.4334 48.5624 44.5118 42.9896 50.7554 49.8782 46.8854 49.2074 43.0928
## [37] 43.9958 46.7822 46.7822 49.1042 46.2662 45.3116 47.8658 43.2476 46.4984
## [46] 48.5108 47.2724 45.3890 49.2590 48.4592
mp <- (a - mq)/b
mp
## [1] 144.9632 149.4632 148.9132 141.6632 142.8132 147.1132 144.0632 149.1632
## [9] 140.0132 145.8132 144.9132 150.4132 136.7132 143.4632 143.7132 131.7632
## [17] 149.7132 157.5132 142.3132 144.9132 141.1632 145.3632 141.5632 142.9632
## [25] 151.5632 139.2132 140.5632 143.0632 142.8132 150.6632 153.6132 138.5632
## [33] 140.2632 146.0632 141.5632 153.4132 151.6632 146.2632 146.2632 141.7632
## [41] 147.2632 149.1132 144.1632 153.1132 146.8132 142.9132 145.3132 148.9632
## [49] 141.4632 143.0132
pset1_df <- data.frame("Quantity" = pset1_data1_df$Q, "Price" = pset1_data1_df$P, "MC" = pset1_data1_df$C, "Monopoly Quantity" = mq, "Monopoly Price" = mp)
head(pset1_df)
## Quantity Price MC Monopoly.Quantity Monopoly.Price
## 1 85.5 105.9 53.0 47.4530 144.9632
## 2 44.6 124.0 62.0 45.1310 149.4632
## 3 75.9 121.8 60.9 45.4148 148.9132
## 4 57.2 92.8 46.4 49.1558 141.6632
## 5 89.7 97.4 48.7 48.5624 142.8132
## 6 69.0 114.7 57.3 46.3436 147.1132
write.csv(pset1_df, "C:/Users/chuck/OneDrive/Documents/Econ170/pset1_mp3.csv")
#profits w/o monopoly price & quantity
profit_i <- pset1_df$Quantity * (pset1_df$Price - pset1_df$MC)
profit_i
## [1] 4522.95 2765.20 4622.31 2654.08 4368.39 3960.60 4090.88 3279.55 2656.80
## [10] 3550.03 4237.29 4095.99 2569.32 4440.00 4022.70 2920.68 3075.00 2132.13
## [19] 2613.96 3194.40 4135.89 3341.80 4153.38 3777.90 4481.74 3103.36 3845.24
## [28] 2652.34 4353.78 4443.60 2151.18 2416.02 3304.88 3218.16 3118.50 4865.00
## [37] 3242.07 4598.12 4322.32 3937.70 2942.70 3096.72 3911.54 3568.95 3957.66
## [46] 2630.82 3259.59 2734.41 2654.20 2686.32
tot_profit1 <- sum(profit_i)
tot_profit1
## [1] 174678.1
#profits w/ monopoly price & quantity
profit_mp_i <- pset1_df$Monopoly.Quantity * (pset1_df$Monopoly.Price - pset1_df$MC)
tot_profit_mp <- sum(profit_mp_i)
tot_profit_mp
## [1] 217669.2
#consumer surplus w/o monopoly pricing
cs_i <- (a/b - pset1_df$Price) * (pset1_df$Quantity) * 1/2
tot_cs1 <- sum(cs_i)
tot_cs1
## [1] 222642.4
#consumer surplus w/ monopoly pricing
mcs_i <- (a/b - pset1_df$Monopoly.Price) * (pset1_df$Monopoly.Quantity) * 1/2
tot_mcs <- sum(mcs_i)
tot_mcs
## [1] 108834.6
#dwl w/o monopoly pricing
dwl_i <- (a - pset1_df$Quantity) * (pset1_df$Price - pset1_df$MC) * 1/2
tot_dwl1 <- sum(dwl_i)
tot_dwl1
## [1] 76114.52
#dwl w/o monopoly pricing
mdwl_i <- (a - pset1_df$Monopoly.Quantity) * (pset1_df$Monopoly.Price - pset1_df$MC) * 1/2
tot_mdwl <- sum(mdwl_i)
tot_mdwl
## [1] 171518.8
We see that without monopoly pricing the total profit comes out to 174678.10 and profits under monopoly pricing come out to 217669.20. Consumer surplus without monopoly pricing comes out to 222642.40 and under monopoly pricing comes out to only 108834.60 which we would expect under monopoly pricing. Dead weight loss without monopoly pricing is 76114.52 and with monopol pricing dead weight loss is 171518.80.
#uniform pricing
tot_A <- sum(A_i)
A_uni_i <- tot_A/398
tot_Q <- tot_A/2 - 10
tot_Q
## [1] 14509
length(data2$Group)
## [1] 398
uniform_Q_i <- tot_Q/398
uniform_Q_i
## [1] 36.45477
uniform_P_tot <- (tot_A - tot_Q)/10
uniform_P_tot
## [1] 1452.9
uniform_P_i <- (uniform_P_tot/398)
uniform_P_i
## [1] 3.650503
tot_profit_uniform <- (uniform_P_i - 2) * uniform_Q_i * 398
tot_profit_uniform
## [1] 23947.14
uniform_profit_i <- tot_profit_uniform/398
uniform_profit_i
## [1] 60.1687
cs_uniform_i <- (A_uni_i/10 - uniform_P_i) * (A_uni_i - uniform_Q_i) * 1/2
cs_uniform_i
## [1] 66.53912
cs_uniform_tot <- cs_uniform_i * 398
cs_uniform_tot
## [1] 26482.57
cs_diff <- cons_surp_i - cs_uniform_i
data2_uniform <- data.frame("Group" = data2$Group, "Location" = data2$Location, "Senior" = data2$Senior, "Q(P=5)" = data2$`Q(P=5)`, "A"=A_uni_i, "Q*" = uniform_Q_i, "P*"= uniform_P_i, "CS" = cs_uniform_i, "Profit" = uniform_profit_i, "Change in CS" = cs_diff)
head(data2_uniform)
## Group Location Senior Q.P.5. A Q. P. CS Profit
## 1 1 0 0 32 72.9598 36.45477 3.650503 66.53912 60.1687
## 2 8 0 0 38 72.9598 36.45477 3.650503 66.53912 60.1687
## 3 16 0 0 37 72.9598 36.45477 3.650503 66.53912 60.1687
## 4 20 0 0 48 72.9598 36.45477 3.650503 66.53912 60.1687
## 5 23 0 0 35 72.9598 36.45477 3.650503 66.53912 60.1687
## 6 25 0 0 34 72.9598 36.45477 3.650503 66.53912 60.1687
## Change.in.CS
## 1 12.51088
## 2 25.26088
## 3 23.07338
## 4 48.51088
## 5 18.77338
## 6 16.66088
The optimal price under uniform pricing we find to be p = 3.65. The total profits come out to be 23947.14 and the total consumer surplus comes out to 26482.57. Total profits are lower under uniform pricing but consumer surprlus has increased slightly.
cs_diff <- cons_surp_i - cs_uniform_i
cs_diff_tot <- sum(cs_diff)
cs_diff_tot
## [1] -1369.02
write.csv(data2_uniform, "C:/Users/chuck/OneDrive/Documents/Econ170/data2_uniform.csv")
Taking the difference between consumer surplus under differention versus uniform pricing comes out -1369.02 meaning that consumer surplus is 1369.02 higher under uniform pricing.
This table illustrates price discrimination by weight, delivery time, and distance.
The demand for overnight customers is extremely inelastic which we can tell because of the very steep drop off in prices from overnight pricing to 2 or 3 day pricing. The demand for 2 and 3 day shipping is relatively elastic as there is a much smaller drop in price from 2 to 3 day shipping.
We can tell that the marginal costs for FedEx must be relatively low because of the extremely small increase in pricing as the package size increases. If their marginal costs were not very low, they would have to increase prices much higher to maintain a profit.
The pricing by distance is quite inelastic for overnight shipping and extremely low for 2 and 3 day shipping. This makes sense assuming the overnight consumers have a much higher willingness to pay than the 2 and 3 day shipping customers. FedEx probably has a very small marginal cost for increasing the distance of delivery but knows that the overnight customers WTP is very high and they are not very concerned about the other customer groups for this section. If you need something shipped over night - you need it shipped over night.
Using the equation P/(P - MC) = -E, we can first solve for MC in the 3 day market and get that MC = 7.5. Since we know that MC is the same in both cases, we can now use the formula to solve for E in the over night market and get the E = -1.14. This makes sense given our prior inference that demand for overnight customers.
If we are going to do pure bundling, we would price each bundle at 4 giving us total profits of 8 - 4c since we are producing 4 units. If we sell the products separately we would price them each at 3 and have total profits of 6 - 2c since we are only producing 2 units. Therefore, pure bundling if the better choice if 8 - 4c > 6 - 2c meaning that pure bundling is better as long as c < 1. We are indifferent if c = 1 and prefer selling the goods separately if c > 1.
Since there is no collusion in this game because everyone is picking a number [0,10] simultaneously, it can help to think of this as a random number generator picking between [0,10] where we would get a normal distribution with a mean of 5. However, because every player is attempting to pick the average, we can expect the rational player to pick 5. This would still give us a mean of 5 which makes picking 5 the dominant strategy and the Nash Equilibrium is all players picking 5.
Assuming all players in the game are rational, the dominant strategy is picking 10(will explain this in part ii).
If we think of the game from part a) where there is no benefit to picking a number higher than the average, we assume all players will pick 5 and therefore that is the dominant strategy. However, now that there is an additional incentive to pick higher than the average, picking 6 would weakly dominate this strategy if every other player picks 5.
Working backwards, if the average were to be 5, than picking 6 would be the dominant strategy for a player. However, the other players are also rational and expect the other players to also think this way meaning that picking 7 would be weakly dominant to picking 6. Sequentially going through this, we arrive at all players selecting 10 which results in everyone recieving a 1 dollar pay-off and no one would get the extra payoff. From our practice in class however, not everyone appears to think rationally so running this experiment once may result in a lower average. Therefore, repeating this game would eventually result in all players selecting 10.
The only firms entering the market is firm 1. We get the best response functions for each firms being:
Using subsitution we find that the cournot equilibrium quantities for each firm are:
Therefore, firm 3 will choose not to enter into the market because the best response to firm 1 producing 40 and firm 2 producing 20 is to produce 0.
Therefore, firm 2 will also choose to not enter the market and firm 1 will decide to produce at Qc = 60 with firm 1’s profit = 1800.
Doubling the size of the market now gives us the demand function P = 240 - Q. Now all firms will enter the market. The new best response functions become:
Using substitution we get the new cournot equilibrium quantities:
We still need to check that the firms have greater than 0 profit in order for them to enter the market.
All firms will enter the market and experiences positive profits.