Unequal Recreational Losses?
  • Home
  • MDCEV
  • Random Utility
  • Source Code
  • Report a Bug

On this page

  • Rum
    • Data
    • Function
  • Per Person Stay-At-Home
  • Per person 52-weeks
  • Full Closure
  • Coeffienct Table
  • All Coefficent

rum

  • Show All Code
  • Hide All Code

  • View Source

Rum

This script will run a RUM model on our data assuming a stay at home option and compare it to our result of the MDCEV.

Data

Need to run the same data for the MDCEV which gives us final_data_2018. So going to clip the code from the file R script high cost.

The first code will produce final_data_yyyy by year and then should be able to run all the rest of the data

Show code
library(dplyr)
library(tidyr)
library(haven)
library(readr)
library(mlogit)
library(lmtest)
library(purrr)
library(stringr)
library(readr)
library(ggplot2)
library(stargazer)
library(readxl)
library(patchwork)
library(broom)
library(tidyverse)
library(sf)
library(tigris)
library(ggrepel)
library(ggspatial)
library(ggpattern)

reservation_data <- read_dta(“reservation_data_merged_id_complete.dta”)

Show the Code
# Load datasets
reservation_data <- read_dta("data/reservation_data_merged_id_complete.dta")
intra_island_distance <- read.csv("data/intra_island_distance2.csv")

# Add year
reservation_data$year <- as.numeric(format(as.Date(reservation_data$CheckinDate, "%Y-%m-%d"), "%Y"))

reservation_data <- reservation_data %>%
  mutate(zip = ifelse(zip == 96812, 96813, zip))

# Group and compute yearly averages
avg_days_per_year <- reservation_data %>%
  group_by(year, id) %>%
  summarize(avg_days_visited = mean(days_visited, na.rm = TRUE)) %>%
  ungroup()

avg_days_2018 <- avg_days_per_year %>% filter(year == 2018)
avg_days_2019 <- avg_days_per_year %>% filter(year == 2019)
avg_days_2020 <- avg_days_per_year %>% filter(year == 2020)
avg_days_2021 <- avg_days_per_year %>% filter(year == 2021)
avg_days_2022 <- avg_days_per_year %>% filter(year == 2022)
avg_days_2023 <- avg_days_per_year %>% filter(year == 2023)


# Function to process data for a single year
process_year <- function(year_input) {
  data_year <- reservation_data %>% filter(year == year_input)
  
  unique_visits <- data_year %>%
    filter(!is.na(CheckinDate)) %>%
    distinct(id, parkname, CheckinDate) %>%
    group_by(id, parkname) %>%
    summarize(VisitCount = n(), .groups = "drop")
  
  all_combinations <- expand.grid(
    id = unique(data_year$id),
    parkname = unique(data_year$parkname),
    stringsAsFactors = FALSE
  )
  
  visit_data <- all_combinations %>%
    left_join(unique_visits, by = c("id", "parkname")) %>%
    mutate(VisitCount = ifelse(is.na(VisitCount), 0, VisitCount))
  
  person_info <- data_year %>%
    select(id, Permittee, zip, Zip, NoOfGuests, days_visited, year) %>%
    distinct()
  
  long_resdata_count <- left_join(visit_data, person_info, by = "id")
  
  long_resdata_count <- long_resdata_count %>%
    mutate(island_park = case_when(
      parkname == "Ainapo Cabin" ~ "Hawaii",
      parkname == "Hipalau" ~ "Kauai",
      parkname == "Kaluahaulu" ~ "Kauai",
      parkname == "Kamananui Trail" ~ "Oahu",
      parkname == "Kaunala Trail" ~ "Oahu",
      parkname == "Kawaikoi" ~ "Kauai",
      parkname == "Keanakolu Ranger & Bunkhouse Cabins" ~ "Hawaii",
      parkname == "Kuaokala Trail" ~ "Oahu",
      parkname == "Kulanaahane Trail" ~ "Oahu",
      parkname == "Kuliouou Trail" ~ "Oahu",
      parkname == "Lonomea" ~ "Kauai",
      parkname == "Maakua Ridge Trail" ~ "Oahu",
      parkname == "Manana Trail" ~ "Oahu",
      parkname == "Peacock Flats Campsite" ~ "Oahu",
      parkname == "Sugi Grove" ~ "Kauai",
      parkname == "Waialae Cabin Campsite" ~ "Kauai",
      parkname == "Waikoali" ~ "Kauai",
      parkname == "Waikolu" ~ "Molokai",
      parkname == "Waimano Trail" ~ "Oahu",
      parkname == "Waimanu Campsite" ~ "Hawaii",
      parkname == "Wiliwili" ~ "Kauai",
      parkname == "Wiliwilinui Ridge Trail" ~ "Oahu",
      TRUE ~ NA_character_
    ))
  
  long_resdata_count <- long_resdata_count[order(long_resdata_count$id, long_resdata_count$parkname), ]
  long_resdata_count$parkname_numeric <- as.integer(factor(long_resdata_count$parkname, levels = unique(long_resdata_count$parkname)))
  
  long_resdata_count <- long_resdata_count %>%
    distinct(id, parkname, .keep_all = TRUE)
  
  final_data <- long_resdata_count %>%
    left_join(
      intra_island_distance %>%
        select(zip, parkname, income, residents_distance_meters, residents_duration, island_live),
      by = c("zip", "parkname")
    )
  
  final_data <- final_data %>%
    group_by(id) %>%
    mutate(visited_another_island = ifelse(any(island_park != island_live & VisitCount > 0), 1, 0)) %>%
    ungroup()
  
  final_data$travel_distance_km <- (final_data$residents_distance_meters / 1000) * 2
  
  
  return(final_data)
}

# Run the function for each year
final_data_2018 <- process_year(2018)
final_data_2019 <- process_year(2019)
final_data_2020 <- process_year(2020)
final_data_2021 <- process_year(2021)
final_data_2022 <- process_year(2022)
final_data_2023 <- process_year(2023)

# Add correct avg_days_visited for each year by joining on id

final_data_2018 <- final_data_2018 %>%
  left_join(avg_days_2018 %>% select(id, avg_days_visited), by = "id") %>%
  mutate(days_visited = avg_days_visited)

final_data_2019 <- final_data_2019 %>%
  left_join(avg_days_2019 %>% select(id, avg_days_visited), by = "id") %>%
  mutate(days_visited = avg_days_visited)

final_data_2020 <- final_data_2020 %>%
  left_join(avg_days_2020 %>% select(id, avg_days_visited), by = "id") %>%
  mutate(days_visited = avg_days_visited)

final_data_2021 <- final_data_2021 %>%
  left_join(avg_days_2021 %>% select(id, avg_days_visited), by = "id") %>%
  mutate(days_visited = avg_days_visited)

final_data_2022 <- final_data_2022 %>%
  left_join(avg_days_2022 %>% select(id, avg_days_visited), by = "id") %>%
  mutate(days_visited = avg_days_visited)

final_data_2023 <- final_data_2023 %>%
  left_join(avg_days_2023 %>% select(id, avg_days_visited), by = "id") %>%
  mutate(days_visited = avg_days_visited)

## Travel cost per year calculations ##


##Adjusted for inflation
gas_prices <- data.frame(
  year = c(2018, 2019, 2020, 2021, 2022, 2023),
  gas_price = c(4.68, 4.49, 4.09, 4.75, 5.81, 5.09)
)

mean_gas_price <- (4.68+4.49+4.09+4.75+5.81+5.09)/6


# Inputs based on AAA Brochure 2018
fuel_efficiency_mpg <- 25
gas_price_hawaii_2018 <- 4.68  # in USD/gallon
maintenance_per_mile <- 0.0858*1.2816  # in USD/mile 2025 price
annual_miles <- 15000
annual_ownership_cost <- 6202*1.2816  # USD 2025 price

# Calculate total cost per mile
cost_per_mile <- (
  (1 / fuel_efficiency_mpg * gas_price_hawaii_2018 * annual_miles) +  # fuel cost
    (maintenance_per_mile * annual_miles) +                             # maintenance
    annual_ownership_cost                                               # ownership
) / annual_miles  # divide by miles to get per-mile cost

#https://exchange.aaa.com/wp-content/uploads/2018/09/18-0090_2018-Your-Driving-Costs-Brochure_FNL-Lo-5-2.pdf

# Show result
cost_per_mile
[1] 0.8270602
Show the Code
miles_to_km <- 1.60934

cost_per_km <- cost_per_mile / miles_to_km
cost_per_km
[1] 0.5139126
Show the Code
final_data_2018$price <- (final_data_2018$travel_distance_km * cost_per_km) / 3 +
  ((final_data_2018$income * 0.75) / 2080 * final_data_2018$travel_distance_km / 50)


# Inputs based on AAA Brochure 2019
fuel_efficiency_mpg <- 25
gas_price_hawaii_2019 <- 4.49  # in USD/gallon
maintenance_per_mile <- 0.0960*1.262  # in USD/mile 2025 price
annual_miles <- 15000
annual_ownership_cost <- 6845*1.262  # USD 2025 price

# Calculate total cost per mile
cost_per_mile <- (
  (1 / fuel_efficiency_mpg * gas_price_hawaii_2019 * annual_miles) +  # fuel cost
    (maintenance_per_mile * annual_miles) +                             # maintenance
    annual_ownership_cost                                               # ownership
) / annual_miles  # divide by miles to get per-mile cost

#https://exchange.aaa.com/wp-content/uploads/2019/09/AAA-Your-Driving-Costs-2019.pdf

# Show result
cost_per_mile
[1] 0.8766447
Show the Code
miles_to_km <- 1.60934

cost_per_km <- cost_per_mile / miles_to_km
cost_per_km
[1] 0.5447231
Show the Code
final_data_2019$price <- (final_data_2019$travel_distance_km * cost_per_km) / 3 +
  ((final_data_2019$income * 0.75) / 2080 * final_data_2019$travel_distance_km / 50)

# Inputs based on AAA Brochure 2020
fuel_efficiency_mpg <- 25
gas_price_hawaii_2020 <- 4.09  # in USD/gallon
maintenance_per_mile <- 0.1011*1.2314  # in USD/mile 2025 price
annual_miles <- 15000
annual_ownership_cost <- 6831*1.2314  # USD 2025 price

# Calculate total cost per mile
cost_per_mile <- (
  (1 / fuel_efficiency_mpg * gas_price_hawaii_2020 * annual_miles) +  # fuel cost
    (maintenance_per_mile * annual_miles) +                             # maintenance
    annual_ownership_cost                                               # ownership
) / annual_miles  # divide by miles to get per-mile cost

#https://newsroom.aaa.com/wp-content/uploads/2020/12/2020-Your-Driving-Costs-Brochure-Interactive-FINAL-12-9-20.pdf

# Show result
cost_per_mile
[1] 0.8488741
Show the Code
miles_to_km <- 1.60934

cost_per_km <- cost_per_mile / miles_to_km
cost_per_km
[1] 0.5274672
Show the Code
final_data_2020$price <- (final_data_2020$travel_distance_km * cost_per_km) / 3 +
  ((final_data_2020$income * 0.75) / 2080 * final_data_2020$travel_distance_km / 50)

# Inputs based on AAA Brochure 2021
fuel_efficiency_mpg <- 25
gas_price_hawaii_2021 <- 4.75  # in USD/gallon
maintenance_per_mile <- 0.1043*1.12144  # in USD/mile 2025 price
annual_miles <- 15000
annual_ownership_cost <- 6633*1.12144  # USD 2025 price

# Calculate total cost per mile
cost_per_mile <- (
  (1 / fuel_efficiency_mpg * gas_price_hawaii_2021 * annual_miles) +  # fuel cost
    (maintenance_per_mile * annual_miles) +                             # maintenance
    annual_ownership_cost                                               # ownership
) / annual_miles  # divide by miles to get per-mile cost

#https://newsroom.aaa.com/wp-content/uploads/2021/08/2021-YDC-Brochure-Live.pdf

# Show result
cost_per_mile
[1] 0.802867
Show the Code
miles_to_km <- 1.60934

cost_per_km <- cost_per_mile / miles_to_km
cost_per_km
[1] 0.4988796
Show the Code
final_data_2021$price <- (final_data_2021$travel_distance_km * cost_per_km) / 3 +
  ((final_data_2021$income * 0.75) / 2080 * final_data_2021$travel_distance_km / 50)

# Inputs based on AAA Brochure 2022
fuel_efficiency_mpg <- 25
gas_price_hawaii_2022 <- 5.81  # in USD/gallon
maintenance_per_mile <- 0.1064*1.113  # in USD/mile 2025 price
annual_miles <- 15000
annual_ownership_cost <- 6599*1.113  # USD 2025 price

# Calculate total cost per mile
cost_per_mile <- (
  (1 / fuel_efficiency_mpg * gas_price_hawaii_2022 * annual_miles) +  # fuel cost
    (maintenance_per_mile * annual_miles) +                             # maintenance
    annual_ownership_cost                                               # ownership
) / annual_miles  # divide by miles to get per-mile cost

# Show result
cost_per_mile
[1] 0.840469
Show the Code
miles_to_km <- 1.60934

cost_per_km <- cost_per_mile / miles_to_km
cost_per_km
[1] 0.5222445
Show the Code
final_data_2022$price <- (final_data_2022$travel_distance_km * cost_per_km) / 3 +
  ((final_data_2022$income * 0.75) / 2080 * final_data_2022$travel_distance_km / 50)

#https://newsroom.aaa.com/wp-content/uploads/2022/08/2022-YDC-Costs-Break-Out-by-Category.pdf

