📊 Descriptive Statistics Table

numeric_data <- dplyr::select(uk_tourism, where(is.numeric))
desc_stats <- psych::describe(numeric_data)

desc_stats %>%
  dplyr::select(mean, sd, min, max, skew, kurtosis) %>%
  round(2) %>%
  knitr::kable("html", caption = "Descriptive Statistics of UK Tourism Data") %>%
  kableExtra::kable_styling(bootstrap_options = c("striped", "hover", "condensed"))
Descriptive Statistics of UK Tourism Data
mean sd min max skew kurtosis
Year 2016.50 4.18 2010.00 2023.00 0.00 -1.46
Total_Visitors 30.09 10.23 6.20 40.90 -1.17 0.18
Visitor_Expenditure 18.72 6.74 3.90 28.40 -0.93 -0.10
Expenditure_Per_Visitor 618.52 42.10 558.56 707.24 0.67 -0.31
Exchange_Rate_USD 1.43 0.14 1.24 1.65 0.21 -1.77
Exchange_Rate_EUR 1.19 0.07 1.13 1.38 1.65 2.26
Purpose_Holiday 11.66 4.06 2.00 16.00 -1.27 0.37
Purpose_Business 6.63 2.80 0.50 9.20 -1.10 -0.32
Purpose_VFR 9.42 2.61 3.30 12.70 -1.03 0.19
Purpose_Other 2.38 0.98 0.40 3.60 -0.56 -0.81
Brexit_Period 0.57 0.51 0.00 1.00 -0.26 -2.07
COVID_Period 0.14 0.36 0.00 1.00 1.83 1.45

📈 Total Visitors Over Time

ggplot(uk_tourism, aes(x = Year, y = Total_Visitors)) +
  geom_line(color = "blue", size = 1) +
  geom_point() +
  labs(title = "Total Visitors to the UK (2010–2023)",
       x = "Year", y = "Total Visitors (millions)") +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

💷 Visitor Expenditure Over Time

ggplot(uk_tourism, aes(x = Year, y = Visitor_Expenditure)) +
  geom_line(color = "darkgreen", size = 1) +
  geom_point() +
  labs(title = "Visitor Expenditure in the UK (2010–2023)",
       x = "Year", y = "Expenditure (£ billion)") +
  theme_minimal()

📦 Travel Restriction Impact

ggplot(uk_tourism, aes(x = Travel_Restrictions, y = Total_Visitors, fill = Travel_Restrictions)) +
  geom_boxplot() +
  labs(title = "Impact of Travel Restrictions on Visitor Numbers",
       x = "Travel Restrictions", y = "Total Visitors") +
  theme_minimal()