Tải dữ liệu

# Đọc dữ liệu từ file CSV
library()
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
d <- read.csv(file.choose(), header = T)

# Kích thước của tệp dữ liệu
dim(d)
## [1] 14059    16
# xem cấu trúc của bộ dữ liệu
str(d)
## 'data.frame':    14059 obs. of  16 variables:
##  $ X                : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ PurchaseDate     : chr  "12/18/2007" "12/20/2007" "12/21/2007" "12/21/2007" ...
##  $ CustomerID       : int  7223 7841 8374 9619 1900 6696 9673 354 1293 7938 ...
##  $ Gender           : chr  "F" "M" "F" "M" ...
##  $ MaritalStatus    : chr  "S" "M" "M" "M" ...
##  $ Homeowner        : chr  "Y" "Y" "N" "Y" ...
##  $ Children         : int  2 5 2 3 3 3 2 2 3 1 ...
##  $ AnnualIncome     : chr  "$30K - $50K" "$70K - $90K" "$50K - $70K" "$30K - $50K" ...
##  $ City             : chr  "Los Angeles" "Los Angeles" "Bremerton" "Portland" ...
##  $ StateorProvince  : chr  "CA" "CA" "WA" "OR" ...
##  $ Country          : chr  "USA" "USA" "USA" "USA" ...
##  $ ProductFamily    : chr  "Food" "Food" "Food" "Food" ...
##  $ ProductDepartment: chr  "Snack Foods" "Produce" "Snack Foods" "Snacks" ...
##  $ ProductCategory  : chr  "Snack Foods" "Vegetables" "Snack Foods" "Candy" ...
##  $ UnitsSold        : int  5 5 3 4 4 3 4 6 1 2 ...
##  $ Revenue          : num  27.38 14.9 5.52 4.44 14 ...
d

Bộ dữ liệu là data frame, bao gồm 14059 quan sát và 16 biến. Các biến định lượng là các biến: Children, UnitsSold và Revenue. Các biến định lượng là các biến: Gender, MaritalStatus, Homeowner, AnnualIncome, City, StateoProvince, Country, ProductFamily, ProductDepartment, ProductCategory. Cụ thể:

  • Gender: Giới tính của khách hàng: F = Female (Phụ nữ), M = Male (Đàn ông).

  • MaritalStatus: Tình trạng hôn nhân: S = Single (độc thân), M = Married (đã kết hôn).

  • Homeowner: Khách hàng có sở hữu nhà không: Y = Yes, N = No.

  • Children: Số con của khách hàng.

  • AnnualIncome: Thu nhập hàng năm của khách hàng.

  • City: Thành phố nơi khách hàng sinh sống.

  • StateorProvince: Bang hoặc tỉnh tương ứng với thành phố.

  • Country: Quốc gia.

  • ProductFamily: Nhóm sản phẩm chính.

  • ProductDepartment: Bộ phận các sản phẩm chi tiết hơn trong từng nhóm.

  • ProductCategory: Danh mục cụ thể của sản phẩm.

  • UnitsSold: Số lượng đơn vị sản phẩm được bán trong một giao dịch với mỗi khách hàng.

  • Revenue: Tổng doanh thu (USD) từ giao dịch với khách hàng.

Ngoài ra các biến X là số thứ tự, PurchaseDate là ngày giao dịch mua hàng tại siêu thị và CustomerID là mã định danh khách hàng.

Thống kê mô tả

Thống kê mô tả cho các biến định lượng

a <- d[ ,c(7,15,16)]
summary(a)
##     Children      UnitsSold        Revenue     
##  Min.   :0.00   Min.   :1.000   Min.   : 0.53  
##  1st Qu.:1.00   1st Qu.:3.000   1st Qu.: 6.84  
##  Median :3.00   Median :4.000   Median :11.25  
##  Mean   :2.53   Mean   :4.081   Mean   :13.00  
##  3rd Qu.:4.00   3rd Qu.:5.000   3rd Qu.:17.37  
##  Max.   :5.00   Max.   :8.000   Max.   :56.70

Thống kê mô tả cho tập dữ liệu thông qua các biến được biểu hiện như sau:

  • Đối với biến Children

    • Số lượng con cái của khách hàng có phạm vi từ 0 đến 5 con, 50% khách hàng có trên 3 con và 50% số khách hàng có con nhỏ hơn 3.

    • 25% khách hàng có số con ít hơn 1 và 75% khách hàng có số con nhiều hơn 1.

    • Có 75% khách hàng có số con ít hơn 4 và 25% khách hàng có số con nhiều hơn 4.

  • Đối với biến UnitsSold

    • Số sản phẩm được bán cho mỗi khách hàng có phạm vi từ 1 đến 8, với số lượng trung bình là 4,081 sản phẩm.

    • Có 25% khách hàng mua ít hơn 3 sản phẩm và 75% khách hàng mua nhiều hơn 3 sản phẩm.

    • Có 50% khách hàng mua ít hơn 4 sản phẩm và 50% còn lại mua số lượng nhiều hơn 4.

    • Có 75% khách hàng mua ít hơn 5 sản phẩm và 25% khách hàng mua nhiều hơn 5 sản phẩm.

  • Đối với biến Revenue

    • Tổng doanh thu thu được từ việc bán sản phẩm có doanh thu từ 0,53 USD đến 56,7 USD, với doanh thu trung bình là 13 USD.

    • 25% tổng doanh thu nhỏ hơn 6,84 USD và 75% còn lại lớn hơn 6,84 USD.

    • 50% tổng doanh thu nhỏ hơn 13 USD và 50% còn lại lớn hơn.

    • 75% doanh thu nhỏ hơn 17,37 USD và 25% còn lại nhỏ hơn 17,37 USD.