# Inputs based on AAA Brochure 2023
fuel_efficiency_mpg <- 25
gas_price_hawaii_2023 <- 5.09  # in USD/gallon
maintenance_per_mile <- 0.1085*1.0618  # in USD/mile 2025 price
annual_miles <- 15000
annual_ownership_cost <- 7542*1.0618  # USD 2025 price

# Calculate total cost per mile
cost_per_mile <- (
  (1 / fuel_efficiency_mpg * gas_price_hawaii_2023 * annual_miles) +  # fuel cost
    (maintenance_per_mile * annual_miles) +                             # maintenance
    annual_ownership_cost                                               # ownership
) / annual_miles  # divide by miles to get per-mile cost

# Show result
cost_per_mile
[1] 0.8526783
Show the Code
miles_to_km <- 1.60934

cost_per_km <- cost_per_mile / miles_to_km
cost_per_km
[1] 0.5298311
Show the Code
final_data_2023$price <- (final_data_2023$travel_distance_km * cost_per_km) / 3 +
  ((final_data_2023$income * 0.75) / 2080 * final_data_2023$travel_distance_km / 50)

#https://newsroom.aaa.com/wp-content/uploads/2023/08/YDC-Brochure_2023-FINAL-8.30.23-.pdf


final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(parkname == "Ainapo Cabin", (30*days_visited)/3, 0),
         price = price + ifelse(parkname == "Hipalau", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaluahaulu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kamananui Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaunala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kawaikoi", (20*days_visited)/3, 0),
         price = price + ifelse(parkname == "Keanakolu Ranger & Bunkhouse Cabins", (60*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuaokala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kulanaahane Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuliouou Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Lonomea", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Maakua Ridge Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Manana Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Peacock Flats Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Sugi Grove", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waialae Cabin Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikoali", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikolu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimano Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimanu Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwili", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwilinui Ridge Trail", (12*days_visited)/3, 0))


final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(parkname == "Ainapo Cabin", (30*days_visited)/3, 0),
         price = price + ifelse(parkname == "Hipalau", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaluahaulu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kamananui Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaunala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kawaikoi", (20*days_visited)/3, 0),
         price = price + ifelse(parkname == "Keanakolu Ranger & Bunkhouse Cabins", (60*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuaokala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kulanaahane Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuliouou Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Lonomea", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Maakua Ridge Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Manana Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Peacock Flats Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Sugi Grove", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waialae Cabin Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikoali", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikolu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimano Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimanu Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwili", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwilinui Ridge Trail", (12*days_visited)/3, 0))

final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(parkname == "Ainapo Cabin", (30*days_visited)/3, 0),
         price = price + ifelse(parkname == "Hipalau", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaluahaulu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kamananui Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaunala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kawaikoi", (20*days_visited)/3, 0),
         price = price + ifelse(parkname == "Keanakolu Ranger & Bunkhouse Cabins", (60*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuaokala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kulanaahane Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuliouou Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Lonomea", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Maakua Ridge Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Manana Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Peacock Flats Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Sugi Grove", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waialae Cabin Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikoali", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikolu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimano Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimanu Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwili", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwilinui Ridge Trail", (12*days_visited)/3, 0))

final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(parkname == "Ainapo Cabin", (30*days_visited)/3, 0),
         price = price + ifelse(parkname == "Hipalau", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaluahaulu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kamananui Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaunala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kawaikoi", (20*days_visited)/3, 0),
         price = price + ifelse(parkname == "Keanakolu Ranger & Bunkhouse Cabins", (60*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuaokala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kulanaahane Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuliouou Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Lonomea", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Maakua Ridge Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Manana Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Peacock Flats Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Sugi Grove", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waialae Cabin Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikoali", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikolu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimano Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimanu Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwili", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwilinui Ridge Trail", (12*days_visited)/3, 0))

final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(parkname == "Ainapo Cabin", (30*days_visited)/3, 0),
         price = price + ifelse(parkname == "Hipalau", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaluahaulu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kamananui Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaunala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kawaikoi", (20*days_visited)/3, 0),
         price = price + ifelse(parkname == "Keanakolu Ranger & Bunkhouse Cabins", (60*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuaokala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kulanaahane Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuliouou Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Lonomea", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Maakua Ridge Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Manana Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Peacock Flats Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Sugi Grove", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waialae Cabin Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikoali", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikolu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimano Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimanu Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwili", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwilinui Ridge Trail", (12*days_visited)/3, 0))

final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(parkname == "Ainapo Cabin", (30*days_visited)/3, 0),
         price = price + ifelse(parkname == "Hipalau", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaluahaulu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kamananui Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaunala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kawaikoi", (20*days_visited)/3, 0),
         price = price + ifelse(parkname == "Keanakolu Ranger & Bunkhouse Cabins", (60*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuaokala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kulanaahane Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuliouou Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Lonomea", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Maakua Ridge Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Manana Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Peacock Flats Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Sugi Grove", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waialae Cabin Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikoali", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikolu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimano Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimanu Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwili", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwilinui Ridge Trail", (12*days_visited)/3, 0))

#########Value of travel time in air#########

### BIG ISLAND ###
##Insert value of spare time of travelling with flight to BI if live in Oahu (90 minutes before flight + 50 minutes flight time)
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu",
                                (((income * 0.75) / 2080) * 2.33) * 2, 0))

##Insert value of spare time of travelling with flight to BI if live in Kauai (90 minutes before flight + 55 minutes flight time)
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai",
                                (((income * 0.75) / 2080) * 2.42) * 2, 0))

##Insert value of spare time of travelling with flight to BI if live in Molokai (90 minutes before flight + 1.5 hour flight time one way)
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai",
                                (((income * 0.75) / 2080) * 3.5) * 2, 0))

### OAHU ###
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii",
                                (((income * 0.75) / 2080) * 2.33) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai",
                                (((income * 0.75) / 2080) * 2.17) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai",
                                (((income * 0.75) / 2080) * 2.17) * 2, 0))

### KAUAI ###
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii",
                                (((income * 0.75) / 2080) * 2.42) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu",
                                (((income * 0.75) / 2080) * 2.17) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai",
                                (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MOLOKAI ###
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii",
                                (((income * 0.75) / 2080) * 3.5) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu",
                                (((income * 0.75) / 2080) * 2.17) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai",
                                (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MAUI ###
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Maui",
                                (((income * 0.75) / 2080) * 2) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Maui",
                                (((income * 0.75) / 2080) * 2.17) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Maui",
                                (((income * 0.75) / 2080) * 2.33) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Maui",
                                (((income * 0.75) / 2080) * 2.17) * 2, 0))

### LANAI ###
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Lanai",
                                (((income * 0.75) / 2080) * 2) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Lanai",
                                (((income * 0.75) / 2080) * 2.17) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Lanai",
                                (((income * 0.75) / 2080) * 4.34) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai",
                                (((income * 0.75) / 2080) * 4.34) * 2, 0))


#########Value of travel time in air#########

### BIG ISLAND ###
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### OAHU ###
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### KAUAI ###
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MOLOKAI ###
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 3.5) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MAUI ###
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Maui", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### LANAI ###
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0))

#########Value of travel time in air#########

### BIG ISLAND ###
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### OAHU ###
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### KAUAI ###
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MOLOKAI ###
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 3.5) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MAUI ###
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Maui", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### LANAI ###
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0))

##

### BIG ISLAND ###
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### OAHU ###
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### KAUAI ###
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MOLOKAI ###
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 3.5) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MAUI ###
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Maui", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### LANAI ###
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0))

##

### BIG ISLAND ###
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### OAHU ###
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### KAUAI ###
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MOLOKAI ###
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 3.5) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MAUI ###
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Maui", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### LANAI ###
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0))

##

### BIG ISLAND ###
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### OAHU ###
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### KAUAI ###
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MOLOKAI ###
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 3.5) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MAUI ###
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Maui", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### LANAI ###
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0))



## Flight costs 2018
#########Flight cost - 2018 #########

## BIG ISLAND ##
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", 354.0447586, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", 368.0753954, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", 308.7662656, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", 273.2598837, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", 354.0447586 + 137.8000852, 0))  # via Oahu

## OAHU ##
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", 354.0447586, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", 269.4129138, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", 112.5000815, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", 291.0965957, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", 137.8000852, 0))

## KAUAI ##
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", 368.0753954, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", 269.4129138, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", 317.7951903, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", 359.4733617, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", 336.1283623, 0))

## MOLOKAI ##
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", 308.7662656, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", 112.5000815, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", 317.7951903, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Maui", 118.8094464, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", 137.8000852 + 112.5000815, 0))  # via Oahu

## Flight costs 2019
## BIG ISLAND ##
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", 348.630216, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", 362.446277, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", 304.044185, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", 269.080816, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", 348.630216 + 135.692656, 0))  # via Oahu

## OAHU ##
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", 348.630216, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", 265.292679, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", 110.779575, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", 286.644744, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", 135.692656, 0))

## KAUAI ##
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", 362.446277, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", 265.292679, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", 312.935027, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", 353.975798, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", 330.987822, 0))

## MOLOKAI ##
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", 304.044185, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", 110.779575, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", 312.935027, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Maui", 118.809446, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", 135.692656 + 110.779575, 0))  # via Oahu


## Flight costs 2020
## BIG ISLAND ##
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", 340.176901, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", 353.657960, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", 296.671957, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", 262.556352, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", 340.176901 + 132.402485, 0))  # via Oahu

## OAHU ##
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", 340.176901, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", 258.860067, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", 108.093477, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", 279.694404, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", 132.402485, 0))

## KAUAI ##
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", 353.657960, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", 258.860067, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", 305.347220, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", 345.392866, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", 322.962286, 0))

## MOLOKAI ##
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", 296.671957, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", 108.093477, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", 305.347220, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Maui", 108.093477 + 279.6944039, 0), # via Oahu
         price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", 132.402485 + 108.093477, 0))  # via Oahu

##Flight costs 2021
## Flight costs 2021
## BIG ISLAND ##
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", 309.800214, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", 322.077459, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", 296.6719565, 0), #Use value for 2020
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", 239.110927, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", 309.800214 + 132.4024851, 0))  # via Oahu #Use value for 2020 for Oahu to Lanai

## OAHU ##
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", 309.800214, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", 235.744708, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", 126.263151, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", 254.718607, 0), 
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", 132.4024851, 0)) #Use value for 2020

## KAUAI ##
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", 322.077459, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", 235.744708, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", 389.441668, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", 314.550411, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", 235.744708 + 132.4024851, 0))  # via Oahu #Use value for 2020 for Oahu to Lanai

## MOLOKAI ##
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", 296.6719565, 0), #Use value for 2020
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", 120.699975, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", 389.441668, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Maui", 120.699975 + 254.718607, 0), # via Oahu
         price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", 126.263151 + 120.699975, 0))  # via Oahu

##Flight cost 2022
## Flight costs 2022

## BIG ISLAND ##
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", 307.468646, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", 319.6534918, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", 296.6719565, 0), #Use value for 2020
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", 237.311369, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", 307.468646 + 132.4024851, 0))  # via Oahu

## OAHU ##
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", 307.468646, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", 233.970485, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", 169.716317, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", 252.801585, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", 132.4024851, 0))  #Use value for 2020

## KAUAI ##
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", 319.6534918, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", 233.970485, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", 589.133955, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", 312.1830927, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", 233.970485 + 132.4024851, 0))  # via Oahu #Use value for 2020

## MOLOKAI ##
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", 296.6719565, 0), #Use value for 2020
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", 169.716317, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", 275.9878642, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Maui", 169.716317 + 252.8015848, 0),  # via Oahu
         price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", 169.716317 + 132.4024851, 0))  # via Oahu

##Flight cost 2023
## HAWAII ##
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", 293.324536, 0)) %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", 304.948857, 0)) %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", 296.6719565, 0)) %>% #Use value for 2020
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", 226.39462, 0)) %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", 132.4024851 + 293.324536, 0))

## OAHU ##
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", 293.324536, 0)) %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", 223.207422, 0)) %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", 169.464607, 0)) %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Maui", 241.172258, 0)) %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", 132.4024851, 0)) #Use value for 2020

## KAUAI ##
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", 304.948857, 0)) %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", 223.207422, 0)) %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", 500.736032, 0)) %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Maui", 297.822109, 0)) %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", 223.207422 + 132.4024851, 0))

## MOLOKAI ##
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", 296.6719565, 0)) %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", 169.464607, 0)) %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", 263.291927, 0)) %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Maui", 241.172258 + 169.464607, 0)) %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", 132.4024851 + 169.464607, 0))



#########Car rental cost#########

### BIG ISLAND ###

#On average a rental car in The Big Island costs $430 per week ($61 per day).

##Insert car rental cost in BI
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (61 * days_visited)/3.78, 0))

### OAHU ###

#On average a rental car in Oahu is $48/day

##Insert car rental cost in Oahu
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (48 * days_visited)/3.78, 0))

### Kauai ###

#On average a rental car in Kauai is $62/day

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (63 * days_visited)/3.78, 0))

### Molokai ###

#On average a rental car in Molokai is $107/day

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (107 * days_visited)/3.78, 0))

#########Parking fees#########

### Oahu ###

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

### Kauai ###

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

### Big Island ###

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

### BIG ISLAND ###

#On average a rental car in The Big Island costs $430 per week ($61 per day).

##Insert car rental cost in BI
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (61 * days_visited)/3.78, 0))

### OAHU ###

#On average a rental car in Oahu is $48/day

##Insert car rental cost in Oahu
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (48 * days_visited)/3.78, 0))

### Kauai ###

#On average a rental car in Kauai is $62/day

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (63 * days_visited)/3.78, 0))

### Molokai ###

#On average a rental car in Molokai is $107/day

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (107 * days_visited)/3.78, 0))

