{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "fd8b76a8-1b69-4daa-a121-8d255f2d054c",
   "metadata": {},
   "source": [
    "# **What Factors Influence Booking Cancellations, and How Accurately Can We Predict Whether a Booking Will Be Cancelled?**\r\n",
    "\r\n",
    "### Author: Sheyin Avong  \r\n",
    "### Student Number: G21285146\r\n",
    ")`\r\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dcd92479-edc8-4341-804f-5fe27431389a",
   "metadata": {},
   "source": [
    "### Key Fields in the Dataset\n",
    "\n",
    "Here is a brief explanation of the key fields in the dataset to help understand the factors analysed in the study:\n",
    "\n",
    "- **ADR (Average Daily Rate)**: The average revenue generated per day for a hotel room. It reflects the economic aspect of bookings and is measured in monetary units.\n",
    "\n",
    "- **Lead Time**: The number of days between the booking date and the arrival date. Longer lead times often indicate a higher likelihood of cancellations as plans are more likely to change over time.\n",
    "\n",
    "- **Stays in Weekend Nights**: The number of weekend nights (Friday and Saturday) included in the booking. This reflects patterns in leisure travel behaviour.\n",
    "\n",
    "- **Stays in Week Nights**: The number of weekday nights (Monday to Thursday) included in the booking. This provides insight into business or non-leisure travel trends.\n",
    "\n",
    "- **Deposit Type**: Indicates whether a deposit was made and its type:\n",
    "  - **No Deposit**: No upfront payment.\n",
    "  - **Non-Refundable**: Payment made is not refundable.\n",
    "  - **Refundable**: Payment is refundable under certain conditions.\n",
    "\n",
    "- **Market Segment**: Categorises how the booking was made:\n",
    "  - Examples include **Online Travel Agencies (OTA)**, **Groups**, and **Corporate** bookings.\n",
    "\n",
    "- **Is Canceled**: The target variable indicating whether a booking was cancelled (`1`) or not (`0`).\n",
    "\n",
    "These fields were analysed to determine their influence on cancellations and included in the predictive models.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e67f3763-8e7f-404f-b789-48d0d26b77f6",
   "metadata": {},
   "source": [
    "We start by loading the necesssary libraries needed for this analysis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "01c36e38-d792-4d71-a177-8ec3c01aff41",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load necessary libraries\n",
    "library(tidyverse)\n",
    "library(readr)\n",
    "library(naniar)\n",
    "library(patchwork)\n",
    "library(ggplot2)\n",
    "library(ggcorrplot)\n",
    "library(caret)\n",
    "library(dplyr)\n",
    "library(pROC)\n",
    "library(randomForest)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2237c682-9e6c-4491-8b6a-c95a2cbd4c40",
   "metadata": {},
   "source": [
    "## **Access the file and check the dataset**\n",
    "We start by accessing the file, checking the structure of the dataset and finding out how many rows and columns are in the dataset. From the results there are 119,390 rows with 32 columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "41d4b644-3cd4-4ad9-9b47-c4b2fc77132d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Rows: 119,390\n",
      "Columns: 32\n",
      "$ hotel                          \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m \"Resort Hotel\", \"Resort Hotel\", \"Resort…\n",
      "$ is_canceled                    \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, …\n",
      "$ lead_time                      \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 342, 737, 7, 13, 14, 14, 0, 9, 85, 75, …\n",
      "$ arrival_date_year              \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 2015, 2015, 2015, 2015, 2015, 2015, 201…\n",
      "$ arrival_date_month             \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m \"July\", \"July\", \"July\", \"July\", \"July\",…\n",
      "$ arrival_date_week_number       \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,…\n",
      "$ arrival_date_day_of_month      \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …\n",
      "$ stays_in_weekend_nights        \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …\n",
      "$ stays_in_week_nights           \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 4, 4, 4, …\n",
      "$ adults                         \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, …\n",
      "$ children                       \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …\n",
      "$ babies                         \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …\n",
      "$ meal                           \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m \"BB\", \"BB\", \"BB\", \"BB\", \"BB\", \"BB\", \"BB…\n",
      "$ country                        \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m \"PRT\", \"PRT\", \"GBR\", \"GBR\", \"GBR\", \"GBR…\n",
      "$ market_segment                 \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m \"Direct\", \"Direct\", \"Direct\", \"Corporat…\n",
      "$ distribution_channel           \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m \"Direct\", \"Direct\", \"Direct\", \"Corporat…\n",
      "$ is_repeated_guest              \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …\n",
      "$ previous_cancellations         \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …\n",
      "$ previous_bookings_not_canceled \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …\n",
      "$ reserved_room_type             \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m \"C\", \"C\", \"A\", \"A\", \"A\", \"A\", \"C\", \"C\",…\n",
      "$ assigned_room_type             \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m \"C\", \"C\", \"C\", \"A\", \"A\", \"A\", \"C\", \"C\",…\n",
      "$ booking_changes                \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …\n",
      "$ deposit_type                   \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m \"No Deposit\", \"No Deposit\", \"No Deposit…\n",
      "$ agent                          \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m \"NULL\", \"NULL\", \"NULL\", \"304\", \"240\", \"…\n",
      "$ company                        \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m \"NULL\", \"NULL\", \"NULL\", \"NULL\", \"NULL\",…\n",
      "$ days_in_waiting_list           \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …\n",
      "$ customer_type                  \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m \"Transient\", \"Transient\", \"Transient\", …\n",
      "$ adr                            \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 0.00, 0.00, 75.00, 75.00, 98.00, 98.00,…\n",
      "$ required_car_parking_spaces    \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …\n",
      "$ total_of_special_requests      \u001b[3m\u001b[90m<dbl>\u001b[39m\u001b[23m 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 3, …\n",
      "$ reservation_status             \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m \"Check-Out\", \"Check-Out\", \"Check-Out\", …\n",
      "$ reservation_status_date        \u001b[3m\u001b[90m<date>\u001b[39m\u001b[23m 2015-07-01, 2015-07-01, 2015-07-02, 20…\n",
      "Dataset Dimensions: 119390 32 \n"
     ]
    }
   ],
   "source": [
    "# Define the file path\n",
    "file_path <- \"C:/Users/sheyi/OneDrive/Documents/rassignment/hotel_bookings.csv\"\n",
    "\n",
    "# Load the dataset without showing column types message\n",
    "hotel_data <- read_csv(file_path, show_col_types = FALSE)\n",
    "\n",
    "# Check the structure of the dataset\n",
    "glimpse(hotel_data)\n",
    "\n",
    "# Print the number of rows and columns\n",
    "cat(\"Dataset Dimensions:\", dim(hotel_data), \"\\n\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3be5386f-6809-4aca-9517-0919a2bd8688",
   "metadata": {},
   "source": [
    "## **Checking for Missing Values**\n",
    "\n",
    "To ensure data quality and completeness, I checked for missing values across all variables in the dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "213eae67-9dd8-4ea9-9135-d79f9175dc20",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[90m# A tibble: 1 × 2\u001b[39m\n",
      "  Variable MissingCount\n",
      "  \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m           \u001b[3m\u001b[90m<int>\u001b[39m\u001b[23m\n",
      "\u001b[90m1\u001b[39m children            4\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nTkSuQmCC",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Check for missing values\n",
    "missing_summary <- hotel_data %>%\n",
    "  summarise(across(everything(), ~ sum(is.na(.)))) %>%\n",
    "  pivot_longer(everything(), names_to = \"Variable\", values_to = \"MissingCount\")\n",
    "\n",
    "# Display only variables with missing values\n",
    "missing_summary_with_na <- missing_summary %>%\n",
    "  filter(MissingCount > 0)\n",
    "\n",
    "print(missing_summary_with_na)\n",
    "# Visualise missing values\n",
    "gg_miss_var(hotel_data) +\n",
    "  labs(title = \"Missing Values by Variable\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4bcd152e-bcdb-4910-8cc1-24713b95396b",
   "metadata": {},
   "source": [
    "### Findings:\n",
    "- Only the `children` variable has missing values, with **4 missing entries**.\n",
    "\n",
    "### Visualisation:\n",
    "The plot above highlights the number of missing values by variable. Since the missing data is minimal, it can be handled effectively.\n",
    "\n",
    "## **Imputing Missing Values**\n",
    "\n",
    "To handle the missing values in the dataset, the `children` column was identified as having missing entries. These missing values were imputed using the median value of the column. After imputation, the dataset was verified to ensure there were no remaining missing values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "e7438a46-20df-4226-9062-7e5bbf5530a6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[90m# A tibble: 32 × 2\u001b[39m\n",
      "   Variable                  MissingCount\n",
      "   \u001b[3m\u001b[90m<chr>\u001b[39m\u001b[23m                            \u001b[3m\u001b[90m<int>\u001b[39m\u001b[23m\n",
      "\u001b[90m 1\u001b[39m hotel                                0\n",
      "\u001b[90m 2\u001b[39m is_canceled                          0\n",
      "\u001b[90m 3\u001b[39m lead_time                            0\n",
      "\u001b[90m 4\u001b[39m arrival_date_year                    0\n",
      "\u001b[90m 5\u001b[39m arrival_date_month                   0\n",
      "\u001b[90m 6\u001b[39m arrival_date_week_number             0\n",
      "\u001b[90m 7\u001b[39m arrival_date_day_of_month            0\n",
      "\u001b[90m 8\u001b[39m stays_in_weekend_nights              0\n",
      "\u001b[90m 9\u001b[39m stays_in_week_nights                 0\n",
      "\u001b[90m10\u001b[39m adults                               0\n",
      "\u001b[90m# ℹ 22 more rows\u001b[39m\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Impute missing values in the 'children' column with the median\n",
    "hotel_data <- hotel_data %>%\n",
    "  mutate(children = ifelse(is.na(children), median(children, na.rm = TRUE), children))\n",
    "\n",
    "# Verify that there are no missing values remaining\n",
    "missing_summary_after_imputation <- hotel_data %>%\n",
    "  summarise(across(everything(), ~ sum(is.na(.)))) %>%\n",
    "  pivot_longer(everything(), names_to = \"Variable\", values_to = \"MissingCount\")\n",
    "\n",
    "print(missing_summary_after_imputation)\n",
    "\n",
    "#visualise if there are any missing variables\n",
    "gg_miss_var(hotel_data) +\n",
    "  labs(title = \"Missing Values by Variable\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "41492064-a4ec-4411-a501-e2e49cbed01c",
   "metadata": {},
   "source": [
    "## **Exploring the Distribution of Numerical Variables**\n",
    "\n",
    "To better understand the data, histograms were plotted for key numerical variables such as `lead_time`, `adr` (Average Daily Rate), `stays_in_weekend_nights`, and `stays_in_week_nights`. These visualisations provide insights into the spread and skewness of the data.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "9acb2c4e-06ac-40a3-9a93-b600b78455ae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n+D+5UfmTbD9j4wAAAABJRU5ErkJggg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Define numerical variables\n",
    "numeric_vars <- c(\"lead_time\", \"adr\", \"stays_in_weekend_nights\", \"stays_in_week_nights\")\n",
    "\n",
    "# Plot histograms for numerical variables\n",
    "library(ggplot2)\n",
    "plots <- lapply(numeric_vars, function(var) {\n",
    "  ggplot(hotel_data, aes_string(x = var)) +\n",
    "    geom_histogram(bins = 30, fill = \"blue\", color = \"black\", alpha = 0.7) +\n",
    "    labs(title = paste(\"Distribution of\", var), x = var, y = \"Frequency\") +\n",
    "    theme_minimal()\n",
    "})\n",
    "\n",
    "# Arrange plots\n",
    "library(patchwork)\n",
    "wrap_plots(plots, ncol = 2)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "55259af7-b7fc-49a5-9e6d-5665830bd6e4",
   "metadata": {},
   "source": [
    "## **Observations**: ##\n",
    "\n",
    "**Lead Time**:\n",
    "The distribution is highly right-skewed, with most bookings occurring within a shorter lead time.\n",
    "Some bookings have very high lead times, which might indicate outliers.\n",
    "\n",
    "**ADR (Average Daily Rate)**:\n",
    "The majority of values are concentrated on the lower end, but there are a few instances of very high rates.\n",
    "\n",
    "**Stays in Weekend Nights**:\n",
    "Most bookings involve a few nights, with a sharp drop-off for longer stays.\n",
    "\n",
    "**Stays in Week Nights**:\n",
    "Similar to weekend nights, shorter stays are far more common, with very few extended stays."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "acd603d1-dcdc-4893-9485-9ab13cdf0b18",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nMyF5EVKIHqJzz4TkRUgheojOPROSFyGF6CE690xIXoQUoofo3DMheRFSiB6ic8+E5EVIIXqI\nzj0TkhchheghOvdMSF6EFKKH6NwzIXkRUogeonPPhORFSCF6iM49E5IXIYXoITr3TEhehBSi\nh+jcMyF5EVKIHqJzz4TkRUgheojOPROSFyGF6CE690xIXoQUoofo3DMheRFSiB6ic8+E5EVI\nIXqIzj0TkhchheghOvdMSF6EFKKH6NwzIXkRUogeonPPhORFSCF6iM49E5IXIYXoITr3TEhe\nhBSih+jcMyF5EVKIHqJzz4TkRUgheojOPROSFyGF6CE690xIXoQUoofo3DMheRFSiB6ic8+E\n5EVIIXqIzj0TkhchheghOvdMSF6EFKKH6NwzIXkRUogeonPPhORFSCF6iM49E5IXIYXoITr3\nTEhehBSih+jcMyF5EVKIHqJzz4TkRUgheojOPROSFyGF6CE690xIXoQUoofo3DMheRFSiB6i\nc8+E5EVIIXqIzj0TkhchheghOvdMSF6EFKKH6NwzIXkRUogeonPPhORFSCF6iM49E5IXIYXo\nITr3TEhehBSih+jcMyF5EVKIHqJzz4TkRUgheojOPROSFyGF6CE690xIXoQUoofo3DMheRFS\niB6ic8+E5EVIIXqIzj0TkhchheghOvdMSF7nhLRYO+fbjykdNCGNCMnpjJAW+3/87dsPKh00\nIY0IyYmQQvQQnXsmJK9zP0cipC/SQ3TumZC8/CH9PtN/86KH+N+8nHsf3ju/uDNDWqz4iPQ1\neojOBwY+InkRUogeonPPhOR1XkiL438Q0mfoITr3TEheZ4W0eP0nIX2SHqJzz4TkddYfyB59\nQ0ifpIfo3DMheZ3z50iL/Zcu8JUNX6CH6NwzIXnxtXYheojOPROSFyGF6CE690xIXoQUoofo\n3DMheRFSiB6ic8+E5EVIIXqIzj0TkhchheghOvdMSF6EFKKH6NwzIXkRUogeonPPhORFSCF6\niM49E5IXIYXoITr3TEhehBSih+jcMyF5EVKIHqJzz4TkRUgheojOPROSFyGF6CE690xIXoQU\noofo3DMheRFSiB6ic8+E5EVIIXqIzj0TkhchheghOvdMSF6EFKKH6NwzIXkRUogeonPPhORF\nSCF6iM49E5IXIYXoITr3TEhehBSih+jcMyF5EVKIHqJzz4TkRUgheojOPROSFyGF6CE690xI\n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\nybBEacqAAAAAAElFTkSuQmCC",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot cancellation distribution\n",
    "ggplot(hotel_data, aes(x = factor(is_canceled), fill = factor(is_canceled))) +\n",
    "  geom_bar(alpha = 0.8) +\n",
    "  scale_fill_manual(values = c(\"steelblue\", \"orange\"), labels = c(\"Not Canceled\", \"Canceled\")) +\n",
    "  labs(title = \"Booking Cancellation Rates\", x = \"Booking Status\", y = \"Count\", fill = \"Cancellation\") +\n",
    "  theme_minimal()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bc0aae53-7e92-4aa2-8ff4-f15d05fdb6fa",
   "metadata": {},
   "source": [
    "## **Booking Cancellation Rates**\n",
    "\n",
    "This visualisation illustrates the distribution of bookings that were either cancelled or not cancelled. It provides an overview of the cancellation rates, allowing us to understand the balance between the two outcomes.\n",
    "\n",
    "### Observation:\n",
    "A significant proportion of bookings were not cancelled compared to those that were cancelled.\n",
    "This imbalance highlights the need to account for cancellation rates in our analysis, as they may impact the prediction model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "63ba8a0d-d96a-4040-9f95-e31958ffc1df",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot distribution of hotel types\n",
    "ggplot(hotel_data, aes(x = hotel, fill = hotel)) +\n",
    "  geom_bar(alpha = 0.8) +\n",
    "  labs(title = \"Hotel Types Distribution\", x = \"Hotel Type\", y = \"Count\", fill = \"Hotel Type\") +\n",
    "  theme_minimal()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b39774c-8075-4280-b0c0-d37d6ca941a5",
   "metadata": {},
   "source": [
    "### **Hotel Types Distribution**\n",
    "\n",
    "This visualisation shows the distribution of hotel types in the dataset. It highlights that the majority of bookings are for City Hotels compared to Resort Hotels.\n",
    "\n",
    "### **Insights:**\n",
    "- The dataset is heavily skewed towards City Hotels, which make up a significantly larger proportion of the bookings.\n",
    "- This imbalance might affect cancellation trends and should be considered during analysis.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "b5ca0214-987f-42ea-a25a-b298e373bf39",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAWlBMVEUAAAAzMzM0NDQ1NTU4\nODg5OTlERERGRkZHzNBNTU1N0tZoaGhra2txcXF8fHyMjIyampqnp6eysrK9vb3Hx8fQ0NDZ\n2dnh4eHp6enr6+vw8PD0mZP6n5n///8ZVrV3AAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElE\nQVR4nO3di3biyrVGYfns7DgKaS7GXJpE7/+aRyUtXRBQwv2roEqa3xhpu2kQ8uqaFpLZnawA\nIMvevQPAHBASMAFCAiZASMAECAmYACEBEyAkYAKEBEyAkIAJEBIwgQlCyp7fRnfXrOcHmxi9\n4/em3ODm8PQeXW96uPnL9qknrRy2eZatdpfucbdbwmzNK6RTbptcP71LV5sebr7+/VN7t2m+\nmsPdR/xgSEjRu0L66SOfesSpPBgdy4/Hdbb56ZY9IT1jn+WuoPM+y06EtECzCmmV7e2zdfbj\nV3daSHl2rj/ZZ1tCWqCpQyoPBtnaFvFuVX5+rD8/rLP862FI1SflL195tiofvC8/7G82V7T3\ncbdcslV9U/tJceiOQ6dsd70H5QN39cbrncm2l8ETdCG1j7p+4XkqT4Ly7elma4MhlJ/Z4x5u\nqfpw2mbl5o7e0SIZE4f0XZ8nVKs4784Zil316XYkpK/qXsdt9WE/2JzdcdfcsrODznf2ZX+4\nGR6GentQLuj283oT+WB/24XePepq+R+y+1urrXs72Yb0YEvVh2Nvc0jftCGdqu+/p+qF1Ve1\nwL+q8/7y5OW7XIr5SEjuNGOX5fWH1fXmmjvm9YZOxdmOROvmRVW5bi9Xm+/vQfnAY3HZuM9P\n7nku1crvP0Gz0K8f1e5d+SV8XYpLGeH5amvm7I5W36erL+zBluoPKzeRMuRVgTmYNqRdvZQv\n7jXWqv68+tNdffJyyf0hHarHZu0rrf7mmju65Ve/ctvY/Vc3mzP9PWg3XhTbameqx/WfoAnp\n+lG9L6E+5Gzdx97WGuf6st2m3fmHW7p/Ooa0TRvSqndJu3Q6fK2rT21JlWv//iNtrV16N9Zr\n+mpz3X2K+njl+upe2d1bm+0eXG21PXD1n6B/NnT9KPsS6gNfdSDsn+u0LtWjesefB1uqP2zc\nEexcYCamDan/syF3yaD5tLnLeuRiQ1EMvmvfhtT7uHFXmrtXdv1Card7MDgW9J+g/aObR119\nCf1N3Cn3uHZh2x/c31L94Vz92Wp/swUkaeqQupv35Tfn3ff5ahWOXbUrikdLfvAIO23Z9F/Z\nla+6emfu57t7cBPS9abd/24f9URI3WcXdxWj/u2DLbVXL6qLKu3xFEmbNiR3EaCxyo7tn9pd\nLj8Mqb+55o6X3p3Ko1HvlV3/8vc5X9/dg3qr7YGr/wTdOdLwUU+8tLu6HtKdI93dUv+V37a+\neIjkTRvSNqveUnZyJwr2bbd7EVZ9i77/yAch9TfX3LF6LXSsbzlku94rO9fFd/1J+brpcL0H\nV1utrxTkt/vbRXAYLv9dfdfmYsPgK++uvn13X/u9LV3aW26Gh5RNG9Kp+pHMqVrG1dsM7Ir3\nvrpq/Z39MKT+5po7ula+8/p7fbHKry4fH+u3CF3KcxN3bOrvQW+rhyw/tZe/uyfojkj9R52b\nx5av0Hb15e/TnZDKQ1L+XUZy3tmPjc43z3+u7rW52C315e/dH7yXCTGaJKTuisCh+wHnvrnZ\nrfn655dfPwypv7nmjl/9Ww6Dc4zmh6b18uzvQX+r9Q9k18X1E/TOkdpHrdrLEMMfyF7vf1nQ\nunmY26H6cbdbqn8Ku+s+zXIu3M3DxCGV35Lbt/fs3c8oj3bi8v3UW4SK4Yfe5ppb3VuEmjfW\nXLLseiFeqivQWzuC9fbgaqv7VZZbit0TtMn0HnVadZcOBm8Rutp/57Cp/jOK6s/rx91uqTiu\n2jEcq7cI0dFMpP0Sfc8bAxCHpEM6NedKwJslHNL12RPwTgmHtOJ9AYhGwiEB8SAkYAKEBEyA\nkIAJEBIwAUICJkBIwAQICZgAIQETWFRIv9+9A1FjOgpCgmE6CkKCYToKQoJhOgpCgmE6CkKC\nYToKQoJhOgpCgmE6CkKCYToKQoJhOgpCgmE6CkKCYToKQoJhOgpCgmE6CkKCYToKQoJhOgpC\ngmE6CkKCYToKQoJhOgpCgmE6CkKCYToKQoJhOgpCgmE6CkKCYToKQoJhOgpCgmE6CkKCYToK\nQoJhOgpCgmE6CkKCYTqKJYX0+c/Pd+9CzAhJsaCQPn/95xclPUZIiuWE9PmrDImSHiMkBSHB\nEJKCkGAISbGckDhHGkFIigWFxFU7P0JSLCkklooX01EQEgzTURASDNNREBIM01EQEgzTURAS\nDNNREBIM01EQEgzTURASDNNREBIM01EQEgzTURASDNNREBIM01EQEgzTURASDNNREBIM01EQ\nEgzTURASDNNREBIM01EsKST+zQYvQlIsKCT+FSE/QlIsJyT+XbsRhKQgJBhCUhASDCEplhMS\n50gjCEmxoJC4audHSIolhcRS8WI6CkKCYToKQoJhOgpCgmE6Cjmk38CrTbHyJ8YRCYbpKAgJ\nhukoCAmG6SgICYbpKAgJhukoCAmG6SgICYbpKAgJhukoCAmG6SgICYbpKAgJhukoCAmG6SgI\nCYbpKAgJhukoCAmG6SgICYbpKAgJhukoCAmG6SgICYbpKAgJhukoCAmG6SgICYbpKAgJhuko\nCAmG6SgICYbpKAgJhukoCAmG6SgICYbpKAgJhukoCAmG6SgICYbpKAgJhukoCAmG6SgICYbp\nKAgJhukoCAmG6SgICYbpKAgJhukoCAmG6SgICYbpKAgJhukoCAmG6SgICYbpKAgJhukoCAmG\n6SgICYbpKAgJhukoCAmG6SgICYbpKAgJhukoCAmG6SgICYbpKAgJhukoCAmG6SgICYbpKAgJ\nhukoCAmG6SgICYbpKAgJhukoCAmG6SgICYbpKAgJhukoCAm1j4+Pd+9CyggJlY8PSlIQEpyP\nD0qSEBIcQhIREhxCEhESHEISERIcQhIREhxCEhESHEISERIcQhIREhxCEhESKnSkISTU6EhC\nSKgRkoSQUOGlnYaQ4HCxQURIcAhJREhwCElESKjQkYaQUKMjCSGhwhFJQ0hwOEcSERIcQhIR\nEhxCEhESHEISPRFSXrr3MT2E9BAhicZDyu2X4ccEEdJDhCQiJFToSPNkSAUhzRtHJNEzIdXn\nRA9C+o05sJDevRtPChSD4omQrCKOSHPGEUnEORIqdKQhJNToSEJIqHBE0hASHM6RRLyzAQ4h\niXivHRxCEhESKnSkISTU6EhCSKhwRNIQEhzOkUSEBIeQRIQEh5BEhIQKHWkICTU6khASaoQk\nISRUeGmnISQ4XGwQERIcQhIREhxCEhESKnSkISTU6EhCSKhwRNIQEhzOkUSEBIeQRIQEh5BE\nhIQKHWkICTU6khASaoQkISRUeGmnISQ4XGwQERIcQhIREhxCEhESKnSkISTU6EhCSKhwRNIQ\nEhzOkUSEBIeQRIQEh5BEhIQKHWkICTU6khASaoQkISRUeGmnISQ4XGwQERIcQhIREhxCEhES\nKnSkISTU6EhCSKhwRNIQEhzOkURLComF8hghiRYUEivFg5BEywmJpeLFcDSEhBqzkRASasxG\n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\nWT6//3MXQhrBaBTDl3CX3SrLVl+Xu3dOGiGNYDSK+Z0LPUJIIxiNgpBgGI1iGNKOH8guFaNR\nDILZ8c6GxWI0ikEweXZaZ+fLOju+Z3cCIqQRsxzNG38g+5Udiku2ftUOvAwhjZjlaN4Y0iHb\nz/IfFCKkEbMczfvea/d9zlbFkZCWZ5ajeVdIrqC1u9awfdUOvAwhjZjPaGL4zygOq6LYZtku\n6JO+BSGNmM9oPv59z2tDmi9CGjGf0RBSSIQ0Yj6jeS6kaZf+zdb2G3eadJr0SaJASCPmM5qn\nQpr4etpga5dV9a6GjB/ILs98RvNMSFnYI9I227lUv/mB7PLMZzQRvLRzx7vmfzNDSCPmM5rn\nLn8T0p8hpBHzGU0ERyR7abfjB7LLM5/RRBDShX+zYbHmM5oIQiqKL/dvNuz4NxuWZz6jiSKk\n2SKkEfMZDSGFREgj5jOaiELiqt3yzGc0Mbz7u7mZkBZnlqN513+P1N5MSIszy9EQ0uQIacQs\nR0NIkyOkEbMcDSFNjpBGMBoF/9eXMIxGQUgwjEYxv2AeIaQRjEZBSDCMRkFIMIxGQUgwjEZB\nSDCMRkFIMIxGQUgwjEZBSDCMRkFIMIxGQUgwjEZBSDCMRkFIMIxGQUgwjEZBSDCMRkFIMIxG\nQUgwjEZBSDCMRkFIMIxGQUgwjEZBSDCMRkFIMIxGIYf0OxUW0rt3I14JjWaKlT8xjkgwjEZB\nSDCMRkFIMIxGsZyQCjryYzaKBYVU0JEXw1EsKSSWihfTURASDNNREBIM01EQEgzTURASDNNR\nEBIM01EQEgzTURASDNNREBIM01EQEgzTURASDNNREBIM01EQEgzTURASDNNREBIM01EQEgzT\nURASDNNREBIM01EQEgzTURASDNNREBIM01EQEgzTURASDNNREBIM01EQEgzTURASDNNREBIM\n01EQEgzTURASDNNREBIM01EQEgzTURASDNNREBIM01EQEgzTURASDNNREBIM01EQEgzTURAS\nDNNREBIM01EQEgzTURASDNNREBIM01EQEgzTURASDNNREBIM01EQEgzTURASDNNREBIM01EQ\nEgzTURASDNNREBIM01EQEgzTURASDNNREBIM01EQEgzTURASDNNREBIM01EQEgzTURASDNNR\nEBIM01EQEgzTURASDNNREBIM01EQEgzTURASDNNREBIM01EQEgzTURASDNNREBIM01EQEgzT\nURASDNNREBIM01EQEgzTURBS1D5m6t1znR4hRe3j36/zr9c9VXp/EaMIKWqElApCihohpYKQ\nokZIqSCkqBFSKggpaoSUCkKKGiGlgpCiRkipeCKkvHTvY3rS+/sjpFSMh5TbL8OPCUrv74+Q\nUkFIUSOkVDx5jkRI70FIqZBD+p2Qj3fvwI99/GuW1L+IACGongspLzgivQVHpFQQUtQIKRVP\nhZT3fyGkFyKkVDwTUt79SkivRUipeOYHsr0PhPRahJSKJ36OlNtbGXhnw+sRUip4r13UCCkV\nhBQ1QkoFIUWNkFJBSFEjpFQQUtQIKRWEFDVCSgUhRY2QUkFIUSOkVBBS1AgpFYQUNUJKBSFF\njZBSQUhRI6RUEFLUCCkVhBQ1QkoFIUWNkFJBSFEjpFQQUtQIKRWEFDVCSgUhRY2QUkFIUSOk\nVBBS1AgpFYQUNUJKBSFFjZBSQUhRI6RUEFLUCCkVhBQ1QkoFIUWNkFJBSFEjpFQQUtQIKRWE\nFDVCSgUhRY2QUkFIUSOkVBBS1AgpFYQUNUJKBSFFjZBSQUhRI6RUEFLUCCkVhBQ1QkoFIUWN\nkFJBSFEjpFQQUtQIKRWEFDVCSgUhRY2QUkFIUSOkVBBS1AgpFYQUNUJKBSFFjZBSQUhRI6RU\nEFLUCCkVhBQ1QkoFIUWNkFJBSFEjpFQQUtQIKRWEFDVCSgUhRY2QUkFIUSOkVBBS1AgpFYQU\nNUJKBSFFjZBSQUhRI6RUEFLUCCkVhBQ1QkrF+0P6mKeJhvO6xU1IkghC+t/L/Pd1T0VIPoQU\nACH5hvO6xU1IEkIKg5B8CCkAQvIN53WLm5AkhBQGIfkQUgCE5BvO6xY3IUkIKQxC8iGkAAjJ\nN5zXLW5CkhBSGITkQ0gBEJJvODM1zXRiQkhhEJLXNNOJCSGFQUhe00wnJoQUBudIPoQUACH5\nhvO6xU1IEkIKg5B8CCkAQvIN53WLm5AkhBQGIfkQUgCE5BvO6xY3IUkIKQxC8iGkAAjJN5zX\nLW5CkhBSGITkQ0gBEJJvOK9b3IQkkUP6rfr47xx9yHOph/OvWVKnM8XKnxhHpDA4IvlwRAqA\nkHzDed3iJiQJIYVBSD6EFAAh+YbzusVNSBJCCoOQfAgpAELyDed1i5uQJIQUBiH5EFIAhOQb\nzusWNyFJCCkMQvIhpAAIyTec1y1uQpIQUhiE5ENIARCSbzivW9yEJCGkMAjJh5ACICTfcF63\nuAlJQkhhEJIPIQVASL7hvG5xE5KEkMIgJB9CCoCQfMN53eImJAkhhUFIPoQUACH5hvO6xU1I\nEkIKg5B8CCkAQvIN53WLm5AkhBQGIfkQUgCE5BvO6xY3IUkIKQxC8iGkAAjJN5zXLW5CkhBS\nGITkQ0gBEJJvOK9b3IQkIaQwCMmHkAIgJN9wXre4CUlCSGEQkg8hBUBIvuG8bnETkoSQwiAk\nH0IKgJB8w3nd4iYkCSGFQUg+hBQAIfmG87rFTUgSQgqDkHwIKQBC8g3ndYubkCSEFAYh+RBS\nAITkG87rFjchSQgpDELyIaQACMk3nNctbkKSEFIYhORDSAEQkm84r1vchCQhpDAIyYeQAiAk\n33Bet7gJSUJIYUwV0kxNM52YEFIYCS6VBHc5IhGENE/vHuvPJbjLESGkQN491p9LcJcjQkiB\nvHusP5fgLkckgpBed+LCOZJPgrscEUIKI8FVmeAuR4SQwkhwVSa4yxEhpDASXJUJ7nJECCmM\nBFdlgrscEUIKI8FVmeAuR4SQwkhwVSa4yxEhpDASXJUJ7nJECCmMBFdlgrscEUIKI8FVmeAu\nR4SQwkhwVSa4yxEhpDASXJUJ7nJECCmMBFdlgrscEUIKI8FVmeAuR4SQwkhwVSa4yxEhpDAS\nXJUJ7nJECCmMBFdlgrscEUIKI8FVmeAuR4SQwkhwVSa4yxEhpDASXJUJ7nJECCmMBFdlgrsc\nEUIKI8FVmeAuR4SQwkhwVSa4yxEhpDASXJUJ7nJECCmMBFdlgrscEUIKI8FVmeAuR4SQwkhw\nVSa4yxEhpDASXJUJ7nJECCmMBFdlgrscEUIKI8FVmeAuR4SQwkhwVSa4yxGJIKR5evdYfy7B\nXY7I+0N6IZaKD9NREBIM01EQEgzTURASDNNR/EFIeWn6HXkFlooP01H8PKS8/SU5LBUfpqMg\nJBimoyAkGKajkEP6DbzadOt/Mos6IsX4FxAPpqMgJBimoyAkGKajICQYpqMgJBimo1jUOxtY\nKj5MR7Go99qxVHyYjoKQYJiOgpBgmI6CkGCYjoKQYJiOgpBgmI6CkGCYjoKQYJiOgpBgmI6C\nkGCYjoKQYJiOgpBgmI6CkGCYjoKQYJiOgpBgmI6CkGCYjoKQYJiOgpBgmI6CkGCYjoKQYJiO\ngpBgmI6CkGCYjoKQYJiOgpBgmI6CkGCYjoKQYJiOYlEhAaEQEjABQgImQEjABAgJmAAhARMg\nJGAChARMgJCACRASMAFCAiawoJDS/X9jfw2Go1hOSHn7C+7hu4yEkFDJmY2EkGCYjYKQYJiN\ngpBgmI2CkGCYjYKQYJiNgpBgmI2CkGCYjWI5IfHOhhEMR7GgkIBwCAmYACEBEyAkYAKEBEyA\nkIAJEBIwgWRC2q+zbP39gwdkWf2/3ibyYnjT0GW/ybP1vr334MEeh21RHMt93Bwf79B3t2cP\nNvxHX+X4bTvvFz3Vk24PP9jG3CQS0jnPKuvnH3IbUvU7b0gne5r8cnNHf4DFsczhUj/49HCH\n8vOdTfV+94df5ehtO9/OT/ik+cNvIvOXSEh5ti0X4SHP9k8/5EFIXqtsWyZ0Xme7n4aUlzu2\ndw/bZl8Pd8gW68O9+sOvcuy2bebb+QmfdOyoPWdphPSdbaqPh8z9VR035Tf3cs2Wf3nnTf1Z\n0X5yKZeNq6ELqbl7lrU3nd2dztdbKIp2hZSHFrv3vQfXv37l2apbeju3Xxt3MDrZrtYPybJu\nEWfZV71Yr3ahd4c//Sq737nvAZvhOs/zY++W4V5N+qTdJBcnjZA2mb1ocC+bDvVCqFZ3bp9d\nqk/ckqg+WRVdSO3duxbqe9ev35ot2PO0L/Pre995cP3rrrq9KelSbSHvMmu2cB1SecQ7F4Nd\n6N3hT7/K7nfVHTaDkK6PrsO9mvRJd9nlJ3+tc5JGSFdLY+VO2k/1ul5fyhdUufsb3BbV990v\n93e/cyu8Wfj9uxdNBeVrLHv91myhUp4vrHbfvTOZOw9utnwun7B53FcVYJbd7OvgizhXL+6G\nu6B+ld3v3FYv69s98Ly0m/RJDw9f185egiGV6/3wtW5Wc1OLfStc1Yt50z9H6u7e3rt83Nl9\nO+22ULt8rdz32WN3482D7bw661+j2vQ24wupXJr7211Qv8rud7bVPw5JfdJz+7p2cVIMad28\nNukfINp79v+wuvn67vced7X50267dt+Y6xtvH2wvGMvXM6vz9f4NNnbnpZ3b3vnuLmhf5e1d\nH87v7l5N9qSeYmcujS+8fSFfHN1FqNX+cH46pMHdR0OqbsjtxjsPbn49rbL2cu/VWsrbG+8s\nWXcQehTSn3+VQkjTPikhxa25tHTMt/aXdbn+Kxy8/mhubu/U3f3e66reWrlcPfbeg7uXTvvB\nt/XV9VW7ofpO++zr3i4oX2X3uz94aTftkxJS5NofdpzcX9bRTm67v7xdeep7aj4pF8e6H9LV\n3es7XZ/pt3/95R+U35cvu+ZEYPjgvHzNV/82L//g1B586nMkd1peflN/9PMYe5Z1dm8XlK+y\n+92Xu0Tws4sNkz4p50ixO6/aC7N25fn6b/vcXIytL9bWi6L5G+/ubkg9kwAAAADvSURBVK/Y\n+pe/my3U7Gnys9178ODqt1/dVptrVPVVu1N930dXgO1Z3K4OrsCLX2X3u96V6Kt2fCFN+aRc\ntYvfYZs3bwjbZuWBY/Dq/LS2H7Geqz8tei/P2rvv21Of3g9k2y3U3PvO8p1rob4ofv3gYpeX\nS6W6e/lZ3q6a+udI1Xvt1p732tUfv693obv4/qdfZfc798PTTfGzkKZ8Un6OBI3/XaHvcH7H\n23Uy3tkATf78O9VeY/WGN5DyXjuojgteQy3e/Q2Z+++RFo7/HgmAhpCACRASMAFCAiZASMAE\nCAmYACEBEyAkYAKEBEzg/wE37x7WtefRugAAAABJRU5ErkJggg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# creating total stay variable for visualisation \n",
    "hotel_data <- hotel_data %>%\n",
    "  mutate(total_stay = stays_in_weekend_nights + stays_in_week_nights)\n",
    "# Lead Time\n",
    "ggplot(hotel_data, aes(x = factor(is_canceled), y = lead_time, fill = factor(is_canceled))) +\n",
    "  geom_boxplot(alpha = 0.7) +\n",
    "  labs(\n",
    "    title = \"Lead Time by Cancellation Status\",\n",
    "    x = \"Cancellation Status (0 = Not Canceled, 1 = Canceled)\",\n",
    "    y = \"Lead Time\",\n",
    "    fill = \"Cancellation\"\n",
    "  ) +\n",
    "  theme_minimal()\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e2018214-3568-4fba-896a-e6f8051101eb",
   "metadata": {},
   "source": [
    "### **Lead Time by Cancellation Status**\n",
    "\n",
    "This boxplot illustrates the relationship between lead time (the number of days between booking and check-in) and booking cancellation status.\n",
    "\n",
    "### **Insights:**\n",
    "- Bookings that are cancelled (cancellation status = 1) tend to have significantly higher lead times compared to bookings that are not cancelled (cancellation status = 0).\n",
    "- This indicates that customers who book far in advance are more likely to cancel their reservations, possibly due to changes in their plans over time.\n",
    "- Outliers can be observed for both groups, with extremely high lead times for some bookings.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "006d961c-05b9-489d-8dbe-3de1af7586bb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAWlBMVEUAAAAzMzM0NDQ1NTU4\nODg5OTlERERGRkZHzNBNTU1N0tZoaGhra2txcXF8fHyMjIyampqnp6eysrK9vb3Hx8fQ0NDZ\n2dnh4eHp6enr6+vw8PD0mZP6n5n///8ZVrV3AAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElE\nQVR4nO3di3biyJaE4XT5dHl06OJqLsUM7/+ao60LSEKwsSMxkPl/a3WXjQWIqIxCmcIQDgBk\n4dE7AKSAIgERUCQgAooERECRgAgoEhABRQIioEhABBQJiIAiARF8v0ihY/Cj/fx8484363kR\nwmSxH9905I6cDT5n5S7M1u4Njd/08ObrPXLvtHL9kdzw2JCKuxTpfBR2L5m111qPbjpyR1d/\nvC2am5vestfnNz28+fr7m4rkPJLbyogkiH/X42Pl6phahcLG3W4VwjZCkbblk9Gm/HMzDTP3\npsZuerxIt/AeCUXKyM8XqQi7+otVmEco0iSsmq+m4ctHd1qRvEdCkTISr0jbcr5QzLeH5qDP\nLlpMygOuzWC705flV2eb7sOk/uHxC9tsWYTpevSH69Pz0DYszu50UYRJXa/1NIR5NZmxJ6/q\n5rpFOl6r2aNmL08Pqn9rNzySwS1Vf2znoby5zW3Z4pVEK9L6NF1ox1QxOoGY1uO9vf5w00Xz\nvPIZlsdtFtUPF2M/nA2fhnp3Oj1+Xd9EUV+5vblTkU7X6g3/zoPq3dpNj+S8SJvOzSEtsYpU\nTlWW+8O+HK+79tJlNdqX1SJAp0g7+zf+c9u7gc6mu+bJZtoeN5WbFJ/lmC7Kicj5D4uw7+1Q\n/06LzWE/s6+3Np3ZVyN/Wz1fbKf1WK//O9/V+gmk/6COt3bbI+kvW9gfk1A+kLLIkwNSE6tI\ni+Zf57n9WV86qcd49U13urCrF7tm69MNdDetn2NOB2/lpTb86iO3kR/2d6h/p/XGwXZr1V5v\nUW+xt2PCtkjnu1r9f/Cgjrd24yM5KxKTpnTFKtKkeY6onjNOz1Pr5fSsSOVorC7uP1UdN91W\ns57TwVu5Sf2kY7c88sOzfRreaacp9Z6eFu27s6H+tar/jz2oLzySsyLN7Blsd0CCYhWp90Xz\nzao4nmUaGe/llH85tmk53Lbdg7fjdZvnq/4PJ4NDu5E7HTwXhLEinV2rv9fDRYPbHslZkXbV\nzyars1vAy7tjkVblv9SLz92gSKev9jb3P9+0etbpHLz1izT84bw7c9+N3ulZkfq7b/+dX+uG\nIrmP5KxI9lIIq9Lx+RTJuOOh3SScVr5Pg65ztuc0PLubVk84nYO306FdGPlhZ/l7V0xH79T+\n6KxJ2KLFcA/Or3XDoZ37SEaKdKiWwIsDUhOrSItQv7Css9jQ/Bs8KNJpzerTphbnm9qfi87B\nW/nD6lhoU6+XDX5Y9uKz/qI8blqP3qn9MW9WCgr7strTbXvvpxKsh8N/5EF95ZG0l+w7j61/\nE0hGrCKVBzOLeqW4erWMjfTqNQfrYjhHmobisxxau0VzsmW4qX1bdFeIQ7Vs91nU/9YPfmjn\nZuwlQvtybjIbv1P7Yx2K7XH5u/p/0V3+7l9r11538KD6j9h/JPUl0zDbN5fUy9+Lb7yWCc8u\nVpF65y4noZl41Da94bebtpcvRzetb2vZvY/l8Qzq2Q9Pd1wPz5E7bZ5cQrO61l6he0K2e63J\nxROyg0fsPpL6kvos7OL0ZShYuEtPtCJ1X02znVTTgJVdsFm3J2yO1rPqlw8ubHqoTtZ0xlqo\nXyLUvrCm/0O7oFqBnjcTlvM7bVYByjtqqrizl/qs2h9VP+5cq96j5rr9lwgNHrH3SJpLNuUf\ny/p6m+olQvQoQU95uL66du7/6g+Bx3jGIm3b6dCXfwg8yPMVqTMd+uIPgYd5viJNrp36v/pD\n4GGer0jAC6JIQAQUCYiAIgERUCQgAooERECRgAgoEhABRQIiyKRIfx+9A8+OgEQUCYaARBQJ\nhoBEFAmGgEQUCYaARBQJhoBEFAmGgEQUCYaARBQJhoBEFAmGgEQUCYaARBQJhoBEFAmGgEQU\nCYaARBQJhoBEFAmGgEQUCYaARBQJhoBEFAmGgEQUCYaARBQJhoBEFAmGgEQUCYaARBQJhoBE\n3y7SX+BRYjYgEp6RYAhIRJFgCEhEkWAISESRYAhIRJFgCEiUR5E+fn88eheeHEUSZVGkjz//\n/qFJV1EkUQ5F+vhTFokmXUWRRBQJhiKJKBIMRRLlUCTmSD6KJMqiSKzauSiSKI8iMU48BCSi\nSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQk\nokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAE\nJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgw\nBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJI\nMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSi\nSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQk\nokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAE\nJKJIMAQkokgwBCSiSDAEJKJIMAQkuqFIRan75ytinDgISOQXqWj+Vxy/eT0fvz8evQtPjiKJ\nsijSx59//9CkqyiS6MYiHV65SB9/yiLRpKsokuiWItVzo0GR/r6O3/+a34/eDURztzp83w1F\nalrEM1LKnnFsvhTmSDAUSZRFkVi1c1EkUR5FYpx4CEhEkWAISMQrG2AISMRr7WAISESRYAhI\nRJFgCEhEkWAISESRYAhIRJFgCEhEkWAISESRYAhIRJFgCEhEkWAISESRYAhIRJFgCEhEkWAI\nSESRYAhIRJFgCEhEkWAISESRYAhIRJFgCEhEkWAISJRHkXg7Lg9FEmVRJN4g0kWRRDkUibcs\n9lEkEUWCoUgiigRDkUQ5FIk5ko8iibIoEqt2LookyqNIjBMPAYkoEgwBiSgSDAGJ8igScyQH\nAamyKBKrdg4CkuVQJM4jOQhIR5FAQBFQJBBQBDkUiSmAh4BkWRSJRSkPAanyKBKnSTwEJKJI\nMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSi\nSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQk\nokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAE\nJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgw\nBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJPp2\nkf4CjxKzAZHwjARDQCKKBENAIooEQ0AiigRDQCKKBENAIooEQ0CiPIr08fvj0bvw5CiSKIsi\nffz59w9NuooiiXIo0sefskg06SqKJKJIMBRJRJFgKJIohyIxR/JRJFEWRWLVzkWRRHkUiXHi\nISARRYIhIBFFgiEgUR5FYo7koUiiLIrEqp2LIolyKBLnkXwUSUSRYCiSiCLBUCRRDkVijuSj\nSKIsisSqnYsiifIoEuPEQ0AiigRDQCKKBENAIooEQ0AiigRDQCKKBENAIooEQ0AiigRDQCKK\nBENAIooEQ0AiigRDQCKKBENAojyKxItWPRRJlEWR+DUKF0US5VAkfrHPR5FEFAmGIokoEgxF\nEuVQJOZIPookyqJIrNq5KJIojyIxTjwEJKJIMAQkokgwBCTKo0jMkTwUSZRFkVi1c1EkUQ5F\n4jySjyKJKBIMRRJRJBiKJMqhSMyRfBRJlEWRWLVzUSRRHkVinHgISESRYAhIRJFgCEhEkWAI\nSESRYAhIRJFgCEhEkWAISESRYAhIRJFgCEhEkWAISESRYAhIRJFgCEhEkWAISJRHkXj1t4ci\nibIoEr+P5KJIohyKxG/I+iiSiCLBUCQRRYKhSKIcisQcyUeRRFkUiVU7F0US5VEkxomHgEQU\nCYaARBQJhoBEeRTp7e3t0bvw3JhEqrIo0ts///mHJl3BsqYshyK9/VMWiSZdxok2HUUCRYpg\nWKT9chZCmC33D9mb+6BIDoqkGxRpEVqLx+zPXTBHcjBHkvWKtCmKxXpXfrFbL0KxedAu3QGr\ndg5W7VTdIq2LVee7VbH+6Z25H06TOAhI1C3SfPCz4fcvjHHiICBRDqt2B8aJi4BEwyKtinKq\nFIrlQ3bmfhgnDgISDYq0CuGwK0IIiTWJceIgINGgSJOwKf9bbUPxmN25F8aJg4BEgyKVT0jr\nMKn+TArjxEFAokFhirCbh63Nkh6zO/fCOHEQkGhQpGU5PSrsCSmlFzYcGCcuAhIND+EWwc7D\nFon1iHHiISBRYnOhSxgnDgIS3VakasZUlO66L3fEOHEQkOh81a7Sr0z1XV2mH9mp+BgnDgIS\ndYtUhI7u5QeKlDoCEnULs+r0qPM68OJAkZJHQKILh3Zd40X6CzzKPRvxTf5iQ3HgGSl9BCQ6\nO49UDOZIx/5QpJQRkOjieza0lxQ1ipQ2AhKdvdZu9PcneEZKHQGJblhsOFCk9BGQ6OzQbvQN\n7XhlQ+oISDR8BppNdw/ZjztjnDgISNQtUrjwyoYEME4cBCSiSDAEJEqsMJcwThwEJKJIMAQk\nOlv+bhXzlFYdGCcOAhJdLFIpoSYxThwEJBoUaR1s+Xs3DZ+HReC9v/NBQKKzN4isT8im9t52\njBMHAYkuvETI/qRIGUkqoNU0hOnnF65wPtztPfC/1IDBptP20G562NizUiL4HC1PQkXaNb8J\nNL39KudFqr4TitTuRLE79H7d/LXxyY6uhIpUBFtwXhdfGL8XivQV5x/GPAlhsihnSum82Sqf\nNexLp0ifYVb9ua7ednszK58VbCSHsJvVXx2OX+znIcz3h06R2s3r1/ZUF+1so13/FkYkNA+6\niCL50inSLDQffrw9WJvaTxYvC9J8ta++sLZVX9gEpm3NcfNTkeqti333FsZQJJh0itQ7KJuE\nz7JRdSmm+8PKnqXsvM7GLlpaKRZ2BNi2prt5c1MLm2tN6yq2tzB6t/1dSPNFq8yRXIkWqTwy\nWy+ndTN2h7Ytze/cTaot7bnpNEc6bX7c2lbf6tNBu/ObP91tfxfSLBKrdq5UizRtR3N9cW9V\n4TTUjxf3Nx+73i1FSlg64+RO0gnoOEc6lH/Ow2S13t1cpMHmFOlMOuPkTtIJqF212xTzZtjv\n+zUYHNq1Fx832veK1D20azcdwy/2wSQU0PE80taG9Oawn/aLtAiLekHBvih7N+0Wqbf5cLGh\nvYUxFAkmoYB2k+Oa9/F9Grs12LWr3vXKdt23tjWnzYvz5e/2FsaMXrwMxVdeqfQCEhon95FU\nQOt50b7Wbh7CdDOY4WynzSnWXfXTQ+ew7rj5qi1S94Ts8RZGjFxcNjq5txJKapzcAwGJzou0\nSuhFdkeMEwcBiYZF2k3Tezo6ME5cBCQaFCnJp6MD48RFQKJekcqno0mCT0cHxomLgETdIn1e\n+CyKBDBOHAQk4jwSDAGJKBIMAYkSK8wljBMHAYm6RRq+jx3va5cPAhJ1i7Quukvfq2L90ztz\nP4wTBwGJeod2m6JYrKsXIa0XodhcuMorYpw4CEg0mCOdPtU8mfcQqjBOHAQkOn87rpm9xcpy\n9KNkXxfjxJFqQG8/dUes2sGkGhBFiivVcRJNqgFRpLhSHSfRpBoQRYor1XESTVIBvY27633m\nUaR7p/j60irS/42hSLK3X79+0aSrKJJoUKTJMqXTsA3rEU26LrsixX5h9uDG7J2H5gm9NKhC\nkXy5FSkc/xfJ4Lb2n3Y+Nkw/U/pFWYrko0iikdtaL+w98SYJPS8xR3JRJNHYbe3qV9x94TM4\nnx2rdp60iuQvf/9Akbaz6uloM23ejDwJSY2Te0gqoGd4RlpPj0d1Kf26eVLj5B6SCugJijQJ\nYbZtf3ThQ/5eEB805qFIouHy92I7vt1L46MvXRRJNFz+jnjTT4MPY/ZRJNHwthYJvh0XRfLl\nVqR7v7JhkeL72lEkX1pFevyrv4uwnYbdfhqSeskdcyRXUkXqeNTvI5XPRMuwPuxTOht7YNXO\nR5FE50Va2we7JHVod0h3nESTakCPKtIsfNpHoW8oUmZSDehRRbIGTW2tIaG3KzapjpNoCEh0\n9hKhSfXRzmm9PSTjxMOrelWJHcJdQpGuevvnP//QJAlFQtmjskg0SXK+alcp0nnBaoUiXUOR\ndN0iFXxiX54okq5bmFWnR6uL13hJFOmqdOdIDzwhmySKdF2yq3a8ZXFcFMmRakCPKdJ+Yd9+\nFmGW0rtxmVTHSTSpBvSYIhV2ZLexKVKR2G/4pTpOokkqoEf/GsUqTMv+TKb2a0mJvbQhqXFy\nD0kF9PbfMT9XpGkoj+h29jK7fUJvfFJJapzcQ1IBPbpI1ZLdZ/VklNrqXVLj5B6SCui2IsUd\n4v0Tsgc7qrP3EaJImUkqoJuKFHmId29tFmyKNDnYgkNavyGb1ji5h6QCuqVI4Y7PSKtyerQO\ny3KKNOWVDZlJKqBHH9rti2bhO4RJ1Dt5vKTGyT0kFdBty9/3K9JhO6lPxaa2+J3YOLmHpAJ6\n9DNSwpIaJ/eQVEAU6W6SGif3kFRAFOlukhon95BUQBTpbpIaJ/eQVEAU6W6SGif3kFRAFOlu\nkhon95BUQI9+9XfCkhon95BqQA/5faTAm59kK9WAKFJcqY6TaFINiPdsiCvVcRJNqgFRpLhS\nHSfREJAoh8+QPTBOXAQkyuEzZA+H9/f3R+/Cc0v2fe1+TBafIfv+8fuDJl1x/9MsycvhM2Tf\nP8oi0aTLfuKEZeq+/Rmyf1/H+2/z/ujdeF5NkR69G7e7VxsEOXyGLM9IDp6RdFl8hixzJAc9\nkuXxGbKs2jnokSqlQ7grnvGo+qkQkIgiwRCQiM+QhSEgUR6fIcsUwEFAqiw+Qzbdj0iNhFU7\nWQ6fIcuHdjs4j6RLsThDFMlBkXTDIu0XkxAmi6Q++ZIiOSiSblCkXbPgUCT1aczMkRz0SDYo\n0jxM7eMvp2m9RIhFKQ8BqS4sNqS26MBpEgcBiSgSDAGJOLTDgYB0eSw2MJe+joBkWSx/s7p7\nHQHpEpsLjWKcOAhI13/L4oftxl0xThwEpMuhSEwBPAQky6JILEp5CEiVR5E4TeIhIBEf6wJD\nQCKKBENAojwO7T5+fzx6F54bcyRVFkX6+PPvH5p0xdv7+ztNkuRQpI8/ZZFo0mXWI5qkoUig\nSBEk2p0eiuSgSLocisQcycMcSZZFkVi187Bqp8qjSJwm8RCQiCLBEJCIIsEQkIgi4cAcSUeR\nwO8jRUCRwG/IRkCRQJEioEigSBFQJDBHioAi4cCqnY4iwRCQiCLBEJCIIsEQkCiPIjEFcBCQ\nKosisSjlICBZDkXiNImDgHQUCQQUAUUCAUWQQ5GYAngISJZFkViU8hCQKo8icZrEQ0AiigRD\nQCKKBENAojyKxPvaOZgjqbIoEu+06nj79esXTZLkUCTe+9thPaJJGooEihQBRQJFiiCHIjFH\n8jBHkmVRJFbtPKzaqfIoEqdJPAQkokgwBCSiSDAEJMqjSO/v74/ehefGHEmVRZHeP35/0KQr\n+H0kWQ5Fev8oi0STLuM3ZHUUCRQpAooEihRBDkVijuShR7IsisSqnYceqfIoEqdJPAQkokgw\nBCTKo0gcuTgISJVFkZhLO97KSSQBSXIoEqu7DusRTdJQJFCkCCgSKFIEORSJOZKHOZIsiyKx\nKOUhIFUeReI0iYeARBQJhoBEFAmGgER5FIkpgIOAVFkUiVU7BwHJcigS55EcBKSjSCCgCCgS\nCCiCHIrEFMBDQLIsisSilIeAVHkUidMkHgISUSQYAhLdUKSi1P3zFTFOHAQk8otUNP8rjt+8\nHj5ozMEcSZVFkfjoSwerdrIb50gvXSQ+jNnBeSTdt4v093X8/tf8fvRuPK+mSI/ejdvdpQqa\n24pUHHhGShjPSLocisQcyUOPZDcVqej/7/WwauegR6pbilSc/v+iReI0iYeARLeckO38QZES\nRUCiG84jFc1LGnhlQ8IISJTHa+2YAjgISJVFkViUchCQLIcicZrEQUA6igQCioAigYAiyKFI\nTAE8BCTLokgsSnkISJVHkThN4iEgEUWCISARRYIhIFEeRWIK4CAgVRZFYlHKQUCyHIrEaRIH\nAekoEggoAooEAooghyIxBfAQkCyLIrEo5SEgVR5F4jSJh4BEFAmGgER5FIkjFwcBqbIoEnNp\nx9uvX78ISJJDkVjddViPaJKGIoEiRUCRQJEiyKFIzJE8zJFkWRSJRSkPAanyKBKnSTwEJKJI\nMAQkokgwBCTKo0hMARwEpMqiSKzaOQhIlkOROI/kICAdRQIBRUCRQEAR5FAkpgAeApJlUSQW\npTwEpMqjSJwm8RCQiCLBEJCIIsEQkCiPIjEFcBCQKosisSjlICBZDkXiNImDgHQUCQQUAUUC\nAUWQQ5GYAngISJZFkViU8hCQKo8icZrEQ0AiigRDQCKKBENAojyKxBTAQUCqLIrEopSDgGQ5\nFInTJA4C0lEkEFAEFAkEFEEORWIK4CEgWRZFYlHKQ0CqPIrEaRIPAYkoEgwBiSgSDAGJ8igS\nUwAHAamyKBKLUg4CkuVQJE6TOAhIR5FAQBFQJBBQBDkUiSmAh4BkWRSJRSkPAanyKBKnSTwE\nJKJIMAQkokgwBCTKo0hMARwEpMqiSCxKOQhIlkOROE3iICAdRQIBRUCRQEAR5FAkpgAeApJl\nUSQWpTwEpMqjSJwm8RCQiCLBEJAojyJx5OIgIFUWRWIu7SAgWQ5FYnXXQUA6igQCioAigYAi\nyKFITAE8BCTLokgsSnkISJVHkThN4iEgEUWCISARRYIhIFEeRWIK4CAgVRZFYlHKQUCyHIrE\naRIHAem+XaS/r6MZJ4/ejef1cgHFbEAkPCOBgCLIoUhMATwEJMuiSCxKeQhIlUeROE3iISAR\nRYIhIBFFgiEgUR5FYgrgICBVFkViUcpBQLIcisRpEgcB6SgSCCgCigQCiiCHIjEF8BCQLIsi\nsSjlISBVHkXiNImHgEQUCYaARBQJhoBEeRSJKYCDgFRZFIlFKQcByXIoEqdJHASko0ggoAgo\nEggoghyKxBTAQ0CyLIrEopSHgFR5FInTJB4CElEkGAISUSQYAhJRJBgCElEkGAISUSQYAhJl\nUiQWdx0EJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJI\nMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSi\nSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkokgwBCSiSDAEJKJIMAQkelyR3pJFQp5YCT2RBxbp\n/37Q//7gfcUr0n9/zv/84H39lyLFRJHchH5wbFMkEUWKjiJ5KFJMFMlN6AfHNkUSUaToKJKH\nIsVEkdyEfnBsUyQRRYqOInkoUkwUyU3oB8c2RRJxQjY+EvLESuiJUKT4SMgTK6EnQpHiIyFP\nrISeCHOk6JgjeShSTBTJTegHxzZFElGk6CiShyLFRJHchH5wbFMkEUWKjiJ5KFJMFMlN6AfH\nNkUSUaToKJKHIsVEkdyEfnBsUyQRJ2TjIyFPrISeCO8iBENAIooEQ0AiigRDQCKKBENAIooE\nQ0AiigRDQCKKBENAIooEQ0AiigRDQCKKBENAIooEQ0AiigRDQCKKBENAIooEQ0AiigRDQKIv\nFKko3W9H7otx4iAg0e1FKo7/e0GMEwcBiSgSDAGJKBIMAYm+XaS/wKPE74Esk2ekZ4z+qRCQ\niCLBEJCIIsEQkIgiwRCQiCLBEJAok1c2ME4cBCTK5LV2jBMHAYkoEgwBiSgSDAGJKBIMAYko\nEgwBiSgSDAGJKBIMAYkoEgwBiSgSDAGJKBIMAYkoEgwBiSgSDAGJKBIMAYkoEgwBiSgSDAGJ\nKBIMAYkoEgwBiSgSDAGJKBIMAYkoEgwBiSgSDAGJKBIMAYkoEgwBiSgSDAGJKBIMAYkoEgwB\niTIpEnBfFAmIgCIBEVAkIAKKBERAkYAIKBIQAUUCIqBIQAQUCYiAIgERZFGkV/489h9CPqIc\nilQc/4cL+IdGRZFg4RCPiCLBEI+IIsEQj4giwRCPiCLBEI+IIsEQj4giwRCPiCLBEI8ohyLx\nygYf+YiyKBJwbxQJiIAiARFQJCACigREQJGACCgSEMFLFGk1DWH6+YUrhFD/17mJ4jC8aGi/\nmhVhujpuPbjyFev54bAp93G2ubxDn6c9u3DD33qU/mWLqw861p3O11+4jRS9QJF2RahMb7/K\neZGq764WadvcTbE/2/B6AQ+bsg77+srbiztU7EZuqvPdNx+le9ni2s5HvNPi4j8ieXiBIhVh\nXg7CdRFWN1/lQpGumoR5WaHdNCy+WqSi3LGVXW0elhd3qBmsF/fqm4/Su2weru18xDv1nrVT\n9/xF+gyz6s91sL+qzaz8x70cs+Vf3m5Wf3U4frEvh4214VSkdvMQjhftbKNd/xYOh+MIKZ9a\nmq3Hrlz/f1mEyWnoLWy/ZvZktG12tb5KCKdBHMKyHqy9Xehs8N1HefrO/g2YDcd5UWw6lwz3\nKuqdnpLM0vMXaRaagwY7bFrXA6Ea3UXz1b76woZE9cXkcCrScfNTF+qt6+O39haa+zke5tdb\nj1y5/v+iurxt0r66heJUs/YW+kUqn/F2h8EudDb47qM8fVdtMBsUqf/sOtyrqHe6CPuv/LWm\n5vmL1BsaE5u0b+txPd2XB1SF/Q3OD9W/u0v7u1/YCG8HfnfzQ9uC8kHTlD0AAAK2SURBVBir\nOX5rb6FSzhcmi8/OTGbkyu0t78o7bK+3rAoYwtm+Dh7Erjq4G+6C+ihP39mt7qfne3Dl0C7q\nna4vHtdm4cWKVI739XLajua2Lc0/hZN6MM+6c6TT5sety+vt7J/T0y3U9suJ/Tu7OV14duVm\nXh26a1Szzs1cK1I5NFfnu6A+ytN3za1+u0jqne6Ox7VZerUiTdtjk+4TxHHL7g+ri/ubj12v\nd/PbxXxq/zDXF55fuTlgLI9nJrv+/g1ubOTQzm5vN7oL2qM83/RifqN7Fe1OrzQ2A8//4I8H\n8oeNLUJNVuvdzUUabO4WqbqgaC4cuXL7/+0kHJd7e2OpOF44MmTtSehSkb7/KIUixb1TivTc\n2qWlTTFv/rL2/b/CwfFHe/Fxo9PmY8dVnbGy71137MqnQ6fV4J/1SX/VbqjeaBWWY7ugPMrT\nd984tIt7pxTpyR1PdmztL2vTTG5Pf3mLcuq7bb8oB8e0W6Te5vVG/Zn+8a+//EH57/J+0U4E\nhlcuymO++tui/MH2+ORTz5FsWl7+o37pfExzL9MwtgvKozx9t7Qlgq8tNkS9U+ZIz243OS7M\nNivP/b/tXbsYWy/W1oOi/Rs/bd4csXWXv9tbqDV3U+yarQdXrr5dnm61XaOqV+229baXVoCb\ne7FdHazAi4/y9F1nJbrXnWtFinmnrNo9v/W8aF8QNg/lE8fg6Hw7bU6x7qqfHjqHZ8fNV8ep\nT+eE7PEWava6s2JhXagXxftXPiyKcqhUm5dfFcdRU59Hql5rN73yWrv6z8/+LpwW37/7KE/f\n2cnT2eFrRYp5p5xHgub6q0IfYfeIl+sEXtkATXH7K9V+xuQBLyDltXZQbTIfQxVe/Q2Z/T5S\n5vh9pEfvAJACigREQJGACCgSEAFFAiKgSEAEFAmIgCIBEVAkIIL/B3Q01BFXRBr3AAAAAElF\nTkSuQmCC",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Total Stay\n",
    "ggplot(hotel_data, aes(x = factor(is_canceled), y = total_stay, fill = factor(is_canceled))) +\n",
    "  geom_boxplot(alpha = 0.7) +\n",
    "  labs(\n",
    "    title = \"Total Stay by Cancellation Status\",\n",
    "    x = \"Cancellation Status (0 = Not Canceled, 1 = Canceled)\",\n",
    "    y = \"Total Stay (Nights)\",\n",
    "    fill = \"Cancellation\"\n",
    "  ) +\n",
    "  theme_minimal()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "25feb123-a90c-443d-aa5b-14028df5dd3f",
   "metadata": {},
   "source": [
    "### **Total Stay by Cancellation Status**\r\n",
    "\r\n",
    "This boxplot depicts the relationship between the total stay duration (in nights) and the cancellation status of bookings.\r\n",
    "\r\n",
    "### **Insights:**\r\n",
    "- The median total stay is similar for both cancelled (cancellation status = 1) and non-cancelled bookings (cancellation status = 0), suggesting that total stay duration is not a strong differentiator between the two groups.\r\n",
    "- A few extreme outliers are present, representing bookings with exceptionally long total stays.\r\n",
    "- The interquartile ranges and distributions for both groups are largely overlapping, further indicating minimal variation in total stay duration based on cancellation status.\r\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "id": "e647b251-19a3-4d6e-9713-bcd33b48e2b2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAP1BMVEUAAABHzNBNTU1N0tZo\naGh8fHyMjIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enr6+vw8PD0mZP6n5n///9TsHeO\nAAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO2diXbaTLNF9elnMjYm5Or9n/Vqag2A\nQ9ldJVXJe68VQxgOp6E3Gp0UFQBkU6xdAGALIBKAAogEoAAiASiASAAKIBKAAogEoAAiASiA\nSAAKIBKAAhYilYfztb96PR/KL1746SvfjrO/fhzLotidbiq1ptnPX33C+6EoisPHD16mib6P\n71765Yu2TMd893Y8vQVcYCFSPQVP/dVT8dXseX77/NZmMrf8ZEL/M/vFnP4s+xfe/+xl7uO7\nv4tEmo358RkyGWFxbETapcVQucsQ6VyUzWy6noviU6XWq1dPfNYLo0t9edkXhx+9zHORJMzH\njEhhsBHprbi01y71tZ+LVBb9GuK50FihkYu0K879tf33F4Z5Is3HjEhhsBHp2q/bnYrP/pM/\n1Yum/aW797arv+jb26/l7q1qv/mLfbcqM10VHK9214aH1Xzsi/KcJu1bWezq28/1RWfA+Mj6\n3lN37yy7e1LzkFux624arlQf43LosxvItH3K60oUx9vjK/Z9h2f1L92//Ge9EVQePx/SHsc8\nVP4iqb34PBZ13OXlpwKm2IhU9et2Zdl/5uV0vf/QbEO1t5ftRsh7d+fpXqT9sKnVMj6sqt66\nq92k6v5yObYX5/kj6wnYv/KdSKf0kFO/0Hkv3vo7D/eLoVn7/XC9iyir+1es0uDSI2fT/6N4\nnvZkzKnyF0ntxUVzMxJ+jJFIp3bd7pKEeWsn6VurTT15bt2D6lnT3PDZftl+7ruJMsm5Nt/c\n72nzaPqwejn3Xk/JsptUzVbFqSi7i919YHmpbofmheardmUX8Fld+yXRPq1U1fN2vptw3n7I\n+2xe+NbO/PshNH/mz6rSz7r626261RJeZ2lPx9w974uk7mLXvBO1yLsK1sRIpEv7xdro1H7m\nu25qtteLYlhHKspr+6huV2+zQjXfBLh2u7C6vdDTh526jZj3btJ+tDcXw4rVPLC/916kZvp1\na26H/iG78c75eObth7xjW6J93v0Quhk+fdZw9dQvco7dEnhIezrm7o4vkp5vjsE6GInUrNQ1\nX+3jB/358bafTIX64tzP5l3a4fvsAEz7rPa7ePqwXZq47VPGaZam8EPgo0jdQqdbgDWbROOa\n3bO5+dh+KPFsCGlraP6s/julW/C1C8Lpts6zMQ93PEvqLg7NEuxawcpYidQsjC7jjqdzmebZ\nOAlqdsO1L0RqqTfk354/7H7DO90iEGlyeWj2NI9rdlNDOp61n+Xdv2J718OzpgHPuj8b8/PX\nnzzv2t63Oz8kwKJYifRRr7mchq2eeuGzP71f51OxfH886vj8+q3Zov/Kg2ciPTzynyI1i6TJ\nml291jXZcr9+0f5OpHl08+fxWQKRno75i6R08dHuZRmWp7AKViJV9Twoh09+N2wXTSbBtZ6x\nzewtJ4dbpzNycgynXVmcPGy+ajd95v0jX63aFd0rXSdrdtPd39dy/0X72T6J+1fs1vzunyVY\ntbsbc3fHF0nTNb9j8cWZWLAQZiLVX+vjan7/1Xk/FW/tjodjd7j1837P2rgn6r25a/qwfmfD\n+blITwIfRWoDLt3+snrxOVmza7x4767U600fX7Y/9nsKysdXHF/u4376n/qDy/3Ohmn3xzFP\ntZkn3YZbqrsIWAUzkZrDJe/pL+2pAt3e6tnkOTXf/Z/t8ZfPfs5O5vO+XvurJ8z1VPS7vIeH\ndbu/3++3gvqLeeBw8zS7K/de9mdg7MrZ7uNLd4rQrd42OXzd/qMoP4fd3/NX7JZI02dd03Pr\nNbRTt/v784lId2PunveYtC8Ot/6Wbvf36QfnMoEmZiLVS5siHS9qFh0dl/nkubXrRP0hyma3\n8K6YTKrrPj2tXe2aPKw/IPuFSNNHTm6eZqejuP3Rz4+7bYx00LSbnl+17w7I7qvHV+y3kYZn\n7SZN5wdkp90fx9w97zGpOwp7Gq92BxJgPcxE6o+2pu3l5jjj5WNyqChtRzdT9XpKJ/d87mYr\n+x+H9lcK+g2Q8WHd2TmHyxciTR45XVBNsovuFKF0Ys1ttiRsbmj3QB/7DZYv29eJp/tuQ6fJ\ns7qX7p87P0VocvE45r7yQ1J1qS/euudd2lOE8GhlQq9a37RWaM6cGAB5xBSp2/y67Audwyef\naVsJ4IfEFCltIv3g9+4emWwrAfyQmCLVGxKNRu8qWTvOC4BsgooE4AtEAlAAkQAUQCQABRAJ\nQAFEAlAAkQAUQCQABRAJQIGVRfrjMYpSK0QplloFRLJM2nopn+NbBUSyTNp6KZ/jWwVEskza\neimf41sFRLJM2nopn+NbBUSyTNp6KZ/jWwVEskzaeimf41sFRLJM2nopn+NbBUSyTNp6KZ/j\nWwVEskzaeimf41sFRLJM2nopn+NbBUSyTNp6KZ/jWwVEskzaeimf41sFRLJM2nopn+NbBUSy\nTNp6KZ/jWwVEskzaeimf41sFRLJM2nopn+NbBUSyTNp6KZ/jWwVEskzaeimf41sFRLJM2nop\nn+NbBUSyTNp6KZ/jWwVEskzaeimf41sFRLJM2nopn+NbBUSyTNp6KZ/jWwVEskzaeimf41sF\nRLJM2nopn+NbBUSyTNp6KZ/jWwVEskzaeimf41sFRLJM2nopn+NbBUSyTNp6KZ/jWwVEskwK\nXur/XuJyfKuASJZJwUshkhxEskwKXgqR5CCSZVLwUogkB5Esk4KXQiQ5iGSZFLwUIslBJMuk\n4KUQSQ4iWSYFL4VIchDJMil4KUSSg0iWScFLIZIcRLJMCl4KkeQgkmVS8FKIJAeRLJOCl0Ik\nOfoi/YGt8PclKxVTn7T5sESyTApeiiWSHESyTApeCpHkIJJlUvBSiCQHkSyTgpdCJDmIZJkU\nvBQiyUEky6TgpRBJDiJZJgUvhUhyEMkyKXgpRJKDSJZJwUshkhxEskwKXgqR5CCSZVLwUogk\nB5Esk4KXQiQ5iGSZFLwUIslBJMuk4KUQSQ4iWSYFL4VIchDJMil4KUSSg0iWScFLIZIcRLJM\nCl4KkeQgkmVS8FKIJAeRLJOCl0IkOYhkmRS8FCLJQSTLpOClEEkOIlkmBS+FSHIQyTIpeClE\nkoNIlknBSyGSHESyTApeCpHkIJJlUvBSiCQHkSyTgpdCJDmIZJkUvBQiyUEky6TgpRBJDiJZ\nJgUvhUhyEMkyKXgpRJKDSJZJwUshkhxEskwKXgqR5CCSZVLwUogkB5Esk4KXQiQ5iGSZFLwU\nIslBJMuk4KUQSQ4iWSYFL4VIchDJMil4KUSSg0iWScFLIZIcRLJMCl4KkeQgkmVS8FKIJAeR\nLJOCl0IkOYhkmRS8FCLJQSTLpOClEEkOIlkmBS+FSHIQyTIpeClEkoNIlknBSyGSHESyTApe\nCpHkIJJlUvBSiCQHkSyTgpdCJDmIZJkUvBQiyUEky6TgpRBJDiJZJgUvhUhyEMkyKXgpRJKD\nSJZJwUshkhxEskwKXgqR5CCSZVLwUogkB5Esk4KXQiQ5iGSZFLwUIslBJMuk4KUQSQ4iWSYF\n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\nEiKJx4dIWbicsy5LIZJvEMkyCZHE40OkLFzOWZelEMk3iGSZhEji8SFSFi7nrMtSiOQbRLJM\nQiTx+BApC5dz1mUpRPINImUkKc7ZlyCSbxApIwmRECmBSBlJiIRICUTKSEIkREogUkYSIiFS\nApEykhAJkRKIlJGESIiUkIlUdj9r/nX5AxBJCiL5RiRS70v/46vLn4BIUhDJNxKRygqRnoJI\niJT4xqodIt2DSIiU0Bfpz+/h70v0Xuu/l+iXeh0lLaWMrgMqsETKSGKJxBIpgUgZSYiESAlE\nykhCJERKIFJGEiIhUgKRMpIQCZESnNmQkYRIiJTgXLuMJERCpAQiZSQhEiIlECkjCZEQKYFI\nGUmIhEgJRMpIQiRESiBSRhIiIVICkTKSEAmREoiUkYRIiJRApIwkREKkBCJlJCESIiUQKSMJ\nkRApgUgZSYiESAlEykhCJERKIFJGEiIhUgKRMpIQCZESiJSRhEiIlECkjCREQqQEImUkIRIi\nJRApIwmRECmBSBlJiIRICUTKSEIkREogUkYSIiFSApEykoKKtGSUeHyIlAUiSUEk3yBSRhIi\nIVICkTKSEAmREoiUkYRIiJRApIwkREKkBCJlJCESIiUQKSMJkRApgUgZSYiESAlEykhCJERK\nIFJGkqJIrmY/In0fRMpIQiRESiBSRhIiIVICkTKSEAmREoiUkYRIiJRApIwkREKkBCJlJCES\nIiUQKSMJkRApgUgZSYiESAlEykhCJERKIFJGEiIhUgKRMpIQCZESiJSRhEiIlECkjCREQqQE\nImUkIRIiJRApIwmRECmBSBlJiIRICUTKSEIkREogUkYSIiFSApEykhAJkRKIlJGESIiUQKSM\nJERCpAQiZSQhEiIlECkjCZEQKYFIGUmIhEgJRMpIQiRESiBSRhIiIVICkTKSEAmREoiUkYRI\niJRApIwkREKkBCJlJCESIiUQKSMJkRApgUgZSYiESAlEykhCJERKIFJGEiIhUgKRMpIQCZES\niJSRhEiIlECkjCREQqQEImUkIRIiJRApIwmRECmBSBlJiIRICUTKSEIkREogUkYSIiFSApEy\nkhAJkRKIlJGESIiUQKSMJERCpAQiZSQhEiIl9EX683v4+xK9qP9eIi61ZJT6e96iPmnzYYmU\nkcQSiSVSApEykhAJkRKIlJGESIiUQKSMJERCpAQiZSQhEiIlECkjCZEQKYFIGUmIhEgJRMpI\nQiRESiBSRhIiIVICkTKSEAmREoiUkYRIiJT4hSItOPsRSTp+RMoDkaRRiOQbRLKc/YgkHT8i\n5YFI0ihE8g0iWc5+RJKOH5HyQCRpFCL5BpEsZz8iScePSHkgkjQKkXyDSJazH5Gk40ekPBBJ\nGoVIvkEky9mPSNLxI1IeiCSNQiTfIJLl7Eck6fgRKQ9EkkYhkm8QyXL2I5J0/IiUByJJoxDJ\nN4hkOfsRSTp+RMoDkaRRiOQbRLKc/YgkHT8i5YFI0ihE8g0iWc5+RJKOH5HyQCRpFCL5BpEs\nZz8iScePSHkgkjQKkXyDSJazH5Gk40ekPBBJGoVIvkEky9mPSNLxI1IeiCSNQiTfIJLl7Eck\n6fgRKQ9EkkYhkm8QyXL2I5J0/IiUByJJoxDJN4hkOfsRSTp+RMoDkaRRiOQbRLKc/YgkHT8i\n5YFI0ihE8g0iWc5+RJKOH5HyQCRpFCL5BpEsZz8iScePSHkgkjQKkXyDSJazH5Gk40ekPLYu\nkniiuZr9iPR9EOkRRNIf30sQKQtEkkYhkm8Q6RFE0h/fSxApC0SSRiGSbxDpEUTSH99LECkL\nRJJGIZJvEOkRRNIf30sQKQtEkkYhkm8Q6RFE0h/fSxApC0SSRiGSbxDpEUTSH99LECkLRJJG\nIZJvEOkRRNIf30sQKQtEkkYhkm8Q6RFE0h/fSxApC5cirTHRXJVCpO+DSD4mmqtSiPR9EMnH\nRHNVCpG+DyL5mGiuSiHS90EkHxPNVSlE+j6I5GOiuSqFSN8nikivP1NEUiuFSN8HkXxMNFel\nEOn7IJKPieaqFCJ9H0TyMdFclUKk74NIPiaaq1KI9H0QycdEc1UKkb4PIvmYaK5KIdL30RCp\nrPnhUxHJYylE+j4KIpXDj3tefxCI5LEUIn2f7YgUc866LIVI32dlkfQmWtA567IUIn0ffZH+\nABiTP2nVMV0ivWaNk1YXTNp6KZ/jWwVEskzaeimf41sFRLJM2nopn+NbBUSyTNp6KZ/jWwVE\nskzaeimf41uFKGc2LBlFqRWiECmLrX+mGy/lc3yrgEiWSVsv5XN8q4BIlklbL+VzfKuASJZJ\nWy/lc3yrgEiWSVsv5XN8q4BIlklbL+VzfKuASJZJWy/lc3yrgEiWSVsv5XN8q4BIlklbL+Vz\nfKuASJZJWy/lc3yrgEiWSVsv5XN8q4BIlklbL+VzfKuASJZJWy/lc3yrgEiWSVsv5XN8q4BI\n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\n8i+xQjbuRPoVv+Cfza/6VZ8Q+BOJA7EClH73DtTwJZLe/6G6cRDJG65E4iCslN/0K3Mx8CSS\n498GcMcv+pW5GLgSaXYB/4Sdm77wIdL43/BUiCTk1/zKXAw8iDRMCUSCqLgQabjCqQwQFAci\nTcRhbQWC4kkkFIKwuBIJkyAqiASggAeROEoP4XEgEkfpIT4eROIoPYTHhUgcpYfo+BCJ1ToI\njheRAEKDSAAKIBKAAogEoAAiASiASAAKIBKAAogEoAAiASiASNmUh/O1vXI9H56coFE8vsXn\n8WG3+jnF/vzzVz9zTogLECmboiiO7ZVj8USaZyKNN32WRUt5+/mr//SZoAkfQzZFsev/+aPd\nt0XaFcdaoeu+OP381X/6TNCEjyGbongrLvXlpb5s3s7LoV7CnNo7Pst9N9NPxUe9Glcvshpv\ninHJ1V+5tZfp/tas3UdzW/3nUByq66443KaPKIrroX2R4ulSEBaHTyGboqgVqi9rnZpJ/dGt\nrLWTfF+v9DW3ndolTrsat5tN/kMjWCLdX936Fb7mobWVxfuuX30cHlGr2r0IIjmBTyGbeiaX\nzeTeFa00u+K93vbpLOiWS7VHnWinRqnzdHXsWha703u3r2K8/63YV7d9F3Gs3puc9+Zv04T9\nrToXJat2XuBjyKaeysfiWl37pU9tx8dbb8G1vfvULXZ27Z31itp08t/emqXN7jK7f9c88TpE\nFMWt6h0dE7poRPICH0M29VT+qJcS53pJ1M7q/bhe1t1dFOd0ZXpH4vN03DdLsfv7h2vDjy8f\nAavDx5BNPZVv9brYvl5uNLP6WOzOH9fpbH8r++XHc5HaB5WIFBs+hmyaqVxbVLs0zuzbbLa/\nN2tj/YpZeka6dhtuGe+frtpVkx/3CYjkBz6GbJqpfC4OzQ6FbmZfhj0F6e521a3ddfeefOs4\nFft68+h2akwb7z81P/aPIt0nIJIf+BiyaaZyvfgoPtNsf1z/+mxOXeh3arcPG87r2fVnNlyr\nyf3T3d/V5Mc0IUVPsmBFECmbdlKX7Xxurx6LejEzF6l6aw4DXdt7qqrbb91z3jeHb7vDsOn+\n9oDs+6NI4yPG6DMiuQCR3IIhkUAkhzSbWfUq4nHtHiAHkRzSb2Zd1+4BchDJI+ddURzxKBKI\nBKAAIgEogEgACiASgAKIBKAAIgEogEgACiASgAKIBKDA/wOasaTTpI9HzAAAAABJRU5ErkJg\ngg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Market Segment\n",
    "ggplot(hotel_data, aes(x = market_segment, fill = factor(is_canceled))) +\n",
    "  geom_bar(position = \"dodge\", alpha = 0.7) +\n",
    "  labs(\n",
    "    title = \"Market Segment by Cancellation Status\",\n",
    "    x = \"Market Segment\",\n",
    "    y = \"Count\",\n",
    "    fill = \"Cancellation\"\n",
    "  ) +\n",
    "  theme_minimal() +\n",
    "  theme(axis.text.x = element_text(angle = 45, hjust = 1))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "872a79ad-feb5-43cc-b5f5-4ba9551d6692",
   "metadata": {},
   "source": [
    "### **Market Segment by Cancellation Status**\n",
    "\n",
    "This bar chart compares the distribution of cancellations across different market segments.\n",
    "\n",
    "### **Insights:**\n",
    "- The **Online TA (Travel Agents)** segment shows the highest number of bookings, with a significant portion of those being cancelled. This indicates that bookings from online travel agents are more prone to cancellations compared to other segments.\n",
    "- The **Groups** segment also has a high cancellation rate, suggesting a strong relationship between group bookings and cancellations.\n",
    "- **Direct** and **Corporate** bookings have noticeably lower cancellation rates, implying that these segments are more stable and less likely to result in cancellations.\n",
    "- Other segments, such as **Complementary** and **Aviation**, have minimal booking volumes and cancellations, making them less impactful overall.\n",
    "\n",
    "This visualisation highlights how different market segments contribute to booking cancellations, providing actionable insights for targeted interventions in specific segments.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "fb6efc98-e5f8-4236-ba0c-85e68a0b7597",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAP1BMVEUAAABHzNBNTU1N0tZo\naGh8fHyMjIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enr6+vw8PD0mZP6n5n///9TsHeO\nAAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO2di3qi2rJG2WyNJvHS9uH9n/UwQRCQ\n2CSzyE/VHuP7ujVGcBhrhIv2WkUFANkUagGACBASgAGEBGAAIQEYQEgABhASgAGEBGAAIQEY\nQEgABhASgAFrhFS0lIfLDxev/7odntbX8N31vOLzrV7h2+mHitPVt8bLDE+Hsih2x9tjuec1\ngStWDKnm+LPFq/FArhPSpbyvcv8zxenq268XGb51z+Y0u8S3niVsg3VCai6uH0XxnrmOFzd8\nfxUjLvXG6FxfnvfF23fX/CKkJXwUZSoo/XwuhBSEFUNqhvWWu44vb/j+Kkbsio/7tX3x7b27\nvJDK4tpe+SgOhBSEVUOqju0mqf6tX+xP9299lPfrdWj1oUJ3JHU5pKOqc9VN6XQ37v7lrdhV\n/ZXx2h6P0i/x3n53tFDL6bEdurR7oMddvfj5vuCxLHbtqk71Wg+3yQM8QuqXuhvfNQfPbLS2\nyc+nvtY/0y/W1Fw8fjiwUdYN6dKM6+fjgKne2XscPJ0GRwrnx/WXIdVttiP5WTc6WtvgUbol\njt0tw4Va3qaboXJ41LLvr7erKCcP0A96ObAejP/wmQ3X1rIfHjt2z/SLNTUXgx8ObJR1Q2qu\nXppftJd9OyTlZz1nZTo4qHf83m/VrR7Va9rTqm+vZ3U3c7JhtNLrfaOyr5car+3xKN0S/XeH\nC7WUk53O9yax9+bMQ73gubq9peuXdDhzayZ//DTaP+Oles3RMxus7c41ba0+u1Oa7XJfrKm9\nGPxwYKP8QkjHdmZvaetU3Ce5bDYT7S/mQ7qcLPPiGKndltza5IZrezxKt0Qav3bPbbDQk2PD\nrl38/tjtnYvk9tEtN34a3YQPl+qvTp5Zv7aOa3va7q3fTfxyTfOHY7A9fiGk3eDcdfd7+W2X\nbm8zaDYXb+mX9PWx+NchdbuL79O1Tc+Qd2c60uoHCz05dlxO7/vhYw9KSYyexuBoaLxU8/fo\nmQ2PdXpuzVKD7c8Xa2ovBj8c2Chrh1RWg7eB2qFO7Ia/Z9OVa3OMsPuo/hlSPVaX+07aeG3P\nIQ0uHwt1i0zOJ36U/dLz24JiLqSnpcby05MGY8775rdBMf/4g+UGPxzYKOuGdO72g/pv3Ud/\nPw0pvdufpuX93yGlrUu7kza7tqcl7octb8M9u3qva3Dkfk1noov98fP6MqTxqtOf56UWhPS4\ndmt/z6SrX6zp6YcDG2XdkI7pMKU5F9B9634E87Rr13A59JP1IqS0YWl30oZrGz5Kt8RtsGS/\nUMvg9Pe13CeZc3/fwQgPzkmMnkZ/jDRdasGu3eh8yOMYaXZNwz2/Q3vyEDbJqiFdmpf+UBza\nL/b9cN/a0wPtZ8oOo1PWC0I6Fcd2J224tuGjdEs0+0Ln9pZ+oTtleyqi2W869b/4pyEd7mcK\nyunTGEZwmo7/6Jk9hfQ4+/bZrWt+Tbf+lqcfAWyNFUNKH4FJo3xp3nu53Oc1fTrm1Pyir/dj\nju1J4kt3hvfY7woWxXV2pQ27sp3F4dqGj9Itkdb5Wba/6/uF7pzbjwjd6mOTtG1qPuhQr2kS\n0qkoL/3p7+HT6LZIw6Wu3bKjZ/Z8jLQvys/0/I/3t42uT49/be71drvfMvjhwEZZJ6SOdlNz\nGr6T+fZ4a3HmDdny2u8dTX7/Dr883Q8X5tY23Lq9D285TY4xukdvx/Oj++o8Hv32Ddn909Po\nj5H6pXb9aYjpG7JT/+u+W+y9f6bPa2p/IsfH1eaHAxtlxZB2x+6g4po+I/PRfiuNZvfvK4Yf\nETo3n4Lpf6lfdpMjgmFIt/v2ary2x6P0S6SPCJ0nCz3W0pyBPty3YB9J5XwanB25nwWoRY4z\nT6M/a9ct1Rrflx1/RGjqX53eyv7nc3+mT2uqzvXFe7vc44cDG+WXd7ttdvM/7jtp31rbBx8M\ngPXwGNKlO+z5ztr6hQBWwF9Ig8Oe5WsbHz0BWOMvpN3jQGj52nZ8LgBWhbcmAAwgJAADCAnA\nAEICMICQAAwgJAADCAnAAEICMICQAAwIEdIftUAe6AeAkPSgHwBC0oN+AAhJD/oBICQ96AeA\nkPSgHwBC0oN+AAhJD/oBICQ96AeAkPSgHwBC0oN+AAhJD/oBICQ96AeAkPSgHwBC0oN+AAhJ\nD/oBICQ96AeAkPSgHwBC0oN+AAhJD/oBICQ96AeAkPSgHwBC0oN+AAhJD/oBICQ96AeAkPSg\nHwBC0oN+AAhJD/oBICQ96AeAkPSgHwBC0oN+AAhJD/oBICQ96Afgl0P6v1Vw/lKiHwBC0oN+\n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\nrkJggg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Deposit Type\n",
    "ggplot(hotel_data, aes(x = deposit_type, fill = factor(is_canceled))) +\n",
    "  geom_bar(position = \"dodge\", alpha = 0.7) +\n",
    "  labs(\n",
    "    title = \"Deposit Type by Cancellation Status\",\n",
    "    x = \"Deposit Type\",\n",
    "    y = \"Count\",\n",
    "    fill = \"Cancellation\"\n",
    "  ) +\n",
    "  theme_minimal()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a3848615-42b0-4f5c-95d3-7586728c4e1a",
   "metadata": {},
   "source": [
    "### **Deposit Type by Cancellation Status**\n",
    "\n",
    "This bar chart illustrates the relationship between deposit types and booking cancellation rates.\n",
    "\n",
    "### **Insights:**\n",
    "- **No Deposit**: This category accounts for the majority of bookings, with a significant proportion resulting in cancellations. The absence of a deposit may reduce the customer's commitment to completing their stay, increasing the likelihood of cancellations.\n",
    "- **Non-Refundable**: Bookings in this category exhibit higher commitment, as cancellations are comparatively fewer. The financial implication of non-refundable deposits likely discourages cancellations.\n",
    "- **Refundable**: This category shows the lowest volume of bookings and cancellations, suggesting limited usage of refundable deposits in the dataset.\n",
    "\n",
    "The visualisation highlights that bookings requiring non-refundable deposits tend to have lower cancellation rates, whereas \"No Deposit\" bookings are associated with higher cancellation rates.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2ea12b29-cb3e-4f86-a692-e01a4640243d",
   "metadata": {},
   "source": [
    "### **Outlier Detection and Winsorisation**\n",
    "\n",
    "#### **Outlier Detection**\n",
    "To detect outliers in the dataset, the Interquartile Range (IQR) method was applied to numerical variables: `adr`, `lead_time`, `stays_in_week_nights`, and `stays_in_weekend_nights`. Outliers were identified as values falling outside the range defined by:\n",
    "\n",
    "- **Lower Bound**: Q1 - 1.5 * IQR\n",
    "- **Upper Bound**: Q3 + 1.5 * IQR\n",
    "\n",
    "**Summary of Outliers**:\n",
    "- **ADR**: 3,793 outliers (3.18% of the data)\n",
    "- **Lead Time**: 3,005 outliers (2.52% of the data)\n",
    "- **Stays in Week Nights**: 3,354 outliers (2.81% of the data)\n",
    "- **Stays in Weekend Nights**: 265 outliers (0.22% of the data)\n",
    "\n",
    "Outlier detection revealed that `adr` (Average Daily Rate) and `lead_time` had the most significant number of outliers.\n",
    "\n",
    "#### **Winsorisation**\n",
    "Winsorisation was applied to cap outliers at the upper and lower bounds calculated using the IQR method. This ensured that extreme values did not overly influence the analysis while preserving the overall data distribution.\n",
    "\n",
    "**Post-Winsorisation Summary**:\n",
    "- **ADR**: Values capped between -6.38 and 211.06\n",
    "- **Lead Time**: Values capped between 0.0 and 373.0\n",
    "- **Stays in Week Nights**: Values capped between 0.0 and 6.0\n",
    "- **Stays in Weekend Nights**: Values capped between 0.0 and 5.0\n",
    "\n",
    "#### **Impact of Winsorisation**\n",
    "After Winsorisation:\n",
    "- The data range for each variable is reduced, eliminating extreme values.\n",
    "- The statistical summaries (mean, median, quartiles) are less influenced by extreme outliers.\n",
    "\n",
    "This process ensures that the dataset remains robust for further analysis while minimising the influence of extreme values on the results.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "id": "b1a32328-809f-499e-8df0-aee107af9f6b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                    Variable Lower_Bound Upper_Bound Num_Outliers Total_Values\n",
      "25%                      adr     -15.775     211.065         3793       119390\n",
      "25%1               lead_time    -195.000     373.000         3005       119390\n",
      "25%2    stays_in_week_nights      -2.000       6.000         3354       119390\n",
      "25%3 stays_in_weekend_nights      -3.000       5.000          265       119390\n",
      "     Percentage_Outliers\n",
      "25%            3.1769830\n",
      "25%1           2.5169612\n",
      "25%2           2.8092805\n",
      "25%3           0.2219616\n",
      "[1] \"Winsorisation completed for selected variables.\"\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "      adr           lead_time     stays_in_week_nights stays_in_weekend_nights\n",
       " Min.   : -6.38   Min.   :  0.0   Min.   :0.000        Min.   :0.0000         \n",
       " 1st Qu.: 69.29   1st Qu.: 18.0   1st Qu.:1.000        1st Qu.:0.0000         \n",
       " Median : 94.58   Median : 69.0   Median :2.000        Median :1.0000         \n",
       " Mean   :100.66   Mean   :102.2   Mean   :2.406        Mean   :0.9227         \n",
       " 3rd Qu.:126.00   3rd Qu.:160.0   3rd Qu.:3.000        3rd Qu.:2.0000         \n",
       " Max.   :211.06   Max.   :373.0   Max.   :6.000        Max.   :5.0000         "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Define a function to summarise outliers using IQR\n",
    "summarise_outliers <- function(data, variable) {\n",
    "  Q1 <- quantile(data[[variable]], 0.25, na.rm = TRUE)\n",
    "  Q3 <- quantile(data[[variable]], 0.75, na.rm = TRUE)\n",
    "  IQR_value <- Q3 - Q1\n",
    "  lower_bound <- Q1 - 1.5 * IQR_value\n",
    "  upper_bound <- Q3 + 1.5 * IQR_value\n",
    "  \n",
    "  # Count outliers\n",
    "  num_outliers <- sum(data[[variable]] < lower_bound | data[[variable]] > upper_bound, na.rm = TRUE)\n",
    "  total_values <- sum(!is.na(data[[variable]]))\n",
    "  percentage_outliers <- (num_outliers / total_values) * 100\n",
    "  \n",
    "  return(data.frame(\n",
    "    Variable = variable,\n",
    "    Lower_Bound = lower_bound,\n",
    "    Upper_Bound = upper_bound,\n",
    "    Num_Outliers = num_outliers,\n",
    "    Total_Values = total_values,\n",
    "    Percentage_Outliers = percentage_outliers\n",
    "  ))\n",
    "}\n",
    "\n",
    "# Select numerical variables\n",
    "numerical_vars <- c(\"adr\", \"lead_time\", \"stays_in_week_nights\", \"stays_in_weekend_nights\")\n",
    "\n",
    "# Apply the function to each numerical variable\n",
    "outliers_summary <- do.call(rbind, lapply(numerical_vars, function(var) summarise_outliers(hotel_data, var)))\n",
    "\n",
    "# Print the summary of outliers\n",
    "print(outliers_summary)\n",
    "\n",
    "# Define a function for Winsorisation\n",
    "winsorise <- function(data, variable) {\n",
    "  Q1 <- quantile(data[[variable]], 0.25, na.rm = TRUE)\n",
    "  Q3 <- quantile(data[[variable]], 0.75, na.rm = TRUE)\n",
    "  IQR_value <- Q3 - Q1\n",
    "  lower_bound <- Q1 - 1.5 * IQR_value\n",
    "  upper_bound <- Q3 + 1.5 * IQR_value\n",
    "  \n",
    "  # Cap the values\n",
    "  data[[variable]] <- ifelse(data[[variable]] < lower_bound, lower_bound, data[[variable]])\n",
    "  data[[variable]] <- ifelse(data[[variable]] > upper_bound, upper_bound, data[[variable]])\n",
    "  \n",
    "  return(data)\n",
    "}\n",
    "\n",
    "# Variables to Winsorise\n",
    "numerical_vars <- c(\"adr\", \"lead_time\", \"stays_in_week_nights\", \"stays_in_weekend_nights\")\n",
    "\n",
    "# Apply Winsorisation to each variable\n",
    "for (var in numerical_vars) {\n",
    "  hotel_data <- winsorise(hotel_data, var)\n",
    "}\n",
    "\n",
    "# Confirm Winsorisation\n",
    "print(\"Winsorisation completed for selected variables.\")\n",
    "\n",
    "summary(hotel_data[numerical_vars])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "id": "9b9bba0c-0331-4481-a2fd-6fae411142a9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAOVBMVEUAAABHR/lNTU1NTf9o\naGh8fHyMjIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enr6+vw8PD////zv90PAAAACXBI\nWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO2di5aiuhJAGY7Pbluv/P/HXt4kJEESKhBk77VG\nGa0UMeUGBBqyAgAWk23dAYBvAJEABEAkAAEQCUAARAIQAJEABEAkAAEQCUAARAIQAJEABEAk\nAAEQCUAARAIQAJEABEAkAAEQCUAARAIQAJEABEAkAAFWFimzzi/P8m7yfc2yU/k4leSUvZvY\nLGunXmUbe2rPnnSd+BSxc+Z8tHFMyKAcqLApiPQox+3RTl/K6fOHj3pro4d2v9lNcryb9xDJ\n8n+vQTlSYVMQ6ZLdsksf8HSF9TzK0a0oW7VT175eInyxQg3hInlxpMImINK7XH13K/VZy4yq\nQcUpe7VTedc8Xi+/inVEOlRho35lbqdydf7XTD/OWX6vP0m5/XvqF1Ql9+yn+MnudW9qmqfq\n/3/nMsGjeUdpVA500Qz7uR7oetjrFuXDLc9OdZNnuVWeX5vZP6/l5vr1qWRqZqDG9L1tZ9+O\nutZ0yL5rxqPrKpXWZBiU8uHejMNP+fRTjJO1HKqwMUXKm+Gru3erJ6/N5yi3l29q2Lscu/pX\n6Wi8f5v/34pRo1v2W1QbAveyVo+i2ZLuxvvczfMvG2b/UKbbTHW4GjP0VhtvvWmffd+MR9dV\nKq2JKtK9/u/ftX76GSXrOFRhI4p0rxdG9/InZml/Vg3RI28+x1ldXz/q5VG3MaxuATzr5cjz\n3IyB0uiRXesmf+WA3brG7Xjnf8X7Us3zVBflt1qmlXO/lzUtvyGvPlMdrsSovVU6MWraZ983\n1UdTR9dVqnGbYZQf1bc+b55OerKOYxU2okjt5nHd7Vu92CreeS3Snxp2aRctzepdHe9bk+Bd\nvaU1ahZzeT3Ap6Ldkm7H+1G/P6zAm0TdT9dbn6nbYLD1VunEqGmffd9Un0AdXVepxm3Go/yw\nJes4VmHjfieej/u5XUI0i52LPhBFN3b9z0p1vE9Zx7hRtS39qpcf53rqVOgDWD1dyg3g31cf\nXjFscrdPSozaW6UTzqa7pvoE6ugWjlKN2/SjrNTKlqziYIWN+Z34yfux7bp4Nobu3g9q+6tU\nfXSNd7Ut/duusn+bLWljvF/13Oufwn1jJVP9pMSYvdUXbeOmu6b5MMp331GqcRtzlG3JGg5W\n2IjfiZ9yo/X2+9K6bQ5d3g9qXhTj8Vb6qTWqtqWv9Zr8r556FLYSP65tGScGrY8xe/v1Ig3/\nd5Vq3GZCJGMeBytsxO/EydxmHW/jDpvQ3Sa1OtJ5fQyv7afe0bI47TZ8PdX/yByPyPNalXF6\nNd7FjHsbZQsgDapPoI6uq1TjNk6R1GQNRytsxO9Eu/Sony7N0P0YIl3635p/9cir432t9+FU\n+3iMz3jOHu0ulmrq1LcxR6SavDWJuh+W4xBlofQYj/enpvuk+gTm6JqlGrdxiqQmazhaYaOu\nkX763ag/Wf7bHD7Qu9sdy27i38NHrRYXz/oAwzPv94EO3LNTs+ldT92aNoU2Is0e0PoclXK9\nfmt2dT71QVNi1N42s68nnU13TfUJ1NF1lUpv0w+KKZKarOZwhY34nfjptpGrRVNzwOs+Fumu\nHHh4DFu9p6aM7TGz/hfnwF/W7TYtizLshVVHpD0ml7+K8cG3PkSNUXt7UoR3Nd0149F1lUpF\nGRRTJDVZzeEKG/M78VOdgvHXbiz/KqcIDSF5Xuj/ad58nppfqK9bdwqKuXzMhqnxgYJ2MOuz\nRJotYf10kOFJiVF628y+DXQ13TPNJxhG11UqFWVQLCKpySoOV9jdfycAUgCRAARAJHCSKWzd\nl9RhgMAJIs2HAQIQAJEABEAkAAEQCUAAP5HavzDJm8NtrmeAw+ElUutL++B6BjgePiLlBSIB\nWAnYtBMR6X+R3/+GBKsyrzezogRTrR8VWpV4Iv0PlhFY0UAQySeVCWukdBOsCiL5pDJBpHQT\nrAoi+aQyQaR0E6wKIvmkMkGkdBOsCiL5pDJBpHQTrAoi+aQy2erMBkRCpCSj1hFJDkRCpCSj\nEOn7EqwKIvmkMkGkdBOsCiL5pDJBpHQTrAoi+aQyQaR0E6wKIvmkMkGkdBOsCiL5pDJBpHQT\nrAoi+aQy+W6RLFeTmn2FqeOI5HHRLURy8eUi/deiiNS+8u8/RGrJmvHQhskBIrlApLg9WJJg\nLRDJO5UJIsXtwZIEa4FI3qlMECluD5YkWAtE8k5lgkhxe7AkwVogkncqE0SK24MlCdYCkbxT\nmRxFpAFEGoNI3qlMjiLSf+MpROpBJO9UJogUtwdLEqwFInmnMkGkuD1YkmAtEMk7lQkixe3B\n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\nqO/ZOveoF1XddrK6caDP+/xWmlyLZgH9V5fn2n8PlM4osyq7dC/LfWtvnlpnqsOVGGU01U6M\nmtqGL63S6K/2OdWq7KF6EUUytljbLdP6P5f6k7yHUtqbZ22YHvKqPllZ8Oq7ci0fbk3idzVG\n6nS15s3y8a2WlZx13vYG2b/NC/p7ts5d2nXGRflo7eaRNm9lg6JZAtZL67qoeXdjYXOGRZOo\n+1V76zN12xId6mgqnRg1tQ1fWqXRX+1ztlV554ZIiVbPOlIiXMqt09+X0t+SZ3sT61L/6pNU\nmw9qnIr6xRkPyDmrln1162ZZ3qFPZ9lPvbyyJC6KfrhP3QBm5nuWzrWbBd0vTrUU+rzVRtUX\n61UvgM/11MnyAZVZndobrb+Ub3P7JVe704+m0glnU5WUSmMZtCb43XbVMu8EqxdRpFe93X36\nGWb4k3cdrT7js+mXGqcyVa3fcklwyqrlw6OqRqYNwWh6tFliDneX3FoKs3P3fgb3IVv36CpF\ntZn9224+/TYb2cYHNMfL6JPWHWU0lU44m6qkVBrLoKnjd/4gUirViyhSuQK9tj1uZlgug863\n3/aOu9Vyr9tD1MepTFWryK7VGviSva/9alZt1k/nv+Yvba9SmJ3L+/HOh2zqo9mPZjO73odV\n79e6Zv1OJ+0DjsbL7JMao46mr0gplcYSoQ7/OH+q1YsqUlHvf8yHdeewsV8v8n6HT9jEqUxW\nq9wyrvdi/tS/A3PlhqLqdPWD+2qsksbDPblxYHTu0e8VvSjfg+ZRn7c+07zdodVM9XsPxh+w\nmdX09lkXM/7p1H6aGZt2SprNS2MZNGX4jd93qVYvtkjqx2oXu92iNbuds5ceN27nrNZfdi4/\n9rP8UVsNx7U5evGsNmPV6arZW/vdqCTr+9X+XP1xl0L9z6VP91cXRf1o43krnLNHu3+rmjpN\nfMBq8tYk6vYYGGMw9O8xFulT0/FIbF4ay6BVT5fma/3zSaRUqhdRpGbf463ZCfKqX/hRd2ie\n8qZLSpzKZLWqX4b16/Wy5lnv83/mzT7WYbodaVtiZbibHai/5kb6y9K5t7KCOw3bLk2wMe+B\ne/nFuvdTN9sHVGZVbmPdmn3YT30MlBh1NJvZ15POpqmWxjJo1dNPue3XVWUP1YsoUns0rNrH\necqasWlplgqPdttViVOZrlZz/KQ7+ak9CHkbTdfN3vnoTvLGcqv/ATr6XleP487dlZ9cj+E3\nRhNszFsfjPachaz92Tb+gOqs9KOqQ7eVGHU0T0rnXU2TLY05aPVTc6jz/kmkVKoXUaTirz4/\no5b9VC+ffh85JTUAABSqSURBVKpzV/667dR31m4+DHEq09V615X+6TZAXtWZGj/j6abZz2iB\nam4APMqiXf5GpWj7POpcrv5cyPvfGG2wMW91rtkwNT4C1FqizEo/z2d4UmKU0Wxm3wa6mqok\nVRpj0JqnX9cpQt1TUtWLKdIHfsw901vyHm/AHJjESjODzau3nUjlxuj4ZMhtaA4M/p2z8eGS\nw5JMaWaQSvW2Eqnfbh6/OGzxzn9v1tycjbuN7PEJaUdl3dLM7FDy1dtKpJN5vHwrkYpH/XeS\nxqlER2Xd0sxgF9Xb8DcSwPeASAACIBKAAIgEIAAiAQiASAACIBKAAOuK9D/CZcLlmepAjPdW\nn2GUzgwg0i7D5dnNdzepzgwg0i7D5dnNdzepzgzEE+l/sIxolbGXa+X3EGkJSS3V9xwuz26+\nu0l1ZgCRdhkuz26+u0l1ZgCRdhkuz26+u0l1ZgCRdhkuz26+u0l1ZgCRdhkuz26+u0l1ZgCR\ndhkuz26+u0l1ZgCRdhkuz26+u0l1ZgCRdhkuz26+u0l1ZgCRdhkuz26+u0l1ZgCRdhkuz26+\nu0l1ZgCRdhkuz26+u0l1ZuB7RPK+JlRSZmwp0seRS+q7m1RnBr5IpP/+/deASH5k1aD9mxi5\npL67SXVmAJGidAaRPr2HSEtAJKFwURAJkRQQKRREQiQFRAoFkRBJAZFCQSREUji0SHlF+1xM\nPFtBJERSOLZIylPufraDSIikgEiIhEgC4UcWKVefEWm9zgwgUpTOrC1S9xOpKOaINLruV/av\nI9vkumP7w1ICRIrSmS3WSBMCsUZijTSbI4tUg0iIJBGOSIiESALhRxaJTbuNOjOASFE6s4FI\nHjsbRiASIikcWaSPZzRwZgMizeXQIi0CkRBJAZFCQSREUkCkUBAJkRQQKRREQiQFRAoFkRBJ\nAZFCQSREUkCkUBAJkRQQKRREQiQFRAoFkVYWadHhc48+hYUjUiiItK5Iy86M9OhTWDgihYJI\nXy2S7zXxESkURNrgN9KKIrXFnesFIoWCSEmLtPTv4jPPCwl83ZUHPCsTDiKtLZLXFTbC+9T2\njDXSSiBS0muk8D61PUOklUAkRNLiESkMRPruvXaItBKIhEhaPCKFgUgrb9qte2YDIq0FIm3w\nG2kZiCQULgoiIZIWj0hzZ6bzdUfgomMZU0SaS1LhorBGYo2kxSNSGIiESFo8IoWBSIikxSNS\nGIiESFo8IoWBSIikxSNSGIiESFo8IoWBSIikxSNSGIiESFo8IoWBSIikxSNSGIiESFo8IoWB\nSIikxSNSGIiESFo8IoWBSIikxSNSGIiESFo8IoWBSIikxSNSGIiESFo8IoWBSIikxSNSGIiE\nSFo8IoWBSIikxSNSGIiESFo8IoWBSIikxSNSGIiESFo8IoWBSIikxR9bpPCL4CISImnxhxZp\nwa2rEAmRtPgji5QXiIRIVhDJg1YWRFq5MwOINJekwsf4iTS6kjXX/vbFUgFEmktS4SPygjXS\nJp0ZQKS5JBWu03uCSCt3ZgCR5pJUuE7egEiIZAGR/GCNhEhWEMkPREIkK4jkB2c2fKlIS3cx\nZp77ZL9uJ260yoxBpKRFssEaSShcFERCJC0ekcJAJETS4hEpDERCJC0ekcJAJETS4hEpDERC\nJC0ekcJAJETS4hEpDERCJC0ekcJAJETS4hEpDERCJC0ekcJAJETS4hEpDERCJC0ekcJAJETS\n4hEpDERCJC0ekcJAJETS4hEpDERCJC0ekcJAJETS4hEpDERCJC0ekcJAJETS4hEpDERCJC0e\nkebOTOfrrnYRHcuYItJckgoXhTUSayQtHpHCQCRE0uIRKQxEQiQtfpZI2YBHZwpEcoBIDccT\n6b///FZcHYgk+h4iLQGRhMJFQSRE0uIRKQxEQiQtHpHCQKSIIp3uf7Pa+4FIAuHipUGkiCJl\nWZZfH7NSeIBIAuHipdlEpMmdp18k0vv3Un3I8+9rVpqZIJJAuHhpthFpqlpfJFLF45aXBTsJ\nLvwQSShctDSIFHtnw+tWr3vPszLNAZGEwkVLg0hxRXpe6mXe3zm7zEo1A0SSCZctDSLFFOlx\n7jcdfE+mcYNIEuHSpUGkmLu/s+zy7GLc9/H1BJEEwsVLg0gxd3/fno53loBIAuHipUGkmLu/\nZ7X2BZEEwsVLg0gxfyNd6neyk3KwIi+Z87y0T23PEMmBpTSLQKSIIt2an7FZdu1fytuHT8+L\n+9T2DJHsWEqzDESKKFKe1Sd0PZXdQoiURrilNMtApJg7GzL9uQORNg93lSYYRIoo0iW7lj9q\n37fxsfP5Ii295FHmeY2omReV2s+1p1wlc5UmGESKKNIrb07NzfVdrXnBGmnrcFtpFu0HQqSY\ne+3et1OWnW6jPUOIlEC4WZplP1/DRfpwJRlEcpGrD4i0XfiIzUTqamRviUgO8uERkTYNt4FI\nSYp0y411dq48IdJ24ZbSVATvBwrf/7Jgz43vvqSksBRl4oDsuFp53v5k5cyGTcMtpanHvmCN\nlOAaKc9+ZrX3A5EEwl2lYdMuRZHk/gZJBZEEwl2lQaQURbpkMc7/RiSBcEtp2Gu37L2oB2TP\notcPakAkgXBLaRBp2XtRN+3C7tkwDSIJhNtKs9GZDYjUg0hzSVqkRSDS6mc2LAWRhMJFQSRE\n0uIRKQxEiirSz6XcdjjLXmcDkUTChUuDSBFFep/qjfAsE73zASIJhIuXBpEiinTNbtWRv1/B\n6xUXiCQSLl4aRIp8ZkP3Tw5EEggXLw0iIZIWj0hhIFL8Tbub2DWfahBJIFy8NIgUc2dDd2EA\nbjTWkoxI4qVBpKi7v+/1hQFkT11FJJFw4dIgEgdktfjDiCQMIiGSFo9IYSBS1L12nLSqk4xI\nnLQq/h4iafGIFAYiRd+0e53vs7LMBZGEwkVLg0jxfyO9M1GTEEkovJAsDSKtsLOBTbuO1ETi\nzAa59+KL9Ct3I+YKRBIKLyRLg0hr7Gy4zUozE0QSCBcvDSLFFykX9QiRJMLFS4NIHJDV4g8i\n0nJGV7Lm2t++WMYUkebyRSKNYI20ygFZyYOyiCQQLl4aREIkLR6RwkCkmL+RbtVVal5n2QsX\nI5JEuHRpECmiSN2V2rn4SUcyIomXBpGibtrVT2/ObOhIRiTx0iBSRJHOWbXl8Dpnl1lpZoJI\nAuHipUGkiCI9uWbDiGREEi8NIsXc2fC+VRcGkP0rCkQSCZcuDSIlfWbD0qPHvoe+Zx5lX3Aw\nfmWiVWYMIiUtkg3WSELhoiBSVJG4G4VOQiJxNwrh9yKKxN0oxiQjEnejEH8vokjcjWJMMiJx\nNwrx9yIfkOUi+irJiMRF9MXfQyQtHpHCQKT4m3bcjaInGZG4G4X4ezF3NnBmw4hkROJuFOLv\nRd39zd0odJIRibtRiL/HAVkt/jAiCYNIEUU6i/426kAkgXDx0iBSRJHyKKsqRBIIFy8NIkUU\n6Xm+ie5maEAkgXDx0iBS1ONI3NZFJxmRbKXJS+Y82xMiEiKp8ccVKW8fPj07EiISe+3U+IOI\nZAGRlr2HSFr8cUWqQaTkRJLdnlNApKXhE6WZL9LoT3G59rcvtsI4qxXDJkRaGu4uTV6wRkpy\njYRIOohkbYlIDYg0l8RFytUHRPJ7D5G0+COLlA+PiOT9HiJp8QcWKVeeEMn7PUTS4o8rUp63\npy5wZkPQe/FEinBvpPl9ajuBSBZilAaREEmLR6QwEIkzG7T4I4gUA0RCJC0ekcJAJETS4hEp\nDERCJC0ekcJAJETS4hEpDERCJC0ekcJAJETS4hEpDERCJC0+DZHCjvMg0tyGiFQcRKQm+z+/\nGSDS3IaIVCDS8uwxQCRE0uIRKQxEQiQtHpHCQCRE0uIRKQxEWl2k9u8wQ/7oxaNPbc8QaSUQ\naW2R8gUXBvDoU9szRFoJRFpZpHzJFTY8+tT2DJFWApG22bRDpA/9QKRP7QpEKmaLtPRqlr6X\n4px51c8FFwcV7cdnvCqzBERKWqTwPrU9Y420EoiESFo8Is2dmdQ6lGt/9yDSx7yeJ6HuQKQR\nrJFYI2nxkUT6rzMDkSwtEakBkWb0A5HcLRGpgTMbZvQDkdwtEamBc+1m9AOR3C0RqQGRZvQD\nkdwtEakBkWb0A5HcLRGpAZFm9AOR3C0RqQGRZvQDkdwtEakBkWb0A5HcLRGpAZFm9AOR3C0R\nqQGRZvQDkdwtEakBkWb0A5HcLRGpAZFm9AOR3C0RqQGRZvQDkdwtEakBkWb0A5HcLRGpAZFm\n9AOR3C0RqWE1kbxv0oBIa4FIuxLpU7UsDRBpFRAJkbR4RAoDkRBJi0ekMBAJkbR4RAoDkRBJ\ni0ekMBAJkbT4Q4u04HIaiIRIWvyRRVpyoxBEQiQt/sAiLbpRCCIhkhZ/YJEWXXIQkRBJi0ek\nsBuFcO1vXyzjj0gz+vFtIo1gjcQaSYtHJEQKew+RtHhEQqSw9xBJi0ckRAp7D5G0eERCpLD3\nEEmLRyTObAh7D5G0+EOLtABEQiQtHpHCQCRE0uIRKQxEQiQtHpHCQCRE0uIRKQxEQiQtHpHC\nQKSkRRqd5+d9fqPvWY0zZxDej5kNFpzIqROtMmMQKWmRxjNijeRq4HvFP2kQCZG0+L2K5Dsy\n0iASImnxiBQGIiGSFo9IYSASImnxiBQGIiGSFo9IYSASImnxiBQGIiGSFo9IYSASImnxiBQG\nIiGSFo9IYSASImnxiBQGIiGSFo9IYSASImnxiBQGIiGSFo9IYSASImnxiDQTsT/84NrfQxVX\nqh0iTTdgjTS3IWskRJpogEhzGyISIk00QKS5DREJkSYaINLchoiESBMNEGluQ0RCpIkGiDS3\nISIh0kQDRJrbEJEQaaIBIs1tiEiINNEAkeY2RCREmmiASHMbIhIiTTRApLkNEQmRJhog0tyG\niIRIEw0QaW5DREKkiQaINLchIiHSRANEmtsQkRBpogEizW2ISIg00QCR5jb0f2/GbXMQSY1H\npDC+XqTPBUEkNR6RwkAkRNLiESkMREIkLR6RwtiFSLNuEIpI9gaItAr7EKkr2z9EQiR3A0T6\n0PBIIuUl7hkh0lSDyCItKw0ifUawdnn/YJ0RIk01iCvSwtIg0mcQaUY/EMnd8qtFmrWHow39\nFDAfRFLjEekbRJpfmngijS6XnMFnPl1gmtJsxorX/p5e7DUV9MtIuBALS5PUeaJJdWYAkXYZ\n7gkiIRLhAiASIhEuACIhEuECINKeRJo+fF6T1Jdxz+G+LCtNUt/dpDozsO7pXUl9GfccLs9u\nvrtJdWYAkXYZLs9uvrtJdWYAkXYZLs9uvrtJdWYAkXYZLs9uvrtJdWYAkXYZLs9uvrtJdWYA\nkXYZLs9uvrtJdWYAkXYZLs9uvrtJdWZgo79uBvguEAlAAEQCEACRAARAJAABEAlAAEQCEACR\nAARAJAABEAlAgDVF+vxnmulmLz79qfay1LH7Hq8Doc0CZ7hgpMLa5TPnuKJIMy4ckGz2Kne8\n5NH7Hq8DgaMSOsMFI7WkpzNApNn5EcnWcC8iLerpDL5GpGEWsTJHFmlLlizoF851pXah9Zvd\nCJFmZ46ZfOPfSIjkbDf3R9lXiRR3nRExe9z0MzrQP4Q1XbFl2CIneIBnjwwizU7MbyRn03Vb\n+jdcOMBHEynmKmP2Kj4off+wEVuItKaBC+t3MJFifxNZIzmbrtZuyUixaeeRPiaI5Gy6brO1\nRUptZ0Pc4/dxN77qOURMfbQzG4KrtcmZDXPiONcOQABEAhAAkQAEQCQAARAJQABEAhAAkQAE\nQCQAAXYl0s/8Y2pZ6AebbKi/OfzPo2Pfwua1mA5ZvVK7EsmjIuuKFDy3/bJ5LaZDVq/Urr4B\na3xfg74giLTVPOZ1A5Ea7nl2+qkGoR6Gv0uW5bfinZ2q9+qnNkChisyy16WKHHhk1ypB9igf\nL+Xj+5pl13edppuqZ3GrI4ZcXZ76zdc5Oz2a/GVg9XrbMbMXX8g2tVBe6vOUdbgYa57NKrUH\nkW7Vx89+2lF41P/Lbu23/Te79wEKzfDlTaTycl7n64a6fr/+DvRT1cs3rY2Sp3rznTcdqP53\naV5v/mvpxfexUS2Ul7o8dR0uY5E2q9QeRCqXM+WSK28XM6fstyie5eQzOxfVwuxvCFDbVP/O\n7+JHe/2aPauq5FWGa3GvhvxWjegwVS+87qP5d3mqrPdytu9zn//ed8zSi+9jm1qoL3V5bn0d\n1DltVqk9iJRn12ZLqx211+NeD8+lqkQ1Hn3AQLs5MTRqeJR1+ctuZcF/ymXoqX6r3EBQpsrl\nVvYY53r1GavQ8n8vPX89D0svvo9taqG+1OUZ6qDOabNK7UGkR7mKPg11OHcr7Gc5svWWdh8w\n0A/aeCv6XC7K3uUC7pI1W8zdul+dGq30hzx61tGUpRffxza1UF+azLhdpfYgUlmmU5b/taNw\nLX8nPl7tlsWrXWS1AQOuob5m7/xSXPJ28WYrXvlL1PwizCiPpRffyBa1EBYpRqX2IVJRrv27\nUagf3s2SJbvlmRow4Brqcnui3K7/LbcZfrsthophqgz/rQo7ymXfYNDnZPbiO1m/FtpLxdSm\nnTq/VSu1h7rn5Wb0U/ml+Nf/yDxl9Y/cPmDAVbxq4faqap+92z1Cv1WKYaoKP1eV1XMNGasf\nucXZUh5LL76PbWqhv9Q83qsdCMbOBnV+q1ZqDyI1eyvv1Sjk3f+aoXlk9Ve+DxhwFu9a70U9\n1UVv948+1almgz9/j3INGdWdqsPrubUX38c2tdBfUupg7P5W57dqpfYgUlFuNOTVx252n17L\nRd9fO4DN7pg+YMBZvEd9XOLerHNedS5tqg6/1wcL1VxKxuow36+ev+mY2YsvZJta6C+1dbhY\nDshq81uzUrsQyclfcwRvA759E86f7WoxzUqV2rdI5/EhnxWofheUGwfXz5HHYotaTLNqpfYs\nUtb8vNVeUDbaP7/+Ibm9Tfu74NsPGHkStRYfZ51ApfYsUj7aTb2OSMXPKcuueKQTtRbTpFGp\nPYsEkAyIBCAAIgEIgEgAAiASgACIBCAAIgEIgEgAAiASgACIBCAAIgEIgEgAAiASgACIBCAA\nIgEIgEgAAiASgAD/BywPZKRuzGjCAAAAAElFTkSuQmCC",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Define numerical variables for plotting\n",
    "numerical_vars <- c(\"adr\", \"lead_time\", \"stays_in_week_nights\", \"stays_in_weekend_nights\")\n",
    "\n",
    "# Create histograms for the numerical variables\n",
    "plots <- lapply(numerical_vars, function(var) {\n",
    "  ggplot(hotel_data, aes_string(x = var)) +\n",
    "    geom_histogram(bins = 30, fill = \"blue\", color = \"black\", alpha = 0.7) +\n",
    "    labs(title = paste(var, \"After Winsorisation\"), x = var, y = \"Frequency\") +\n",
    "    theme_minimal()\n",
    "})\n",
    "\n",
    "# Arrange plots in a grid\n",
    "library(patchwork)\n",
    "wrap_plots(plots, ncol = 2)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a54c8daa-f0f6-47fc-8d5f-0e9d37684e7e",
   "metadata": {},
   "source": [
    "### **Histograms of Variables After Winsorisation**\n",
    "\n",
    "The histograms above display the distribution of numerical variables after Winsorisation:\n",
    "\n",
    "1. **ADR (Average Daily Rate)**:\n",
    "   - The values are capped between -6.38 and 211.06.\n",
    "   - The distribution remains positively skewed, with most values concentrated around 50 to 150.\n",
    "\n",
    "2. **Lead Time**:\n",
    "   - The range is limited between 0 and 373 days.\n",
    "   - The distribution exhibits a heavy right skew, with most bookings having a lead time of fewer than 100 days.\n",
    "\n",
    "3. **Stays in Week Nights**:\n",
    "   - Values are capped between 0 and 6 nights.\n",
    "   - The data is relatively spread out, with peaks at 1, 2, and 3 nights.\n",
    "\n",
    "4. **Stays in Weekend Nights**:\n",
    "   - The range is capped between 0 and 5 nights.\n",
    "   - The distribution shows that most stays involve 0 or 1 weekend night.\n",
    "\n",
    "#### **Insights**:\n",
    "- Winsorisation successfully mitigates the impact of extreme outliers while preserving the overall structure of the data.\n",
    "- The distributions indicate that the majority of the data lies within expected ranges for each variable, making the dataset more robust for further analysis.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "6a231db0-72e7-4b1b-9658-41306e01b8e0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Boxplots for Winsorised Data\n",
    "boxplots <- lapply(numerical_vars, function(var) {\n",
    "  ggplot(hotel_data, aes(y = .data[[var]])) +\n",
    "    geom_boxplot(fill = \"orange\", alpha = 0.7) +\n",
    "    labs(title = paste(var, \"After Winsorisation\"), y = var) +\n",
    "    theme_minimal()\n",
    "})\n",
    "\n",
    "# Arrange boxplots\n",
    "wrap_plots(boxplots, ncol = 2)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "baf1ec74-7225-4823-84b0-549fb329a74f",
   "metadata": {},
   "source": [
    "### **Boxplots of Variables After Winsorisation**\n",
    "\n",
    "The boxplots above present the distribution of numerical variables after Winsorisation, showing the range, median, and spread of the data:\n",
    "\n",
    "1. **ADR (Average Daily Rate)**:\n",
    "   - The distribution is compact, with a median around 100.\n",
    "   - Most values are within the interquartile range (IQR), and extreme outliers have been capped.\n",
    "\n",
    "2. **Lead Time**:\n",
    "   - The median lead time is approximately 100 days.\n",
    "   - The spread of the data indicates a right-skewed distribution with longer lead times capped.\n",
    "\n",
    "3. **Stays in Week Nights**:\n",
    "   - The median stay is around 2 nights.\n",
    "   - The data is concentrated within a narrow range, with few outliers remaining.\n",
    "\n",
    "4. **Stays in Weekend Nights**:\n",
    "   - The median is close to 1 night.\n",
    "   - The data shows a compact distribution, with most stays involving up to 2 nights.\n",
    "\n",
    "#### **Insights**:\n",
    "- Winsorisation effectively caps outliers, ensuring that the visualisation highlights the central tendency and variability of the data.\n",
    "- The resulting boxplots are more representative of the typical values, which is beneficial for modelling and analysis.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "id": "8337d757-2573-4328-873c-43f19f110452",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nUuhn1KnHalWUHuqqr48QkY//dvasj584JiJq9ZNA6gYV+ltT/LW1WURsU3pwI1x77QgR+Uj/\n0R87JiJq/Y5ulFd3pNB/VZqbm0Vk0cIe3EodGTEi4AcnZOsBvQrBLqGpdd3q6urUU/UgMzMz\nzLeryx1eeeWV06dPi8j+/fslYDUTlZBaWlq2bt3apbqF3vnw4cNFZOPGjS0tLWpLbW2t1Wot\nLy8P3FWnhdPT0/UFWlpann322S7VNjb+PW24iGws29DU1CgiTU2NL5ZvFpHrv2XuXvm7bLNF\nxFNVqb1FPZ4+dWY0zyO6rkgdLiLunRvUuicfNjdWvbZZRL6RFryVpkyYLSKe6s/nDJz6e5t7\n5wYRuS2jBzfC8H9X3/kNasmbxqbGF17cLCLfvj54I3RaPuuu2SLy/ObPW6m9vW1jyQYRmTG9\nB7dSR9RvjA0bNqh1TxobGzdv3iwi2kpMQG/GcicJR78OiLYEid7atWs7uqAhkN8sOrPZrC01\nV11d7XQ6A9+i7T/wnl1+W0LsPPBVOXeCYOhdScBsQv1CdyKydOlS1eOYaLcUm26z+o2TLrw3\nZ/WqtdpTvyVOQpdvb29bcN88vwIP/9j+i+WPRb7qIhKrW4oF3iLMNiXn5w+ebSW/1U8Cy98/\n2/7A3dFqBD9RuqVY4B3AFi3M+d3qs43gt5pJp+UDCzzysP2Xv4hWK8X3lmJWq9XtPudkc3Jy\n1q5d21H5mGG5k0CkjBgj2CUcv8RTX1+/d+9eFXpsNtuECRPCT3WKFuCys7PHjx+vv/BCLT6n\n7fnTTz9VV+Cqa1E7DXahdy4itbW1e/bsUWPHS5cuNZvNWoHAXYUorHi93qqqKq/Xq1bLS8x7\nxTa3NG/dtmXby+5tle4pky1TvmfxW3bOL9h1Wr69vc1TVbnJVbKt0r3w3pzpU2eOvymKc+Fj\nE+z+2tr8yhtbXt3nfnWfe/wYy/gxlswMmzblToIta1f5atm2V0pe3ee2Tcm5LWNmLC+biFKw\na25udm/dsnWbe+s29+1TLLdPscyccc5H7xfsOi0vIptcZWWbSrZucy9amDNj+syoXjYR32DX\n3Ny8ZcsWt9vtdrstFovFYrHZbNqUuzgi2AUiZcQYwQ69VzSCXU8Xm2DXs0Qp2PV08Q12CSth\ngl0CIWXEGHPsAAAADILlTnoqNRAZggFWDwEAAF1Cjx0AAIBB0GPXU9EhBwAA/NBjBwAAYBAE\nOwAAAIMg2AEAABgEwQ4AAMAgCHYAAAAGQbADAAAwCIIdAACAQRDsAAAADIJgBwAAYBAEOwAA\nAIMg2AEAABgEwQ4AAMAgCHYAAAAGQbADAAAwCIIdAACAQRDsAAAADIJgBwAAYBAEOwAAAIMg\n2AEAABgEwQ4AAMAgCHYAAAAGQbADAAAwCIIdAACAQRDsAAAADIJgBwAAYBAEOwAAAIMg2AEA\nABgEwQ4AAMAgCHYAAAAGQbADAAAwCIIdAACAQRDsAAAADIJgBwAAYBAmn88X7zoAAAAgAi6I\ndwWAuDnTHu8aJJ4+/eTkR/GuRILpe6n8qSzelUg8N2SJyRTvSiQY+kmQCBiKBQAAMAiCHQAA\ngEEQ7AAAAAyCYAcAAGAQBDsAAACDINgBAAAYBMEOAADAIAh2AAAABkGwAwAAMAiCHQAAgEEQ\n7AAAAAyCYAcAAGAQBDsAAACDINgBAAAYBMEOAADAIAh2AAAABkGwAwAAMAiCHQAAgEEQ7AAA\nAAyCYAcAAGAQBDsAAACDINgBAAAYBMEOAADAIAh2AAAABkGwAwAAMAiCHQAAgEEQ7AAAAAyC\nYAcAAGAQBDsAAACDINgBAAAYBMEOAADAIAh2AAAABkGwAwAAMAiCHQAAgEEQ7AAAAAyCYAcA\nAGAQBDsAAACDINgBAAAYRMSCXX19faR2df6sVqvVao13Lboj9jWP4BG7tKtOCyfUNwoAgB4h\nMsFuzZo1ubm5EdkVID35G9Xe3lb0h8IZWdZ/6W+akWV9/oWy9va28yz/7ntHf+lY/i/9Tf/S\n31T0h8LmluZonkEstJ9s+/3GwrvutvYbYrrrbuvm8rL2k6FaSVO5w91viCna1YuNU6fbtuwq\nzFthHTPLlLfCuuP1slOnQzWCKj9mlmnMLNPTruWNHx4NLLDj9bLwd2gUbhGDfCXOX1tbW2Fh\nodVqNZlMVqu1rKysra03fAdwDpPP5zv/vaiul4qKivPfVS8X+5aM12cX+rixqdWZ9sjv88Ef\nLC4sKtBvmTLZsrmswxPptHzt2zU3jBvtV6Bo3YZ+/fpHqMrn6NNPTn4UjR2f4wc/Wbz+uXPO\nevIky6Y/dPJxv324Zuwto0Wk/cMI/NYKX99L5U9lkd/tb9YvfumP5zTCuOsszmUdNkLeCuue\nA279lg1PHLz66+nq8Sdtzb9ed59fgXHXWR5Z9Mwl/QdFrtZn3ZAlpvgHqhoR9dMR069ERyLx\n5/S8LF68uKDgnC+VxWLhT3Nvwxw7IGJq364pLCp4eJn96OGG/2nzHT3csDA7Z1ul+933/DtX\nwizf3t52w7jRUyZbVIETTa1POJzbKt3bd1TG8LQi7O3DNeufK1j2kP3w/ob2D32H9zfcOz+n\nssr93vvBW0l58619KtUZw7sNNS/9sWDBVHv56oZ9pb7y1Q1Tb8nZc8Ad2A+n7Hi9bM8B908X\nrttX6ttX6su37xSRF3W58LW3tuw54H7sgVJVYF+p77EHSvcccL/21pYYnVIc7Psi1UFEpKam\npqCgwG63NzQ0+Hy+hoaGnJwct9t99GionywYTxeCXX19fXFxsZoaVVxcrE2B0mZK+c2aqq+v\nLy8vVxsdDkd1dbXafvr0aavVumbNGr/9+23v6HDh0NdEPW5tbVWVcTgcXq83nJ0cP37carVW\nVVX5NYLVavWrTFVVldVqPX78uHpaW1u7Zs0adaza2trAPXdaQK+6utpqterrHOLt4ZxsdXW1\nw+GwWq3aJxK+0PsPnDbnd6yg8+rUCep3FeIb1e2vRGzsP+AVkdlZ84ZelioiQy9LvS87R0QO\n1hzoXvkjdUdE5K6Zs1WBfv36L7j7PhHZ9HxJ9M8mWt466BWRWTPmDU1JFZGhKanZ83NE5ODb\nwVtJRFYXrJx4+41Fa0tjVsloe+d9r4hM/u68SwemisilA1On3ZIjInX1wRth+94SEZk4xqae\nXj/iZhHRd/g9XrhIRG79Tpa2RT1W241opciNIsb5Spw/9St03rx5qampIpKampqTkyMiBw50\n+JMFQ7ogzHK1tbV2u1176nK5XC6Xw+EYNWpU0PJer9fhcOifqu9cRkZGUlJSdnZ2UVHRHXfc\nkZKSopVpamoSkeuvv74bh+tUfn6+qoCqid1uN5vNod+SkpJiNpvz8/MnTZqkbXz33XdVVYcN\nG6bfudlsVudSXl5eVFSkP2ubzTZ37lytcKcF9Kqrq51Op81m02obzttDnGxxcbHL5VKPnU7n\nJ598EroRggqzMf2OdebMmcAy2umoXYX4iCP+lYiGpqZGERk8aLC25dJLh4jIO0cOd6/8vn17\nRWTMDd/RCvTr1/9/2uI93nN+mj5oFJFB+rMePEREjtQFbyUR+dkv8zY9VzH5Vkv24lkxqGEM\nfPRxo4hc0v9sI/zbgCEi8pcPgjeC3xCtGnJ97IGzsWbcdRa/cVhteyTqm4DyRCpELCIG+Uqc\nv8bGRhEZPPjsl2rIkCEicvhwhz9ZMKRwe+zUIP369esrKioqKipWrFghInv27BHdRCj1knqs\nUt2KFSv05Z1Op3o1PT1dAr5tDQ0NInLNNdeEPlz3XH755WVlZRUVFapi+/fvD+ddKtLV1dVp\nW/Lz80VE39elXlUl6+vri4qKbDabOlZZWZnNZnO5XFrfUqcF9LRUp+W2MN/e0cnW1dW5XC6z\n2awadv369YcOHQqv/c4RTmPW19f7HStoR+mpU6f0uwrxjereV+LjjnXjxDv1xAqHiOhnvw1K\nHqRt70b51/buFpGhl6U+/0KZusDiydUre/rFEytWOUSkX9+zZ508cJC2Paj2D32TbzVUQHn2\nJYeIXJR0thHUTDi1PYSSbSvVtRGPPVCq75+7c+JCEdnx+tnJgOqx2m5EPhFDfSXOn/ot2r+/\n7vfJoEHa9viK5e9hhBvs1F/lU6dOqadpaWkVFRVLlizpqLz665uWlqaV1786bNiwzMzM/Pz8\n06dPaxvz8/MzMzMHDBjQjcN1asKECUlJSSKiOng8Hk8471Ip880331RP1WBrdna21+ttaWlR\nG9WrqmRNTY2ITJs2TR0rKSlp2rRp2vZwCmgCU134b+/oZI8cOSIiCxYsSE5OFpHk5OQ5c+aE\n0w5+wmlMVaU5c+aEPlb4n0v3vhIDOxbWqcbbtkq3iPzSsXx+9iz1+GF73pIH7gt9pS0M7JrL\nv/ngXOe46yzLV8/Sx7hx11ny7Tu37y1Rl82OmWXavrck377TuD126El69O/hHifcYJeXlyci\nubm55eXlLS0tWqwJrbW1tb6+3uv1FhcX+700btw4EdF6jFRmUuOw3T5cCPox3/ANGDBAdYmp\nAPr++++LyNixY+WLVdZaW1tdLpfNZlN5VI0qZmVlWb+QlZWlbQ+ngFJcXKx6NydMmKDfHubb\nOzpZVUz/qn5AOXzhNKY6ln7/QY8V/ucS8a9Ez9Lw3on/afP9T5vvuaLSnn7xBM7H9SNunj3l\nR85lFT9duG756ln7D+/SXjp67M/60dg9B9zHT7wfjzoCiKdw59hlZGT06dOnqqqqqKhI/c02\nm81Lly5VgSYo/RSrQFdddZWIVFVVqelZKtipfq/uHS5Kxo4d63K5Dh06ZDabq6urMzMzk5OT\nMzMz9+/fbzab1dVG3/72tyN7UDWI6fV6t2zZcj79lEaSOF+J2PvBg3nacO1ttyuZsHQAACAA\nSURBVE4WkU3Pl8ycnhXyTTC4iWNsjxcuKnt5lbqQYsfrZU8V5+nHZ3e8XrZ89aykPn31I7YA\nDC/cYCciZrPZbDbX19c3NTUdOnTI4/GUlJR0FDuqqqpcLldmZua4ceP69u178cUXz58/X18g\nKSkpLy/P6XTW19cPGzZs//792jhsNw4XPaqfaf/+/SkpKV6vV/UbjRw50ul03nPPPWp62dCh\nQ/Vv6XTRoE4LrF279itf+YrX6/V4PBMnTvQbyO61ixIlyFcihIeX2Z9Y4Whvb9NymBozfXiZ\nvXvlVQH9JDz1WA3L9lDLHrKvWOVoP9mmTbNTqxMveyh4KxnSgqn2Z19ynDrdpk2zU4sJL5ga\nbiOoN2pddMtXz5KAq2KXr561fW8Jwa6XsNvtDoejra1Nm2anVifWX3aG3qDL69gNGzYsIyND\n/TUNMSNKXWSwZMmSUaNGdTTeN3z4cBHZu3dvS0uLx+PRxmG7cbioysvL83g86lIPleHUf/fs\n2ePxeJYuXapmiYlIdna2hLwXVqcFlJSUlOTkZPXT+Pzzz3f17eEfXVuiJeICjxWp1UkS4SvR\nkWuHjxCRE80ntC3HGo6JyNChqd0rrwqoy0gVlfwWZudEtuaxNDxthIg06866ofGYiKglXXqJ\nKy4bISKftJ1thA9bjomIWv0kkLqfhP5OEp+0NYvI1Fs6+SYEvVQWhjRixAgROXFC9/vk2DER\nUaufoPcIN9iphdO060PVg8zMTH2Z1tZWv3ep3NDS0rJ169bAfaoxTZfL9fTTT4tuHDbMw8XM\nlVdeKV9EVXUluYqqasvVV1+tlVRRdePGjdoMsNraWqvVWl5eHmYBPbPZnJmZqa0U09W3B1IX\nI2tvb2lpefbZZ7vQEF0ReKyNGzd2dSf6b1RCfSU6knbNcBEpKdugoljTB40vbdksItdfF3xt\nnU7Lq4VOin5fqF0toWbXZd72vSifShSlXT1cREo3b2g63igiTccby7duFpFvje5kBSIjuTxl\nuIhUvrZBrXvy0ceNu/60WUSuvTJ4I9w2draI7Nz3+eSWU6fbPHs2iMjEMTPVlgfnOkVk/+Fd\nWvhTl1ao7egN1B+IDRs2qHVPGhsbN2/eLCKdru0Fgwl3KHbixIkej2fZsmX6jXfccYd6kJmZ\n6fF45s+fbzabVT+TGmZdvHix336OHz+uny8/efJkj8fj9Xr9xmFDHy7GUlJS1AlmZmZqnXPq\nogqz2azvj0xLS1Pb9Ut7mM3m8ePHh1nAz8yZMz0ej8PhKCsrS0pK6urb/QwbNkytIKi9fenS\npWEu19xVw4YNC6xq+AK/UQn1lejIqG+kT5lseWKFQ7++ycLsnFHfSNee/kt/k4ioteg6LT/0\nstTnikrnZ8/yK/C9zB58qeM3RqRPnmRZscqhX9/k3vk53xhxtpXUDWFjfOuwWLr66+njrrM8\n+5JDv77J1FtytFuEiciYWSYR2VfqE5Fbv5O1fW/J44WL9AsOL5hqVxPsRCRz3LwD7+xe6pio\nP8q46yyZ4+ZF9USQONLT0y0Wi8Ph0K9vkpOTo/43G71HuMEuLS3tySef3Lt3r7oewmazTZgw\nQYto6u+rflwsIyPjzJkzqk9LFf70009zc3PffPNNfbDTllL0G4cNfbjYu/766z0ez8iRI7Ut\nqn8xIyPDr+TcuXNHjRqlRmlFZOnSpWazWZ9ZOy2gpwZkHQ5HVVXVnXfe2dW3B7rzzju/9rWv\nVVVVqfmCGRkZ6jOKhrlz56amplZXV6tVlCdMmBAY9DsS+I1KtK9ER9asfmbry1ternRvq3RP\nmWz53mTLjKm28yk/c3pWaurlG0v+UFhUMGWy5a6Zsw1w2UT+yme2bd9SWeWurHJPnmSZPMky\nzRqqlQzpkUXPvPbWltfecu854B53neW737JoN5YIyrmsYsfrZdv3luw54J56S87EMTO1VCci\nl/Qf9Ivvb3jjYKUqMO46y21jZ984erJ+qTwY3jPPPLNlyxa32+12uy0Wi8Visdl63U8WTL64\n3rW4vr4+NzdXRJ577rnecHljL2e1WkPcZiP2zrTHuwaJp08/OflRvCuRYPpeKn8q67xYb3ND\nlphM8a5Egonrn1Pgc12+eCKy9u7dKyIOh4NUZzBqmT1tStzp06fVRECm8QIAED1dWO4ksrSb\nu9tsti7d7jPwLvJ+wl8NJIK7MoDItoYaQfabEmc2mwMHrwEAiIZdu3a98soratKh3W6fMmXK\nmDFj4l2pqItbj526Tic7OztxBuYQQWaz2eFwaNM7MjMz8/LyWE4JABADzc3NVqt14sSJ2qUk\nDofjxhtvXL58eXwrFgNxnmMHxBFz7AIxxy4Qc+yCYo5dIP6cJg6r1ep2u9etW3fHHXcMGjRI\nRGpqapYvX+52u3fu3HnzzTd3uoeeK85z7AAAACJo3759brfb6XQuXLhQpToRSU9Pf+yxx0Rk\n1apVWsnm5ubCwkKTyWQymQoLC5ubm7WX1MbGxkar1ar6+QK3JCaCHQAAMA51XabF4r/eZ3p6\nekNDgzZfvK2t7b777lu06PO1IRctWnTfffep+7BpCgsL3W63/rK/wC2JhmAHAACMQ93VXX87\nK40+kFVWVrrdbrvd7vP5fD6f3W53u92VlZX68iNGjPD5fAsXLgyxJdEQ7AAAQK+ze/duEXng\ngQfUU/VAbdQEzsZL/Pl5XDyB3ouLJwJx8UQgLp4IiosnAvHnNEGYTCYR6TTeBBbTbwn9aiKj\nxw4AABiH0+kUkaNHjwZ9taPthkGwAwAAxjF27FgRcbvdftuPHj1qtVq1wdacnBwR0a6EVQ/U\nxh6NYAcAAIxjzJgxFoslLy9Pv4JJTU1NXl6e2+2+7bbb1JabbrpJRFavXq2eqgdqY4/GHDv0\nXsyxC8Qcu0DMsQuKOXaB+HOaOJqbmx999NGCggK/7aWlpVlZWepxW1vbvHnz9B17Fotlw4YN\n/fv3l548x45gh96LYBeIYBeIYBcUwS4Qf04TTU1NjdfrdbvdalmTwHvFNjc3b9myRS1lp79N\nhRDsgJ6IYBeIYBeIYBcUwS4Qf06RCJhjBwAAYBAEOwAAAIMg2AEAABgEwQ4AAMAgCHYAAAAG\ncUG8KwAAAGAEJlOoxUZMuivJo7cmCcEOAADgfJlCrgDkl/lCR8DzwVAsAADAeYleUOsqgh0A\nAMB5SZBUJwzFAgAAo+re/VH8QprJ1JNuK0KwAwAABjG4zzlPB301bjuJF4IdAAAwiP59Oi9j\nbAQ7AABgEP/ao3rXooFgBwAADOJfLox3DeKNYAcAAAyiz1fiXYN4I9gBAACD+EqC5RptfTuf\nz8edJwAAALogvsEuMK7pt8RmrTuCHQAAMIgLe32u6fUNAAAAjOIrXDwR7woAAABExoVfjncN\n4o1gBwAADIKh2F7fAOjF+vSLdw0SUt9L412DxHNDVrxrkJB60N0z0XtcQI9dvCsAxM3Jj+Jd\ng8TT91L5oCbelUgwl6V38z7ixubzyZ/K4l2JBHNDlvzzH/GuROK5ILa3grig1+eaXt8AAADA\nKOixI9gBAACDYI5dr28AAABgFPTYEewAAIBBfLnX55pe3wAAAMAo6LEj2AEAAIP4MsEu3hUA\nAACIDIIdwQ4AABgE69j1+gYAAABGQY8dwQ4AABgEwY5gBwAADIKh2F7fAAAAwCi+RI9dvCsA\nAAAQGQzFEuwAAIBBMBTb6xsAAAAYBUOxBDsAAGAQDMUS7AAAgEEQ7Ah2AADAIBiKJdgBAACD\niFePnclk0h77fL5Oy4Qodp4IdgAAwCDiEuxMJpM+pfk91YtSmNMj2AEAAINgKJZgBwAADOLL\niZprQnTjRVaiNgAAAEAX3fGTc55udXZnJ7fnRWAngcKZh3f+CHYAAMAgXv6vc552b2Q2IjsJ\nFOY8vPNEsAMAAAaRsOvYxWYcVgh2AADAML7U63NNr28AAABgFAnbY8fFEwAAAF3TI5Y7iWrI\nI9gBAACDiEuw8/l8HV3xqmU4vzLRQ7ADAAAGEa8eu3BuNcFQLAAAQBck7By7mCHYAQAAg+Cq\n2F7fAAAAwCh6xMUTUUWwAwAABkGwI9gBAACDYI4dwQ4AABgEwY5gBwAADIKhWIIdAAAwCK6K\n7fUNAAAAjIIeuy/FuwLhqq+vj3cVzrJarVarNd616I6o1rxLO++0cEJ94t3WfrLt9xsL77rb\n2m+I6a67rZvLy9pPtoXzxsod7n5DYnHzmbg4eaqt5MXC7Fzr0NGm7Fxrhafs5KlQzXLyVFuF\np0wrX/Ji4cefNMestgnDLWLYr4Tm1Om2LbsK81ZYx8wy5a2w7ni97NTpUN8NVX7MLNOYWaan\nXcsbPzwaWGDH62Xh7zAxtbe3rS8qnDrdemEf09Tp1k2usvb2UGfRaXlV4MI+pgv7mB79xfKj\n7/q3W8/1pS9H5V8PEsXb0EbQmjVrPB5PRUVFvCvyOZVIEqc+4Ytqzbu089CFY/OJn/woqrsX\nEfnBTxavf65Av2XyJMumP3RyXm8frhl7y2gRaf8w1j+efS+VD2qifpSf/sfi4ufPaZZbb7IU\nPRm8WU6easv92bwdu91+5X/76DMDLxkUxVp+4bJ0ickNHkOrERktIiKJ8hvb55M/lUV+t79Z\nv/ilP57z3Rh3ncW5rMMfmbwV1j0HzvlubHji4NVfT1ePP2lr/vW6+/wKjLvO8siiZy7pH/kv\nzw1Z8s9/RHyvIiLff2DxusJzmuX2KZaXXuiwWTotP3W6deu2c5rlLe/BUaPSI1Tfc1zw1Wjs\ntUPv743Kbq8cG5XdRkPP6LHzeDzxrsI5KioqemKqi7YINkuifeLd8/bhmvXPFSx7yH54f0P7\nh77D+xvunZ9TWeV+7/1Q/3P85lv7VKozqneO1hQ/X/DgQvu+yoamg759lQ1zZ+bs2O3+S0Pw\n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\nAUCzDCupWaSenh65cEQM2fGxq6tr6tSphDkLItgBYygajba1tdlstpqamu7u7lgsdvPNN994\n440Wn9Qsm2XXrl27du0SQlxzzTWJy0Ssk+0OHjyYuPz5Bz/4QU1NzRNPPDF79uyhLWCGmL6+\nPo/H89WvfjXd1R8rNMuwkppFikQidru9qqoqacfHzz777Pvf/35lZaVFFmDhr5wBMDaOHz/e\n0NCwY8cO+fTdd99taGh4/PHHjx8//rvf/a6hoUE+XblyZUNDw9q1a9Nb21R6/PHH165dOzg4\n+P777z/++OMNDQ3vvvtuUhnZXL/+9a/TUsOUefXVV+X/+++//35DQ8Pg4KD5UuIvTOJbEsuo\nimYZltksSVf27NkjP1OJha3w8cGw6LEDxko4HJ4xY4Y52eXYsWM7d+6MxWKxWOzrX//6fffd\nV15enpmZeemllz7wwANf+9rX0lvb1DAMQ9f11atXP/HEEzabLTs7O2malFkyNzd3zpw511xz\nTRprmwLmtoXxeDwWi7W0tJgvna3n0mazpamyqUOzDGvoJpfs+IihCHbAmDAM45//+Z8XLFhQ\nWFgon3Z2di5evPiee+6R30k33nijnByj8KTmpFlBhmGsWLHiww8/LCoqmj17trw4dAq8+XaL\nzIKX39YbNmwQQsydOzcxoFhnVHoommVYSdmOHR8xFMEOGBN//vOfN27ceMMNN8g5Li+++OIl\nl1zS1NSUm5srv65isVhOTo6MfaqSs4JcLpecSii/m9esWbN///7EdcEjZDuLkN/Wu3btuuSS\nS5Jmx5shpqKiQtVlAWdDswwrKduZTREOh3t6enp6esLh8O23326dHR+RhGAHjAmbzZafn+9w\nOKZOnapp2urVq7/zne/ILii5s0lmZmZ2drbaU5unT58+Z86cadOm6bqeeKjGrl27bDZb4ld1\nYrabM2eOFfrq5LrFGTNmnPMoOYuMSks0y2gMzXZz584tLy+/+uqra2pqFi5cSF+dlRHsgLFS\nVlYmD69csmSJx+O59tpr5fWBgYHLLrvs3nvvVTvVSVlZWYZhBAKBQ4cOyS/ms31Vy2xXUVFh\nka/qDz/8MBAIjPKYYCskXYlmGWroiWFiSLNYbcdHjIBgB4yteDze29t7xx13yFFXXdeXLVt2\n//33y9FJJWma9umnn5rfLuYIrPnFPEK2s8KwmjwbNxAIyMejDDHKo1mGFY1Gn3nmmZ6enuuv\n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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Compute correlation matrix for numerical variables\n",
    "cor_matrix <- cor(hotel_data %>% select(adr, lead_time, stays_in_week_nights, stays_in_weekend_nights, is_canceled))\n",
    "\n",
    "# Load ggcorrplot for visualisation\n",
    "library(ggcorrplot)\n",
    "\n",
    "# Plot correlation heatmap\n",
    "ggcorrplot(cor_matrix, lab = TRUE, outline.color = \"white\", colors = c(\"red\", \"white\", \"blue\")) +\n",
    "  labs(title = \"Correlation Heatmap\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ce5e815d-27b8-4e3a-8906-7fb568c99506",
   "metadata": {},
   "source": [
    "### **Correlation Heatmap After Winsorisation**\n",
    "\n",
    "The heatmap above displays the correlation matrix for the numerical variables in the dataset after Winsorisation. Key observations include:\n",
    "\n",
    "- **`lead_time` and `is_canceled`**: A moderately positive correlation of **0.3**, suggesting that longer lead times are associated with a higher likelihood of cancellations.\n",
    "- **`stays_in_week_nights` and `stays_in_weekend_nights`**: A positive correlation of **0.38**, indicating that guests who stay longer during the week also tend to have longer weekend stays.\n",
    "- **`adr` (Average Daily Rate)**: Shows weak correlations with all other variables, indicating minimal influence of daily rate on cancellation or stay characteristics.\n",
    "- **`is_canceled` and `stays_in_week_nights` / `stays_in_weekend_nights`**: Weak correlations, suggesting the duration of stay has limited direct impact on cancellations.\n",
    "\n",
    "#### **Insights**:\n",
    "- The correlation matrix highlights key relationships between variables, particularly between `lead_time` and `is_canceled`, which could be an important predictor for cancellation likelihood.\n",
    "- The weak correlations for most variables with `is_canceled` indicate the need for more complex models or interactions to understand cancellations better.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1cea8a3e-69a0-492f-bb50-452227ecd82c",
   "metadata": {},
   "source": [
    "### **Feature Selection and Data Preprocessing**\n",
    "\n",
    "#### **Feature Selection**:\n",
    "- The dataset has been reduced to include only the relevant features for predicting cancellations:\n",
    "  - `is_canceled`: The target variable.\n",
    "  - Predictors include:\n",
    "    - Numerical features: `lead_time`, `adr` (Average Daily Rate), `stays_in_week_nights`, and `stays_in_weekend_nights`.\n",
    "    - Categorical features: `hotel`, `market_segment`, `deposit_type`, and `customer_type`.\n",
    "\n",
    "#### **Encoding Categorical Variables**:\n",
    "- Categorical variables (`hotel`, `market_segment`, `deposit_type`, `customer_type`) were encoded using **one-hot encoding**, creating binary columns for each category. This ensures compatibility with machine learning models.\n",
    "\n",
    "#### **Train-Test Split**:\n",
    "- The dataset was split into:\n",
    "  - **Training Set**: 70% of the data (**83,573 rows**).\n",
    "  - **Testing Set**: 30% of the data (**35,817 rows**).\n",
    "\n",
    "#### **Normalisation**:\n",
    "- Numerical features (`lead_time`, `adr`, `stays_in_week_nights`, `stays_in_weekend_nights`) were **normalised** using z-score scaling to standardise the feature range. This step is particularly important for models sensitive to feature scaling, such as logistic regression.\n",
    "\n",
    "#### **Importance of Preprocessing**:\n",
    "- These steps prepare the dataset for modelling by ensuring:\n",
    "  - Balanced and representative data for training and testing.\n",
    "  - Consistency in feature scales for numerical predictors.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "id": "c900bc40-2b4b-42c0-aaf2-d09cf4a40bf2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training Data Dimensions: 83573 18 \n",
      "Testing Data Dimensions: 35817 18 \n"
     ]
    }
   ],
   "source": [
    "# Select features\n",
    "selected_features <- hotel_data %>%\n",
    "  select(is_canceled, lead_time, adr, stays_in_week_nights, stays_in_weekend_nights, \n",
    "         hotel, market_segment, deposit_type, customer_type)\n",
    "\n",
    "# Encode categorical variables using one-hot encoding\n",
    "dummy_vars <- dummyVars(\"~ .\", data = selected_features, fullRank = TRUE)\n",
    "encoded_data <- data.frame(predict(dummy_vars, newdata = selected_features))\n",
    "\n",
    "# Split into training and testing subsets\n",
    "set.seed(123)  # For reproducibility\n",
    "train_index <- createDataPartition(encoded_data$is_canceled, p = 0.7, list = FALSE)\n",
    "train_data <- encoded_data[train_index, ]\n",
    "test_data <- encoded_data[-train_index, ]\n",
    "\n",
    "# Normalise numerical variables (for Logistic Regression)\n",
    "num_vars <- c(\"lead_time\", \"adr\", \"stays_in_week_nights\", \"stays_in_weekend_nights\")\n",
    "preprocess <- preProcess(train_data[, num_vars], method = c(\"center\", \"scale\"))\n",
    "train_data[, num_vars] <- predict(preprocess, train_data[, num_vars])\n",
    "test_data[, num_vars] <- predict(preprocess, test_data[, num_vars])\n",
    "\n",
    "# Confirm the structure of training and testing data\n",
    "cat(\"Training Data Dimensions:\", dim(train_data), \"\\n\")\n",
    "cat(\"Testing Data Dimensions:\", dim(test_data), \"\\n\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "id": "41416621-cd5d-4682-ab24-1ed6f1d31177",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\n",
       "Call:\n",
       "glm(formula = is_canceled ~ ., family = binomial, data = train_data)\n",
       "\n",
       "Coefficients: (1 not defined because of singularities)\n",
       "                              Estimate Std. Error z value Pr(>|z|)    \n",
       "(Intercept)                  -1.478764   0.200560  -7.373 1.67e-13 ***\n",
       "lead_time                     0.410698   0.010349  39.684  < 2e-16 ***\n",
       "adr                           0.123881   0.009218  13.440  < 2e-16 ***\n",
       "stays_in_week_nights          0.076243   0.009578   7.960 1.72e-15 ***\n",
       "stays_in_weekend_nights       0.064280   0.009239   6.958 3.46e-12 ***\n",
       "hotelResort.Hotel            -0.271546   0.019315 -14.059  < 2e-16 ***\n",
       "market_segmentComplementary  -0.066100   0.232504  -0.284  0.77618    \n",
       "market_segmentCorporate      -0.169554   0.200171  -0.847  0.39697    \n",
       "market_segmentDirect         -0.490157   0.195961  -2.501  0.01237 *  \n",
       "market_segmentGroups          0.433559   0.197457   2.196  0.02811 *  \n",
       "market_segmentOffline.TA.TO  -0.393231   0.195465  -2.012  0.04424 *  \n",
       "market_segmentOnline.TA       0.510557   0.193860   2.634  0.00845 ** \n",
       "market_segmentUndefined             NA         NA      NA       NA    \n",
       "deposit_typeNon.Refund        5.847317   0.130783  44.710  < 2e-16 ***\n",
       "deposit_typeRefundable       -0.010815   0.217401  -0.050  0.96033    \n",
       "customer_typeGroup           -0.220390   0.168583  -1.307  0.19111    \n",
       "customer_typeTransient        0.552017   0.052911  10.433  < 2e-16 ***\n",
       "customer_typeTransient.Party  0.042291   0.057109   0.741  0.45898    \n",
       "---\n",
       "Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n",
       "\n",
       "(Dispersion parameter for binomial family taken to be 1)\n",
       "\n",
       "    Null deviance: 110085  on 83572  degrees of freedom\n",
       "Residual deviance:  81867  on 83556  degrees of freedom\n",
       "AIC: 81901\n",
       "\n",
       "Number of Fisher Scoring iterations: 7\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Warning message in predict.lm(object, newdata, se.fit, scale = 1, type = if (type == :\n",
      "\"prediction from rank-deficient fit; attr(*, \"non-estim\") has doubtful cases\"\n"
     ]
    }
   ],
   "source": [
    "# Train a logistic regression model\n",
    "logistic_model <- glm(\n",
    "  is_canceled ~ ., \n",
    "  data = train_data, \n",
    "  family = binomial\n",
    ")\n",
    "\n",
    "# Display model summary\n",
    "summary(logistic_model)\n",
    "\n",
    "\n",
    "# Predict probabilities on the testing dataset\n",
    "test_data$predicted_prob <- predict(logistic_model, newdata = test_data, type = \"response\")\n",
    "\n",
    "# Convert probabilities to binary predictions (threshold = 0.5)\n",
    "test_data$predicted_class <- ifelse(test_data$predicted_prob > 0.5, 1, 0)\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e81da8d7-562c-4bba-b041-6ce28b9e0290",
   "metadata": {},
   "source": [
    "### Logistic Regression Model Summary\n",
    "\n",
    "The logistic regression model tries to predict if a booking will be cancelled (`is_canceled`) based on several features, such as lead time, average daily rate (ADR), and market segment. It assigns a weight (called a \"coefficient\") to each feature to understand how important it is for predicting cancellations.\n",
    "\n",
    "Key points from the model:\n",
    "- **Positive coefficients** (e.g., `lead_time` and `adr`) mean that as these values increase, the likelihood of a cancellation increases.\n",
    "- **Negative coefficients** (e.g., `hotelResort.Hotel`) mean that these features reduce the likelihood of a cancellation.\n",
    "- Some categories, like `market_segmentComplementary`, are less significant in predicting cancellations because their p-values are large (e.g., 0.776), which means they don't have a strong relationship with cancellations.\n",
    "\n",
    "### Model Fit and Performance\n",
    "- The model successfully found the best fit for the data (this is called \"convergence\").\n",
    "- The **AIC (Akaike Information Criterion)** value is 81901, which helps measure how well the model fits the data. A lower AIC means a better fit.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "id": "8deee3bc-78c1-4132-8150-3defed5de286",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Confusion Matrix and Statistics\n",
      "\n",
      "          Reference\n",
      "Prediction     0     1\n",
      "         0 21625  7919\n",
      "         1   837  5436\n",
      "                                       \n",
      "               Accuracy : 0.7555       \n",
      "                 95% CI : (0.751, 0.76)\n",
      "    No Information Rate : 0.6271       \n",
      "    P-Value [Acc > NIR] : < 2.2e-16    \n",
      "                                       \n",
      "                  Kappa : 0.4143       \n",
      "                                       \n",
      " Mcnemar's Test P-Value : < 2.2e-16    \n",
      "                                       \n",
      "            Sensitivity : 0.9627       \n",
      "            Specificity : 0.4070       \n",
      "         Pos Pred Value : 0.7320       \n",
      "         Neg Pred Value : 0.8666       \n",
      "             Prevalence : 0.6271       \n",
      "         Detection Rate : 0.6038       \n",
      "   Detection Prevalence : 0.8249       \n",
      "      Balanced Accuracy : 0.6849       \n",
      "                                       \n",
      "       'Positive' Class : 0            \n",
      "                                       \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Setting levels: control = 0, case = 1\n",
      "\n",
      "Setting direction: controls < cases\n",
      "\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AUC: 0.7893547 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n0JDsz4JTdBQcQvIQHYUnxJBiX7OjowCFGZL9OXCIjkJESL6hoyARkmfoKEwBhhT1JhIdBSrI\nkOzPgCt0FCpC8gkdBSu8kCJes6OjcIUYkv3x3aCjgBGSN+goZMGFFO2aHR0FLcCQ7A/vAh2F\njZD8QEeBCy2kSNfs6Ch04YVkf3R9dBQ8QvIAHYWPkNyjowgQknN0FIPAQopwXwMdRSG4kOwP\nrouO4kBIbtFRJAjJKTqKBSG5REfRICSH6CgehOQOHUWEkJyho5gQkit0FBVCcoSO4kJIbtBR\nZAjJCTqKDSG5QEfRISQH6Cg+hKSPjiJESOroKEaEpI2OokRIyugoToSki44iRUiq6ChWhKSJ\njqJFSIroKF6EpIeOIkZIaugoZoSkhY6iRkhK6ChuhKSDjiJHSCroKHaEpIGOokdICugofoRk\nHx0lgJCso6MUEJJtdJQEQrKMjtJASHbRUSIIySo6SgUh2URHySAki+goHYRkDx0lhJCsoaOU\nEJItdJQUQrKEjtJCSHbQUWIIyQo6Sg0h2UBHySEkC+goPYQkj44SREji6ChFhCSNjpJESMLo\nKE2EJIuOEkVIougoVYQkiY6SRUiC6ChdhCSHjhJGSGLoKGWEJIWOkkZIQugobYQkg44SR0gi\n6Ch1hCSBjpJHSALoCIS0HR2BkLajIxDSdnSEkpA2oyNUCGkbOkKNkDahIzQIaQs6QkszpOJo\nzP7Sjvtx4EBCoiM8KYZUZKZyaMaNICQ6wotiSLk5P2o6Z/t63PBDoiO8KYaUNWPds909hpDo\nCB2KIT3bKfb7CEKiI3QphrQzxfPWPviQ6Ag9iiGdzbG9dTf7wEOiI/Rp7v7OX/VcTNgh0REG\nVA/I3g7PW/djyCHREYY4s2E5OsIIIS1GRxgjpKXoCBNchRTszgY6whR/QjJdc1/mPCQ6wiRW\n7RahI0wjpCXoCDMIaQE6whzVkK6nQ/OSpPz6eUI/Q6IjzNJ8Yd+uszdhv26uXIZER5in+sK+\n7O9W37pfMpN/mtTHkOgIH6i+sO/2un0z2adJPQyJjvCJgxf2jT8ZTzr3H85CoiN8xBLpJ3SE\nz3S3kS73+lZw20h0hC80d3/vO3vtdsWnKT0LiY7wje5xpLw+jpQdTkEdR6IjfBXWmQ3/XIRE\nR/gutJDsjz1ER/gBIX1BR/gFIX1GR/gJIX1ER/gNIX1CR/gRIX1AR/gVIc2jI/yMkGbREX5H\n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\nSRoAAAAASUVORK5CYII=",
      "text/plain": [
       "Plot with title \"ROC Curve for Logistic Regression\""
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Confusion Matrix\n",
    "conf_matrix <- confusionMatrix(\n",
    "  factor(test_data$predicted_class), \n",
    "  factor(test_data$is_canceled)\n",
    ")\n",
    "print(conf_matrix)\n",
    "\n",
    "# AUC-ROC Curve\n",
    "roc_curve <- roc(test_data$is_canceled, test_data$predicted_prob)\n",
    "plot(roc_curve, col = \"blue\", main = \"ROC Curve for Logistic Regression\")\n",
    "auc_value <- auc(roc_curve)\n",
    "cat(\"AUC:\", auc_value, \"\\n\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "86c76d0f-e0d0-4a00-a220-802c8605911f",
   "metadata": {},
   "source": [
    "### Logistic Regression Model Evaluation\n",
    "\n",
    "The model was evaluated using a confusion matrix and additional metrics to measure its performance.\n",
    "\n",
    "#### Key Metrics:\n",
    "1. **Accuracy**: 75.55% of the predictions made by the model were correct.\n",
    "   - This means the model correctly identified cancellations and non-cancellations 75.55% of the time.\n",
    "\n",
    "2. **Sensitivity (Recall for Non-Cancellations)**: 96.27%\n",
    "   - The model is very good at identifying bookings that were not cancelled (`class 0`).\n",
    "\n",
    "3. **Specificity (Recall for Cancellations)**: 40.70%\n",
    "   - The model struggles more with identifying cancellations (`class 1`).\n",
    "\n",
    "4. **Positive Predictive Value (Precision for Non-Cancellations)**: 73.20%\n",
    "   - Of all the bookings predicted as non-cancelled, 73.20% were correct.\n",
    "\n",
    "5. **Negative Predictive Value (Precision for Cancellations)**: 86.66%\n",
    "   - Of all the bookings predicted as cancelled, 86.66% were correct.\n",
    "\n",
    "6. **Balanced Accuracy**: 68.49%\n",
    "   - This is an average of sensitivity and specificity, giving a more balanced view of the model’s performance.\n",
    "\n",
    "7. **AUC (Area Under the Curve)**: 0.789\n",
    "   - The AUC measures how well the model distinguishes between cancellations and non-cancellations. A score of 0.789 indicates decent performance.\n",
    "\n",
    "#### Observations:\n",
    "- The model performs well in predicting non-cancellations but is less effective at identifying cancellations.\n",
    "- The **low specificity** indicates the need for improvement in detecting cancellations.\n",
    "- The **AUC of 0.789** suggests that the model has a good ability to separate cancelled and non-cancelled bookings overall.\n",
    "\n",
    "#### Note on Warnings:\n",
    "The output also includes information that the model correctly set the positive class (`0` for not cancelled) and the direction for calculations. This helps ensure accurate results.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "id": "ecdabcff-84dd-44e0-b1a0-1fb81922ebca",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training Data Dimensions: 95513 33 \n",
      "Testing Data Dimensions: 23877 33 \n",
      "tibble [95,513 × 33] (S3: tbl_df/tbl/data.frame)\n",
      " $ hotel                         : Factor w/ 2 levels \"City Hotel\",\"Resort Hotel\": 2 2 2 2 2 2 2 2 2 2 ...\n",
      " $ is_canceled                   : Factor w/ 2 levels \"0\",\"1\": 1 1 1 1 1 1 1 2 2 2 ...\n",
      " $ lead_time                     : num [1:95513] 342 373 7 14 14 0 9 85 75 23 ...\n",
      " $ arrival_date_year             : num [1:95513] 2015 2015 2015 2015 2015 ...\n",
      " $ arrival_date_month            : chr [1:95513] \"July\" \"July\" \"July\" \"July\" ...\n",
      " $ arrival_date_week_number      : num [1:95513] 27 27 27 27 27 27 27 27 27 27 ...\n",
      " $ arrival_date_day_of_month     : num [1:95513] 1 1 1 1 1 1 1 1 1 1 ...\n",
      " $ stays_in_weekend_nights       : num [1:95513] 0 0 0 0 0 0 0 0 0 0 ...\n",
      " $ stays_in_week_nights          : num [1:95513] 0 0 1 2 2 2 2 3 3 4 ...\n",
      " $ adults                        : num [1:95513] 2 2 1 2 2 2 2 2 2 2 ...\n",
      " $ children                      : num [1:95513] 0 0 0 0 0 0 0 0 0 0 ...\n",
      " $ babies                        : num [1:95513] 0 0 0 0 0 0 0 0 0 0 ...\n",
      " $ meal                          : chr [1:95513] \"BB\" \"BB\" \"BB\" \"BB\" ...\n",
      " $ country                       : chr [1:95513] \"PRT\" \"PRT\" \"GBR\" \"GBR\" ...\n",
      " $ market_segment                : Factor w/ 8 levels \"Aviation\",\"Complementary\",..: 4 4 4 7 7 4 4 7 6 7 ...\n",
      " $ distribution_channel          : chr [1:95513] \"Direct\" \"Direct\" \"Direct\" \"TA/TO\" ...\n",
      " $ is_repeated_guest             : num [1:95513] 0 0 0 0 0 0 0 0 0 0 ...\n",
      " $ previous_cancellations        : num [1:95513] 0 0 0 0 0 0 0 0 0 0 ...\n",
      " $ previous_bookings_not_canceled: num [1:95513] 0 0 0 0 0 0 0 0 0 0 ...\n",
      " $ reserved_room_type            : chr [1:95513] \"C\" \"C\" \"A\" \"A\" ...\n",
      " $ assigned_room_type            : chr [1:95513] \"C\" \"C\" \"C\" \"A\" ...\n",
      " $ booking_changes               : num [1:95513] 3 4 0 0 0 0 0 0 0 0 ...\n",
      " $ deposit_type                  : Factor w/ 3 levels \"No Deposit\",\"Non Refund\",..: 1 1 1 1 1 1 1 1 1 1 ...\n",
      " $ agent                         : chr [1:95513] \"NULL\" \"NULL\" \"NULL\" \"240\" ...\n",
      " $ company                       : chr [1:95513] \"NULL\" \"NULL\" \"NULL\" \"NULL\" ...\n",
      " $ days_in_waiting_list          : num [1:95513] 0 0 0 0 0 0 0 0 0 0 ...\n",
      " $ customer_type                 : Factor w/ 4 levels \"Contract\",\"Group\",..: 3 3 3 3 3 3 3 3 3 3 ...\n",
      " $ adr                           : num [1:95513] 0 0 75 98 98 ...\n",
      " $ required_car_parking_spaces   : num [1:95513] 0 0 0 0 0 0 0 0 0 0 ...\n",
      " $ total_of_special_requests     : num [1:95513] 0 0 0 1 1 0 1 1 0 0 ...\n",
      " $ reservation_status            : chr [1:95513] \"Check-Out\" \"Check-Out\" \"Check-Out\" \"Check-Out\" ...\n",
      " $ reservation_status_date       : Date[1:95513], format: \"2015-07-01\" \"2015-07-01\" ...\n",
      " $ total_stay                    : num [1:95513] 0 0 1 2 2 2 2 3 3 4 ...\n",
      "\n",
      "Call:\n",
      " randomForest(formula = is_canceled ~ lead_time + adr + stays_in_week_nights +      stays_in_weekend_nights + hotel + market_segment + deposit_type +      customer_type, data = train_data, ntree = 500, mtry = 3,      importance = TRUE) \n",
      "               Type of random forest: classification\n",
      "                     Number of trees: 500\n",
      "No. of variables tried at each split: 3\n",
      "\n",
      "        OOB estimate of  error rate: 19.78%\n",
      "Confusion matrix:\n",
      "      0     1 class.error\n",
      "0 57333  2800  0.04656345\n",
      "1 16097 19283  0.45497456\n",
      "tibble [23,877 × 33] (S3: tbl_df/tbl/data.frame)\n",
      " $ hotel                         : Factor w/ 2 levels \"City Hotel\",\"Resort Hotel\": 2 2 2 2 2 2 2 2 2 2 ...\n",
      " $ is_canceled                   : Factor w/ 2 levels \"0\",\"1\": 1 1 1 1 1 1 2 1 1 1 ...\n",
      " $ lead_time                     : num [1:23877] 13 37 72 77 118 69 43 1 1 14 ...\n",
      " $ arrival_date_year             : num [1:23877] 2015 2015 2015 2015 2015 ...\n",
      " $ arrival_date_month            : chr [1:23877] \"July\" \"July\" \"July\" \"July\" ...\n",
      " $ arrival_date_week_number      : num [1:23877] 27 27 27 27 27 27 27 27 27 27 ...\n",
      " $ arrival_date_day_of_month     : num [1:23877] 1 1 1 1 1 2 2 2 2 2 ...\n",
      " $ stays_in_weekend_nights       : num [1:23877] 0 0 2 2 4 2 1 0 0 0 ...\n",
      " $ stays_in_week_nights          : num [1:23877] 1 4 4 5 6 4 3 1 1 2 ...\n",
      " $ adults                        : num [1:23877] 1 2 2 2 1 2 3 2 2 2 ...\n",
      " $ children                      : num [1:23877] 0 0 0 0 0 0 0 0 2 0 ...\n",
      " $ babies                        : num [1:23877] 0 0 0 0 0 0 0 0 0 0 ...\n",
      " $ meal                          : chr [1:23877] \"BB\" \"BB\" \"BB\" \"BB\" ...\n",
      " $ country                       : chr [1:23877] \"GBR\" \"PRT\" \"PRT\" \"PRT\" ...\n",
      " $ market_segment                : Factor w/ 8 levels \"Aviation\",\"Complementary\",..: 3 6 4 7 4 6 7 7 4 7 ...\n",
      " $ distribution_channel          : chr [1:23877] \"Corporate\" \"TA/TO\" \"Direct\" \"TA/TO\" ...\n",
      " $ is_repeated_guest             : num [1:23877] 0 0 0 0 0 0 0 0 0 0 ...\n",
      " $ previous_cancellations        : num [1:23877] 0 0 0 0 0 0 0 0 0 0 ...\n",
      " $ previous_bookings_not_canceled: num [1:23877] 0 0 0 0 0 0 0 0 0 0 ...\n",
      " $ reserved_room_type            : chr [1:23877] \"A\" \"E\" \"A\" \"A\" ...\n",
      " $ assigned_room_type            : chr [1:23877] \"A\" \"E\" \"A\" \"A\" ...\n",
      " $ booking_changes               : num [1:23877] 0 0 1 0 2 0 0 0 0 0 ...\n",
      " $ deposit_type                  : Factor w/ 3 levels \"No Deposit\",\"Non Refund\",..: 1 1 1 1 1 1 1 1 1 1 ...\n",
      " $ agent                         : chr [1:23877] \"304\" \"8\" \"250\" \"240\" ...\n",
      " $ company                       : chr [1:23877] \"NULL\" \"NULL\" \"NULL\" \"NULL\" ...\n",
      " $ days_in_waiting_list          : num [1:23877] 0 0 0 0 0 0 0 0 0 0 ...\n",
      " $ customer_type                 : Factor w/ 4 levels \"Contract\",\"Group\",..: 3 1 3 3 3 3 3 3 3 3 ...\n",
      " $ adr                           : num [1:23877] 75 97.5 84.7 94 62 ...\n",
      " $ required_car_parking_spaces   : num [1:23877] 0 0 0 0 0 0 0 1 1 0 ...\n",
      " $ total_of_special_requests     : num [1:23877] 0 0 1 0 2 0 0 0 2 1 ...\n",
      " $ reservation_status            : chr [1:23877] \"Check-Out\" \"Check-Out\" \"Check-Out\" \"Check-Out\" ...\n",
      " $ reservation_status_date       : Date[1:23877], format: \"2015-07-02\" \"2015-07-05\" ...\n",
      " $ total_stay                    : num [1:23877] 1 4 6 7 14 6 4 1 1 2 ...\n",
      "Confusion Matrix and Statistics\n",
      "\n",
      "          Reference\n",
      "Prediction     0     1\n",
      "         0 14332  3951\n",
      "         1   701  4893\n",
      "                                          \n",
      "               Accuracy : 0.8052          \n",
      "                 95% CI : (0.8001, 0.8102)\n",
      "    No Information Rate : 0.6296          \n",
      "    P-Value [Acc > NIR] : < 2.2e-16       \n",
      "                                          \n",
      "                  Kappa : 0.5481          \n",
      "                                          \n",
      " Mcnemar's Test P-Value : < 2.2e-16       \n",
      "                                          \n",
      "            Sensitivity : 0.9534          \n",
      "            Specificity : 0.5533          \n",
      "         Pos Pred Value : 0.7839          \n",
      "         Neg Pred Value : 0.8747          \n",
      "             Prevalence : 0.6296          \n",
      "         Detection Rate : 0.6002          \n",
      "   Detection Prevalence : 0.7657          \n",
      "      Balanced Accuracy : 0.7533          \n",
      "                                          \n",
      "       'Positive' Class : 0               \n",
      "                                          \n"
     ]
    }
   ],
   "source": [
    "\n",
    "# Ensure the target variable is a factor\n",
    "hotel_data$is_canceled <- as.factor(hotel_data$is_canceled)\n",
    "\n",
    "# Create an 80-20 train-test split\n",
    "set.seed(123)  \n",
    "train_index <- createDataPartition(hotel_data$is_canceled, p = 0.8, list = FALSE)\n",
    "\n",
    "# Split data\n",
    "train_data <- hotel_data[train_index, ]\n",
    "test_data <- hotel_data[-train_index, ]\n",
    "\n",
    "# Confirm the structure of train and test data\n",
    "cat(\"Training Data Dimensions:\", dim(train_data), \"\\n\")\n",
    "cat(\"Testing Data Dimensions:\", dim(test_data), \"\\n\")\n",
    "\n",
    "# Convert categorical variables to factors\n",
    "train_data <- train_data %>%\n",
    "  mutate(\n",
    "    hotel = as.factor(hotel),\n",
    "    market_segment = as.factor(market_segment),\n",
    "    deposit_type = as.factor(deposit_type),\n",
    "    customer_type = as.factor(customer_type),\n",
    "    is_canceled = as.factor(is_canceled)\n",
    "  )\n",
    "\n",
    "test_data <- test_data %>%\n",
    "  mutate(\n",
    "    hotel = as.factor(hotel),\n",
    "    market_segment = as.factor(market_segment),\n",
    "    deposit_type = as.factor(deposit_type),\n",
    "    customer_type = as.factor(customer_type),\n",
    "    is_canceled = as.factor(is_canceled)\n",
    "  )\n",
    "\n",
    "# Verify transformation\n",
    "str(train_data)\n",
    "\n",
    "\n",
    "# Train the model\n",
    "set.seed(123)\n",
    "rf_model <- randomForest(\n",
    "  is_canceled ~ lead_time + adr + stays_in_week_nights + stays_in_weekend_nights +\n",
    "    hotel + market_segment + deposit_type + customer_type,\n",
    "  data = train_data,  \n",
    "  ntree = 500,    \n",
    "  mtry = 3,       \n",
    "  importance = TRUE  \n",
    ")\n",
    "\n",
    "# Print model summary\n",
    "print(rf_model)\n",
    "\n",
    "# Ensure test data levels match train data levels\n",
    "test_data$hotel <- factor(test_data$hotel, levels = levels(train_data$hotel))\n",
    "test_data$market_segment <- factor(test_data$market_segment, levels = levels(train_data$market_segment))\n",
    "test_data$deposit_type <- factor(test_data$deposit_type, levels = levels(train_data$deposit_type))\n",
    "test_data$customer_type <- factor(test_data$customer_type, levels = levels(train_data$customer_type))\n",
    "\n",
    "# Verify that levels match\n",
    "str(test_data)\n",
    "\n",
    "\n",
    "# Make predictions on the test set\n",
    "rf_predictions <- predict(rf_model, test_data)\n",
    "\n",
    "# Convert predictions and actual values to factors\n",
    "rf_predictions <- as.factor(rf_predictions)\n",
    "test_data$is_canceled <- as.factor(test_data$is_canceled)\n",
    "\n",
    "# Confusion Matrix\n",
    "rf_conf_matrix <- confusionMatrix(rf_predictions, test_data$is_canceled)\n",
    "# Print the confusion matrix results\n",
    "print(rf_conf_matrix)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6615f869-730b-4e99-a6f9-d04364067f50",
   "metadata": {},
   "source": [
    "### Random Forest Model Evaluation\n",
    "\n",
    "#### Training and Testing Data\n",
    "- The dataset was split into:\n",
    "  - **Training Data**: 80% (95,513 records).\n",
    "  - **Testing Data**: 20% (23,877 records).\n",
    "- Categorical variables were converted to factors to ensure compatibility with the Random Forest model.\n",
    "\n",
    "#### Model Summary\n",
    "- **Number of Trees**: 500\n",
    "- **Variables Tried at Each Split**: 3\n",
    "- **Out-of-Bag (OOB) Error Rate**: 19.78%\n",
    "  - This is an internal estimate of prediction error during training.\n",
    "\n",
    "#### Confusion Matrix on Testing Data:\n",
    "|                | **Reference Class 0** | **Reference Class 1** |\n",
    "|----------------|------------------------|------------------------|\n",
    "| **Predicted 0** | 14,332                 | 3,951                 |\n",
    "| **Predicted 1** | 701                    | 4,893                 |\n",
    "\n",
    "#### Key Metrics:\n",
    "1. **Accuracy**: 80.52%\n",
    "   - The model correctly predicted cancellations and non-cancellations 80.52% of the time.\n",
    "2. **Sensitivity (Recall for Non-Cancellations)**: 95.34%\n",
    "   - The model effectively identified bookings that were not cancelled (`class 0`).\n",
    "3. **Specificity (Recall for Cancellations)**: 55.33%\n",
    "   - The model had moderate success in identifying cancellations (`class 1`).\n",
    "4. **Positive Predictive Value (Precision for Non-Cancellations)**: 78.39%\n",
    "   - Of all predictions for non-cancelled bookings, 78.39% were correct.\n",
    "5. **Negative Predictive Value (Precision for Cancellations)**: 87.47%\n",
    "   - Of all predictions for cancelled bookings, 87.47% were correct.\n",
    "6. **Balanced Accuracy**: 75.33%\n",
    "   - This metric averages sensitivity and specificity for a balanced assessment of the model's performance.\n",
    "\n",
    "#### Observations:\n",
    "- The Random Forest model performed better than Logistic Regression in terms of accuracy and its ability to handle complex patterns in the data.\n",
    "- However, the relatively lower specificity indicates room for improvement in predicting cancellations (`class 1`).\n",
    "\n",
    "#### Insights:\n",
    "- The high sensitivity makes the model reliable for identifying non-cancelled bookings.\n",
    "- Improving specificity could enhance the model's ability to detect cancellations accurately, potentially by tuning hyperparameters or balancing the dataset.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "id": "99aef0bb-f385-4c3f-9d72-69d17b07415a",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Setting levels: control = 0, case = 1\n",
      "\n",
      "Setting direction: controls < cases\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "Plot with title \"ROC Curve - Random Forest\""
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "# Get predicted probabilities\n",
    "rf_probabilities <- predict(rf_model, test_data, type = \"prob\")[,2]\n",
    "\n",
    "# Compute ROC curve\n",
    "rf_roc_curve <- roc(test_data$is_canceled, rf_probabilities)\n",
    "\n",
    "# Plot ROC Curve\n",
    "plot(rf_roc_curve, col = \"red\", main = \"ROC Curve - Random Forest\", lwd = 2)\n",
    "\n",
    "# Compute AUC\n",
    "rf_auc <- auc(rf_roc_curve)\n",
    "\n",
    "# Add AUC to the plot\n",
    "legend(\"bottomright\", legend = paste(\"AUC =\", round(rf_auc, 3)), col = \"red\", lwd = 2)\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1dae0ce4-4e1d-4871-a1a0-3743c88c8353",
   "metadata": {},
   "source": [
    "### ROC Curve for Random Forest Model\n",
    "\n",
    "The **ROC Curve (Receiver Operating Characteristic)** visualises the trade-off between the model's sensitivity (true positive rate) and specificity (false positive rate) at various thresholds.\n",
    "\n",
    "#### Key Observations:\n",
    "- The curve rises sharply, indicating that the model performs well in distinguishing between cancellations and non-cancellations.\n",
    "- **AUC (Area Under the Curve)**: **0.87**\n",
    "  - An AUC value of 0.87 suggests strong discriminatory power, where the model effectively differentiates between the two classes (cancellations and non-cancellations).\n",
    "\n",
    "#### Insights:\n",
    "- The high AUC reflects the Random Forest model's ability to predict cancellations with a good balance of sensitivity and specificity.\n",
    "- This supports the model's robustness for cancellation prediction in hotel bookings.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "id": "2fe42162-eae6-4b1e-acae-1dcb437241cb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\ngg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot feature importance\n",
    "varImpPlot(rf_model, main = \"Feature Importance - Random Forest\")\n",
    "\n",
    "# Extract numerical importance values\n",
    "feature_importance <- as.data.frame(importance(rf_model))\n",
    "feature_importance$Feature <- rownames(feature_importance)\n",
    "\n",
    "# Print top features\n",
    "#feature_importance <- feature_importance[order(-feature_importance$MeanDecreaseGini), ]\n",
    "#print(feature_importance)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "236685c0-ff7b-4c41-bce3-932635eb7d07",
   "metadata": {},
   "source": [
    "### Feature Importance - Random Forest Model\r\n",
    "\r\n",
    "The **Feature Importance Plot** shows which variables are most important for making accurate predictions in the Random Forest model. It uses two key measures:\r\n",
    "\r\n",
    "1. **Mean Decrease Accuracy**: This shows how much the model's accuracy drops if a variable is removed. Higher values mean the variable is very important.\r\n",
    "2. **Mean Decrease Gini**: This measures how much a variable helps reduce \"disorder\" (or impurity) in the data when the decision tree splits. Lower impurity means better separation of classes.\r\n",
    "\r\n",
    "#### Key Findings:\r\n",
    "- **Most Important Variables**:\r\n",
    "  - **Deposit Type**: The strongest predictor of cancellations, showing that the type of deposit is crucial in determining whether a booking gets cancelled.\r\n",
    "  - **Lead Time**: Highly influential, with longer lead times being associated with more cancellations.\r\n",
    "  - **ADR (Average Daily Rate)**: Reflects how pricing impacts cancellations.\r\n",
    "- Other significant variables:\r\n",
    "  - **Stays in Week Nights** and **Stays in Weekend Nights**: Capture patterns in the length of stay.\r\n",
    "  - **Market Segment**: Highlights how customer groups relate to cancellations.\r\n",
    "\r\n",
    "#### Insights:\r\n",
    "- The deposit type and lead time are the most critical factors influencing cancellations. This suggests that financial and booking behaviour play a major role.\r\n",
    "- Hotels can focus on these key variables to develop strategies for reducing cancellations, such as offering flexible deposit options or targeting specific customer segments.\r\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "id": "29846faa-7975-4241-8bcd-913474201724",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAdVBMVEUAAAAzMzM0NDQ1NTU5\nOTlGRkZHzNBNTU1N0tZUVFRVVVViYmJlZWVoaGhra2txcXF3d3d8fHyAgICIiIiLi4uMjIyO\njo6ampqnp6eysrK9vb2+vr7Hx8fMzMzQ0NDZ2dnh4eHp6enr6+vw8PD0mZP6n5n///8KGPsU\nAAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO3diZbqyppd4cgq3xPlRr6Fy5jGaUCb\nY97/EUt9Q+oHFopATc5vjJ3dRk0qcoIQAtwNwGhu6hUA1oCQgAAICQiAkIAACAkIgJCAAAgJ\nCICQgAAICQiAkIAACAkIgJCAAAgJCICQgAAICQiAkIAACAkIgJCAAAgJCCBkSO71mbUXdR3C\nLJ5e8HubzXB7enmN+rO+n/1199JCC6eddy7ZX9vpfs5pCt75+stqe/vdpfd9vdb1D5/MkE3c\nsdKQLr6a5eblVerN+n725fcvrd22/m1Og1MIGymsU7VK5UrU9nff+7YkNrFi8pDUKV+a4pJd\nU56zz+eN26pzfjDKrzg6nw9venTuMptRzm3dvtkY1UrkK3norlS2vfbNBGxixTpDStyx+mrj\n5F2PcaPsXVp+cXS72Yxy5uqSbLNc71Yiy+Ha/77Z/WMTS6KFlF1TuU21hfdJ9vW5/Pq0cf5g\nhlR8kX04eJdkEx+zT8cfs7s1l8l/kv+FFJovsr2Y5kryUl7FtmuQTbgvZ16ujNtd7xbQjnIz\nVX/H85LtoVd3L3pzu9sI2VfVdOacik+XXX5v5fxw0453yP7wj+XtT3cl98WPeivd+ZJN/LJY\nIX13dsF9u0ObDVxu9ySkQ3Gp8674dLybXXXBff2TfXWN+F3/mWR7MXfXkZ01yLZ283U5C3+3\nvs0otFP1xubkhudW6u4cNaNszKn4dO7MLiKf3fRc69ubdvNfiiCMWyQ28esihXQprhwuxa3+\nodj6h+JO6cW572w7+Sch5fvAe+fLT0l/dvUFfTmjyy2triY39S1+8UfT1V2DbMLz7brNv77k\ny7kWw9JdQD0K/amatct+hUP2N5n9haS9uVXS/Kr0+9L7xYw5lZ+SfItkf2XJLabyFmRXbcD+\n7U7nPpLvXVexiV8XKaR9uZ2v+fBVe+bF/+7LPeurfxzSqZjWNbsB3dnVF8y3Tblbsa0un/yY\nXaW7Bs3M8z+rYz1ddwH1KPen6vwK5d/aLv/cmVstLY8pbZuVN+c0fF8hjnIb1TtkP0OqdQ7B\nsYkVkUJKmpEpvr2cDpviy/ru7vZxSNfOD8sN3ptde5lbeXuV/3m0ux1DG65Zg95cm2vV7gK6\nu+r9qapfobxWLq6luzvijWsxVefK0ZhT+WmbX72mt7jqnTrf27TNl/Uvnxw707CJFZFCct2/\n/KNvvqwvsnkcUveH5Ub/GVLn8zY/DNrudnSHr/RzDe6uqLoLaP7rx1S9X6E7i4E/q+ye9aH5\nj+E5lZ9S/+NPOLxD8/v1DnfnX/r6+2w3oXcngk2siBZS++Njds2x/057m+huszwPyVpW8Tm/\nvuzsdjR3BQrp4Br8GOX+rPN/P6d6YZTbr4obgfJbY071p9Ou+QuPxTd/xb6/lufOwYbsPnn3\nwBabWBEppPweai1x5+Z/q4v09nhvd1tuIKTu7OoLXjsXyq4qO7sd3WOzqd8MrkE51+ZatbuA\nevR+TlV8fLzf0TseUv+HMafOdJdd53BZeO0G2d6dDbAv7ghV3x+6JzawiSWRQtq54nynS74X\nW10ntHsIxfXH8JRGSN3Z1RcsbqjP5U9Obt/Z7cgH7bv8IvX1QaJ6DXpzLe/G+p/r247Q6X5s\n9uVF63vCd795e2jou/3dh+Z0bX7yY+OFt21uas6Dh7vr7xPXOU2NTayIFNKleLzgUmzj4jHw\n6oj3sTik+u3ufqdnIXVnV18wH8hvX/2FJL53bPNcnr9yzXac87+b7hp05npy/tIcm20X0F5d\ndqdK62mz3Yd9eWz2MjDK2fWl/85GMN1Xj2mkP5afFpfaXquflMdm92+caPOy7j5ZceemWt/8\nJJtjd/0vrnezwSZ+XdiQ2iMC1UNq+WHMY/3jfEDKB9cOYkjd2dUXPHR/crrbAa4f0Su3XXcN\nunMtHy3c3PoLqEe5O1XS3Ee+f7Swv/7Z8G66d+vL6X7OqXyIcN9+6XzEo0qHzh2aU3kHvVaf\ntFr9764TC5tYESuk7PqiOb3nmD+Adq72qr9fOkXodv+pM7v6p/n5K/Uey9W5/la6FodHd9Uf\nUGcNenM9Js5XfyftAprx7Ex1Sdr7tXfnr/TWP3faFuf4F/9fTvdzTrdz0myGc3H+SsxB9v7u\nm2qcqpXsrr9vTqFjE0ti7jZ+0DHyiQFgEz+2jpAu3sU+6fO3YxM/toaQOjvyiINN/MwaQkpi\nnxcANvEzawgJmBwhAQEQEhAAIQEBEBIQACEBARASEMDUIf1Z5Kx/BYZGQUgwMDQKQoKBoVEQ\nEgwMjYKQYGBoFIQEA0OjICQYGBoFIcHA0CgICQaGRkFIMDA0CkKCgaFREBIMDI2CkGBgaBSE\nBANDoyAkGBgaBSHBwNAoCAkGhkZBSDAwNApCgoGhURASDAyNgpBgYGgUhAQDQ6MgJBgYGgUh\nwcDQKAgJBoZGQUgwMDQKQoKBoVEQEgwMjYKQYGBoFIQEA0OjmDikr6+vaPNe4Wh9VLztF3PU\npzJtSF9fEbcpIY0TbftFHfWpTBrS11fMbUpI48TafnFHfSorDmltQ/Vp0caFkEIjpDkjJMWK\n7yOtbag+jZAUKz5qt7ah+jRCUkwb0j/++T//+Y9YM1/bUH1avF2FFXY0bUj/+GcWUrSSVjdW\nHxZxX2F9HU0dUrZJCWmmIm6/FQ7NtCEVN/KENE+EpODwNwyEpCAkGAhJQUgwEJKCkGAgJAUh\nwUBIiklD+teio3+NNPcVjtZHEZKCWyQYCElBSDAQkoKQYCAkBSHBQEgKQoKBkBSEBAMhKTj8\nDQMhKaa9RfqXrKN/4RZpnghJwa4dDISkICQYCElBSDAQkoKQYCAkBSHBQEgKDn/DQEiKaUPK\nX/3kH4Q0T4Sk4CWLYSAkBfeR1sBnhj6PQkgKQloBX324/zwOISkIaQUIaXqEtBaENClCWosH\nIf15y9d7k0Wc9TQb9jWEtBL+xi3SlAhpJQhpWoS0Dr77gZA+j5BWwbcfCWkShLQGvvOJkCZB\nSCvgfXUqA2c2TCZcSO8cBS29dyz0+dzfmyzYBlk6QlJwiwQDISkICQZCUhASDISkICQYCElB\nSDAQkoKQYCAkBSHBQEgKQoKBkBSEBAMhKQgJBkJSEBIMhKQgJBgISUFIMBCSgpBgICQFIcFA\nSApCgoGQFIQEAyEpCAkGQlIQEgyEpCAkGAhJQUgwEJKCkGAgJAUhwUBICkKCgZAUhAQDISkI\nCQZCUhASDISkICQYCElBSDAQkoKQYCAkBSHBQEgKQoKBkBSEBAMhKQgJBkJSEBIMhKQgJBgI\nSUFIMBCSgpBgICQFIcFASApCgoGQFIQEAyEpCAkGQlIQEgyEpCAkGAhJQUgwEJKCkGAgJAUh\nwUBICkKCgZAUhAQDISkICQZCUhASDISkICQYCElBSDAQkoKQYCAkBSHBQEgKQoKBkBSEBAMh\nKQgJBkJSEBIMhKQgJBgISUFIMBCSgpBgICQFIcFASApCgoGQFIQEAyEpCAkGQlIQEgyEpCAk\nGAhJQUi/wJ+3fL03WcRZT70dHyEkGLhFUhASDISkICQYCElBSDAQkoKQYCAkBSHBQEgKQoKB\nkBSEBAMhKQgJBkJSEBIMhKQgJBgISUFIMBCSgpBgICQFIcFASApCgoGQFEpIPjP0+W2ENGeE\npBBC8tWH+8/vI6Q5IyQFIcFASAr1PhIh/RqEpAgX0jtP3S+99wT+53N/b7Jw23bhCEkhhVQe\nXOAW6XcgJAW7djAQkoKQYCAkBUftYCAkBSHBQEgKzmyAgZAUnGsHAyEpJg3pFrOjNY7WRxGS\nYtqQbhE7WuNofRQhKSYOidGaL4ZGQUgwMDQKQoKBoVEQEgwMjYKQYGBoFIQEA0OjICQYGBoF\nIcHA0CgICQaGRkFIMDA0CkKCgaFREBIMDI2CkGBgaBSEBANDoyAkGBgaBSHBwNAoCAkGhkZB\nSDAwNApCgoGhURASDAyNgpBgYGgUhAQDQ6MgJBgYGgUhwcDQKAgJBoZGQUgwMDQKQoKBoVEQ\nEgwMjYKQYGBoFIQEA0OjICQYGBoFIcHA0CgICQaGRkFIMDA0CkKCgaFREBIMDI2CkGBgaBSE\nBANDoyAkGBgaBSHBwNAoCAkGhkZBSDAwNApCgoGhURDSOvjyY676PHqWDI2CkFah6qaqx3e+\nfh9DoyCkNfA3QpoYIa1Drx1C+jxCWoeynfouUvOT0p+3fL03WcRZT7JlX0RI6+C7H7hF+jxC\nWgff/YqQPo+Q1oGQJkZI68Cu3cQIaR2adoYONryHoVEQ0jq0ZzZ0P4/C0CgICQaGRkFIMDA0\nCkKCgaFREBIMDI2CkGBgaBSEBANDoyAkGBgaBSHBwNAoCAkGhkZBSDAwNApCgoGhURASDAyN\ngpBgYGgUhAQDQ6MgJBgYGgUhwcDQKAgJBoZGQUgwMDQKQoKBoVEQEgwMjYKQYGBoFIQEA0Oj\nICQYGBoFIcHA0CgICQaGRhEupI++U07EWQfbIEtHSApukWBgaBSEBANDoyAkGBgaBSHBwNAo\nCAkGhkZBSDAwNApCgoGhURASDAyNgpCW53rYOue2h2vcxTA0CkJanL2r7aMuh6FRENLCnL3f\nn9Lsi/S0d/4ccUkMjYKQluXkj53vjv4Ub1EMjYKQlmX35PuAGBoFIS3XIe7sGRoFIS3MOXFJ\ncc/okkQeO4ZGQUjLci4O112ymyPnkriLYmgUhLQsW7e/7d3utnEu8p4dQyMhpGVx7nq7Ordx\nySX2ohgaBSEti3PFh8iPxRYYGgUhLUsVUsSHjxoMjYKQlqUK6ROLYmgUhLQshDRThLQshDRT\nhLQsrivuohgaBSEtCyHNFCHBwNAoCAkGhkZBSEtzPWzyJ5ofn19yJIZGQUgLc/LVHaSoz47N\nMTQKQlqW1LldfpbdeZufdRcVQ6MgpGXJz/wu7WKfb8fQKAhpWbxLq69Sno80J4S0LJ0Hj3gc\naU4IaVkIaaYIaVkIaaYIaVmWENJXCCF/k08gpGVZwrl2X//2zF9PL7G4wSOkZSGkmSIkGAhJ\nQUgwEJKCkJbqvPdxF0BICkJapNPOO0dIM2KGxNvCzdZplx9p2MV+SS5CUlgh8bZwM1VWpJ36\n/WdAkAd7hmaczfqv8QZnHW2jBjAcEm8LN1fVbdH4Q99f//+Zv59ewtjC3CLVeFu42cr2tq+3\nEGc1EFJYgwPC28LNFrdIM8VRu4V55z7SEEIKywzp6PN3tfK8Cc/8VEftxt11JaSwrJCO2c5D\nmr/OBm9UOkfjH0cipLCskBJ3zv4dL7N91G/SWc/ByDMbCCksK6TsBumUvyjAbE8xnnTW0wl2\nHIiQwrI68S7duUt+Lynu8glJE+yRCUIKywrp4Ip98OjvsUhIolCPlRNSWOaeWzZK2bWdj/1e\npYQkC3P2FiGFxeNIyxPkfGJCCss8aneI/dLSJUKaCCGFZR+1cz76ifo3QpoMIYVlhXT9zncf\n3OY7NS4QCCFNhJDCenQf6bTPT21Iot4uEdJECCmshwcb0vIA0Sbi8glpIoQU1oOQLtvi5ui8\ncdt4yyekiRBSWGZIp02zVxfzNCFCmgghhWWftOq2l/oyEU8T4gWm33DM9hVum8vzCz5ASGGZ\nh7/348bpVbxUjeyaFC9X7NyoR/oIKSzz8PeHlk9Isvw9L7OQvscdBCKksB6ca8crtc9TPiT1\nv/cRUljPX9cu7vIJSUZIc2Q/H+mycel1M25H/DlCklW7du37m7+FkMJ68AzZgzvdrlEfjb0R\n0huuvtxV8KPO3iKksB4+1fw446ea/8rRqhwS55L9uONBhBSW1cnWfacuuZ0JaaUIKSyrk7yg\nTfHyaXGXT0gTIaSw7FOEkvxubeyXbCAkXb2T4Hk5rhlZ7FPNpxqt4yZ/lpYwwc8j1fmL2L57\n59OHejPmFYY06dAQkiSt/pCFY5k/R6v47s0Mjp2Ojs8vbltdSBMPjTHN9ZDfQdqOGqqXLCwk\n73Zp/uJywh+xMVrvC3P8Z3UhTTw0wxOe6j2IqG8ylltWSN/VU7NOxQnx5222gfI7kc6l2/Kr\nW/PFNbuDuavfyqgYn/ri5U5Z8aM0v1Dan8OHrC2kqYdmMKQ0m8elmv9c30N2ktHa1id65Fvn\n1Ly4XDYK1Vflg6X5kBZfJLd2tJqLt6NVXtpfu3N4QZDTINcW0tRDMzgY7dknu9m+0uoko9X7\n201cdsf2Um75zTW79+LLLVc89nbIN9y+fkg7/9e9eDWrfb5DvynHu57Dc2FOg1xbSFMPzeBg\neFeffZIW5Ua04JDyVw3O70oWt/63ekiqW/CkuGR+BdjuiLcXby6dVpu4ncNzYU6DXHVIEwzN\n4P93puLMhq7+1tjUtwvlj3t3XdsbjebH/YsPTffaxg5zGuS6Q/r80BCSotkRv53z3d7keEpf\nHq27i48KKcBpkGsLaeqhISRFfWjo7HfVprn2t/Xd/kP94+ZC195odfcf6os+F+Y0yLWFNPXQ\nKCF5X56Vcv95jGWF1D5Ycck3zfl23fRHa5/dPb3UX5TPBm9Hq3fx+3u09RyeC3Ma5NpCmnpo\njJA62jWtPtx/HmVhIaVJc2C1OXrW3dZpfWi1etLQpR2t7sV9+aPuMdZ6Di8Ichrk6kKaeGgI\nSZS/DXJ1Qlf2x7w53+1GXzbV43hp8b+3zr5Dc/FjPVrdR/2aOXzI6kKaeGjUofv1Ic3IqDec\nX2FIkxoM6cE7/toh/XnL13uTZRP+Nd7gwkNv4cDOiUuK41OXZNTtFyGFNTgY9jv++hu3SJM6\n1/v3BzfusXJCCmv4Ws18x19Cmtg2uzOdn+yS7e+P2rMjpMCs3YPhd/z13Q+ENIH8LOJrdtfY\nJZdxMyKksMz97KF3/PXtR0KaRvVAx/hziQkpLOUOq+98IqRpVCGNfxdFQgpLCMn76lSGX3xm\nw+Sah97HIqSwPvgQ4CBC0hDSTBHSshDSTBHSsgyfvfUGQgqLkJaFkGaKkCZY9zlYd0ifHxo7\npBDv+PscIU2EkMKyQgrzjr/PEdJECCksK6Qw7/j7HCFNhJDCskLqPZ09IkKaCCGFRUjqcoe9\n+2tMZoUhTToyT3btRr7j73PLC0n5k4oiOYS437rGkKYcGfNgQ5B3/H2OkGT5qOxGn7VKSGHZ\ne24h3vH3uVWGNPbB0seu3/kTXNzme9R13C8NKdrQ8ICsutznf1Ku+RDNaZ/vMSQjbpd+Z0jx\nhoaQ1OXOIqRbWj6F+f0HJwgpLEJSlzuHkC7b4ubovKlep/cNhBSWebBhF+LMyOeWF9Lzg6yx\nQzptmr2694dnjSE9P/z9+ZC2QU4xfm55IT3/k4ocUuLctj4F8rW3JhuyxpCer+PnQ3JOeZ/1\n9xGSzO1DnElMSGFZMx33Mp6vIyRZmEckCCksa6Zp/IeQCoSksZ7YV71S2usvS0NIYZkz/eY+\n0vByZxmSl1+6k5DC4mCDutwX/qTib7Y7Xn8N3N8Z0ufPbOBgg7XceZ79TUgzPft7y8GGeOs+\nQvGsZes+khXS4Nvi/D2e8Z48M3jHnfk8H+m23UU+77tESJq3Qhqywluk7iqMm/wN9q4d95Gi\nrXsEhNRfhXGTv4GQ1oGQJsZJq8uzZ9dufghpcfbcR5qhwZCse7QREJLMu8vGpddN7yUHObNh\nYoS0ONmQHNzpdh33koOEFBa7douThXRyx7GvlEZIYVm3SJ+y5JAmGuyt+05dcjsT0oPfbtzk\nbyCkCdZ9nLygTb7TPeolBwkpLEKaYN1HOiX5C3iOfGPzmCGFMOqXIyRhwt8bUhCEFJYR0vCz\nxyIgpIkQUliEpC43xrgrrof8DtL2OHI2K7yPNOnIsGsXZLmfC+lUvSi78+NeSn+NIU05MoQU\nZLkfCyl1bpe/iNB569yoF9UgpLAIKchy7+cUbQO277OzG3fY7teGFOvFNAZ/SEjicn+8MsC7\nv9Yz3tXPt8wflB3ht4YUa2g4RSjIcu9fqybaZu38HXBmwyvLvb+K++gt0getMqSIm5WQHvxK\nL82IkO4mnGq0XjrISkizGZr7SxHS3YRTjdZLc1pASCEYs57T0BDSswnnNFqfDCnQY+WEFBYh\nBVkuIXVnPaehIaRnE85ptD4XUjBrvI/00ow++zgS59ppyyWk7qznNDSE9GzCOY0WIfVmPaeh\nmXzXbrtJb7d08/ab/b5oeSEp9xZmbI0hTTky9ovol6dEvv+22a9ZXEgh1n0OVhhSdxXGTf4G\n+yWLi09Xdu0irPscEFJYVicbV+7acYsUYd3ngJDCMt9Dtnr+mE+NCwSy5JAmc9zmLyQ07r3N\n1x3S55l7btd94lxyiP2OzIQkuybFwVTnRj1FlpDCmvo4LSHJ8mf0ZSF985LFc0JIi5Mf/6n/\nvY+QwjIHY+hNeCIgJBkhzZE1GINvwhMBIcmqXbs9L1k8J1Yng2/CEwEhya5BDqgSUlgPHpAN\n8CY8zxHSGw75AdX9uAOqhBTWg5ACvAnPc4Q0EUIKyz7XLsSb8DxHSBMhpLCsTsK8Cc9zhCRr\nn+Hid+/fTSKksMwbnCBvwvMcIcl6zxZ7uyRCCosHZBfnVJ9P/D3mEDghhUVIi5PUTxVLxhwL\nIqSw7IEIcYrxc4Qkq+MZd3YDIYVlDUSYU4yfIyRZ81Sxze38/gvpE1JYVkhhTjF+jpBknaeK\nOff2G/cRUliPnmo+/szI5whJd23ObBhxUJWQwiKkX4qQwnqyazfyFOPnCGkihBSWebCB12yY\nrSBPFSOksOzBCHGK8XOEJAvzVDFCCosHZBcnzFPFCCksQlqcME8VI6SwnoXEUbvZCfNUMUIK\ni5AWJ8xTxQgprHAh/XnL13uTZRP+Nd7gwkdu0PjCPFWMkMLiFml5gjxVjJDCIqRfipDCIqTF\n2QQ52YSQwuKtLxfHBxkSQgqLkBbnstkHOG+LkMLiAdnFCXMdR0hhEdLiENIcEdIvRUhhEdIv\nRUhhEdIC8R6y80NIi8N7yM4RIS0O7yE7R4S0OLz15RwR0uIQ0hwR0uLwHrJzREiLw3vIzhEh\nLRDvITs/hLQ4Yd4ghJDCIqTFcclJnGLwqfp/j2e8TsCvfBUAQlqcbL/OH0a/cCe3SGER0vKk\ne+/cduQbVxFSWIS0SOe9c8n3mDkQUliEtFApz0eaFUJapPMuu0V6+936coQUFiEtT3Efacd9\npFkhpMXJH409ctRuZghpcdxWfRxpSMyQQgjwK34UIS1OmPd+ixjSCwsP8ivMCiEt1Xnvx0xO\nSGER0iKddt45QpoRQlqe0654U5dx95QIKSxCWpiyIufG3lMipLAIaVmq26LxL8lOSGER0rI4\nt73eQrzbDiGFRUjLwi3STBHSwnAfaZ4IaXmqo3bjTrYjpLAIaZF4HGluCGmpOLNhVgjplyKk\nsAjplyKksAjpl5r0uQ4r3PCEBEPErbPCDU9IMBCSgpBgICRF3JAi7ogTUmyEpIgcUrxDQ4QU\nGyEpCAkGQlIQEgyEpCAkGAhJQUgwEJKCkGAgJAUhwUBICkKCgZAUhAQDISkICQZCUhASDISk\nICQYCElBSDAQkoKQYCAkBSHBQEgKQoKBkBSEBAMhKQgJBkJSLDekeM9iR4GQFIQEAyEpCAkG\nQlIsNyTuI0VGSApCgoGQFIQEAyEpCAkGQlIQEgyEpCAkGAhJQUgwEJKCkGAgJAUhwUBICkKC\ngZAUhAQDISkICQZCUhASDISkICQYCElBSDAQkoKQYCAkBSHBQEgKLSRffsx0P9sIacEISSGF\nVPVTfWi/MRHSghGSQgnJ3wjpFyEkxRu7doT0OxCSIlxIfwZ8/T3e19CMs1n/Nd7grMNt24Uj\nJAW3SDAQkoKQ1sRXB1KfH099ASEpCGlNfOfT6JIISUFIa0JIkyGkFfHdz4T0UZzZsCLNXaTb\nrRfS8HHPZ4zDpSG8OeuJNutLONduRYR9hRdwi6QgpLUhpEkQ0toQ0iQIaUXYtZsOIa2I7/wj\npM8ipDV5/XjqCwhJQUgwEJKCkGAgJAUhwUBICkKCgZAUhAQDISkICQZCUhASDISkICQYCElB\nSDAQkoKQYCAkBSHBQEgKQoKBkBSEBAMhKQgJBkJSEBIMhKQgJBgISUFIMBCSgpBgICQFIcFA\nSApCgoGQFIQEAyEpCAkGQlIQEgyEpCAkGAhJQUgwEJKCkGAgJAUhwUBICkKCgZAUhAQDISkI\nCQZCUhASDISkICQYCElBSDAQkoKQYCAkBSHBQEgKQoKBkBSEBAMhKQgJBkJSEBIMhKQgJBgI\nSUFIMBCSgpBgICQFIcFASApCgoGQFIQEAyEpCAkGQlIQEgyEpCAkGAhJQUgwEJKCkGAgJAUh\nwUBICkKCgZAUhAQDISkICQZCUhASDISkICQYCElBSDAQkoKQYCAkBSHBQEgKQoKBkBSEBAMh\nKQgJBkJSEBIMhKQgJBgISUFIMBCSgpBgICQFIcFASApCgoGQFIQEAyEpCOkX+POWr/cmizjr\nqbfjI4QEA7dICkKCgZAUhAQDISkICQZCUhASDISkICQYCEkRLqTBw5x/j2ccKv36a7zBWQfb\nIEtHSApukWAgJAUhwUBICkKCgZAUyw0phKi//NIRkmKxIb2w8JC/yS9ESApCgoGQFIQEAyEp\nIoc05R2ZFY7WRxGSgpBgICQFIcFASAruI8FASApCgoGQFIQEAyEpCAkGQlIQEgyEpCAkGAhJ\nQUgwEJKCkGAgJAUhwUBICkKCgZAUhAQDISkICQZCUhASDISkICQYCElBSDAQkoKQYCAkBSHB\nQEgKQoKBkBSEBAMhKQgJBkJSEBIMhKQgJBgISUFIMBCSgpBgICQFIcFASApCgoGQFIQEAyEp\nCAkGQlIQEgyEpCAkGAhJQUgwEJKCkGAgJAUhwUBICkKCgZAUhAQDISkICQZCUhASDISkICQY\nCElBSDAQkoKQYCAkBSHBQEgKQoKBkBSEBAMhKQgJBkJSEBIMhKQgJBgISUFIMBCSgpBgICQF\nIcFASApCgoGQFIQEA34GKCAAAAePSURBVCEpCAkGQlIQEgyEpCAkGAhJQUgwEJKCkNbIZ0bP\nhJAUhLRCvvkwBiEpCGmFCOnzCGmFCOnzCGmF7kP685av9yaLaKrt+QpCWqHZ3yLNOon3ENIK\nEdLnRQ4phLcXHvI3WRRC+ry4IT3HPdoICOnzCGmFCOnzCGmN5n5mAyEFR0izRUgKQoKBkBSE\nBAMhKQgJBkJSEBIMhKQgJBgISUFIMBCSgpBgICTFmJBCPOxHSLNFSIoRIQU5EYWQZouQFIQE\nAyEpCAkGQlKEC2nq5yGHMnqTrkXELbHCjTz1LRKjNVsMjYKQYGBoFIQEA0OjICQYGBoFIcHA\n0CimPrOB0ZothkYx9bl2jNZsMTQKQoKBoVEQEgwMjYKQYGBoFIQEA0OjICQYGBoFIcHA0CgI\nCQaGRkFIMDA0CkKCgaFREBIMDI2CkGBgaBSEBANDoyAkGBgaBSHBwNAoCAkGhkZBSDAwNApC\ngoGhURASDAyNgpBgYGgUhAQDQ6MgJBgYGgUhwcDQKAgJBoZGQUgwMDQKQoKBoVFMHRKwCoQE\nBEBIQACEBARASEAAhAQEQEhAAIQEBEBIQACEBAQwbUgh3s7Znnm0Of8GDI1m0pB88yHGzFc4\nWp/D0IhWG5Jf49Xe5zA0otWGtMr9h89haESEhCEMjYiQMIShEREShjA0IkLCEIZGREgYwtCI\nCAlDGBoRZzZgEEOj4Vw7IABCAgIgJCAAQgICICQgAEICAiAkIABCAgLohuRc+a919Lf7H927\nHrfebY7Npe8mfuC0u93OG+e2Z3Pl3He7ZsaMj9kcNt+Pl3Q301d+tn/4S49daDF99rPdSZie\noSnFHZr6Zy8PTT3J3Sz7sy2+ezhaF+8K/vrjgo9H+XbOtvm1nPhirZzz6cCsOt+l1eI3Dxf1\ndLV+/Gz/aOXHLrSePvuZN/9Sf07P0BSiDk3nZ68OTT3J3eTmdjEkbpeNU7pxe3W0fHZVecwn\n27mDtXL1FjHXyrtdNp4n747PVvThat3/bOcerfzYhVbTu2z6ZzcN3ekZmlzcoen87NWhqSfJ\nrnuydcs3eTta5212hVNs/uZHaX6htLhQui3+s7ca2fVXdemhicuPB++S9vfb5+u5za/xLm7b\nzKy5qq6+P5RbpLcKnQt8V5OenO8subuOzRe937L9Lv9D295vTO/PnZ/cr9XYhWbTVwvNpvf/\n5+XpGZroQ9NbaLslX5HfhuVrktza0TqVK7fvbPCrb3cSfPmfpa1r9iXLSw9MXH7cFz+vh+ta\nzMG3Yzm0XbIvEpfe7lahc4Gtq25/L7fOkjvrWE60vd39lu13xQW2d6PVvwq/X6uxC926/9cu\n9D9en56hiT40vYXu3fX2Onc75AvY55ux3rpJfkfy0mzrclNnN+TVTsLmmt3u17d72U5psv/u\n7C4PTFzPOb2dm+kOxSi7/mj9WDl3S4s9iPtV6Fyg1V1yvY57t7sVV2H937L9Lp/rdfNzDR7s\nP4xdaDai7UL/m/vfr07P0EQfmt5CT+Z+7eCis+UVn7ed/Ydbejpsehu8uPZJ82Zdcz1Uuh6S\nPOZz+8MfE5cfs93XzoGQbWc2j0Yr+/2PP1dhcMN1l1zPPKmvVfq/ZftdNde3R+uNhWZbq11o\n6v7Xq9MzNINzfvBf4xaaNvu1r3C39tax2cSb7k86g9j/qnHZ7zZ5/eUPf05cfszuAbok7f/K\ndzMb2H/I55cOrsLPDddfcv+i97/lz4vebRfX+XJgrUYstJ5V/fH16RmayENj/PKvGAppl93z\nPKWvj1bxA1/9cGDi+uMlcc0xxd4K++aHA9slv6azRqvZJ76dfyw52miNXei2CamY3r0+PUMT\neWhGhZT0rkSamV17G/z+xruzQtfetEMTt7fPx7vrjqR/aGh4kx3dYWgVcvVRmrPf/Vhytd69\nm/L2x/V3b+w/jF3ot/sv1UKL6d2r0zM03UUPCrtQMaR9fkfrO7+72I7WubrD1Wzw+7uTzTKy\n/8jiv+7rvc37iX22Y1F+67P/uDTXcOWOeH7fL7vmsA76V0vZuKFVKDSPG1x+LLla7315f7P/\nW7bfHfL7odo92tELzXak/nm9/Q9XTv/vr07P0MQfmu5C1ftI5RHBcsn1bNsbumq3oHuMtf/L\nJOVlfVpd+m7i4ttDO9f6QEh5aOhSXtY6zFgtJX+4+u4wb32JtFp8fsC2u+R66rQ+rtn/Ldvv\nOoc7ewP0aLTGLjT97+0OyX+8Pj1DE39ougtVj9oVj6Zt6kM7xSyKH+RfHZv9686jfne/TH5y\nk9/nG7w88tqf+Lb32foUF8++8s2qlQ9WFCd0bR6c0FV+/u6vQnuEN/91d74+t6pZcmcdL5tq\not5v2X6XP0K3vWmjNX6h//e/lufalaP94vQMzSeGpl2o+jjSRB6fejiFdIrXtmkePp0Rhqag\nDc1028y/fjrUZyTaWYpBiCd0fQhDc3vnXLuJnGf5N/Rh4inGH8LQ3Ead/f1h+ZNefjn1SS+f\nwtCMej4SgDcREhAAIQEBEBIQACEBARASEAAhAQEQEhAAIQEBEBIQACEBARASEAAhAQEQEhAA\nIQEBEBIQACEBAfwn862uiqCyhygAAAAASUVORK5CYII=",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Boxplot for Lead Time by Cancellation Status\n",
    "boxplot_lead_time <- ggplot(hotel_data, aes(x = factor(is_canceled), y = lead_time, fill = factor(is_canceled))) +\n",
    "  geom_boxplot(alpha = 0.7) +\n",
    "  labs(\n",
    "    title = \"Lead Time by Cancellation Status\",\n",
    "    x = \"Cancellation Status (0 = Not Canceled, 1 = Canceled)\",\n",
    "    y = \"Lead Time (Days)\",\n",
    "    fill = \"Cancellation\"\n",
    "  ) +\n",
    "  theme_minimal()\n",
    "\n",
    "# Boxplot for ADR by Cancellation Status\n",
    "boxplot_adr <- ggplot(hotel_data, aes(x = factor(is_canceled), y = adr, fill = factor(is_canceled))) +\n",
    "  geom_boxplot(alpha = 0.7) +\n",
    "  labs(\n",
    "    title = \"ADR by Cancellation Status\",\n",
    "    x = \"Cancellation Status (0 = Not Canceled, 1 = Canceled)\",\n",
    "    y = \"Average Daily Rate (ADR)\",\n",
    "    fill = \"Cancellation\"\n",
    "  ) +\n",
    "  theme_minimal()\n",
    "\n",
    "# Combine the two plots side by side\n",
    "boxplot_lead_time + boxplot_adr\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f1644d2a-deb5-4ccb-91e2-87e21d9d9ef5",
   "metadata": {},
   "source": [
    "### Boxplots of Key Features by Cancellation Status\n",
    "\n",
    "The boxplots below examine the relationship between two critical features and cancellation status:\n",
    "\n",
    "1. **Lead Time by Cancellation Status**:\n",
    "   - Bookings that were cancelled tend to have significantly higher lead times compared to those that were not cancelled.\n",
    "   - This indicates that bookings made far in advance are more likely to be cancelled, highlighting lead time as a crucial predictor of cancellations.\n",
    "\n",
    "2. **Average Daily Rate (ADR) by Cancellation Status**:\n",
    "   - The ADR distribution shows a slight difference between cancelled and non-cancelled bookings.\n",
    "   - Cancelled bookings generally exhibit a marginally higher ADR, suggesting that price sensitivity might influence cancellation behaviour.\n",
    "\n",
    "#### Insights:\n",
    "- **Lead Time** is a strong differentiator between cancelled and non-cancelled bookings, making it an essential factor for predictive modelling.\n",
    "- ADR provides additional insights into the economic aspects of cancellations, albeit with a less pronounced difference.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "id": "0e78f4f0-9030-46bf-96cf-bb63cad08c4f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAilBMVEUAAAAfHx8lJSUqKioz\nMzM8PDw/Pz9BQUFERERHzNBISEhNTU1N0tZUVFRcXFxlZWVoaGhpaWlsbGxxcXFycnJ8fHx9\nfX2Li4uMjIyNjY2YmJiampqbm5ugoKCnp6eoqKixsbGysrK9vb3GxsbHx8fQ0NDZ2dnh4eHp\n6enr6+vw8PD0mZP6n5n///+gK4NAAAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO3d\niZaq0HaF4Z3kpLkhjWlIzDUx0dhwvOH9Xy/0LhAUFqxi4/6/MU4dy5J21hREsFwKYDa39gwA\n34AiAQugSMACKBKwAIoELIAiAQugSMACKBKwAIoELIAiAQugSMACKBKwAIoELIAiAQugSMAC\nKBKwAIoELIAiAQugSMACZhXpeoic2x0f+e3HYdJk+6a7c8WY0odz1a3E7caPwrmL/FHPz5ub\nAzPbO1fSZZ/N2v764VFDo+6OvpyLjxMtvF/Vr/f4Fc2IB249vTlFyuercE0nrLxmzl4cXbmQ\n12qU2aK74/hROBfJH72LYmBmPyzDPaqWN377sMFRd0dffj9qxX1Y1S/3eBbNiAduPb0ZRTq7\nKF+nydm5+9S0el2rbI5uX906uOHnj55V7Q4DP+req4rinj2d3bL/b7Hbv3vc4Kj7oxjj06ru\n3uNbNCMeuPX0ZqzjyCXljXO+ChZI61HtLexcvd8QVfsRfXqKtM9/bfp+1L1XFcXOnatb8Ztf\nogHzivRpVXfv8S2aEQ/cenoz1vFzTNmtYqOZ3z7uso3n7bnqyxv3Q7bpPtzaw2ZfjpHbPRdr\nV+SfDxAXMVWhZU8iLq4e9bxdjCKJdqfnOOtpyp2Da+yic70mzlExb/XM9szVKSpG3577ckTP\nZ7J7+axcL2pnSbIpusOjZ27bK6iei2o+79mLmuhwfxnbiFXdGVPxkHrRVo+mdW9rJUWndju2\nnd6MIsVyL7leuqjZNT82O9On9Cb22OXKitv3HosXnNdsgFNxZ7kffimHPabt29XkYjEL2RPw\nWYw9v3kqH18u86H45lbPbM9cHevRy7kv7btPZM9FbS1JOYqoZ247K6gVxdX1j23Uqn4pUtx+\nibRiNK17uyvp0N7MbDu9VC3Jn0Ivd7n+syU/FV/j52GdOHsu2xUxXJ4HeqqVFd3Sx/7ZhWux\nm3zIVtatmP9iP/xePAPc4+7tfBSxfOWY37GLHqmM4l4cDLpG5TJnLxzKyZUz2zNXUfnoe2vu\n6zXf3pcRiyqX5F5MpfjN785t/q89VLMqsvk8PdJHFmPSs14+rWo5puK/5M/cX2aPrxZtxWja\n94qV9IzlS9Kbs/uclMeG9s/NeX2YtPimfBIotq49r2eKL+UDmh8+iqeCqPjZrl76YznKR75t\nlrfzDbKLkvY470XezyiO5ZPcpVwTzeRav3hyDMUh2GLbL+ZezLIgF1WM+lBMsRiuM7fl70pr\nqObmsXkJf+xZLx9XdbdIafVsvXo07XubcVaxPKJ2kbac3pwiZVO5nvKt4rOg+YIU9xVLtE+r\nres+f0IVv/NyVuQy5nviSTG6uLi1K+6rtW87d36+99CM59Acpiq+7Oq10drzqW72zFX5tFW8\ndHjOvRh9W7OoYtS751Nfe26bR3WGquaznI9E/G63J/h2Vb8Uae/+9t/+/V/Wj6a7Cjorad8u\n0pbTm1ekQvaa7NRM5xzVE88X9V5tXZPi3t25GWYgrXxP/FJtPi/VfrhrLVDntnxTsBjPI9rJ\nsdfj7o2if67q/59zX9p1D1OJRX0ZdfVtTxQvQ7XmszujI1f1S5GqRfuvtaPproLOSoo7Rdpw\nevoiPadZbPbLb7Nnovh4Scpv8qeFeut6LV4qtp8gXtPK98Tz/fD8peSheqtC/j61b0cX+YK8\nmYPz2Cj656r+X859rvXGSdJe1KEo2jOX/3sdakSRPq7qTpHyG+Wi/ffK0fQ8Qq6kl5W13fT0\nRRKH45+zsHP1AcXyIYnYut4PzZvXQ2ml2SOq/ebiVv4sErl782N5O39dfpCbpGo82SvW59jf\n7hz0zNVDjKk99/IAahLF7UUVoxavattzW/57Haqaz3e7dh9XdadI1ePzRVs5mu4qaC1B62Xg\n1tPTF+l5vOTyPJRSfr1Ws3Z1R7F1fXmO7Ukr+xWojhTlt4oJHMp3vO/5/fJ2PtjDuc4bIMUr\n1ufYq5er5+Eo2nNVPPpWzkJ37qP6FVm2U3FtL6oY9aF65Rq9zu1zytduFMfqbf3qYENnvj6u\n6vqeR3lP83jnVo6me281zuq91/NrkTabnr5I2fqMLllyybE6rp7PdfH+8fOw5i4q13h5qPL4\nfFYYSuvkdtXTSH7rWC5JcTAyKo+xPm9Xi/A836Mez0Hsw5YHUC+v++hJ/1wVj46qdtZzX7mV\nJ5k8sv3kfWdRxaivLro3B1Dbc1s+p8mhknrYbG/hWB7+vvetl0+rurwndvtHeU/2cvg/s8f/\n0a0dzcu95X/n4kj1xb0WabPpzShS0rztd0rLgxzFk0epXJhrtQtbvXn2PFg9lNatGfTu6hdA\n1XuVx87tYrCH2ADX43nI1XPqfbFbzmzPXJ2ek3rOfa1+07TMTi6qXJLyLb24Z267K2gnZqv9\nhmx3vXxa1XJ58rcvk3/yJZruvdV/5fKceoq02fTSGa774lz94lf5viv2Vs/5W4e3eo/04aqt\n6604neO5pR1KK33Okav3ebMn4qg5OvO8XT7w3HkqzV3k2PNTPva3ThTVzPbM1SmqzhuRc197\nFEegD9ULFrGorSU5ZyM/9s1t8WMxVDkX9T5N6xShl/XyflXXy7Nrzrv5n7/P5vSv/rh+NN17\nq/8ur6cIVTc2mt6sIn10fnPRyk96KM749WfuTWxo4TaRnmmR7pE4FrCK8n3BW+zOHx/6Yv25\nN7SJhdtSeoZFEvurq6l3sqdfzOXD3JvZyMJtKT3DIu3k285rueYnqcWXzw/s8mLurWxl4TaU\nnu1rJCAQFAlYAEUCFkCRgAVQJGABFAlYAEUCFrBGkX5/xSS+EtFoUSQIRKNFkSAQjRZFgkA0\nWhQJAtFoUSQIRKNFkSAQjRZFgkA0WhQJAtFoUSQIRKNFkSAQjRZFgkA0WhQJAtFoUSQIRKNF\nkSAQjRZFgkA0WhQJAtFoUSQIRKNFkSAQjRZFgkA0WhQJAtFoUSQIRKNFkSAQjRZFgkA0WhQJ\nAtFoUSQIRKNFkSAQjRZFgkA0WhQJAtFoTShSlFlkmqS1tGipbIhGa3yRoubLXKS1tGWe4FKi\n0aNI34AirW5ikRZBWgsjmvVNKVJrP/y33q8Zw9pPwmAlW+u8RFpnvf3AJNZbw59NKFIe1SLP\nfb+WGMnqk/DIcnvdRKO1xmsk0rJANKuiSN+CaFZFkb4A0ayPIn2BxV69Eo3aGmc2kNbSiGZ1\na5xrR1reIhotigSBaLQoEgSi0aJIEIhGiyJBIBotigSBaLQoEgSi0aJIEIhGiyJBIBotigSB\naLQoEgSi0aJIEIhGiyJBIBotigSBaLQoEgSi0aJIEIhGiyJBIBotigSBaLQoEgSi0aJIEIhG\niyJBIBotigSBaLQoEgSi0aJIEIhGiyJBIBotigSBaLQoEgSi0aJIEIhGiyJBIBotigSBaLQo\n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\nbYMYnGRypsnI+0Ym8zpsKuK67bNnnGL9N3cl2RLkM5l9l+yLH7bmI3sCqx7dN3D59RS53XMB\nj/mM7vOnvLvbNyNrnqqr70/lKmnNgnjApRr06iIxZTmPzY1HPvSjHlfzXf6btu+uzSi6iXu6\nczVzovng+USvxX1//Q9jBycZ62TaE32uyUlkka7l3B3FGn9Ez72EqPxhae+ancny0T0Dl1+P\nxf11Xo9iDNEzzL4Vk93YuSTtzIJ4wN5VG+B7KqYs5rEcaF9MKrOrp9Z8Vzxg34mr/RzenauZ\nE80Gf050wuAkY51Me6JH90gV8vVYr95d/kry3qzscl1nW/JqLyF+ZBv+esOX7ZXujhexv9wz\ncD3mJL01w52KmF07rpeZcmlS7EJ0Z0E84ElOuZ7HozukxXPYKR/wWC/l87t8rI/4dQ7e7EDM\nnGh28znRXfbUPnJwkrFOpj3R6+B+7Vt5TZ/PU8n1FLfWePH0k+Sldc0TUelx2uVtvj3vfBm4\n/Jrtv4ojIXsxmndxZSvg/DoLvWtOTrke+a5+Wtk5uZTP76qxquOaPtH6ybycaOL+deTgJNM7\n5jc/mjfRpNmvnaRev8U44nqD2axx+fT1Msv34yHO61/e+Tpw+TV/db1L2svcGVnPDkQ+vqR3\nFl7XXHvK7Yc+x1z+e33o6/p4N1czJurkRKcMTjLGyQws/CQyrkP20vOajI+ruCOq7uwZuP56\n37nmoGJrjqPmzp4Vkz/VDcXV7BSnt5cpm8U1d6Lu9nxofhBq9OAkY5zMIkUSkyrG8Git8e7W\nW8zRo1m8Zz7tgZ8b6HPnyWPXPjbUv87O7tQ3C7n6MM0tOrxMuZrv1rb8eXf9nWIHYuZEs8GL\nif5vHeHIwUlGTrrXshNVFimWcd2qV1zNGu++nmwmkv0ga//jWO9udgeOsj2L8tso+8G9eYor\n98TzF3/ZU8fQUf9qKrHrm4VC88bB/WXK1Xwfyxec+Y1sRcfPu8vvTvkL0WkvaedONHL/nE30\n+udVkfYjBycZ82RaE9W+Rro/4zqKLV21XyAPsraXZlc+NkqqR3cGLr49PcdaHwkpjw3dy8cO\nHWesppJE3Vlo3ixLqsnnR2zllOuhk/rAZjl0vZTP78TxzlZC7+KaOdF68O6q/jA4yZgn05qo\n9qhdKnYCsj33uNiRPzc72OJtv87S5Gc3Rcd8jZeHXtsDp8com6Hi4dmtqJm38t2K4oyu+M0Z\nXeX/l/YsPA/x5st7iOqTq5opi3m8x9VAyaGaUjOucrrJvn4HbnRcsyd6/Y+/cH9TLtQ/jh6c\nZH4gGTFR7ftImoHmeH/u4RqSNT7Xpnn/1B8kU1Am8/MrLxp/PtTP2ClPU5xDe0aXKZJJ551r\n97NuPv4O/TTtOcamSCadd/b3D8uvegmc+qoXWyQz73okADNRJGABFAlYAEUCFkCRgAVQJGAB\nFAlYAEUCFkCRgAVQJGABFAlYAEUCFkCRgAVQJGABFAlYAEUCFkCRgAX8PxPI38UQ7KqkAAAA\nAElFTkSuQmCC",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Boxplot for Stays in Week Nights by Cancellation Status\n",
    "boxplot_week_nights <- ggplot(hotel_data, aes(x = factor(is_canceled), y = stays_in_week_nights, fill = factor(is_canceled))) +\n",
    "  geom_boxplot(alpha = 0.7) +\n",
    "  labs(\n",
    "    title = \"Stays in Week Nights by Cancellation Status\",\n",
    "    x = \"Cancellation Status (0 = Not Canceled, 1 = Canceled)\",\n",
    "    y = \"Stays in Week Nights\",\n",
    "    fill = \"Cancellation\"\n",
    "  ) +\n",
    "  theme_minimal()\n",
    "\n",
    "# Boxplot for Stays in Weekend Nights by Cancellation Status\n",
    "boxplot_weekend_nights <- ggplot(hotel_data, aes(x = factor(is_canceled), y = stays_in_weekend_nights, fill = factor(is_canceled))) +\n",
    "  geom_boxplot(alpha = 0.7) +\n",
    "  labs(\n",
    "    title = \"Stays in Weekend Nights by Cancellation Status\",\n",
    "    x = \"Cancellation Status (0 = Not Canceled, 1 = Canceled)\",\n",
    "    y = \"Stays in Weekend Nights\",\n",
    "    fill = \"Cancellation\"\n",
    "  ) +\n",
    "  theme_minimal()\n",
    "\n",
    "# Combine the two plots side by side\n",
    "boxplot_week_nights + boxplot_weekend_nights\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ea2ba92b-680f-4be3-b531-f4ad1ce7c29c",
   "metadata": {},
   "source": [
    "### Stays in Week Nights and Weekend Nights by Cancellation Status\n",
    "\n",
    "The boxplots above compare the number of **Stays in Week Nights** and **Stays in Weekend Nights** between bookings that were cancelled (`1`) and those that were not (`0`).\n",
    "\n",
    "#### Observations:\n",
    "- For both **Stays in Week Nights** and **Stays in Weekend Nights**, there is no significant difference in the median values between cancelled and non-cancelled bookings.\n",
    "- However, the distributions indicate that non-cancelled bookings may slightly favour shorter stays, while cancelled bookings include a slightly broader range of stay lengths.\n",
    "- The variability in stay durations appears similar for both week and weekend stays, suggesting that length of stay alone may not be a strong predictor of cancellations.\n",
    "\n",
    "#### Insights:\n",
    "These findings highlight that while length of stay contributes some information, it is not a definitive factor in determining cancellation likelihood. Hotels may need to look at other factors, such as booking behaviour or customer segments, to better understand cancellation trends.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f2993a37-4cc6-4ce0-969a-2ac7bf516765",
   "metadata": {},
   "source": [
    "# **Business Insights & Conclusion**\n",
    "\n",
    "Based on our analysis, hotels can take the following actionable steps:\n",
    "\n",
    "- **Reduce long lead-time cancellations**: Offer discounts for early bookings that are non-refundable to encourage commitment.\n",
    "- **Encourage deposits**: Customers who pay upfront are more likely to follow through with their bookings, reducing cancellations.\n",
    "- **Adjust pricing strategies**: Tailor pricing for different market segments to minimise high-risk cancellations.\n",
    "- **Monitor online travel agency bookings**: These bookings tend to have a higher cancellation rate and may require additional policies or incentives.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ddbc8580-a557-4ce4-ba2f-8674f617a4c4",
   "metadata": {},
   "source": [
    "### Summary\n",
    "\n",
    "This analysis explored factors influencing booking cancellations and assessed the predictive accuracy of machine learning models. Through data visualisation, statistical summaries, and model evaluation, several key findings were identified.\n",
    "\n",
    "#### Key Influencing Factors:\n",
    "1. **Lead Time**: Longer lead times significantly increase the likelihood of cancellations, suggesting customers booking far in advance are more prone to changing plans.\n",
    "2. **Deposit Type**: Non-refundable deposits strongly reduce cancellations, highlighting their effectiveness in securing bookings.\n",
    "3. **Market Segment**: Online bookings and groups are more likely to cancel, reflecting distinct customer behaviours in these segments.\n",
    "4. **Economic Factors (ADR)**: Higher average daily rates (ADR) are associated with increased cancellations, potentially due to price sensitivity.\n",
    "\n",
    "#### Predictive Modelling:\n",
    "- Two models were developed to predict booking cancellations: **Logistic Regression** and **Random Forest**.\n",
    "- The **Random Forest model** achieved higher predictive accuracy (80.5%) compared to Logistic Regression (75.5%), with an AUC of 0.87, indicating a strong ability to distinguish between cancelled and non-cancelled bookings.\n",
    "- Feature importance analysis revealed that **deposit type**, **lead time**, and **ADR** are the most critical predictors of cancellations.\n",
    "\n",
    "#### Conclusion:\n",
    "The analysis highlights that financial conditions (e.g., deposit type) and booking behaviours (e.g., lead time and market segment) are key factors driving cancellations. The Random Forest model demonstrated robust performance, providing an effective tool for predicting cancellations and enabling hotels to take proactive measures to reduce them. Insights from this study can help hotels optimise booking policies, improve revenue management, and enhance customer satisfaction.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a1616f20-f39f-4c6c-8194-0e3b88ae5e1a",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "R",
   "language": "R",
   "name": "ir"
  },
  "language_info": {
   "codemirror_mode": "r",
   "file_extension": ".r",
   "mimetype": "text/x-r-source",
   "name": "R",
   "pygments_lexer": "r",
   "version": "4.4.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
