class: center, middle, inverse, title-slide .title[ # Lecture 13 ] .subtitle[ ## Travel cost method ] .author[ ### Ivan Rudik ] .date[ ### AEM 4510 ] --- exclude: true ``` r if (!require("pacman")) install.packages("pacman") pacman::p_load( tidyverse, magrittr, xaringanExtra, rlang, patchwork, broom, viridis, fixest, maps, tigris, sf ) ``` ``` ## Installing package into '/opt/homebrew/lib/R/4.6/site-library' ## (as 'lib' is unspecified) ``` ``` ## ## viridis installed ``` ``` ## Installing package into '/opt/homebrew/lib/R/4.6/site-library' ## (as 'lib' is unspecified) ``` ``` ## also installing the dependencies 'zoo', 'Formula', 'sandwich', 'dreamerr', 'stringmagic' ``` ``` ## ## fixest installed ``` ``` ## Installing package into '/opt/homebrew/lib/R/4.6/site-library' ## (as 'lib' is unspecified) ``` ``` ## ## maps installed ``` ``` ## Installing package into '/opt/homebrew/lib/R/4.6/site-library' ## (as 'lib' is unspecified) ``` ``` ## also installing the dependencies 'proxy', 'e1071', 'wk', 'classInt', 's2', 'units', 'sf' ``` ``` ## ## tigris installed ``` ``` r source("R/video_helpers.R") set.seed(1) options(htmltools.dir.version = FALSE) knitr::opts_hooks$set(fig.callout = function(options) { if (options$fig.callout) { options$echo <- FALSE } knitr::opts_chunk$set( cache = TRUE, cache.extra = list(tools::md5sum("R/video_helpers.R")), echo = TRUE, fig.align = "center" ) options }) red_pink <- "#e64173" blue <- "#3C93DC" red <- "#ff0000" ``` ``` ## Warning in xaringanExtra::style_panelset(panel_tab_color_active = "red"): 'xaringanExtra::style_panelset' is deprecated. ## Use 'style_panelset_tabs' instead. ## See help("Deprecated") ``` ``` ## Warning in style_panelset_tabs(...): The argument names of `style_panelset()` ## changed in xaringanExtra 0.1.0. Please refer to the documentation to update to ## the latest names. ``` ``` ## NULL ``` <style> .clean-table { border-collapse: collapse; font-size: 0.62em; width: 100%; } .clean-table th { border-bottom: 2px solid #3C93DC; color: #1f2d3d; font-weight: 700; padding: 6px 8px; text-align: left; } .clean-table td { border-bottom: 1px solid #d9dee6; padding: 5px 8px; } .clean-table tr:nth-child(even) td { background: #f7f8fa; } </style> ``` r red_pink <- "#e64173" # A blank theme for ggplot theme_empty <- theme_minimal() + theme( legend.position = "none", title = element_text(size = 24), axis.text.x = element_text(size = 24), axis.text.y = element_text(size = 24, color = "#ffffff"), axis.title.x = element_text(size = 24), axis.title.y = element_text(size = 24), panel.grid.minor.x = element_blank(), panel.grid.major.y = element_blank(), panel.grid.minor.y = element_blank(), panel.grid.major.x = element_blank(), panel.background = element_rect(fill = "#ffffff", colour = NA), plot.background = element_rect(fill = "#ffffff", colour = NA), axis.line = element_line(colour = "black"), axis.ticks = element_line(), ) theme_blank <- theme_minimal() + theme( legend.position = "none", title = element_text(size = 24), axis.text.x = element_blank(), axis.text.y = element_blank(), axis.title.x = element_blank(), axis.title.y = element_blank(), panel.grid.minor.x = element_blank(), panel.grid.major.y = element_blank(), panel.grid.minor.y = element_blank(), panel.grid.major.x = element_blank(), panel.background = element_rect(fill = "#ffffff", colour = NA), plot.background = element_rect(fill = "#ffffff", colour = NA), axis.line = element_blank(), axis.ticks = element_blank(), ) theme_regular <- theme_minimal() + theme( legend.position = "none", title = element_text(size = 14), axis.text.x = element_text(size = 24), axis.text.y = element_text(size = 24), axis.title.x = element_text(size = 24), axis.title.y = element_text(size = 24), panel.grid.minor.x = element_blank(), panel.grid.minor.y = element_blank(), panel.grid.major.x = element_blank(), axis.ticks = element_line(), axis.line = element_line(), panel.background = element_rect(fill = "#ffffff", colour = NA), plot.background = element_rect(fill = "#ffffff", colour = NA) ) ``` ``` r clean_table = function(data, col_names = names(data), digits = 3) { knitr::kable( data, format = "html", col.names = col_names, digits = digits, table.attr = 'class="clean-table"' ) } ``` ``` r # initialize seed and data set.seed(1000) num_trips <- 100 trip_data <- expand.grid( house_num = seq(from = 1, to = num_trips), site = 1:26 ) # make fake dataset trip_data <- trip_data %>% as_tibble() %>% mutate( trips = sample(0:8, num_trips * 26, replace = TRUE), income = exp(rnorm(num_trips * 26)) * 3000 + 50000 + rnorm(num_trips * 2) * 15000, income = ifelse(income < 10000, 10000, income), travel_cost = exp(rnorm(num_trips * 26)) * 30, travel_cost_other = exp(rnorm(num_trips * 26)) * 35, trips = round(-.01 * travel_cost + .01 * travel_cost_other + 3 / 100000 * income), water_clarity = runif(num_trips * 26) ) %>% group_by(site) %>% mutate(water_clarity = mean(water_clarity)) %>% ungroup() %>% mutate(trips = case_when( trips <= 0 ~ 0, TRUE ~ trips + 3 * round(water_clarity) )) ``` --- # Roadmap - How do we estimate the value of recreational goods? --- class: inverse, center, middle name: background # Background <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> --- # Should we separate the Great Lakes and Mississippi?
--- # Should we separate the Great Lakes and Mississippi? .center[ <img src="files/12-carp1.png" alt="" width="70%" /> ] --- # Should we separate the Great Lakes and Mississippi? .center[ <img src="files/12-carp2.png" alt="" width="50%" /> ] --- # Should we separate the Great Lakes and Mississippi? Benefits from barriers accrue to anglers in the Great Lakes, both commercial and recreational Costs come from cost of building the barriers plus cost of maintaining them, plus costs of reduced shipping (if any), plus any other costs associated with the barriers How do we figure out the benefits from recreational anglers? --- # Why do we need travel cost? Recreational areas .hi[have value] -- Their quality also has value -- Not placing a value on recreation is essentially giving it a value of .hi-purple[zero] -- This is likely inappropriate -- If someone dumped toxic waste in Taughannock does that have zero cost? --- # What is the travel cost method? The travel cost method uses observable data on recreation visitation to infer the recreational value of environmental amenities -- The central idea is that the time and travel cost expenses that people incur to visit a site represent the .hi[price] of access to the site -- This means that people's WTP to visit can be estimated based on the number of visits they make to sites of different prices -- This gives us a demand curve for sites/amenities, so we can value changes in these environmental amenities --- # Hotelling After WWII, the U.S. national park service solicited advice from economists on methods for quantifying the value of specific park properties -- Would total entrance fee that people pay measure the value? -- .hi-red[No!] -- Harold Hotelling proposed the first indirect method for measuring the demand of a non-market good in 1947 --- # Hotelling > Let concentric zones be defined around each park so that the cost of travel to the park from all points in one of these zones is approximately constant. The persons entering the park in a year, or a suitable chosen sample of them, are to be listed according to the zone from which they came. The fact that they come means that the service of the park is at least worth the cost, and this cost can probably be estimated with fair accuracy. --- # Hotelling > A comparison of the cost of coming from a zone with the number of people who do come from it, together with a count of the population of the zone, enables us to plot one point for each zone on a demand curve for the service of the park. By a judicious process of fitting, it should be possible to get a good enough approximation to this demand curve to provide, through integration, a measure of consumers’ surplus.. -- About twelve years after, Trice and Wood (1958) and Clawson (1959) independently implemented the methodology --- # Theoretical foundation How can we use observed data to tell us something about willingness to pay? -- Consider a single consumer and a single recreation site -- - Total number of recreation trips: x, to site of quality: q - Total budget of time: T - Working time: H - Non-recreation, non-work time: l - Hourly wage: w - Money cost of reaching the site: c; travel time to the site: t - Expenditures on other market goods: z --- # Theoretical foundation This lets us write down the consumer's utility maximization problem: `$$\max_{x,z,l} U(x,z,l,q) \,\,\,\, \text{subject to: }\,\,\, \underbrace{wH = cx + z}_{\text{money budget}}, \,\, \underbrace{T = H + l + tx}_{\text{time budget}}$$` -- Multiply the time budget by `\(w\)` and substitute the money budget in: -- `$$\max_{x,z,l} U(x,z,l,q) \,\,\,\, \text{subject to: }\,\,\, \underbrace{wT = (c+wt)x +z + wl}_{\text{combined money/time budget}}$$` Where now we have one constraint on the dollar value of time --- # Theoretical foundation `$$\max_{x,z,l} U(x,z,l,q) \,\,\,\, \text{subject to: }\,\,\, \underbrace{wT = (c+wt)x + z + wl}_{\text{combined money/time budget}}$$` `\(wT\)` is the consumer's .hi[full income], their money value of total time budget `\(c+wt\)` is the consumer's .hi[full price], their total cost to reach the site `\(z\)` is their consumption of other goods `\(wl\)` is the opportunity cost of non-recreation site leisure --- # Theoretical foundation Let `\(Y = wT\)` be the consumer's .hi[full income], their money value of total time budget -- Let `\(p = c+wt\)` be the consumer's .hi[full price], their total cost to reach the site Then we can write the problem as: -- `$$\max_{x,z,l} U(x,z,l,q) \,\,\,\, \text{subject to: }\,\,\, \underbrace{Y = z + px + wl}_{\text{combined budget}}$$` -- Solve the constraint for `\(z\)` and substitute into the utility function... --- # Theoretical foundation `$$\max_{x,l} U\left(x,Y-px-wl,l,q\right)$$` Choose trips `\(x\)` and leisure `\(l\)`, this implies an amount of money left over -- This has first-order conditions: `$$[x] \,\,\, U_x - pU_z = 0 \rightarrow \frac{U_x}{U_z} = p$$` -- and `$$[l] \,\,\, -wU_z + U_l = 0 \rightarrow \frac{U_l}{U_z} = w$$` --- # Theoretical foundation `\(\frac{U_x}{U_z} = p\)` tells us the consumer equates the marginal rate of substitution between recreational trips and consumption to be the full price of the recreational trip -- What does this mean? -- .hi[The value of the marginal recreational trip to the consumer, in dollar terms, is revealed by the full price p] --- # Theoretical foundation `$$U_x - pU_z = 0 \qquad -wU_z + U_l = 0$$` The above FOCs are two equations, the consumer had two choices (x,l) so we had two unknowns -- If we know the functional form of `\(U\)` we can use the FOCs to solve for x (and l) as a function of the parameters (p,Y,q): `$$x = f(p,Y,q)$$` -- This is simply the consumer's .hi-blue[demand curves] for recreation as a function of the full price p, full budget Y, and quality q --- # Theoretical foundation `$$x = f(p,Y,q)$$` If we observe consumers going to sites of different full prices `\(p_1,p_2,\dots,p_n\)`, we are moving up and down their recreation demand curve -- This lets us trace out the demand curve -- Changing Y or q shifts the demand curve in or out: these are income and quasi-price effects -- Once we have it, we can compute surplus! --- # Zonal (single-site) model Here's the most basic travel cost model to start -- - Construct distance zones (i) as concentric circles emanating from the recreation site - Travel costs from all points within each zone to the site are sufficiently close in magnitude to justify neglecting the differences -- - From a sample of visitors `\((v_i)\)` at the recreation site, determine zones of origin and their populations `\((n_i)\)` -- - Calculate the per capita visitation rates for each zone of origin `\((t_i = (v_i/n_i))\)` --- # Zonal (single-site) model - Construct a travel cost measure `\((tc_i)\)` that reflects the round-trip costs of travel from the zone of origin to the recreation site (time and gas), + an entry fee `\((fee)\)` which may be zero and does not vary across zones -- - Collect relevant socioeconomic data `\((s_i)\)` such as income and education for each distance zone -- - Use statistical methods to estimate the trip demand curve: the relationship between per-capita visitation rates, cost per visit, [and travel costs to other sites `\((tc_{si})\)`] controlling for socioeconomic differences -- - `\(t_i = g(tc_i + fee; tc_{si}, s_i) + \varepsilon_i\)` where `\(g\)` can be linear --- # Zonal (single-site) model Here's a simple example of a set of zones 1-5: <img src="13-slides-travel-cost_files/figure-html/sample2 scatter-1.svg" alt="" style="display: block; margin: auto;" /> --- # Zonal (single-site) model Suppose we have the following data: <div style="display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 18px; font-size: 0.62em;"> <div style="border-left: 5px solid #3C93DC; padding: 8px 10px; background: #f7f8fa;"> <div style="font-weight: 700; font-size: 1.2em; margin-bottom: 6px;">Zone A</div> <div>Distance: 2</div> <div>Population: 10,000</div> <div>Travel cost: 20</div> <div>Visits per person: 15</div> </div> <div style="border-left: 5px solid #3C93DC; padding: 8px 10px; background: #f7f8fa;"> <div style="font-weight: 700; font-size: 1.2em; margin-bottom: 6px;">Zone B</div> <div>Distance: 30</div> <div>Population: 10,000</div> <div>Travel cost: 30</div> <div>Visits per person: 13</div> </div> <div style="border-left: 5px solid #3C93DC; padding: 8px 10px; background: #f7f8fa;"> <div style="font-weight: 700; font-size: 1.2em; margin-bottom: 6px;">Zone C</div> <div>Distance: 90</div> <div>Population: 20,000</div> <div>Travel cost: 65</div> <div>Visits per person: 6</div> </div> <div style="border-left: 5px solid #3C93DC; padding: 8px 10px; background: #f7f8fa;"> <div style="font-weight: 700; font-size: 1.2em; margin-bottom: 6px;">Zone D</div> <div>Distance: 140</div> <div>Population: 10,000</div> <div>Travel cost: 80</div> <div>Visits per person: 3</div> </div> <div style="border-left: 5px solid #3C93DC; padding: 8px 10px; background: #f7f8fa;"> <div style="font-weight: 700; font-size: 1.2em; margin-bottom: 6px;">Zone E</div> <div>Distance: 150</div> <div>Population: 10,000</div> <div>Travel cost: 90</div> <div>Visits per person: 1</div> </div> </div> If we plot cost by visits per person, we have a measure of the demand curve... --- # Zonal (single-site) model .pull-left[ This is a very simple example where it happens to be an exactly straight line, most likely the data won't be this perfect The line is simply: `$$t_i = \beta_0 + \beta_1 tc_i$$` where `\(\beta_0\)` is the intercept and `\(\beta_1\)` is the slope ] .pull-right[ <img src="13-slides-travel-cost_files/figure-html/zonal example-1.svg" alt="" style="display: block; margin: auto;" /> ] --- # Zonal (single-site) model .pull-left[ The data will most likely look like this, but even this is probably too clean It ignores things like income, other sites, other household characteristics For now, we'd continue by fitting a line through the points (OLS/regression) ] .pull-right[ <img src="13-slides-travel-cost_files/figure-html/zonal example 2-1.svg" alt="" style="display: block; margin: auto;" /> ] --- # Zonal (single-site) model Based on the estimate model coefficients, construct the (inverse) demand curve -- .hi[For each zone:] predict total visitation given various fees -- Entry fee on the y-axis (price), and the number of predicted total visits on the x-axis (quantity) -- The demand curve is different for different zone because different social economic variables -- The (use) value of the park/site to each zone is given by the area underneath the corresponding demand curve --- # Issues with the single-site model What are some potential issues and concerns with this approach? -- It ignores non-use value (automatically zero for non-users) -- What are the right zones to choose? -- What is the right functional form for demand? -- How do we measure the opportunity cost of time? -- How do we treat multi-purpose trips? -- How do we value particular site attributes? Can't disentangle them at a single site --- # Multi-site model To value particular site attributes we need to have multiple sites (with different attributes!) -- We can answer questions like: -- What is the benefit of a fish restocking program? - Need to know the value of fish catch rate for visitors -- What is the benefit of water clarity? -- What is the benefit of tree replanting? --- # Multi-site model Suppose we have a dataset with a large number of individuals and sites -- Individuals are given by `\(i=1,\dots,N\)` and sites are given by `\(j=1,\dots,J\)` -- We observe the number of times each individual visited each site -- The multi-site model works as follows --- # Multi-site model .hi[Step 1:] Do the single-site estimation for each site: `$$t_{ij} = \beta_{0j} + \beta_{1j} tc_{ij} + \beta_{2j} tc_{sij} + \beta_{3j} s_i + \varepsilon_{ij}$$` -- .hi[Step 2:] Recover all the `\(\beta\)`s from each step 1 regression so that we have a set of J `\(\beta_{0j}\)`s for `\(j=1\dots,J\)`, `\(\beta_{1j}\)`s for `\(j=1\dots,J\)`, etc -- These `\(\beta\)`s tell us the slope `\((\beta_{1j})\)` and intercept `\((\beta_{0j}, \beta_{2j}, \beta_{3j})\)` -- `\(\beta_{2j}, \beta_{3j}\)` capture how the cost of substitute sites and household characteristics matter: they shift demand up and down --- # Multi-site model .hi[Step 3:] Take each set of `\(J\)` coefficient estimates and use them as the dependent variable in a regression on site attributes `\(z\)`: `$$\hat{\beta}_{0j} = \alpha_{00} + \alpha_{01}z_j + \epsilon_{0j}$$` `$$\hat{\beta}_{1j} = \alpha_{10} + \alpha_{11}z_j + \epsilon_{1j}$$` `$$\hat{\beta}_{2j} = \alpha_{20} + \alpha_{21}z_j + \epsilon_{2j}$$` `$$\hat{\beta}_{3j} = \alpha_{30} + \alpha_{31}z_j + \epsilon_{3j}$$` The demand curve shifts with `\((\alpha_{00}, \alpha_{01})\)` and rotates with `\((\alpha_{10}, \alpha_{11})\)` as we change site attribute `\(z\)` --- # Valuing attributes with a multi-site model .pull-left[ If we improve the quality of a site from z<sub>1</sub> to z<sub>2</sub>, demand for that site shifts up The gain in CS, holding the cost fixed, is given by the blue area Once we estimate demand curves, we can see how welfare changes when we alter quality characteristics! ] .pull-right[ <img src="13-slides-travel-cost_files/figure-html/multi site example-1.svg" alt="" style="display: block; margin: auto;" /> ] --- # Multi-site example <table class="clean-table"> <thead> <tr> <th style="text-align:right;"> Household </th> <th style="text-align:right;"> Site </th> <th style="text-align:right;"> Trips </th> <th style="text-align:right;"> Income </th> <th style="text-align:right;"> Travel cost </th> <th style="text-align:right;"> Other-site cost </th> <th style="text-align:right;"> Water clarity </th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 4 </td> <td style="text-align:right;"> 40450 </td> <td style="text-align:right;"> 38.9 </td> <td style="text-align:right;"> 16.4 </td> <td style="text-align:right;"> 0.51 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> 60304 </td> <td style="text-align:right;"> 29.8 </td> <td style="text-align:right;"> 37.5 </td> <td style="text-align:right;"> 0.51 </td> </tr> <tr> <td style="text-align:right;"> 3 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> 66681 </td> <td style="text-align:right;"> 42.2 </td> <td style="text-align:right;"> 67.2 </td> <td style="text-align:right;"> 0.51 </td> </tr> <tr> <td style="text-align:right;"> 4 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> 52886 </td> <td style="text-align:right;"> 11.0 </td> <td style="text-align:right;"> 51.3 </td> <td style="text-align:right;"> 0.51 </td> </tr> <tr> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> 69282 </td> <td style="text-align:right;"> 15.7 </td> <td style="text-align:right;"> 7.7 </td> <td style="text-align:right;"> 0.51 </td> </tr> <tr> <td style="text-align:right;"> 6 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> 36948 </td> <td style="text-align:right;"> 4.3 </td> <td style="text-align:right;"> 48.0 </td> <td style="text-align:right;"> 0.51 </td> </tr> <tr> <td style="text-align:right;"> 7 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 6 </td> <td style="text-align:right;"> 60866 </td> <td style="text-align:right;"> 5.3 </td> <td style="text-align:right;"> 91.0 </td> <td style="text-align:right;"> 0.51 </td> </tr> <tr> <td style="text-align:right;"> 8 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> 35557 </td> <td style="text-align:right;"> 65.0 </td> <td style="text-align:right;"> 160.6 </td> <td style="text-align:right;"> 0.51 </td> </tr> </tbody> </table> --- # First stage estimation <table class="clean-table"> <thead> <tr> <th style="text-align:right;"> Intercept </th> <th style="text-align:right;"> Own price </th> <th style="text-align:right;"> Cross price </th> <th style="text-align:right;"> Income (per $10,000) </th> <th style="text-align:right;"> Site </th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> 2.994 </td> <td style="text-align:right;"> -0.016 </td> <td style="text-align:right;"> 0.011 </td> <td style="text-align:right;"> 0.321 </td> <td style="text-align:right;"> 1 </td> </tr> <tr> <td style="text-align:right;"> 2.448 </td> <td style="text-align:right;"> -0.012 </td> <td style="text-align:right;"> 0.010 </td> <td style="text-align:right;"> 0.397 </td> <td style="text-align:right;"> 2 </td> </tr> <tr> <td style="text-align:right;"> 2.365 </td> <td style="text-align:right;"> -0.020 </td> <td style="text-align:right;"> 0.011 </td> <td style="text-align:right;"> 0.450 </td> <td style="text-align:right;"> 3 </td> </tr> <tr> <td style="text-align:right;"> 2.325 </td> <td style="text-align:right;"> -0.019 </td> <td style="text-align:right;"> 0.012 </td> <td style="text-align:right;"> 0.438 </td> <td style="text-align:right;"> 4 </td> </tr> <tr> <td style="text-align:right;"> 2.045 </td> <td style="text-align:right;"> -0.014 </td> <td style="text-align:right;"> 0.014 </td> <td style="text-align:right;"> 0.450 </td> <td style="text-align:right;"> 5 </td> </tr> <tr> <td style="text-align:right;"> -0.236 </td> <td style="text-align:right;"> -0.007 </td> <td style="text-align:right;"> 0.010 </td> <td style="text-align:right;"> 0.321 </td> <td style="text-align:right;"> 6 </td> </tr> <tr> <td style="text-align:right;"> 2.665 </td> <td style="text-align:right;"> -0.021 </td> <td style="text-align:right;"> 0.012 </td> <td style="text-align:right;"> 0.395 </td> <td style="text-align:right;"> 7 </td> </tr> <tr> <td style="text-align:right;"> -0.346 </td> <td style="text-align:right;"> -0.004 </td> <td style="text-align:right;"> 0.010 </td> <td style="text-align:right;"> 0.324 </td> <td style="text-align:right;"> 8 </td> </tr> <tr> <td style="text-align:right;"> 2.983 </td> <td style="text-align:right;"> -0.013 </td> <td style="text-align:right;"> 0.011 </td> <td style="text-align:right;"> 0.315 </td> <td style="text-align:right;"> 9 </td> </tr> <tr> <td style="text-align:right;"> -0.103 </td> <td style="text-align:right;"> -0.009 </td> <td style="text-align:right;"> 0.010 </td> <td style="text-align:right;"> 0.302 </td> <td style="text-align:right;"> 10 </td> </tr> <tr> <td style="text-align:right;"> 2.060 </td> <td style="text-align:right;"> -0.010 </td> <td style="text-align:right;"> 0.012 </td> <td style="text-align:right;"> 0.423 </td> <td style="text-align:right;"> 11 </td> </tr> <tr> <td style="text-align:right;"> 0.150 </td> <td style="text-align:right;"> -0.008 </td> <td style="text-align:right;"> 0.010 </td> <td style="text-align:right;"> 0.252 </td> <td style="text-align:right;"> 12 </td> </tr> <tr> <td style="text-align:right;"> -0.251 </td> <td style="text-align:right;"> -0.007 </td> <td style="text-align:right;"> 0.009 </td> <td style="text-align:right;"> 0.327 </td> <td style="text-align:right;"> 13 </td> </tr> <tr> <td style="text-align:right;"> -0.015 </td> <td style="text-align:right;"> -0.006 </td> <td style="text-align:right;"> 0.010 </td> <td style="text-align:right;"> 0.276 </td> <td style="text-align:right;"> 14 </td> </tr> <tr> <td style="text-align:right;"> 2.549 </td> <td style="text-align:right;"> -0.015 </td> <td style="text-align:right;"> 0.013 </td> <td style="text-align:right;"> 0.365 </td> <td style="text-align:right;"> 15 </td> </tr> <tr> <td style="text-align:right;"> -0.302 </td> <td style="text-align:right;"> -0.008 </td> <td style="text-align:right;"> 0.010 </td> <td style="text-align:right;"> 0.327 </td> <td style="text-align:right;"> 16 </td> </tr> <tr> <td style="text-align:right;"> 2.370 </td> <td style="text-align:right;"> -0.017 </td> <td style="text-align:right;"> 0.011 </td> <td style="text-align:right;"> 0.433 </td> <td style="text-align:right;"> 17 </td> </tr> <tr> <td style="text-align:right;"> -0.090 </td> <td style="text-align:right;"> -0.007 </td> <td style="text-align:right;"> 0.009 </td> <td style="text-align:right;"> 0.313 </td> <td style="text-align:right;"> 18 </td> </tr> <tr> <td style="text-align:right;"> 3.067 </td> <td style="text-align:right;"> -0.022 </td> <td style="text-align:right;"> 0.010 </td> <td style="text-align:right;"> 0.338 </td> <td style="text-align:right;"> 19 </td> </tr> <tr> <td style="text-align:right;"> -0.112 </td> <td style="text-align:right;"> -0.008 </td> <td style="text-align:right;"> 0.011 </td> <td style="text-align:right;"> 0.298 </td> <td style="text-align:right;"> 20 </td> </tr> <tr> <td style="text-align:right;"> 2.754 </td> <td style="text-align:right;"> -0.017 </td> <td style="text-align:right;"> 0.010 </td> <td style="text-align:right;"> 0.384 </td> <td style="text-align:right;"> 21 </td> </tr> <tr> <td style="text-align:right;"> -0.078 </td> <td style="text-align:right;"> -0.004 </td> <td style="text-align:right;"> 0.011 </td> <td style="text-align:right;"> 0.253 </td> <td style="text-align:right;"> 22 </td> </tr> <tr> <td style="text-align:right;"> 2.425 </td> <td style="text-align:right;"> -0.017 </td> <td style="text-align:right;"> 0.011 </td> <td style="text-align:right;"> 0.409 </td> <td style="text-align:right;"> 23 </td> </tr> <tr> <td style="text-align:right;"> 0.127 </td> <td style="text-align:right;"> -0.008 </td> <td style="text-align:right;"> 0.010 </td> <td style="text-align:right;"> 0.273 </td> <td style="text-align:right;"> 24 </td> </tr> <tr> <td style="text-align:right;"> -0.063 </td> <td style="text-align:right;"> -0.007 </td> <td style="text-align:right;"> 0.010 </td> <td style="text-align:right;"> 0.303 </td> <td style="text-align:right;"> 25 </td> </tr> <tr> <td style="text-align:right;"> -0.079 </td> <td style="text-align:right;"> -0.009 </td> <td style="text-align:right;"> 0.010 </td> <td style="text-align:right;"> 0.314 </td> <td style="text-align:right;"> 26 </td> </tr> </tbody> </table> --- # Second stage <table class="clean-table"> <thead> <tr> <th style="text-align:left;"> Term </th> <th style="text-align:right;"> Estimate </th> <th style="text-align:left;"> Demand parameter </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> Water clarity </td> <td style="text-align:right;"> 47.956 </td> <td style="text-align:left;"> Intercept </td> </tr> <tr> <td style="text-align:left;"> Water clarity </td> <td style="text-align:right;"> -0.171 </td> <td style="text-align:left;"> Own price </td> </tr> <tr> <td style="text-align:left;"> Water clarity </td> <td style="text-align:right;"> 0.024 </td> <td style="text-align:left;"> Cross price </td> </tr> <tr> <td style="text-align:left;"> Water clarity </td> <td style="text-align:right;"> 1.648 </td> <td style="text-align:left;"> Income (per $10,000) </td> </tr> </tbody> </table> The estimates column tells us how a change in water clarity (from 0 to 100%), shifts or rotates our demand curve The income effect is scaled to a $10,000 change in income. Clearer water `\(\rightarrow\)` more demand, more responsive to price, attracts higher-income people more