#########Parking fees#########

### Oahu ###

final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

### Kauai ###

final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

### Big Island ###

final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

### BIG ISLAND ###

#On average a rental car in The Big Island costs $430 per week ($61 per day).

##Insert car rental cost in BI
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (61 * days_visited)/3.78, 0))

### OAHU ###

#On average a rental car in Oahu is $48/day

##Insert car rental cost in Oahu
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (48 * days_visited)/3.78, 0))

### Kauai ###

#On average a rental car in Kauai is $62/day

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (63 * days_visited)/3.78, 0))

### Molokai ###

#On average a rental car in Molokai is $107/day

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (107 * days_visited)/3.78, 0))

#########Parking fees#########

### Oahu ###

final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

### Kauai ###

final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

### Big Island ###

final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))


### BIG ISLAND ###

#On average a rental car in The Big Island costs $430 per week ($61 per day).

##Insert car rental cost in BI
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (61 * days_visited)/3.78, 0))

### OAHU ###

#On average a rental car in Oahu is $48/day

##Insert car rental cost in Oahu
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (48 * days_visited)/3.78, 0))

### Kauai ###

#On average a rental car in Kauai is $62/day

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (63 * days_visited)/3.78, 0))

### Molokai ###

#On average a rental car in Molokai is $107/day

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (107 * days_visited)/3.78, 0))

#########Parking fees#########

### Oahu ###

final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

### Kauai ###

final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

### Big Island ###

final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))


### BIG ISLAND ###

#On average a rental car in The Big Island costs $430 per week ($61 per day).

##Insert car rental cost in BI
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (61 * days_visited)/3.78, 0))

### OAHU ###

#On average a rental car in Oahu is $48/day

##Insert car rental cost in Oahu
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (48 * days_visited)/3.78, 0))

### Kauai ###

#On average a rental car in Kauai is $62/day

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (63 * days_visited)/3.78, 0))

### Molokai ###

#On average a rental car in Molokai is $107/day

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (107 * days_visited)/3.78, 0))

#########Parking fees#########

### Oahu ###

final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

### Kauai ###

final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

### Big Island ###

final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))


### BIG ISLAND ###

#On average a rental car in The Big Island costs $430 per week ($61 per day).

##Insert car rental cost in BI
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (61 * days_visited)/3.78, 0))

### OAHU ###

#On average a rental car in Oahu is $48/day

##Insert car rental cost in Oahu
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (48 * days_visited)/3.78, 0))

### Kauai ###

#On average a rental car in Kauai is $62/day

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (63 * days_visited)/3.78, 0))

### Molokai ###

#On average a rental car in Molokai is $107/day

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (107 * days_visited)/3.78, 0))

#########Parking fees#########

### Oahu ###

final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

### Kauai ###

final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

### Big Island ###

final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))


##Mean travel cost
summary(final_data_2018$price)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
   4.605  120.078  579.509  458.082  678.901 1129.161 
Show the Code
final_data_2018 <- final_data_2018 %>%
  arrange(Permittee, parkname)

final_data_2018$parkname_numeric <- as.integer(factor(final_data_2018$parkname, levels = unique(final_data_2018$parkname)))

##Mean travel cost
summary(final_data_2019$price)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
   4.614  126.503  583.723  462.862  681.516 1084.563 
Show the Code
final_data_2019 <- final_data_2019 %>%
  arrange(Permittee, parkname)

final_data_2019$parkname_numeric <- as.integer(factor(final_data_2019$parkname, levels = unique(final_data_2019$parkname)))

##Mean travel cost
summary(final_data_2020$price)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
   4.609  103.739  518.297  412.739  641.826 1074.556 
Show the Code
final_data_2020 <- final_data_2020 %>%
  arrange(Permittee, parkname)

final_data_2020$parkname_numeric <- as.integer(factor(final_data_2020$parkname, levels = unique(final_data_2020$parkname)))

##Mean travel cost
summary(final_data_2021$price)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
   4.601   97.767  497.457  396.950  621.920 1041.604 
Show the Code
final_data_2021 <- final_data_2021 %>%
  arrange(Permittee, parkname)

final_data_2021$parkname_numeric <- as.integer(factor(final_data_2021$parkname, levels = unique(final_data_2021$parkname)))

##Mean travel cost
summary(final_data_2022$price)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
   4.607   99.921  499.110  398.745  620.341 1035.012 
Show the Code
final_data_2022 <- final_data_2022 %>%
  arrange(Permittee, parkname)

final_data_2022$parkname_numeric <- as.integer(factor(final_data_2022$parkname, levels = unique(final_data_2022$parkname)))

##Mean travel cost
summary(final_data_2023$price)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
   4.048  102.567  495.768  399.767  612.067 1027.917 
Show the Code
final_data_2023 <- final_data_2023 %>%
  arrange(Permittee, parkname)

final_data_2023$parkname_numeric <- as.integer(factor(final_data_2023$parkname, levels = unique(final_data_2023$parkname)))

Rum

Show the Code
# Create unique choice occasions for every visit
data_rum <- final_data_2018 %>%
  filter(VisitCount > 0) %>%
  uncount(VisitCount) %>%
  group_by(id) %>%
  mutate(choice_id = paste0(id, "_", row_number())) %>%
  ungroup() %>%
  select(choice_id, id, chosen_park = parkname) %>%
  expand_grid(parkname = unique(final_data_2018$parkname)) %>%
  mutate(choice = (chosen_park == parkname)) %>%
  left_join(final_data_2018 %>% select(id, parkname, price/NoOfGuests, travel_distance_km,income,zip), 
            by = c("id", "parkname"))

# Create Stay at Home

# Create the Stay-at-Home option for every choice occasion
outside_home <- data_rum %>%
  distinct(choice_id, id,income,zip) %>%
  mutate(
    parkname = "Stay_Home",
    choice = FALSE,      
    price = 0,
    travel_distance_km = 0
  )

# Combine with your existing data
data_rum<- bind_rows(data_rum, outside_home)

# Re-format for mlogit
df_rum <- dfidx(data_rum, 
                        idx = list("choice_id", "parkname"), 
                        shape = "long")

# Simple Multinomial Logit
rum_mle <- mlogit(choice ~ price  | 1, data = df_rum)
summary(rum_mle)

Call:
mlogit(formula = choice ~ price | 1, data = df_rum, method = "nr")

Frequencies of alternatives:choice
                       Ainapo Cabin                             Hipalau 
                          0.0175837                           0.0153148 
                         Kaluahaulu                     Kamananui Trail 
                          0.0085082                           0.0085082 
                      Kaunala Trail                            Kawaikoi 
                          0.0051049                           0.0391378 
Keanakolu Ranger & Bunkhouse Cabins                      Kuaokala Trail 
                          0.0839478                           0.1043676 
                  Kulanaahane Trail                      Kuliouou Trail 
                          0.0028361                           0.0141804 
                            Lonomea                        Manana Trail 
                          0.0289280                           0.0102099 
             Peacock Flats Campsite                           Stay_Home 
                          0.3119682                           0.0000000 
                         Sugi Grove              Waialae Cabin Campsite 
                          0.0402723                           0.0045377 
                           Waikoali                             Waikolu 
                          0.0215542                           0.0039705 
                      Waimano Trail                    Waimanu Campsite 
                          0.0062394                           0.2495746 
                           Wiliwili             Wiliwilinui Ridge Trail 
                          0.0170164                           0.0062394 

nr method
17 iterations, 0h:0m:1s 
g'(-H)^-1g = 4.53E-07 
gradient close to zero 

Coefficients :
                                                   Estimate  Std. Error
(Intercept):Hipalau                             -8.4079e-01  2.8341e-01
(Intercept):Kaluahaulu                          -1.4286e+00  3.3159e-01
(Intercept):Kamananui Trail                     -3.7344e+00  3.7558e-01
(Intercept):Kaunala Trail                       -3.9022e+00  4.2428e-01
(Intercept):Kawaikoi                             2.6700e-01  2.3842e-01
(Intercept):Keanakolu Ranger & Bunkhouse Cabins  1.4923e+00  1.9821e-01
(Intercept):Kuaokala Trail                      -7.6384e-01  2.6822e-01
(Intercept):Kulanaahane Trail                   -4.8350e+00  5.2386e-01
(Intercept):Kuliouou Trail                      -3.1501e+00  3.3725e-01
(Intercept):Lonomea                             -2.1999e-01  2.5061e-01
(Intercept):Manana Trail                        -3.4956e+00  3.5895e-01
(Intercept):Peacock Flats Campsite               4.5011e-01  2.5782e-01
(Intercept):Stay_Home                           -2.2548e+01  2.4499e+03
(Intercept):Sugi Grove                           2.1356e-01  2.3838e-01
(Intercept):Waialae Cabin Campsite              -2.2160e+00  4.1108e-01
(Intercept):Waikoali                            -3.9739e-01  2.6266e-01
(Intercept):Waikolu                             -2.5417e+00  4.3444e-01
(Intercept):Waimano Trail                       -3.9716e+00  4.0499e-01
(Intercept):Waimanu Campsite                     2.4352e+00  1.8684e-01
(Intercept):Wiliwili                            -7.6888e-01  2.7648e-01
(Intercept):Wiliwilinui Ridge Trail             -3.9865e+00  4.0592e-01
price                                           -6.0823e-03  2.7478e-04
                                                 z-value  Pr(>|z|)    
(Intercept):Hipalau                              -2.9666  0.003011 ** 
(Intercept):Kaluahaulu                           -4.3082 1.646e-05 ***
(Intercept):Kamananui Trail                      -9.9430 < 2.2e-16 ***
(Intercept):Kaunala Trail                        -9.1972 < 2.2e-16 ***
(Intercept):Kawaikoi                              1.1199  0.262760    
(Intercept):Keanakolu Ranger & Bunkhouse Cabins   7.5288 5.129e-14 ***
(Intercept):Kuaokala Trail                       -2.8478  0.004403 ** 
(Intercept):Kulanaahane Trail                    -9.2296 < 2.2e-16 ***
(Intercept):Kuliouou Trail                       -9.3405 < 2.2e-16 ***
(Intercept):Lonomea                              -0.8778  0.380054    
(Intercept):Manana Trail                         -9.7384 < 2.2e-16 ***
(Intercept):Peacock Flats Campsite                1.7458  0.080845 .  
(Intercept):Stay_Home                            -0.0092  0.992657    
(Intercept):Sugi Grove                            0.8959  0.370312    
(Intercept):Waialae Cabin Campsite               -5.3907 7.020e-08 ***
(Intercept):Waikoali                             -1.5129  0.130299    
(Intercept):Waikolu                              -5.8506 4.897e-09 ***
(Intercept):Waimano Trail                        -9.8067 < 2.2e-16 ***
(Intercept):Waimanu Campsite                     13.0335 < 2.2e-16 ***
(Intercept):Wiliwili                             -2.7810  0.005419 ** 
(Intercept):Wiliwilinui Ridge Trail              -9.8209 < 2.2e-16 ***
price                                           -22.1353 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Log-Likelihood: -2805.2
McFadden R^2:  NaN 
Likelihood ratio test : chisq = NaN (p.value = NA)
Show the Code
# Calculate the 'Logsum' (Total Utility) for the status quo
logsum_base <- logsum(rum_mle)

# 1. Convert df_rum to a standard data frame for our math
df_math <- as.data.frame(df_rum)

# 2. Extract the IDs and Park names from the 'idx' column
# idx(df_rum, 1) gets the 'choice_id'
# idx(df_rum, 2) gets the 'parkname'
df_math$trip_id   <- as.character(idx(df_rum, 1))
df_math$park_name <- as.character(idx(df_rum, 2))

# 3. Calculate the Systematic Utility (V)
# This uses the model coefficients and the data matrix
df_math$V <- as.numeric(model.matrix(rum_mle) %*% coef(rum_mle))

# 4. Double check the columns are there
head(df_math[, c("trip_id", "park_name", "V")])
# A tibble: 6 × 3
  trip_id park_name           V
  <chr>   <chr>           <dbl>
1 1_1     Ainapo Cabin    -1.59
2 1_1     Hipalau         -5.15
3 1_1     Kaluahaulu      -5.74
4 1_1     Kamananui Trail -7.56
5 1_1     Kaunala Trail   -8.06
6 1_1     Kawaikoi        -4.18

McFaddenR2

The mlogit gives NA so running manually to calculate McFadden to double check the R2

and it above .2 so that great

Show code
# 1. Estimate your model (The "Full" model)
rum_full <- mlogit(choice ~ price | 1, data = df_rum)

# 2. Estimate the "Null" model (Intersects only, no price)
# Use '0' for the first part of the formula to remove choice-specific variables
rum_null <- mlogit(choice ~ 0 | 1, data = df_rum)

# 3. Use the lrtest function to get your Chi-square and p-value

lr_test_result <- lrtest(rum_full, rum_null)
print(lr_test_result)
Likelihood ratio test

Model 1: choice ~ price | 1
Model 2: choice ~ 0 | 1
  #Df  LogLik Df Chisq Pr(>Chisq)    
1  22 -2805.2                        
2  21 -3774.6 -1  1939  < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Show code
# 4. Calculate McFadden's R-squared manually
ll_full <- as.numeric(logLik(rum_full))
ll_null <- as.numeric(logLik(rum_null))
mcfadden_r2 <- 1 - (ll_full / ll_null)

print(paste("Manual McFadden R2:", round(mcfadden_r2, 4)))
[1] "Manual McFadden R2: 0.2568"

Function

This function calculate the rum welfare manual and is used for each year to get a comparison to the MDCEV.

Per Person Stay-At-Home

