{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Problem Set 2\n", "\n", "1. Add market power considerations to the basic mixed integer program that we discussed in class, following BMS (2008). For now, ignore forward contracts. Given that the model has only technologies (and no firms), pretend that each technology is a firm.\n", "\n", " a) What are the level of markups compared to the competitive equilibrium?\n", "\n", "2. Introduce the notion of forward contracts to the model. Given that these are unobserved, you can make different assumptions to calibrate them. It is often easy to interpret them as a percent of their equilibrium quantity, even if then they are not quite \"sunk\" (e.g., see Puller, 2007; Reguant, 2014). This parameter can also be intepreted as a \"conduct\" parameter.\n", "\n", " a) Write a function that solves the equilibrium for different values of the conduct parameter and plot markups as a function of those.\n", "\n", "3. Introduce competitive investment to the model. Allow investment for three technologies (New Gas, Wind, Solar). The fixed costs are provided in the tech file, which I annualized to be representative of annual costs.\n", "\n", " a) What is the baseline level of investment? We will use the zero profit condition in which the marginal technology just breaks even. You will need to add new variables for the capacity of new gas, wind, and solar, which are now set to zero as a parameter. You will need to expand the use of binary variables to include a new binary variable that equals 1 if investment in a technology is positive.\n", " -> Hint: As of now, u1 and u2 multiply the capacity of power plants. Use the M formulation to go around this multiplication for the techs with endogenoous investment.\n", " \n", " b) Does optimal investment change if you allow technologies to exercise market power as in part 2?" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", "\u001b[32m\u001b[1m No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.8/Project.toml`\n", "\u001b[32m\u001b[1m No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.8/Manifest.toml`\n" ] }, { "data": { "text/plain": [ "\"/Users/marreguant/Dropbox/TEACHING/GRAD/Econ_498_2023/pset1/\"" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "## LIBRARY AND PATH PREP\n", "begin\n", "\n", " using Pkg\n", " Pkg.add([\"DataFrames\", \"CSV\", \"JuMP\", \"HiGHS\", \"Plots\", \"Printf\", \"StatsBase\"])\n", "\n", " using DataFrames\n", " using CSV\n", " using JuMP\n", " using HiGHS\n", " using Plots\n", " using Printf\n", " using StatsBase\n", "\n", " dirpath = \"/Users/marreguant/Dropbox/TEACHING/GRAD/Econ_498_2023/pset1/\"\n", "\n", "end" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Data" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
7 rows × 15 columns (omitted printing of 7 columns)
techname | heatrate | heatrate2 | F | capLB | capUB | new | renewable | |
---|---|---|---|---|---|---|---|---|
String15 | Float64 | Float64 | Float64 | Float64 | Float64 | Int64 | Int64 | |
1 | Hydro/Nuclear | 10.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0 | 0 |
2 | Existing 1 | 6.67199 | 0.0929123 | 0.0 | 11.5 | 11.5 | 0 | 0 |
3 | Existing 2 | 9.79412 | 0.286247 | 0.0 | 14.5 | 14.5 | 0 | 0 |
4 | Existing 3 | 13.8181 | 20.5352 | 0.0 | 0.578 | 0.578 | 0 | 0 |
5 | New Gas | 6.6 | 0.0 | 78.4773 | 0.0 | 0.0 | 1 | 0 |
6 | Wind | 0.0 | 0.0 | 100.303 | 0.0 | 0.0 | 1 | 1 |
7 | Solar | 0.0 | 0.0 | 100.303 | 0.0 | 0.0 | 1 | 1 |