d <- read.csv("C:/Users/ADMIN/Desktop/PTDL DINH TINH/Supermarket Transactions.csv", header=T)
c(““) : tạo vecto
d[,bdt] : tức là hàng nào cũng lấy và chỉ lấy cột trong categorical_columns.
# Chọn các biến định tính
bdt <- c("Gender", "MaritalStatus", "Homeowner",
"City", "StateorProvince", "Country",
"ProductFamily", "ProductDepartment", "ProductCategory","AnnualIncome")
# Tạo bộ dữ liệu mới chỉ chứa định tính
dc <- d[, bdt]
# Xem trước bộ dữ liệu mới
head(dc)
## Gender MaritalStatus Homeowner City StateorProvince Country
## 1 F S Y Los Angeles CA USA
## 2 M M Y Los Angeles CA USA
## 3 F M N Bremerton WA USA
## 4 M M Y Portland OR USA
## 5 F S Y Beverly Hills CA USA
## 6 F M Y Beverly Hills CA USA
## ProductFamily ProductDepartment ProductCategory AnnualIncome
## 1 Food Snack Foods Snack Foods $30K - $50K
## 2 Food Produce Vegetables $70K - $90K
## 3 Food Snack Foods Snack Foods $50K - $70K
## 4 Food Snacks Candy $30K - $50K
## 5 Drink Beverages Carbonated Beverages $130K - $150K
## 6 Food Deli Side Dishes $10K - $30K
table(dc$Gender)
##
## F M
## 7170 6889
gender <- table(dc$Gender)/sum(nrow(dc))
gender
##
## F M
## 0.5099936 0.4900064
Nhận xét
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
ggplot(dc, aes(x = Gender)) +
geom_bar(fill = "steelblue") +
theme_minimal() +
labs(title = "Biểu đồ tần suất theo Giới tính", x = "Giới tính", y = "Tần suất")
Nhận xét
Dữ liệu cho thấy có 7.170 khách hàng là nữ (51.0%) và 6.889 khách hàng là nam (49.0%).
Phân bố giới tính gần như đồng đều, không có sự chênh lệch lớn.
Điều này phản ánh rằng chuỗi siêu thị không nhắm đến một giới tính cụ thể, mà phục vụ tốt cả hai nhóm.
Ngoài ra, tỷ lệ nữ hơi cao hơn có thể do phụ nữ thường đảm nhận vai trò mua sắm thực phẩm và tiêu dùng gia đình, nên khả năng cao họ là người đứng tên giao dịch nhiều hơn trong hóa đơn.
table(dc$MaritalStatus)
##
## M S
## 6866 7193
table(dc$MaritalStatus)/sum(nrow(dc))
##
## M S
## 0.4883704 0.5116296
library(ggplot2)
table(dc$MaritalStatus)
##
## M S
## 6866 7193
ggplot(dc, aes(x = MaritalStatus)) +
geom_bar(fill = "tomato") +
theme_minimal() +
labs(title = "Tình trạng hôn nhân", x = "Marital Status", y = "Tan suat")
Nhận xét
Số lượng khách hàng độc thân (Single – ký hiệu S) là 7.193 người (51.16%), còn người đã kết hôn (Married – M) là 6.866 người (48.84%).
Mặc dù tỷ lệ khá cân bằng, nhưng nhóm độc thân chiếm tỷ lệ cao hơn một chút.
Giải thích hợp lý cho điều này có thể là:
Những người độc thân có xu hướng tự đi mua sắm nhiều hơn, không dựa vào bạn đời.
Ngoài ra, người trẻ độc thân thường sống ở thành thị và sử dụng dịch vụ siêu thị thường xuyên hơn, trong khi người đã kết hôn có thể mua theo nhóm hoặc theo hộ gia đình lớn và ít giao dịch hơn trên mỗi cá nhân.
table(dc$Homeowner)
##
## N Y
## 5615 8444
table(dc$Homeowner)/sum(nrow(dc))
##
## N Y
## 0.3993883 0.6006117
ggplot(dc, aes(x = Homeowner)) +
geom_bar(fill = "forestgreen") +
theme_minimal() +
labs(title = "Sở hữu nhà", x = "Homeowner", y = "Tần suất")
Nhận xét
8.444 khách hàng (60.06%) là chủ sở hữu nhà, còn 5.615 người (39.94%) không sở hữu.
Đây là một chỉ báo quan trọng về sự ổn định tài chính của khách hàng.
Người sở hữu nhà thường có:
Chi tiêu ổn định hơn.
Nhu cầu mua sắm nhiều hơn cho gia đình (thực phẩm, đồ gia dụng).
Trong khi đó, người không sở hữu nhà (có thể thuê nhà hoặc sống tạm thời) có thể:
Chi tiêu dè dặt hơn.
Ít mua hàng số lượng lớn, hoặc ưu tiên hàng nhỏ gọn, dễ vận chuyển.
table(dc$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
table(dc$City)/sum(nrow(dc))
##
## Acapulco Bellingham Beverly Hills Bremerton Camacho
## 0.027242336 0.010171420 0.057685468 0.059321431 0.032150224
## Guadalajara Hidalgo Los Angeles Merida Mexico City
## 0.005334661 0.060103848 0.065865282 0.046518245 0.013798990
## Orizaba Portland Salem San Andres San Diego
## 0.033003770 0.062308841 0.098584537 0.044170994 0.061597553
## San Francisco Seattle Spokane Tacoma Vancouver
## 0.009246746 0.065580767 0.062237712 0.089408920 0.045024539
## Victoria Walla Walla Yakima
## 0.012518671 0.011380610 0.026744434
ggplot(dc, aes(x = City)) +
geom_bar(fill = "skyblue") +
theme_minimal() +
labs(title = "Thành phố", x = "Thành phố", y = "Tần suất") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
Nhận xét
Các thành phố có tỷ lệ giao dịch cao nhất là:
Salem (9.86%)
Tacoma (8.94%)
Los Angeles (6.59%)
Seattle (6.56%)
Có thể nhận thấy sự tập trung mạnh tại các thành phố bờ Tây Hoa Kỳ, đặc biệt ở các bang Washington, Oregon và California.
Điều này gợi ý rằng:
Các chi nhánh ở các thành phố này có lưu lượng khách hàng lớn, hoặc
Các thành phố này có mật độ dân cư cao, nhu cầu tiêu dùng thường xuyên.
table(dc$StateorProvince)
##
## BC CA DF Guerrero Jalisco OR Veracruz WA
## 809 2733 815 383 75 2262 464 4567
## Yucatan Zacatecas
## 654 1297
table(dc$StateorProvince)/sum(nrow(dc))
##
## BC CA DF Guerrero Jalisco OR
## 0.057543211 0.194395049 0.057969984 0.027242336 0.005334661 0.160893378
## Veracruz WA Yucatan Zacatecas
## 0.033003770 0.324845295 0.046518245 0.092254072
ggplot(dc, aes(x = StateorProvince)) +
geom_bar(fill = "tomato") +
theme_minimal() +
labs(title = "Biểu đồ tần suất theo Bang/Tỉnh", x = "Bang/Tỉnh", y = "Tần suất") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
Nhận xét
Phân bố:
Washington: 32.48%
California: 19.44%
Oregon: 16.09%
Ba bang này đều ở bờ Tây Hoa Kỳ, và là những bang có:
Dân số đông, thị trường bán lẻ phát triển.
Thói quen tiêu dùng hiện đại, sử dụng dịch vụ siêu thị nhiều hơn so với các khu vực nông thôn.
Việc mở rộng kinh doanh hoặc đầu tư thêm vào các bang này là chiến lược khả thi.
table(dc$Country)
##
## Canada Mexico USA
## 809 3688 9562
table(dc$Country)/sum(nrow(dc))
##
## Canada Mexico USA
## 0.05754321 0.26232307 0.68013372
ggplot(dc, aes(x = Country)) +
geom_bar(fill = "goldenrod") +
theme_minimal() +
labs(title = "Biểu đồ tần suất theo Quốc gia", x = "Quốc gia", y = "Tần suất") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
Nhận xét
Tỷ lệ khách hàng theo quốc gia:
USA: 68.01%
Mexico: 26.23%
Canada: 5.75%
US Hoa Kỳ rõ ràng là thị trường trọng điểm.
Tuy nhiên, sự hiện diện tại Mexico (hơn 1/4 số giao dịch) cho thấy đây là thị trường thứ cấp tiềm năng, có thể mở rộng hoặc tăng nhận diện thương hiệu.
table(dc$ProductFamily)
##
## Drink Food Non-Consumable
## 1250 10153 2656
table(dc$ProductFamily)/sum(nrow(dc))
##
## Drink Food Non-Consumable
## 0.08891102 0.72217085 0.18891813
ggplot(dc, aes(x = ProductFamily)) +
geom_bar(fill = "seagreen") +
theme_minimal() +
labs(title = "Nhóm sản phẩm", x = "Nhóm sản phẩm", y = "Tần suất") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Nhận xét
Thực phẩm (Food) chiếm 72.22%, cao vượt trội so với:
Non-Consumables (18.89%)
Đồ uống (Drink – 8.89%)
Điều này cho thấy khách hàng mua sắm chủ yếu là để phục vụ nhu cầu ăn uống hàng ngày.
Siêu thị nên tiếp tục đầu tư mạnh vào:
Nguồn cung thực phẩm tươi,
Các sản phẩm thiết yếu giá tốt,
Chính sách ưu đãi số lượng lớn cho thực phẩm.
table(dc$ProductDepartment)
##
## Alcoholic Beverages Baked Goods Baking Goods Beverages
## 356 425 1072 680
## Breakfast Foods Canned Foods Canned Products Carousel
## 188 977 109 59
## Checkout Dairy Deli Eggs
## 82 903 699 198
## Frozen Foods Health and Hygiene Household Meat
## 1382 893 1420 89
## Periodicals Produce Seafood Snack Foods
## 202 1994 102 1600
## Snacks Starchy Foods
## 352 277
table(dc$ProductDepartment)/sum(nrow(dc))
##
## Alcoholic Beverages Baked Goods Baking Goods Beverages
## 0.025321858 0.030229746 0.076250089 0.048367594
## Breakfast Foods Canned Foods Canned Products Carousel
## 0.013372217 0.069492852 0.007753041 0.004196600
## Checkout Dairy Deli Eggs
## 0.005832563 0.064229319 0.049719041 0.014083505
## Frozen Foods Health and Hygiene Household Meat
## 0.098300021 0.063518031 0.101002916 0.006330464
## Periodicals Produce Seafood Snack Foods
## 0.014368020 0.141830856 0.007255139 0.113806103
## Snacks Starchy Foods
## 0.025037343 0.019702682
ggplot(dc, aes(x = ProductDepartment)) +
geom_bar(fill = "coral") +
theme_minimal() +
labs(title = "Biểu đồ tần suất theo Bộ phận sản phẩm", x = "Bộ phận", y = "Tần suất") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Nhận xét
Bộ phận lớn nhất:
Produce (Rau quả): 14.18%
Snack Foods: 11.38%
Household: 10.10%
Khách hàng mua nhiều các mặt hàng:
Tươi sống, dễ hỏng (produce) ➤ yêu cầu bảo quản và chuỗi cung ứng tốt.
Đồ ăn vặt và hàng gia dụng ➤ phản ánh thói quen tiêu dùng nhanh, tiện lợi.
Đây là cơ hội để tăng cường marketing nhóm sản phẩm tiện lợi, combo bữa ăn, sản phẩm cho hộ gia đình.
table(dc$ProductCategory)
##
## Baking Goods Bathroom Products Beer and Wine
## 484 365 356
## Bread Breakfast Foods Candles
## 425 417 45
## Candy Canned Anchovies Canned Clams
## 352 44 53
## Canned Oysters Canned Sardines Canned Shrimp
## 35 40 38
## Canned Soup Canned Tuna Carbonated Beverages
## 404 87 154
## Cleaning Supplies Cold Remedies Dairy
## 189 93 903
## Decongestants Drinks Eggs
## 85 135 198
## Electrical Frozen Desserts Frozen Entrees
## 355 323 118
## Fruit Hardware Hot Beverages
## 765 129 226
## Hygiene Jams and Jellies Kitchen Products
## 197 588 217
## Magazines Meat Miscellaneous
## 202 761 42
## Packaged Vegetables Pain Relievers Paper Products
## 48 192 345
## Pizza Plastic Products Pure Juice Beverages
## 194 141 165
## Seafood Side Dishes Snack Foods
## 102 153 1600
## Specialty Starchy Foods Vegetables
## 289 277 1728
table(dc$ProductCategory)/sum(nrow(dc))
##
## Baking Goods Bathroom Products Beer and Wine
## 0.034426346 0.025962017 0.025321858
## Bread Breakfast Foods Candles
## 0.030229746 0.029660716 0.003200797
## Candy Canned Anchovies Canned Clams
## 0.025037343 0.003129668 0.003769827
## Canned Oysters Canned Sardines Canned Shrimp
## 0.002489508 0.002845153 0.002702895
## Canned Soup Canned Tuna Carbonated Beverages
## 0.028736041 0.006188207 0.010953837
## Cleaning Supplies Cold Remedies Dairy
## 0.013443346 0.006614980 0.064229319
## Decongestants Drinks Eggs
## 0.006045949 0.009602390 0.014083505
## Electrical Frozen Desserts Frozen Entrees
## 0.025250729 0.022974607 0.008393200
## Fruit Hardware Hot Beverages
## 0.054413543 0.009175617 0.016075112
## Hygiene Jams and Jellies Kitchen Products
## 0.014012376 0.041823743 0.015434953
## Magazines Meat Miscellaneous
## 0.014368020 0.054129028 0.002987410
## Packaged Vegetables Pain Relievers Paper Products
## 0.003414183 0.013656732 0.024539441
## Pizza Plastic Products Pure Juice Beverages
## 0.013798990 0.010029163 0.011736254
## Seafood Side Dishes Snack Foods
## 0.007255139 0.010882709 0.113806103
## Specialty Starchy Foods Vegetables
## 0.020556227 0.019702682 0.122910591
ggplot(dc, aes(x = ProductCategory)) +
geom_bar(fill = "dodgerblue4") +
theme_minimal() +
labs(title = "Biểu đồ tần suất theo Loại sản phẩm", x = "Loại sản phẩm", y = "Tần suất") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
Nhận xét
Loại phổ biến nhất:
Vegetables (Rau): 12.29%
Snack Foods: 11.38%
Dairy (Sữa): 6.42%
Fruit, Meat, Frozen Foods…
Đây là những mặt hàng tiêu dùng nhanh, có vòng đời ngắn.
Việc khách hàng mua chủ yếu các mặt hàng thiết yếu cho thấy siêu thị hoạt động tốt trong việc phục vụ nhu cầu cơ bản, chứ không phải sản phẩm xa xỉ hay không thường xuyên.
table(dc$AnnualIncome)
##
## $10K - $30K $110K - $130K $130K - $150K $150K + $30K - $50K
## 3090 643 760 273 4601
## $50K - $70K $70K - $90K $90K - $110K
## 2370 1709 613
table(dc$AnnualIncome)/sum(nrow(dc))
##
## $10K - $30K $110K - $130K $130K - $150K $150K + $30K - $50K
## 0.21978804 0.04573583 0.05405790 0.01941817 0.32726367
## $50K - $70K $70K - $90K $90K - $110K
## 0.16857529 0.12155914 0.04360196
ggplot(dc, aes(x = AnnualIncome)) +
geom_bar(fill = "orchid") +
theme_minimal() +
labs(title = "Thu nhập hàng năm", x = "Annual Income", y = "Tần suất") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Nhận xét
Nhóm $30K - $50K chiếm nhiều nhất (32.73%), theo sau là:
$10K - $30K (21.98%)
$50K - $70K (16.86%)
Rất ít khách hàng có thu nhập trên $90K.
Điều này cho thấy rằng chuỗi siêu thị chủ yếu phục vụ nhóm thu nhập trung bình và thấp – phù hợp với chiến lược giá rẻ, hàng hóa thiết yếu.
Chiến lược marketing, khuyến mãi, và chính sách giá nên tập trung vào nhóm này (ví dụ: combo tiết kiệm, chiết khấu theo số lượng).