Show the Code
years <- 2018:2023
mcfadden_list <- list()
model_list_obs <- list()

# --- 1. Robust Welfare Function ---
# Passing 'mle' and 'data' as arguments to avoid "Global Object" confusion
calc_rum_welfare <- function(target_park, current_mle, current_math_df) {
    beta_price <- coef(current_mle)["price"]
    
    welfare <- current_math_df %>%
        group_by(trip_id) %>%
        summarise(
            ls_base = log(sum(exp(V))),
            # Calculate utility if the target park/Stay_Home was REMOVED
            ls_policy = log(sum(exp(V[park_name != target_park]))),
            .groups = "drop"
        ) %>%
        mutate(cv_trip = (ls_policy - ls_base) / -beta_price) %>%
        mutate(id = as.character(str_remove(trip_id, "_\\d+$"))) %>%
        group_by(id) %>%
        summarise(annual_rum_loss = sum(cv_trip, na.rm = TRUE), .groups = "drop")
    
    return(welfare)
}

# --- 2. Main Loop ---
final_comparison <- map_df(years, function(yr) {
    
    message(paste(">>> Processing Year:", yr))
    
    # Load data (ensure it exists)
    current_data <- get(paste0("final_data_", yr))
    
    # CLEANING: Ensure unique user profiles to avoid "Many-to-Many" warnings
    unique_users <- current_data %>% 
        group_by(id) %>%
        summarise(zip = first(zip), income = first(income), .groups = "drop") %>%
        mutate(id = as.character(id))
    
    # SITE MAPPING: Force "Stay_Home" to Site 22
    physical_parks <- unique(current_data$parkname)
    site_lookup <- data.frame(
        site = seq_along(physical_parks),
        parkname = physical_parks
    ) %>% 
    bind_rows(data.frame(site = 22, parkname = "Stay_Home"))
    
    # List of all alternatives to test (including Stay_Home)
    parks_to_test <- site_lookup$parkname
    
    # 1. Create Choice Data
    data_rum_raw <- current_data %>%
        filter(VisitCount > 0) %>%
        uncount(VisitCount) %>%
        group_by(id) %>%
        mutate(choice_id = paste0(id, "_", row_number())) %>%
        ungroup() %>%
        select(choice_id, id, chosen_park = parkname) %>%
        expand_grid(parkname = physical_parks) %>%
        mutate(choice = (chosen_park == parkname)) %>%
        left_join(current_data %>% select(id, parkname, price), by = c("id", "parkname"))
    
    # 2. Add Outside Option
    outside_home <- data_rum_raw %>%
        distinct(choice_id, id) %>%
        mutate(parkname = "Stay_Home", choice = FALSE, price = 0)
    
    data_rum_combined <- bind_rows(data_rum_raw, outside_home)
    
    # 3. Model Estimation with Error Handling (Fixes the 2020 crash)
    df_idx_local <- dfidx(data_rum_combined, idx = list("choice_id", "parkname"), shape = "long")
    
    rum_mle <- tryCatch({
        mlogit(choice ~ price | 1, data = df_idx_local, method = "nr")
    }, error = function(e) {
        # Try BHHH method if NR fails (common in 2020 data)
        message("NR failed, trying BHHH solver...")
        mlogit(choice ~ price | 1, data = df_idx_local, method = "bhhh")
    })
    
    model_list_obs[[paste0("Year_", yr)]] <<- rum_mle
    
    # 4. Prepare Math Data for this specific year
    df_math_local <- as.data.frame(df_idx_local)
    df_math_local$trip_id   <- as.character(idx(df_idx_local, 1))
    df_math_local$park_name <- as.character(idx(df_idx_local, 2))
    df_math_local$V <- as.numeric(model.matrix(rum_mle) %*% coef(rum_mle))
    
    # 5. RUM Welfare Calculation (Now includes Stay_Home)
    rum_results <- map_df(parks_to_test, function(p) {
        res <- calc_rum_welfare(p, rum_mle, df_math_local)
        res$parkname <- p
        return(res)
    })
    
    # 6. Bring in MDCEV Data (Using Site 22 for Stay_Home)
    mdcev_indiv <- read_csv(paste0("data/welfare_", yr, "_ind.csv"), show_col_types = FALSE) %>%
        left_join(site_lookup, by = "site") %>%
        mutate(id = as.character(id)) %>%
        select(id, parkname, mdcev_annual_loss = mean_value) %>%
        filter(!is.na(parkname)) # Remove sites not in our lookup
    
    # 7. Final Join
    year_comparison <- rum_results %>%
        left_join(mdcev_indiv, by = c("id", "parkname")) %>%
        left_join(unique_users, by = "id") %>% 
        mutate(
            year = yr,
            difference = annual_rum_loss - mdcev_annual_loss
        )
    
    return(year_comparison)
})

saveRDS(model_list_obs, "data/model_list_obs.rds")

Per person 52-weeks

Show the Code
years <- 2018:2023

#  Same Mcfadden and coefficient holders
model_list_52  <- list()
mcfadden_list_52 <- list()

#Welfare Function ---
calc_rum_welfare_per_person <- function(target_park, current_mle, current_math_df) {
    beta_price <- coef(current_mle)["price"]
    
    welfare_by_id <- current_math_df %>%
        group_by(trip_id) %>%
        summarise(
            ls_base = log(sum(exp(V))),
            ls_policy = log(sum(exp(V[park_name != target_park]))),
            .groups = "drop"
        ) %>%
        mutate(cv_week = (ls_policy - ls_base) / -beta_price) %>%
        mutate(id = as.character(str_remove(trip_id, "_w\\d+$"))) %>%
        group_by(id) %>%
        summarise(annual_rum_loss = sum(cv_week, na.rm = TRUE), .groups = "drop")
    
    return(welfare_by_id)
}

# --- 2. Main Loop ---
final_comparison_52_person <- map_df(years, function(yr) {
    
    message(paste(">>> Processing Year (52-week):", yr))
    current_data <- get(paste0("final_data_", yr))
    
    # Setup a 52 week decision
    unique_users <- current_data %>% 
        group_by(id) %>%
        summarise(zip = first(zip), income = first(income), .groups = "drop") %>%
        mutate(id = as.character(id))
      
    all_parks <- unique(current_data$parkname)
    
    # --- SITE LOOKUP: Force Stay_Home to Site 22 ---
    site_lookup <- data.frame(
        site = seq_along(all_parks),
        parkname = all_parks
    ) %>% 
    bind_rows(data.frame(site = 22, parkname = "Stay_Home"))
    
    # Ensure "Stay_Home" is in the welfare test list
    parks_to_test <- site_lookup$parkname
    
    # Expand to 52 Weeks
    df_52_weeks <- unique_users %>%
        expand_grid(week = 1:52) %>%
        mutate(choice_id = paste0(id, "_w", week))
    
    actual_trips <- current_data %>% 
        filter(VisitCount > 0) %>% 
        uncount(VisitCount) %>%
        group_by(id) %>%
        mutate(week = row_number()) %>%
        filter(week <= 52) %>% 
        ungroup() %>%
        select(id, week, chosen_park = parkname) %>%
        mutate(id = as.character(id))
    
    # 2. Build Choice Set
    df_rum_final <- df_52_weeks %>%
        left_join(actual_trips, by = c("id", "week")) %>%
        mutate(chosen_park = replace_na(chosen_park, "Stay_Home")) %>%
        expand_grid(parkname = c(all_parks, "Stay_Home")) %>%
        mutate(choice = (chosen_park == parkname)) %>%
        left_join(current_data %>% mutate(id = as.character(id)) %>% select(id, parkname, price), 
                  by = c("id", "parkname")) %>%
        mutate(price = replace_na(price, 0))
    
    # Model Estimation with tryCatch (Fixes 2020 error)
    df_idx_local <- dfidx(df_rum_final, idx = list("choice_id", "parkname"), shape = "long")
    
    rum_mle_52 <- tryCatch({
        mlogit(choice ~ price | 1 , data = df_idx_local, method = "nr")
    }, error = function(e) {
        message("NR Solver failed, trying BHHH...")
        mlogit(choice ~ price | 1 , data = df_idx_local, method = "bhhh")
    })

    model_list_52[[paste("52wk", yr)]] <<- rum_mle_52
    
    # McFadden R2 calculation
    rum_null <- mlogit(choice ~ 1 | 1, data = df_idx_local)
    ll_mod  <- as.numeric(logLik(rum_mle_52))
    ll_null <- as.numeric(logLik(rum_null))
    mcf_r2  <- 1 - (ll_mod / ll_null)
    mcfadden_list_52[[paste("52weeks", yr)]] <<- format(round(mcf_r2, 3), nsmall = 3)

    df_math_local <- as.data.frame(df_idx_local)
    df_math_local$trip_id   <- as.character(idx(df_idx_local, 1))
    df_math_local$park_name <- as.character(idx(df_idx_local, 2))
    df_math_local$V <- as.numeric(model.matrix(rum_mle_52) %*% coef(rum_mle_52))
    
    # RUM Welfare Calculations (Including Stay_Home)
    rum_person_results <- map_df(parks_to_test, function(p) {
        res <- calc_rum_welfare_per_person(p, rum_mle_52, df_math_local)
        res$parkname <- p
        return(res)
    })
    
    # Bring in MDCEV Individual Welfare
    mdcev_indiv <- read_csv(paste0("data/welfare_", yr, "_ind.csv"), show_col_types = FALSE) %>%
        left_join(site_lookup, by = "site") %>%
        mutate(id = as.character(id)) %>%
        select(id, parkname, mdcev_annual_loss = mean_value) %>%
        filter(!is.na(parkname)) # Ensures we only keep matched sites
    
    # Final Join
    year_comparison <- rum_person_results %>%
        left_join(mdcev_indiv, by = c("id", "parkname")) %>%
        left_join(unique_users, by = "id") %>% 
        mutate(
            year = yr,
            difference = annual_rum_loss - mdcev_annual_loss
        )
    
    return(year_comparison)
})

saveRDS(model_list_52, "data/model_list_52.rds")

Full Closure

Show the Code
# 1. Extract the Price Coefficient
beta_price <- coef(rum_mle)["price"]

# 2. Calculate Total System Welfare Loss
# We compare the current state (All Parks) to the "Closed" state (Stay_Home Only)
total_system_welfare <- df_math %>%
  group_by(trip_id) %>%
  summarise(
    # Inclusive value (Log-Sum) of the current world:
    ls_base = log(sum(exp(V))),
    
    # Inclusive value if ONLY 'Stay_Home' exists (Everything else removed):
    ls_policy = log(sum(exp(V[park_name == "Stay_Home"]))),
    
    .groups = "drop"
  ) %>%
  # Welfare formula: (LS_policy - LS_base) / -beta_price
  mutate(cv_week = (ls_policy - ls_base) / -beta_price) %>%
  
  # Group by User ID to get the Annual Total
  mutate(id = as.character(str_remove(trip_id, "_w\\d+$"))) %>%
  group_by(id) %>%
  summarise(annual_system_loss = sum(cv_week, na.rm = TRUE), .groups = "drop")

# 3. View the Results
summary_stats <- total_system_welfare %>%
  summarise(
    Mean_Annual_Value = mean(annual_system_loss),
    Median_Annual_Value = median(annual_system_loss),
    Total_Sample_Value = sum(annual_system_loss)
  )

print(summary_stats)
# A tibble: 1 × 3
  Mean_Annual_Value Median_Annual_Value Total_Sample_Value
              <dbl>               <dbl>              <dbl>
1            -3839.              -3785.          -6768409.

Coeffienct Table

Show the Code
# Create a specific list for the 2018/2023 comparison
# We alternate them: [Obs 2018, 52wk 2018, Obs 2023, 52wk 2023]
comparison_list <- list(
    "Observed" = model_list_obs[["Year_2018"]], 
    "52-Week"  = model_list_52[["52wk 2018"]],
    "Observed" = model_list_obs[["Year_2023"]], 
    "52-Week"  = model_list_52[["52wk 2023"]]
)
Show code
# 2. Generate the Professionally Grouped Table

# Ensure your lists exist and are not empty before running this
stargazer(
  comparison_list,
  type = "html",
  out = "tables/rum_comparison_results.html",
  title = "Table: Comparison of RUM Specifications (2018 vs. 2023)",
  
  # --- THE KEY ARGUMENT FOR SIDE-BY-SIDE SEs ---
  single.row = TRUE, 
  
  column.labels = c("2018", "2023"),
  column.separate = c(2, 2),
  model.names = TRUE,
  dep.var.labels.include = FALSE,
  model.numbers = FALSE,
  
  # Pulling Price (22) and Bunker (6) to the top
  order = c(22, 6),
  covariate.labels = c("Travel Cost (Price)", "Keanakolu Bunkhouse"),
  
  omit.stat = c("f", "ser", "lr", "rsq", "adj.rsq"),
  star.cutoffs = c(0.05, 0.01, 0.001),
  no.space = TRUE,
  notes = "Standard errors in parentheses next to coefficients. 52-Week model includes 'Stay-at-Home'."
)

All Coefficent

Show the Code
# Create a specific list for the 2018/2023 comparison