Thống kê mô tả cho các biến định tính

table(d$Gender)
## 
##    F    M 
## 7170 6889

Biến Gender thể hiện giới tính của khách hàng: có 7170 khách hàng là nữ và 6889 khách hàng là nam.

table(d$MaritalStatus)
## 
##    M    S 
## 6866 7193

Biến MaritalStatus thể hiện tình trạng hôn nhân của khách hàng: có 6866 khách hàng đã kết hôn và 7193 người đang độc thân.

table(d$Homeowner)
## 
##    N    Y 
## 5615 8444

Tình trạng khách hàng có nhà hay không được thể hiện qua biến Homeowner, có 5615 khách hàng sở hữu nhà và 8444 người không sở hữu.

table(d$AnnualIncome)
## 
##   $10K - $30K $110K - $130K $130K - $150K       $150K +   $30K - $50K 
##          3090           643           760           273          4601 
##   $50K - $70K   $70K - $90K  $90K - $110K 
##          2370          1709           613

Biến AnnualIncome thể hiện thu nhập hằng năm của khách hàng bao gồm các nhóm: - Nhóm thu nhập từ $10K - $30K gồm 3090 khách hàng, - Nhóm thu nhập từ $30K - $50K gồm 4610 khách hàng, - Nhóm thu nhâp từ $50K - $70K gồm 2370 khách hàng, - Nhóm thu nhập từ $70K - $90K gồm 1709 khách hàng, - Nhóm thu nhập từ $90K - $110K gồm 613 khách hàng, - Nhóm thu nhập từ $110K - $130K gồm 643 khách hàng, - Nhóm thu nhập từ $130K - $150K gồm 760 khách hàng và - Có 273 khách hàng có thu nhập trên $150K.

table(d$City)
## 
##      Acapulco    Bellingham Beverly Hills     Bremerton       Camacho 
##           383           143           811           834           452 
##   Guadalajara       Hidalgo   Los Angeles        Merida   Mexico City 
##            75           845           926           654           194 
##       Orizaba      Portland         Salem    San Andres     San Diego 
##           464           876          1386           621           866 
## San Francisco       Seattle       Spokane        Tacoma     Vancouver 
##           130           922           875          1257           633 
##      Victoria   Walla Walla        Yakima 
##           176           160           376
ggplot(d, aes(x = City)) +
    geom_bar(fill = 'pink') +
    labs(x = 'Thành phố', y = 'Số lượng khách hàng') +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Biến City thể hiện thành phố khách hàng sinh sống, bao gồm 23 thành phố, trong đó khách hàng chủ yếu đến từ Salem với số lượng khách là 1386 khách hàng. Ngược lại, chỉ có 75 khách hàng đến từ Guadalajara.

table(d$StateorProvince)
## 
##        BC        CA        DF  Guerrero   Jalisco        OR  Veracruz        WA 
##       809      2733       815       383        75      2262       464      4567 
##   Yucatan Zacatecas 
##       654      1297
ggplot(d, aes(x = StateorProvince)) +
    geom_bar(fill = 'blue') +
    labs(x = 'Tỉnh (bang)', y = 'Số lượng khách hàng')

Đây là bảng tần số thể hiện các bang hoặc tỉnh tương ướng với thành phố, nơi khách hàng sinh sống. Số khách hàng đến từ các bang (hoặc tỉnh) được thể hiện như sau: có 809 khách hàng đến từ BC, 2733 khách hàng từ CA, 815 khách hàng từ DF, 383 khách hàng đến từ Guerrero, 75 khách hàng từ Jalisco, 2262 khách hàng từ OR, 464 khách hàng đến từ Veracruz, 4567 khách hàng từ WA, 654 khách hàng từ Yucatan và Zacatecas có 1297 khách hàng.

table(d$Country)
## 
## Canada Mexico    USA 
##    809   3688   9562

Biến Country thể hiện khách hàng đến từ 3 quốc gia khác nhau như 809 khách hàng từ Canada, 3688 khách hàng đến từ Mexico và 9562 khách hàng còn lại đến từ USA.

table(d$ProductFamily)
## 
##          Drink           Food Non-Consumable 
##           1250          10153           2656

Các sản phẩm chính được mua bao gồm: Drink, Food và Non-Consumable, trong đó có 1250 khách hàng mua các sản phẩm đồ uống (Drink), 10153 khách hàng mua đồ ăn (Food) và 2656 khách hàng mua hàng không tiêu dùng (Non-Consumable).

ggplot(d, aes(x = ProductDepartment)) +
    geom_bar(fill = 'purple') +
    labs(x = 'ProductDepartment', y = 'Số lượng khách hàng') +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Biến ProductDepartment thể hiện chi tiết các bộ phẩn sản phẩm cần mua trong từng nhóm sản phẩm chính, bao gồm: Seafood, Alcoholic Beverages, Household,…ứng với từng khách hàng.

ggplot(d, aes(x = ProductCategory)) +
    geom_bar(fill = 'brown') +
    labs(x = 'ProducCategory', y = 'Số lượng khách hàng') +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Tương tự ProductDepartment, biến ProductCategory là danh mục cụ thể của các sản phầm mà khách hàng cần mua, ví dụ Vegetables, Jams and Jellies, Baking Goods,…