Exploratory Data Analysis of a Dataset using R

Author

Phil Corcoran

Introduction

The purpose of this report is to analyse a customer satisfaction survey in order to enhance overall customer satisfaction within various areas of the hotel. The dataset contains 25 variables, providing information on customer experience, spending habits, and membership levels. The report aims to identify areas for improvement in the hotel experience, offering insights to enhance customer experience and create greater customer loyalty and lifetime value.

The report also includes the analysis of 4-tier membership and consumer insights.

library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.3     ✔ readr     2.1.4
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.4.4     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.0
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
hotel_sat <- read_csv("hotel_satisfaction.csv")
Rows: 1500 Columns: 26
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr  (3): custID, visitPurpose, eliteSegment
dbl (23): satCleanRoom, satCleanBath, satCleanCommon, satRoomPrice, satDinin...

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
ggplot(data = hotel_sat)+
  geom_boxplot(mapping = aes(x = nightsStayed))

ggplot(data = hotel_sat) +
 geom_bar(mapping = aes(x = eliteSegment)) 

ggplot(data = hotel_sat)+
  geom_histogram(mapping = aes(x = satHouseStaff))
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Recommendations:

  • Improve overall standards of cleanliness in all areas of the hotel.

  • Over a better range based on customer preferences.

  • Ensure staff are highly trained in customer service and are knowledgeable, friendly, and willing to help.

  • Assess if the 4 Tier status is working and the extras offered are of value to members.

  • Customers should be segmented according to preferences.

  • Upgrade amenities where applicable.

  • It is important to implement measures to monitor customer satisfaction levels and respond appropriately continuously.

Conclusion:

By analysing the data from these surveys, valuable insights will be gained and can serve as a roadmap for implementing changes and enhancing customer experience and life time value.

Observations:

  1. Fluctuations over time. This suggests periods of higher and lower spending. This may be due to seasonality eg peak tourist times.

  2. There is a relationship between room spend and dining spend which suggests that one category has higher spending than the other.

  3. Outliers: There are a few outliers which may be due to promotions or special occasions.