comparison_list <- list(
    "Observed" = model_list_obs[["Year_2018"]], 
    "52-Week"  = model_list_52[["52wk 2018"]],
    "Observed" = model_list_obs[["Year_2019"]], 
    "52-Week"  = model_list_52[["52wk 2019"]],
    "Observed" = model_list_obs[["Year_2020"]], 
    "52-Week"  = model_list_52[["52wk 2020"]],
    "Observed" = model_list_obs[["Year_2021"]], 
    "52-Week"  = model_list_52[["52wk 2021"]],
    "Observed" = model_list_obs[["Year_2022"]], 
    "52-Week"  = model_list_52[["52wk 2022"]],
    "Observed" = model_list_obs[["Year_2023"]], 
    "52-Week"  = model_list_52[["52wk 2023"]]
)
Show code
stargazer(
comparison_list,
type = "html",
out = "tables/rum_comparison_results_appendix.html",
title = "Table: Comparison of RUM Specifications (2018 vs. 2023)",
column.labels = c("2018", "2019","2020","2021","2022","2023"),
column.separate = c(2, 2),
model.names = TRUE,
dep.var.labels.include = FALSE,
model.numbers = FALSE,
# Use 'order' to pull Price (22) and Bunker (6) to the top of the table
# This keeps the table concise and professional
order = c(23, 6),
# Rename only the ones we kept at the top
covariate.labels = c("Travel Cost (Price)", "Keanakolu Bunkhouse"),
omit.stat = c("f", "ser", "lr", "rsq", "adj.rsq"),
star.cutoffs = c(0.05, 0.01, 0.001),
no.space = TRUE,
notes = "Standard errors in parentheses. 52-Week model includes 'Stay-at-Home' as a weekly choice."
)

Merge

Show the Code
final_comparison_master <- final_comparison %>%
  # Select and rename columns from the first dataset
  select(id, parkname, year, zip, income, 
         loss_rum_observed = annual_rum_loss, 
         loss_mdcev = mdcev_annual_loss) %>%
  

  full_join(
    final_comparison_52_person %>% 
      select(id, parkname, year, loss_rum_52wk = annual_rum_loss), 
    by = c("id", "parkname", "year")
  ) 

head(final_comparison_master)
# A tibble: 6 × 8
  id    parkname    year   zip income loss_rum_observed loss_mdcev loss_rum_52wk
  <chr> <chr>      <int> <dbl>  <int>             <dbl>      <dbl>         <dbl>
1 1     Ainapo Ca…  2018 96727  59937            -4.21   -4.85e-12        -11.1 
2 1001  Ainapo Ca…  2018 96826  51649            -1.96    1.31e-11         -2.54
3 1002  Ainapo Ca…  2018 96782  93832            -1.12   -9.70e-13         -1.41
4 1006  Ainapo Ca…  2018 96814  63283            -1.73   -3.93e+ 1         -2.16
5 1008  Ainapo Ca…  2018 96703  69615            -0.846  -1.94e-12         -1.83
6 1009  Ainapo Ca…  2018 96716  75417            -0.259   1.46e-12         -1.15
Show the Code
#write_csv(final_comparison_master, "data/final_comparison_master.csv")
Source Code
---
title: "rum"

format:
  html:
    code-fold: true        # Enables dropdown for code
    code-tools: true       # (Optional) Adds buttons like "Show Code"
    code-summary: "Show code"  # (Optional) Custom label for dropdown
    toc: true
    toc-location: left
    page-layout: full
editor: visual
---

# Rum

This script will run a RUM model on our data assuming a stay at home option and compare it to our result of the MDCEV.



### Data

Need to run the same data for the MDCEV which gives us final_data_2018. So going to clip the code from the file R script high cost.

The first code will produce final_data_yyyy by year and then should be able to run all the rest of the data

```{r}
library(dplyr)
library(tidyr)
library(haven)
library(readr)
library(mlogit)
library(lmtest)
library(purrr)
library(stringr)
library(readr)
library(ggplot2)
library(stargazer)
library(readxl)
library(patchwork)
library(broom)
library(tidyverse)
library(sf)
library(tigris)
library(ggrepel)
library(ggspatial)
library(ggpattern)

```

reservation_data \<- read_dta("reservation_data_merged_id_complete.dta")

```{r}
#| cache: true
#| message: false
#| warning: false
#| code-fold: true
#| code-summary: "Show the Code"



# Load datasets
reservation_data <- read_dta("data/reservation_data_merged_id_complete.dta")
intra_island_distance <- read.csv("data/intra_island_distance2.csv")

# Add year
reservation_data$year <- as.numeric(format(as.Date(reservation_data$CheckinDate, "%Y-%m-%d"), "%Y"))

reservation_data <- reservation_data %>%
  mutate(zip = ifelse(zip == 96812, 96813, zip))

# Group and compute yearly averages
avg_days_per_year <- reservation_data %>%
  group_by(year, id) %>%
  summarize(avg_days_visited = mean(days_visited, na.rm = TRUE)) %>%
  ungroup()

avg_days_2018 <- avg_days_per_year %>% filter(year == 2018)
avg_days_2019 <- avg_days_per_year %>% filter(year == 2019)
avg_days_2020 <- avg_days_per_year %>% filter(year == 2020)
avg_days_2021 <- avg_days_per_year %>% filter(year == 2021)
avg_days_2022 <- avg_days_per_year %>% filter(year == 2022)
avg_days_2023 <- avg_days_per_year %>% filter(year == 2023)


# Function to process data for a single year
process_year <- function(year_input) {
  data_year <- reservation_data %>% filter(year == year_input)
  
  unique_visits <- data_year %>%
    filter(!is.na(CheckinDate)) %>%
    distinct(id, parkname, CheckinDate) %>%
    group_by(id, parkname) %>%
    summarize(VisitCount = n(), .groups = "drop")
  
  all_combinations <- expand.grid(
    id = unique(data_year$id),
    parkname = unique(data_year$parkname),
    stringsAsFactors = FALSE
  )
  
  visit_data <- all_combinations %>%
    left_join(unique_visits, by = c("id", "parkname")) %>%
    mutate(VisitCount = ifelse(is.na(VisitCount), 0, VisitCount))
  
  person_info <- data_year %>%
    select(id, Permittee, zip, Zip, NoOfGuests, days_visited, year) %>%
    distinct()
  
  long_resdata_count <- left_join(visit_data, person_info, by = "id")
  
  long_resdata_count <- long_resdata_count %>%
    mutate(island_park = case_when(
      parkname == "Ainapo Cabin" ~ "Hawaii",
      parkname == "Hipalau" ~ "Kauai",
      parkname == "Kaluahaulu" ~ "Kauai",
      parkname == "Kamananui Trail" ~ "Oahu",
      parkname == "Kaunala Trail" ~ "Oahu",
      parkname == "Kawaikoi" ~ "Kauai",
      parkname == "Keanakolu Ranger & Bunkhouse Cabins" ~ "Hawaii",
      parkname == "Kuaokala Trail" ~ "Oahu",
      parkname == "Kulanaahane Trail" ~ "Oahu",
      parkname == "Kuliouou Trail" ~ "Oahu",
      parkname == "Lonomea" ~ "Kauai",
      parkname == "Maakua Ridge Trail" ~ "Oahu",
      parkname == "Manana Trail" ~ "Oahu",
      parkname == "Peacock Flats Campsite" ~ "Oahu",
      parkname == "Sugi Grove" ~ "Kauai",
      parkname == "Waialae Cabin Campsite" ~ "Kauai",
      parkname == "Waikoali" ~ "Kauai",
      parkname == "Waikolu" ~ "Molokai",
      parkname == "Waimano Trail" ~ "Oahu",
      parkname == "Waimanu Campsite" ~ "Hawaii",
      parkname == "Wiliwili" ~ "Kauai",
      parkname == "Wiliwilinui Ridge Trail" ~ "Oahu",
      TRUE ~ NA_character_
    ))
  
  long_resdata_count <- long_resdata_count[order(long_resdata_count$id, long_resdata_count$parkname), ]
  long_resdata_count$parkname_numeric <- as.integer(factor(long_resdata_count$parkname, levels = unique(long_resdata_count$parkname)))
  
  long_resdata_count <- long_resdata_count %>%
    distinct(id, parkname, .keep_all = TRUE)
  
  final_data <- long_resdata_count %>%
    left_join(
      intra_island_distance %>%
        select(zip, parkname, income, residents_distance_meters, residents_duration, island_live),
      by = c("zip", "parkname")
    )
  
  final_data <- final_data %>%
    group_by(id) %>%
    mutate(visited_another_island = ifelse(any(island_park != island_live & VisitCount > 0), 1, 0)) %>%
    ungroup()
  
  final_data$travel_distance_km <- (final_data$residents_distance_meters / 1000) * 2
  
  
  return(final_data)
}

# Run the function for each year
final_data_2018 <- process_year(2018)
final_data_2019 <- process_year(2019)
final_data_2020 <- process_year(2020)
final_data_2021 <- process_year(2021)
final_data_2022 <- process_year(2022)
final_data_2023 <- process_year(2023)

# Add correct avg_days_visited for each year by joining on id

final_data_2018 <- final_data_2018 %>%
  left_join(avg_days_2018 %>% select(id, avg_days_visited), by = "id") %>%
  mutate(days_visited = avg_days_visited)

final_data_2019 <- final_data_2019 %>%
  left_join(avg_days_2019 %>% select(id, avg_days_visited), by = "id") %>%
  mutate(days_visited = avg_days_visited)

final_data_2020 <- final_data_2020 %>%
  left_join(avg_days_2020 %>% select(id, avg_days_visited), by = "id") %>%
  mutate(days_visited = avg_days_visited)

final_data_2021 <- final_data_2021 %>%
  left_join(avg_days_2021 %>% select(id, avg_days_visited), by = "id") %>%
  mutate(days_visited = avg_days_visited)

final_data_2022 <- final_data_2022 %>%
  left_join(avg_days_2022 %>% select(id, avg_days_visited), by = "id") %>%
  mutate(days_visited = avg_days_visited)

final_data_2023 <- final_data_2023 %>%
  left_join(avg_days_2023 %>% select(id, avg_days_visited), by = "id") %>%
  mutate(days_visited = avg_days_visited)

## Travel cost per year calculations ##


##Adjusted for inflation
gas_prices <- data.frame(
  year = c(2018, 2019, 2020, 2021, 2022, 2023),
  gas_price = c(4.68, 4.49, 4.09, 4.75, 5.81, 5.09)
)

mean_gas_price <- (4.68+4.49+4.09+4.75+5.81+5.09)/6


# Inputs based on AAA Brochure 2018
fuel_efficiency_mpg <- 25
gas_price_hawaii_2018 <- 4.68  # in USD/gallon
maintenance_per_mile <- 0.0858*1.2816  # in USD/mile 2025 price
annual_miles <- 15000
annual_ownership_cost <- 6202*1.2816  # USD 2025 price

# Calculate total cost per mile
cost_per_mile <- (
  (1 / fuel_efficiency_mpg * gas_price_hawaii_2018 * annual_miles) +  # fuel cost
    (maintenance_per_mile * annual_miles) +                             # maintenance
    annual_ownership_cost                                               # ownership
) / annual_miles  # divide by miles to get per-mile cost

#https://exchange.aaa.com/wp-content/uploads/2018/09/18-0090_2018-Your-Driving-Costs-Brochure_FNL-Lo-5-2.pdf

# Show result
cost_per_mile

miles_to_km <- 1.60934

cost_per_km <- cost_per_mile / miles_to_km
cost_per_km

final_data_2018$price <- (final_data_2018$travel_distance_km * cost_per_km) / 3 +
  ((final_data_2018$income * 0.75) / 2080 * final_data_2018$travel_distance_km / 50)


# Inputs based on AAA Brochure 2019
fuel_efficiency_mpg <- 25
gas_price_hawaii_2019 <- 4.49  # in USD/gallon
maintenance_per_mile <- 0.0960*1.262  # in USD/mile 2025 price
annual_miles <- 15000
annual_ownership_cost <- 6845*1.262  # USD 2025 price

# Calculate total cost per mile
cost_per_mile <- (
  (1 / fuel_efficiency_mpg * gas_price_hawaii_2019 * annual_miles) +  # fuel cost
    (maintenance_per_mile * annual_miles) +                             # maintenance
    annual_ownership_cost                                               # ownership
) / annual_miles  # divide by miles to get per-mile cost

#https://exchange.aaa.com/wp-content/uploads/2019/09/AAA-Your-Driving-Costs-2019.pdf

# Show result
cost_per_mile

miles_to_km <- 1.60934

cost_per_km <- cost_per_mile / miles_to_km
cost_per_km

final_data_2019$price <- (final_data_2019$travel_distance_km * cost_per_km) / 3 +
  ((final_data_2019$income * 0.75) / 2080 * final_data_2019$travel_distance_km / 50)

# Inputs based on AAA Brochure 2020
fuel_efficiency_mpg <- 25
gas_price_hawaii_2020 <- 4.09  # in USD/gallon
maintenance_per_mile <- 0.1011*1.2314  # in USD/mile 2025 price
annual_miles <- 15000
annual_ownership_cost <- 6831*1.2314  # USD 2025 price

# Calculate total cost per mile
cost_per_mile <- (
  (1 / fuel_efficiency_mpg * gas_price_hawaii_2020 * annual_miles) +  # fuel cost
    (maintenance_per_mile * annual_miles) +                             # maintenance
    annual_ownership_cost                                               # ownership
) / annual_miles  # divide by miles to get per-mile cost

#https://newsroom.aaa.com/wp-content/uploads/2020/12/2020-Your-Driving-Costs-Brochure-Interactive-FINAL-12-9-20.pdf

# Show result
cost_per_mile

miles_to_km <- 1.60934

cost_per_km <- cost_per_mile / miles_to_km
cost_per_km

final_data_2020$price <- (final_data_2020$travel_distance_km * cost_per_km) / 3 +
  ((final_data_2020$income * 0.75) / 2080 * final_data_2020$travel_distance_km / 50)

# Inputs based on AAA Brochure 2021
fuel_efficiency_mpg <- 25
gas_price_hawaii_2021 <- 4.75  # in USD/gallon
maintenance_per_mile <- 0.1043*1.12144  # in USD/mile 2025 price
annual_miles <- 15000
annual_ownership_cost <- 6633*1.12144  # USD 2025 price

# Calculate total cost per mile
cost_per_mile <- (
  (1 / fuel_efficiency_mpg * gas_price_hawaii_2021 * annual_miles) +  # fuel cost
    (maintenance_per_mile * annual_miles) +                             # maintenance
    annual_ownership_cost                                               # ownership
) / annual_miles  # divide by miles to get per-mile cost

#https://newsroom.aaa.com/wp-content/uploads/2021/08/2021-YDC-Brochure-Live.pdf

# Show result
cost_per_mile

miles_to_km <- 1.60934

cost_per_km <- cost_per_mile / miles_to_km
cost_per_km

final_data_2021$price <- (final_data_2021$travel_distance_km * cost_per_km) / 3 +
  ((final_data_2021$income * 0.75) / 2080 * final_data_2021$travel_distance_km / 50)

# Inputs based on AAA Brochure 2022
fuel_efficiency_mpg <- 25
gas_price_hawaii_2022 <- 5.81  # in USD/gallon
maintenance_per_mile <- 0.1064*1.113  # in USD/mile 2025 price
annual_miles <- 15000
annual_ownership_cost <- 6599*1.113  # USD 2025 price

# Calculate total cost per mile
cost_per_mile <- (
  (1 / fuel_efficiency_mpg * gas_price_hawaii_2022 * annual_miles) +  # fuel cost
    (maintenance_per_mile * annual_miles) +                             # maintenance
    annual_ownership_cost                                               # ownership
) / annual_miles  # divide by miles to get per-mile cost

# Show result
cost_per_mile

miles_to_km <- 1.60934

cost_per_km <- cost_per_mile / miles_to_km
cost_per_km

final_data_2022$price <- (final_data_2022$travel_distance_km * cost_per_km) / 3 +
  ((final_data_2022$income * 0.75) / 2080 * final_data_2022$travel_distance_km / 50)

#https://newsroom.aaa.com/wp-content/uploads/2022/08/2022-YDC-Costs-Break-Out-by-Category.pdf

# Inputs based on AAA Brochure 2023
fuel_efficiency_mpg <- 25
gas_price_hawaii_2023 <- 5.09  # in USD/gallon
maintenance_per_mile <- 0.1085*1.0618  # in USD/mile 2025 price
annual_miles <- 15000
annual_ownership_cost <- 7542*1.0618  # USD 2025 price

# Calculate total cost per mile
cost_per_mile <- (
  (1 / fuel_efficiency_mpg * gas_price_hawaii_2023 * annual_miles) +  # fuel cost
    (maintenance_per_mile * annual_miles) +                             # maintenance
    annual_ownership_cost                                               # ownership
) / annual_miles  # divide by miles to get per-mile cost

# Show result
cost_per_mile

miles_to_km <- 1.60934

cost_per_km <- cost_per_mile / miles_to_km
cost_per_km

final_data_2023$price <- (final_data_2023$travel_distance_km * cost_per_km) / 3 +
  ((final_data_2023$income * 0.75) / 2080 * final_data_2023$travel_distance_km / 50)

#https://newsroom.aaa.com/wp-content/uploads/2023/08/YDC-Brochure_2023-FINAL-8.30.23-.pdf


final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(parkname == "Ainapo Cabin", (30*days_visited)/3, 0),
         price = price + ifelse(parkname == "Hipalau", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaluahaulu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kamananui Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaunala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kawaikoi", (20*days_visited)/3, 0),
         price = price + ifelse(parkname == "Keanakolu Ranger & Bunkhouse Cabins", (60*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuaokala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kulanaahane Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuliouou Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Lonomea", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Maakua Ridge Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Manana Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Peacock Flats Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Sugi Grove", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waialae Cabin Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikoali", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikolu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimano Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimanu Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwili", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwilinui Ridge Trail", (12*days_visited)/3, 0))


final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(parkname == "Ainapo Cabin", (30*days_visited)/3, 0),
         price = price + ifelse(parkname == "Hipalau", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaluahaulu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kamananui Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaunala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kawaikoi", (20*days_visited)/3, 0),
         price = price + ifelse(parkname == "Keanakolu Ranger & Bunkhouse Cabins", (60*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuaokala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kulanaahane Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuliouou Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Lonomea", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Maakua Ridge Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Manana Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Peacock Flats Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Sugi Grove", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waialae Cabin Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikoali", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikolu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimano Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimanu Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwili", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwilinui Ridge Trail", (12*days_visited)/3, 0))

final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(parkname == "Ainapo Cabin", (30*days_visited)/3, 0),
         price = price + ifelse(parkname == "Hipalau", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaluahaulu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kamananui Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaunala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kawaikoi", (20*days_visited)/3, 0),
         price = price + ifelse(parkname == "Keanakolu Ranger & Bunkhouse Cabins", (60*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuaokala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kulanaahane Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuliouou Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Lonomea", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Maakua Ridge Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Manana Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Peacock Flats Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Sugi Grove", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waialae Cabin Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikoali", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikolu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimano Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimanu Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwili", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwilinui Ridge Trail", (12*days_visited)/3, 0))

final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(parkname == "Ainapo Cabin", (30*days_visited)/3, 0),
         price = price + ifelse(parkname == "Hipalau", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaluahaulu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kamananui Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaunala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kawaikoi", (20*days_visited)/3, 0),
         price = price + ifelse(parkname == "Keanakolu Ranger & Bunkhouse Cabins", (60*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuaokala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kulanaahane Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuliouou Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Lonomea", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Maakua Ridge Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Manana Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Peacock Flats Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Sugi Grove", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waialae Cabin Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikoali", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikolu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimano Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimanu Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwili", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwilinui Ridge Trail", (12*days_visited)/3, 0))

final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(parkname == "Ainapo Cabin", (30*days_visited)/3, 0),
         price = price + ifelse(parkname == "Hipalau", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaluahaulu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kamananui Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaunala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kawaikoi", (20*days_visited)/3, 0),
         price = price + ifelse(parkname == "Keanakolu Ranger & Bunkhouse Cabins", (60*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuaokala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kulanaahane Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuliouou Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Lonomea", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Maakua Ridge Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Manana Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Peacock Flats Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Sugi Grove", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waialae Cabin Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikoali", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikolu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimano Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimanu Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwili", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwilinui Ridge Trail", (12*days_visited)/3, 0))

final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(parkname == "Ainapo Cabin", (30*days_visited)/3, 0),
         price = price + ifelse(parkname == "Hipalau", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaluahaulu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kamananui Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kaunala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kawaikoi", (20*days_visited)/3, 0),
         price = price + ifelse(parkname == "Keanakolu Ranger & Bunkhouse Cabins", (60*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuaokala Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kulanaahane Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Kuliouou Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Lonomea", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Maakua Ridge Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Manana Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Peacock Flats Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Sugi Grove", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waialae Cabin Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikoali", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waikolu", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimano Trail", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Waimanu Campsite", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwili", (12*days_visited)/3, 0),
         price = price + ifelse(parkname == "Wiliwilinui Ridge Trail", (12*days_visited)/3, 0))

#########Value of travel time in air#########

### BIG ISLAND ###
##Insert value of spare time of travelling with flight to BI if live in Oahu (90 minutes before flight + 50 minutes flight time)
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu",
                                (((income * 0.75) / 2080) * 2.33) * 2, 0))

##Insert value of spare time of travelling with flight to BI if live in Kauai (90 minutes before flight + 55 minutes flight time)
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai",
                                (((income * 0.75) / 2080) * 2.42) * 2, 0))

##Insert value of spare time of travelling with flight to BI if live in Molokai (90 minutes before flight + 1.5 hour flight time one way)
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai",
                                (((income * 0.75) / 2080) * 3.5) * 2, 0))

### OAHU ###
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii",
                                (((income * 0.75) / 2080) * 2.33) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai",
                                (((income * 0.75) / 2080) * 2.17) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai",
                                (((income * 0.75) / 2080) * 2.17) * 2, 0))

### KAUAI ###
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii",
                                (((income * 0.75) / 2080) * 2.42) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu",
                                (((income * 0.75) / 2080) * 2.17) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai",
                                (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MOLOKAI ###
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii",
                                (((income * 0.75) / 2080) * 3.5) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu",
                                (((income * 0.75) / 2080) * 2.17) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai",
                                (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MAUI ###
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Maui",
                                (((income * 0.75) / 2080) * 2) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Maui",
                                (((income * 0.75) / 2080) * 2.17) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Maui",
                                (((income * 0.75) / 2080) * 2.33) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Maui",
                                (((income * 0.75) / 2080) * 2.17) * 2, 0))

### LANAI ###
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Lanai",
                                (((income * 0.75) / 2080) * 2) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Lanai",
                                (((income * 0.75) / 2080) * 2.17) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Lanai",
                                (((income * 0.75) / 2080) * 4.34) * 2, 0))

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai",
                                (((income * 0.75) / 2080) * 4.34) * 2, 0))


#########Value of travel time in air#########

### BIG ISLAND ###
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### OAHU ###
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### KAUAI ###
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MOLOKAI ###
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 3.5) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MAUI ###
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Maui", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### LANAI ###
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0))

#########Value of travel time in air#########

### BIG ISLAND ###
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### OAHU ###
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### KAUAI ###
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MOLOKAI ###
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 3.5) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MAUI ###
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Maui", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### LANAI ###
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0))

##

### BIG ISLAND ###
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### OAHU ###
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### KAUAI ###
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MOLOKAI ###
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 3.5) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MAUI ###
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Maui", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### LANAI ###
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0))

##

### BIG ISLAND ###
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### OAHU ###
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### KAUAI ###
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MOLOKAI ###
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 3.5) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MAUI ###
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Maui", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### LANAI ###
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0))

##

### BIG ISLAND ###
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### OAHU ###
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### KAUAI ###
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 2.42) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MOLOKAI ###
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (((income * 0.75) / 2080) * 3.5) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (((income * 0.75) / 2080) * 3.5) * 2, 0))

### MAUI ###
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Maui", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", (((income * 0.75) / 2080) * 2.33) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", (((income * 0.75) / 2080) * 2.17) * 2, 0))

### LANAI ###
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", (((income * 0.75) / 2080) * 2) * 2, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", (((income * 0.75) / 2080) * 2.17) * 2, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", (((income * 0.75) / 2080) * 4.34) * 2, 0))



## Flight costs 2018
#########Flight cost - 2018 #########

## BIG ISLAND ##
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", 354.0447586, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", 368.0753954, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", 308.7662656, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", 273.2598837, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", 354.0447586 + 137.8000852, 0))  # via Oahu

## OAHU ##
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", 354.0447586, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", 269.4129138, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", 112.5000815, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", 291.0965957, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", 137.8000852, 0))

## KAUAI ##
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", 368.0753954, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", 269.4129138, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", 317.7951903, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", 359.4733617, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", 336.1283623, 0))

## MOLOKAI ##
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", 308.7662656, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", 112.5000815, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", 317.7951903, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Maui", 118.8094464, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", 137.8000852 + 112.5000815, 0))  # via Oahu

## Flight costs 2019
## BIG ISLAND ##
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", 348.630216, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", 362.446277, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", 304.044185, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", 269.080816, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", 348.630216 + 135.692656, 0))  # via Oahu

## OAHU ##
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", 348.630216, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", 265.292679, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", 110.779575, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", 286.644744, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", 135.692656, 0))

## KAUAI ##
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", 362.446277, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", 265.292679, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", 312.935027, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", 353.975798, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", 330.987822, 0))

## MOLOKAI ##
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", 304.044185, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", 110.779575, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", 312.935027, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Maui", 118.809446, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", 135.692656 + 110.779575, 0))  # via Oahu


## Flight costs 2020
## BIG ISLAND ##
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", 340.176901, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", 353.657960, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", 296.671957, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", 262.556352, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", 340.176901 + 132.402485, 0))  # via Oahu

## OAHU ##
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", 340.176901, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", 258.860067, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", 108.093477, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", 279.694404, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", 132.402485, 0))

## KAUAI ##
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", 353.657960, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", 258.860067, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", 305.347220, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", 345.392866, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", 322.962286, 0))

## MOLOKAI ##
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", 296.671957, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", 108.093477, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", 305.347220, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Maui", 108.093477 + 279.6944039, 0), # via Oahu
         price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", 132.402485 + 108.093477, 0))  # via Oahu

##Flight costs 2021
## Flight costs 2021
## BIG ISLAND ##
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", 309.800214, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", 322.077459, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", 296.6719565, 0), #Use value for 2020
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", 239.110927, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", 309.800214 + 132.4024851, 0))  # via Oahu #Use value for 2020 for Oahu to Lanai

## OAHU ##
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", 309.800214, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", 235.744708, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", 126.263151, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", 254.718607, 0), 
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", 132.4024851, 0)) #Use value for 2020

## KAUAI ##
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", 322.077459, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", 235.744708, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", 389.441668, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", 314.550411, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", 235.744708 + 132.4024851, 0))  # via Oahu #Use value for 2020 for Oahu to Lanai

## MOLOKAI ##
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", 296.6719565, 0), #Use value for 2020
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", 120.699975, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", 389.441668, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Maui", 120.699975 + 254.718607, 0), # via Oahu
         price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", 126.263151 + 120.699975, 0))  # via Oahu

##Flight cost 2022
## Flight costs 2022

## BIG ISLAND ##
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", 307.468646, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", 319.6534918, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", 296.6719565, 0), #Use value for 2020
         price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", 237.311369, 0),
         price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", 307.468646 + 132.4024851, 0))  # via Oahu

## OAHU ##
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", 307.468646, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", 233.970485, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", 169.716317, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Maui", 252.801585, 0),
         price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", 132.4024851, 0))  #Use value for 2020

## KAUAI ##
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", 319.6534918, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", 233.970485, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", 589.133955, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Maui", 312.1830927, 0),
         price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", 233.970485 + 132.4024851, 0))  # via Oahu #Use value for 2020

## MOLOKAI ##
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", 296.6719565, 0), #Use value for 2020
         price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", 169.716317, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", 275.9878642, 0),
         price = price + ifelse(island_park == "Molokai" & island_live == "Maui", 169.716317 + 252.8015848, 0),  # via Oahu
         price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", 169.716317 + 132.4024851, 0))  # via Oahu

##Flight cost 2023
## HAWAII ##
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", 293.324536, 0)) %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", 304.948857, 0)) %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", 296.6719565, 0)) %>% #Use value for 2020
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Maui", 226.39462, 0)) %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Lanai", 132.4024851 + 293.324536, 0))

## OAHU ##
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", 293.324536, 0)) %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", 223.207422, 0)) %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", 169.464607, 0)) %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Maui", 241.172258, 0)) %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Lanai", 132.4024851, 0)) #Use value for 2020

## KAUAI ##
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", 304.948857, 0)) %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", 223.207422, 0)) %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", 500.736032, 0)) %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Maui", 297.822109, 0)) %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Lanai", 223.207422 + 132.4024851, 0))

## MOLOKAI ##
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", 296.6719565, 0)) %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", 169.464607, 0)) %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", 263.291927, 0)) %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Maui", 241.172258 + 169.464607, 0)) %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Lanai", 132.4024851 + 169.464607, 0))



#########Car rental cost#########

### BIG ISLAND ###

#On average a rental car in The Big Island costs $430 per week ($61 per day).

##Insert car rental cost in BI
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (61 * days_visited)/3.78, 0))

### OAHU ###

#On average a rental car in Oahu is $48/day

##Insert car rental cost in Oahu
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (48 * days_visited)/3.78, 0))

### Kauai ###

#On average a rental car in Kauai is $62/day

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (63 * days_visited)/3.78, 0))

### Molokai ###

#On average a rental car in Molokai is $107/day

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (107 * days_visited)/3.78, 0))

#########Parking fees#########

### Oahu ###

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

### Kauai ###

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

### Big Island ###

final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2018 <- final_data_2018 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

### BIG ISLAND ###

#On average a rental car in The Big Island costs $430 per week ($61 per day).

##Insert car rental cost in BI
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (61 * days_visited)/3.78, 0))

### OAHU ###

#On average a rental car in Oahu is $48/day

##Insert car rental cost in Oahu
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (48 * days_visited)/3.78, 0))

### Kauai ###

#On average a rental car in Kauai is $62/day

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (63 * days_visited)/3.78, 0))

### Molokai ###

#On average a rental car in Molokai is $107/day

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (107 * days_visited)/3.78, 0))

#########Parking fees#########

### Oahu ###

final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

### Kauai ###

final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

### Big Island ###

final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2019 <- final_data_2019 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

### BIG ISLAND ###

#On average a rental car in The Big Island costs $430 per week ($61 per day).

##Insert car rental cost in BI
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (61 * days_visited)/3.78, 0))

### OAHU ###

#On average a rental car in Oahu is $48/day

##Insert car rental cost in Oahu
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (48 * days_visited)/3.78, 0))

### Kauai ###

#On average a rental car in Kauai is $62/day

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (63 * days_visited)/3.78, 0))

### Molokai ###

#On average a rental car in Molokai is $107/day

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (107 * days_visited)/3.78, 0))

#########Parking fees#########

### Oahu ###

final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

### Kauai ###

final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

### Big Island ###

final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2020 <- final_data_2020 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))


### BIG ISLAND ###

#On average a rental car in The Big Island costs $430 per week ($61 per day).

##Insert car rental cost in BI
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (61 * days_visited)/3.78, 0))

### OAHU ###

#On average a rental car in Oahu is $48/day

##Insert car rental cost in Oahu
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (48 * days_visited)/3.78, 0))

### Kauai ###

#On average a rental car in Kauai is $62/day

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (63 * days_visited)/3.78, 0))

### Molokai ###

#On average a rental car in Molokai is $107/day

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (107 * days_visited)/3.78, 0))

#########Parking fees#########

### Oahu ###

final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

### Kauai ###

final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

### Big Island ###

final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2021 <- final_data_2021 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))


### BIG ISLAND ###

#On average a rental car in The Big Island costs $430 per week ($61 per day).

##Insert car rental cost in BI
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (61 * days_visited)/3.78, 0))

### OAHU ###

#On average a rental car in Oahu is $48/day

##Insert car rental cost in Oahu
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (48 * days_visited)/3.78, 0))

### Kauai ###

#On average a rental car in Kauai is $62/day

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (63 * days_visited)/3.78, 0))

### Molokai ###

#On average a rental car in Molokai is $107/day

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (107 * days_visited)/3.78, 0))

#########Parking fees#########

### Oahu ###

final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

### Kauai ###

final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

### Big Island ###

final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2022 <- final_data_2022 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))


### BIG ISLAND ###

#On average a rental car in The Big Island costs $430 per week ($61 per day).

##Insert car rental cost in BI
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (61 * days_visited)/3.78, 0))

##Insert car rental cost in BI
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Molokai", (61 * days_visited)/3.78, 0))

### OAHU ###

#On average a rental car in Oahu is $48/day

##Insert car rental cost in Oahu
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (48 * days_visited)/3.78, 0))

##Insert car rental cost in Oahu
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Molokai", (48 * days_visited)/3.78, 0))

### Kauai ###

#On average a rental car in Kauai is $62/day

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (63 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Molokai", (63 * days_visited)/3.78, 0))

### Molokai ###

#On average a rental car in Molokai is $107/day

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (107 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (107 * days_visited)/3.78, 0))

#########Parking fees#########

### Oahu ###

final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Oahu", (22 * days_visited)/3.78, 0))

### Kauai ###

final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Hawaii" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Kauai", (24 * days_visited)/3.78, 0))

### Big Island ###

final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Oahu" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Kauai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))

##Insert car rental cost in Kauai
final_data_2023 <- final_data_2023 %>%
  mutate(price = price + ifelse(island_park == "Molokai" & island_live == "Hawaii", (24 * days_visited)/3.78, 0))


##Mean travel cost
summary(final_data_2018$price)

final_data_2018 <- final_data_2018 %>%
  arrange(Permittee, parkname)

final_data_2018$parkname_numeric <- as.integer(factor(final_data_2018$parkname, levels = unique(final_data_2018$parkname)))

##Mean travel cost
summary(final_data_2019$price)

final_data_2019 <- final_data_2019 %>%
  arrange(Permittee, parkname)

final_data_2019$parkname_numeric <- as.integer(factor(final_data_2019$parkname, levels = unique(final_data_2019$parkname)))

##Mean travel cost
summary(final_data_2020$price)

final_data_2020 <- final_data_2020 %>%
  arrange(Permittee, parkname)

final_data_2020$parkname_numeric <- as.integer(factor(final_data_2020$parkname, levels = unique(final_data_2020$parkname)))

##Mean travel cost
summary(final_data_2021$price)

final_data_2021 <- final_data_2021 %>%
  arrange(Permittee, parkname)

final_data_2021$parkname_numeric <- as.integer(factor(final_data_2021$parkname, levels = unique(final_data_2021$parkname)))

##Mean travel cost
summary(final_data_2022$price)

final_data_2022 <- final_data_2022 %>%
  arrange(Permittee, parkname)

final_data_2022$parkname_numeric <- as.integer(factor(final_data_2022$parkname, levels = unique(final_data_2022$parkname)))

##Mean travel cost
summary(final_data_2023$price)

final_data_2023 <- final_data_2023 %>%
  arrange(Permittee, parkname)

final_data_2023$parkname_numeric <- as.integer(factor(final_data_2023$parkname, levels = unique(final_data_2023$parkname)))

```

#### Rum

```{r setup}
#| cache: true
#| message: false
#| warning: false
#| code-fold: true
#| code-summary: "Show the Code"


# Create unique choice occasions for every visit
data_rum <- final_data_2018 %>%
  filter(VisitCount > 0) %>%
  uncount(VisitCount) %>%
  group_by(id) %>%
  mutate(choice_id = paste0(id, "_", row_number())) %>%
  ungroup() %>%
  select(choice_id, id, chosen_park = parkname) %>%
  expand_grid(parkname = unique(final_data_2018$parkname)) %>%
  mutate(choice = (chosen_park == parkname)) %>%
  left_join(final_data_2018 %>% select(id, parkname, price/NoOfGuests, travel_distance_km,income,zip), 
            by = c("id", "parkname"))

# Create Stay at Home

# Create the Stay-at-Home option for every choice occasion
outside_home <- data_rum %>%
  distinct(choice_id, id,income,zip) %>%
  mutate(
    parkname = "Stay_Home",
    choice = FALSE,      
    price = 0,
    travel_distance_km = 0
  )

# Combine with your existing data
data_rum<- bind_rows(data_rum, outside_home)

# Re-format for mlogit
df_rum <- dfidx(data_rum, 
                        idx = list("choice_id", "parkname"), 
                        shape = "long")

# Simple Multinomial Logit
rum_mle <- mlogit(choice ~ price  | 1, data = df_rum)
summary(rum_mle)



# Calculate the 'Logsum' (Total Utility) for the status quo
logsum_base <- logsum(rum_mle)

# 1. Convert df_rum to a standard data frame for our math
df_math <- as.data.frame(df_rum)

# 2. Extract the IDs and Park names from the 'idx' column
# idx(df_rum, 1) gets the 'choice_id'
# idx(df_rum, 2) gets the 'parkname'
df_math$trip_id   <- as.character(idx(df_rum, 1))
df_math$park_name <- as.character(idx(df_rum, 2))

# 3. Calculate the Systematic Utility (V)
# This uses the model coefficients and the data matrix
df_math$V <- as.numeric(model.matrix(rum_mle) %*% coef(rum_mle))

# 4. Double check the columns are there
head(df_math[, c("trip_id", "park_name", "V")])



```

#### McFaddenR2

The mlogit gives NA so running manually to calculate McFadden to double check the R2

and it above .2 so that great

```{r}
#| cache: true
# 1. Estimate your model (The "Full" model)
rum_full <- mlogit(choice ~ price | 1, data = df_rum)

# 2. Estimate the "Null" model (Intersects only, no price)
# Use '0' for the first part of the formula to remove choice-specific variables
rum_null <- mlogit(choice ~ 0 | 1, data = df_rum)

# 3. Use the lrtest function to get your Chi-square and p-value

lr_test_result <- lrtest(rum_full, rum_null)
print(lr_test_result)

# 4. Calculate McFadden's R-squared manually
ll_full <- as.numeric(logLik(rum_full))
ll_null <- as.numeric(logLik(rum_null))
mcfadden_r2 <- 1 - (ll_full / ll_null)

print(paste("Manual McFadden R2:", round(mcfadden_r2, 4)))



```

## Function

This function calculate the rum welfare manual and is used for each year to get a comparison to the MDCEV.

# Per Person Stay-At-Home

```{r}
#| cache: true
#| message: false
#| warning: false
#| code-fold: true
#| code-summary: "Show the Code"


years <- 2018:2023
mcfadden_list <- list()
model_list_obs <- list()

# --- 1. Robust Welfare Function ---
# Passing 'mle' and 'data' as arguments to avoid "Global Object" confusion
calc_rum_welfare <- function(target_park, current_mle, current_math_df) {
    beta_price <- coef(current_mle)["price"]
    
    welfare <- current_math_df %>%
        group_by(trip_id) %>%
        summarise(
            ls_base = log(sum(exp(V))),
            # Calculate utility if the target park/Stay_Home was REMOVED
            ls_policy = log(sum(exp(V[park_name != target_park]))),
            .groups = "drop"
        ) %>%
        mutate(cv_trip = (ls_policy - ls_base) / -beta_price) %>%
        mutate(id = as.character(str_remove(trip_id, "_\\d+$"))) %>%
        group_by(id) %>%
        summarise(annual_rum_loss = sum(cv_trip, na.rm = TRUE), .groups = "drop")
    
    return(welfare)
}

# --- 2. Main Loop ---
final_comparison <- map_df(years, function(yr) {
    
    message(paste(">>> Processing Year:", yr))
    
    # Load data (ensure it exists)
    current_data <- get(paste0("final_data_", yr))
    
    # CLEANING: Ensure unique user profiles to avoid "Many-to-Many" warnings
    unique_users <- current_data %>% 
        group_by(id) %>%
        summarise(zip = first(zip), income = first(income), .groups = "drop") %>%
        mutate(id = as.character(id))
    
    # SITE MAPPING: Force "Stay_Home" to Site 22
    physical_parks <- unique(current_data$parkname)
    site_lookup <- data.frame(
        site = seq_along(physical_parks),
        parkname = physical_parks
    ) %>% 
    bind_rows(data.frame(site = 22, parkname = "Stay_Home"))
    
    # List of all alternatives to test (including Stay_Home)
    parks_to_test <- site_lookup$parkname
    
    # 1. Create Choice Data
    data_rum_raw <- current_data %>%
        filter(VisitCount > 0) %>%
        uncount(VisitCount) %>%
        group_by(id) %>%
        mutate(choice_id = paste0(id, "_", row_number())) %>%
        ungroup() %>%
        select(choice_id, id, chosen_park = parkname) %>%
        expand_grid(parkname = physical_parks) %>%
        mutate(choice = (chosen_park == parkname)) %>%
        left_join(current_data %>% select(id, parkname, price), by = c("id", "parkname"))
    
    # 2. Add Outside Option
    outside_home <- data_rum_raw %>%
        distinct(choice_id, id) %>%
        mutate(parkname = "Stay_Home", choice = FALSE, price = 0)
    
    data_rum_combined <- bind_rows(data_rum_raw, outside_home)
    
    # 3. Model Estimation with Error Handling (Fixes the 2020 crash)
    df_idx_local <- dfidx(data_rum_combined, idx = list("choice_id", "parkname"), shape = "long")
    
    rum_mle <- tryCatch({
        mlogit(choice ~ price | 1, data = df_idx_local, method = "nr")
    }, error = function(e) {
        # Try BHHH method if NR fails (common in 2020 data)
        message("NR failed, trying BHHH solver...")
        mlogit(choice ~ price | 1, data = df_idx_local, method = "bhhh")
    })
    
    model_list_obs[[paste0("Year_", yr)]] <<- rum_mle
    
    # 4. Prepare Math Data for this specific year
    df_math_local <- as.data.frame(df_idx_local)
    df_math_local$trip_id   <- as.character(idx(df_idx_local, 1))
    df_math_local$park_name <- as.character(idx(df_idx_local, 2))
    df_math_local$V <- as.numeric(model.matrix(rum_mle) %*% coef(rum_mle))
    
    # 5. RUM Welfare Calculation (Now includes Stay_Home)
    rum_results <- map_df(parks_to_test, function(p) {
        res <- calc_rum_welfare(p, rum_mle, df_math_local)
        res$parkname <- p
        return(res)
    })
    
    # 6. Bring in MDCEV Data (Using Site 22 for Stay_Home)
    mdcev_indiv <- read_csv(paste0("data/welfare_", yr, "_ind.csv"), show_col_types = FALSE) %>%
        left_join(site_lookup, by = "site") %>%
        mutate(id = as.character(id)) %>%
        select(id, parkname, mdcev_annual_loss = mean_value) %>%
        filter(!is.na(parkname)) # Remove sites not in our lookup
    
    # 7. Final Join
    year_comparison <- rum_results %>%
        left_join(mdcev_indiv, by = c("id", "parkname")) %>%
        left_join(unique_users, by = "id") %>% 
        mutate(
            year = yr,
            difference = annual_rum_loss - mdcev_annual_loss
        )
    
    return(year_comparison)
})

saveRDS(model_list_obs, "data/model_list_obs.rds")
```

# Per person 52-weeks

```{r}
#| cache: true
#| message: false
#| warning: false
#| code-fold: true
#| code-summary: "Show the Code"


years <- 2018:2023

#  Same Mcfadden and coefficient holders
model_list_52  <- list()
mcfadden_list_52 <- list()

#Welfare Function ---
calc_rum_welfare_per_person <- function(target_park, current_mle, current_math_df) {
    beta_price <- coef(current_mle)["price"]
    
    welfare_by_id <- current_math_df %>%
        group_by(trip_id) %>%
        summarise(
            ls_base = log(sum(exp(V))),
            ls_policy = log(sum(exp(V[park_name != target_park]))),
            .groups = "drop"
        ) %>%
        mutate(cv_week = (ls_policy - ls_base) / -beta_price) %>%
        mutate(id = as.character(str_remove(trip_id, "_w\\d+$"))) %>%
        group_by(id) %>%
        summarise(annual_rum_loss = sum(cv_week, na.rm = TRUE), .groups = "drop")
    
    return(welfare_by_id)
}

# --- 2. Main Loop ---
final_comparison_52_person <- map_df(years, function(yr) {
    
    message(paste(">>> Processing Year (52-week):", yr))
    current_data <- get(paste0("final_data_", yr))
    
    # Setup a 52 week decision
    unique_users <- current_data %>% 
        group_by(id) %>%
        summarise(zip = first(zip), income = first(income), .groups = "drop") %>%
        mutate(id = as.character(id))
      
    all_parks <- unique(current_data$parkname)
    
    # --- SITE LOOKUP: Force Stay_Home to Site 22 ---
    site_lookup <- data.frame(
        site = seq_along(all_parks),
        parkname = all_parks
    ) %>% 
    bind_rows(data.frame(site = 22, parkname = "Stay_Home"))
    
    # Ensure "Stay_Home" is in the welfare test list
    parks_to_test <- site_lookup$parkname
    
    # Expand to 52 Weeks
    df_52_weeks <- unique_users %>%
        expand_grid(week = 1:52) %>%
        mutate(choice_id = paste0(id, "_w", week))
    
    actual_trips <- current_data %>% 
        filter(VisitCount > 0) %>% 
        uncount(VisitCount) %>%
        group_by(id) %>%
        mutate(week = row_number()) %>%
        filter(week <= 52) %>% 
        ungroup() %>%
        select(id, week, chosen_park = parkname) %>%
        mutate(id = as.character(id))
    
    # 2. Build Choice Set
    df_rum_final <- df_52_weeks %>%
        left_join(actual_trips, by = c("id", "week")) %>%
        mutate(chosen_park = replace_na(chosen_park, "Stay_Home")) %>%
        expand_grid(parkname = c(all_parks, "Stay_Home")) %>%
        mutate(choice = (chosen_park == parkname)) %>%
        left_join(current_data %>% mutate(id = as.character(id)) %>% select(id, parkname, price), 
                  by = c("id", "parkname")) %>%
        mutate(price = replace_na(price, 0))
    
    # Model Estimation with tryCatch (Fixes 2020 error)
    df_idx_local <- dfidx(df_rum_final, idx = list("choice_id", "parkname"), shape = "long")
    
    rum_mle_52 <- tryCatch({
        mlogit(choice ~ price | 1 , data = df_idx_local, method = "nr")
    }, error = function(e) {
        message("NR Solver failed, trying BHHH...")
        mlogit(choice ~ price | 1 , data = df_idx_local, method = "bhhh")
    })

    model_list_52[[paste("52wk", yr)]] <<- rum_mle_52
    
    # McFadden R2 calculation
    rum_null <- mlogit(choice ~ 1 | 1, data = df_idx_local)
    ll_mod  <- as.numeric(logLik(rum_mle_52))
    ll_null <- as.numeric(logLik(rum_null))
    mcf_r2  <- 1 - (ll_mod / ll_null)
    mcfadden_list_52[[paste("52weeks", yr)]] <<- format(round(mcf_r2, 3), nsmall = 3)

    df_math_local <- as.data.frame(df_idx_local)
    df_math_local$trip_id   <- as.character(idx(df_idx_local, 1))
    df_math_local$park_name <- as.character(idx(df_idx_local, 2))
    df_math_local$V <- as.numeric(model.matrix(rum_mle_52) %*% coef(rum_mle_52))
    
    # RUM Welfare Calculations (Including Stay_Home)
    rum_person_results <- map_df(parks_to_test, function(p) {
        res <- calc_rum_welfare_per_person(p, rum_mle_52, df_math_local)
        res$parkname <- p
        return(res)
    })
    
    # Bring in MDCEV Individual Welfare
    mdcev_indiv <- read_csv(paste0("data/welfare_", yr, "_ind.csv"), show_col_types = FALSE) %>%
        left_join(site_lookup, by = "site") %>%
        mutate(id = as.character(id)) %>%
        select(id, parkname, mdcev_annual_loss = mean_value) %>%
        filter(!is.na(parkname)) # Ensures we only keep matched sites
    
    # Final Join
    year_comparison <- rum_person_results %>%
        left_join(mdcev_indiv, by = c("id", "parkname")) %>%
        left_join(unique_users, by = "id") %>% 
        mutate(
            year = yr,
            difference = annual_rum_loss - mdcev_annual_loss
        )
    
    return(year_comparison)
})

saveRDS(model_list_52, "data/model_list_52.rds")


```

# Full Closure

```{r}
#| cache: true
#| message: false
#| warning: false
#| code-fold: true
#| code-summary: "Show the Code"
# 1. Extract the Price Coefficient
beta_price <- coef(rum_mle)["price"]

# 2. Calculate Total System Welfare Loss
# We compare the current state (All Parks) to the "Closed" state (Stay_Home Only)
total_system_welfare <- df_math %>%
  group_by(trip_id) %>%
  summarise(
    # Inclusive value (Log-Sum) of the current world:
    ls_base = log(sum(exp(V))),
    
    # Inclusive value if ONLY 'Stay_Home' exists (Everything else removed):
    ls_policy = log(sum(exp(V[park_name == "Stay_Home"]))),
    
    .groups = "drop"
  ) %>%
  # Welfare formula: (LS_policy - LS_base) / -beta_price
  mutate(cv_week = (ls_policy - ls_base) / -beta_price) %>%
  
  # Group by User ID to get the Annual Total
  mutate(id = as.character(str_remove(trip_id, "_w\\d+$"))) %>%
  group_by(id) %>%
  summarise(annual_system_loss = sum(cv_week, na.rm = TRUE), .groups = "drop")

# 3. View the Results
summary_stats <- total_system_welfare %>%
  summarise(
    Mean_Annual_Value = mean(annual_system_loss),
    Median_Annual_Value = median(annual_system_loss),
    Total_Sample_Value = sum(annual_system_loss)
  )

print(summary_stats)

```

# Coeffienct Table

```{r}
#| cache: true
#| message: false
#| warning: false
#| code-fold: true
#| code-summary: "Show the Code"

# Create a specific list for the 2018/2023 comparison
# We alternate them: [Obs 2018, 52wk 2018, Obs 2023, 52wk 2023]
comparison_list <- list(
    "Observed" = model_list_obs[["Year_2018"]], 
    "52-Week"  = model_list_52[["52wk 2018"]],
    "Observed" = model_list_obs[["Year_2023"]], 
    "52-Week"  = model_list_52[["52wk 2023"]]
)
```

```{r}
#| cache: true
#| eval: false
# 2. Generate the Professionally Grouped Table

# Ensure your lists exist and are not empty before running this
stargazer(
  comparison_list,
  type = "html",
  out = "tables/rum_comparison_results.html",
  title = "Table: Comparison of RUM Specifications (2018 vs. 2023)",
  
  # --- THE KEY ARGUMENT FOR SIDE-BY-SIDE SEs ---
  single.row = TRUE, 
  
  column.labels = c("2018", "2023"),
  column.separate = c(2, 2),
  model.names = TRUE,
  dep.var.labels.include = FALSE,
  model.numbers = FALSE,
  
  # Pulling Price (22) and Bunker (6) to the top
  order = c(22, 6),
  covariate.labels = c("Travel Cost (Price)", "Keanakolu Bunkhouse"),
  
  omit.stat = c("f", "ser", "lr", "rsq", "adj.rsq"),
  star.cutoffs = c(0.05, 0.01, 0.001),
  no.space = TRUE,
  notes = "Standard errors in parentheses next to coefficients. 52-Week model includes 'Stay-at-Home'."
)

```

# All Coefficent

```{r}
#| cache: true
#| message: false
#| warning: false
#| code-fold: true
#| code-summary: "Show the Code"

# Create a specific list for the 2018/2023 comparison

comparison_list <- list(
    "Observed" = model_list_obs[["Year_2018"]], 
    "52-Week"  = model_list_52[["52wk 2018"]],
    "Observed" = model_list_obs[["Year_2019"]], 
    "52-Week"  = model_list_52[["52wk 2019"]],
    "Observed" = model_list_obs[["Year_2020"]], 
    "52-Week"  = model_list_52[["52wk 2020"]],
    "Observed" = model_list_obs[["Year_2021"]], 
    "52-Week"  = model_list_52[["52wk 2021"]],
    "Observed" = model_list_obs[["Year_2022"]], 
    "52-Week"  = model_list_52[["52wk 2022"]],
    "Observed" = model_list_obs[["Year_2023"]], 
    "52-Week"  = model_list_52[["52wk 2023"]]
)

```

```{r}
#| cache: true
#| eval: false

stargazer(
comparison_list,
type = "html",
out = "tables/rum_comparison_results_appendix.html",
title = "Table: Comparison of RUM Specifications (2018 vs. 2023)",
column.labels = c("2018", "2019","2020","2021","2022","2023"),
column.separate = c(2, 2),
model.names = TRUE,
dep.var.labels.include = FALSE,
model.numbers = FALSE,
# Use 'order' to pull Price (22) and Bunker (6) to the top of the table
# This keeps the table concise and professional
order = c(23, 6),
# Rename only the ones we kept at the top
covariate.labels = c("Travel Cost (Price)", "Keanakolu Bunkhouse"),
omit.stat = c("f", "ser", "lr", "rsq", "adj.rsq"),
star.cutoffs = c(0.05, 0.01, 0.001),
no.space = TRUE,
notes = "Standard errors in parentheses. 52-Week model includes 'Stay-at-Home' as a weekly choice."
)

```

#### Merge

```{r}
#| cache: true
#| message: false
#| warning: false
#| code-fold: true
#| code-summary: "Show the Code"


final_comparison_master <- final_comparison %>%
  # Select and rename columns from the first dataset
  select(id, parkname, year, zip, income, 
         loss_rum_observed = annual_rum_loss, 
         loss_mdcev = mdcev_annual_loss) %>%
  

  full_join(
    final_comparison_52_person %>% 
      select(id, parkname, year, loss_rum_52wk = annual_rum_loss), 
    by = c("id", "parkname", "year")
  ) 

head(final_comparison_master)

#write_csv(final_comparison_master, "data/final_comparison_master.csv")

```