library(knitr)
## Warning: package 'knitr' was built under R version 4.3.3
library(tibble)
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
library(forcats)
## Warning: package 'forcats' was built under R version 4.3.3
Tệp Supermarket Transactions được lưu dưới định dạng csv. Đọc bộ dữ liệu này vào phần mềm R
Sau khi đọc, bộ dữ liệu được gán vào biến data để dễ dàng thao tác.
data <- read.csv("~/THAYTUONG/Supermarket Transactions.csv", header = T )
str(data)
## 'data.frame': 14059 obs. of 16 variables:
## $ X : int 1 2 3 4 5 6 7 8 9 10 ...
## $ PurchaseDate : chr "2007-12-18" "2007-12-20" "2007-12-21" "2007-12-21" ...
## $ 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 ...
head(data)
## X PurchaseDate CustomerID Gender MaritalStatus Homeowner Children
## 1 1 2007-12-18 7223 F S Y 2
## 2 2 2007-12-20 7841 M M Y 5
## 3 3 2007-12-21 8374 F M N 2
## 4 4 2007-12-21 9619 M M Y 3
## 5 5 2007-12-22 1900 F S Y 3
## 6 6 2007-12-22 6696 F M Y 3
## AnnualIncome City StateorProvince Country ProductFamily
## 1 $30K - $50K Los Angeles CA USA Food
## 2 $70K - $90K Los Angeles CA USA Food
## 3 $50K - $70K Bremerton WA USA Food
## 4 $30K - $50K Portland OR USA Food
## 5 $130K - $150K Beverly Hills CA USA Drink
## 6 $10K - $30K Beverly Hills CA USA Food
## ProductDepartment ProductCategory UnitsSold Revenue
## 1 Snack Foods Snack Foods 5 27.38
## 2 Produce Vegetables 5 14.90
## 3 Snack Foods Snack Foods 3 5.52
## 4 Snacks Candy 4 4.44
## 5 Beverages Carbonated Beverages 4 14.00
## 6 Deli Side Dishes 3 4.37
tail(data)
## X PurchaseDate CustomerID Gender MaritalStatus Homeowner Children
## 14054 14054 2009-12-29 2032 F M N 3
## 14055 14055 2009-12-29 9102 F M Y 2
## 14056 14056 2009-12-29 4822 F M Y 3
## 14057 14057 2009-12-31 250 M S Y 1
## 14058 14058 2009-12-31 6153 F S N 4
## 14059 14059 2009-12-31 3656 M S N 3
## AnnualIncome City StateorProvince Country ProductFamily
## 14054 $10K - $30K Yakima WA USA Non-Consumable
## 14055 $10K - $30K Bremerton WA USA Food
## 14056 $10K - $30K Walla Walla WA USA Food
## 14057 $30K - $50K Portland OR USA Drink
## 14058 $50K - $70K Spokane WA USA Drink
## 14059 $50K - $70K Portland OR USA Non-Consumable
## ProductDepartment ProductCategory UnitsSold Revenue
## 14054 Household Paper Products 5 14.50
## 14055 Baking Goods Baking Goods 3 9.64
## 14056 Frozen Foods Vegetables 3 7.45
## 14057 Beverages Pure Juice Beverages 4 3.24
## 14058 Dairy Dairy 2 4.00
## 14059 Household Electrical 5 25.53
Bộ dữ liệu Supermarket Transactions bao gồm 14,059 giao dịch mua hàng được thực hiện tại một chuỗi siêu thị. Mỗi dòng dữ liệu tương ứng với một giao dịch và chứa đầy đủ thông tin về khách hàng (mã định danh, giới tính, tình trạng hôn nhân, thu nhập, số con, tình trạng sở hữu nhà), vị trí địa lý (thành phố, bang, quốc gia), cũng như thông tin sản phẩm (danh mục sản phẩm, số lượng bán, doanh thu).
Bộ dữ liệu này là nguồn thông tin giá trị phục vụ nhiều mục đích phân tích khác nhau như:
Phân tích hành vi tiêu dùng của khách hàng theo nhân khẩu học;
Phân khúc thị trường dựa trên thu nhập, vị trí địa lý hoặc sở thích sản phẩm;
Đánh giá hiệu quả kinh doanh theo từng nhóm sản phẩm hoặc từng khu vực;
Hỗ trợ xây dựng các mô hình dự báo nhu cầu, quản lý hàng tồn kho hoặc tối ưu hóa chiến lược tiếp thị.
Bộ dữ liệu bao gồm các biến sau:
#hiển thị tên các biến
names(data)
## [1] "X" "PurchaseDate" "CustomerID"
## [4] "Gender" "MaritalStatus" "Homeowner"
## [7] "Children" "AnnualIncome" "City"
## [10] "StateorProvince" "Country" "ProductFamily"
## [13] "ProductDepartment" "ProductCategory" "UnitsSold"
## [16] "Revenue"
#tạo bảng mô tả các biến và dịch thuật
variable_desc <- tibble::tibble(
Biến = c("X","PurchaseDte","CustomerID","Gender","MaritalStatus","Homeowner",
"Children","AnnualIncome","City","StateorProvince", "Country",
"ProductFamily", "ProductDepartment", "ProductCategory",
"UnitsSold", "Revenue"),
Dịch_thuật = c("Số thứ tự dòng", "Ngày mua hàng", "Mã khách hàng", "Giới tính",
"Tình trạng hôn nhân", "Sở hữu nhà","Số con", "Thu nhập hàng năm",
"Thành phố", "Bang/Tỉnh", "Quốc gia", "Nhóm sản phẩm",
"Bộ phận sản phẩm", "Loại sản phẩm", "Số lượng bán", "Doanh thu")
)
kable(variable_desc, caption = "Biến, Dịch thuật") #in bảng
| Biến | Dịch_thuật |
|---|---|
| X | Số thứ tự dòng |
| PurchaseDte | Ngày mua hàng |
| CustomerID | Mã khách hàng |
| Gender | Giới tính |
| MaritalStatus | Tình trạng hôn nhân |
| Homeowner | Sở hữu nhà |
| Children | Số con |
| AnnualIncome | Thu nhập hàng năm |
| City | Thành phố |
| StateorProvince | Bang/Tỉnh |
| Country | Quốc gia |
| ProductFamily | Nhóm sản phẩm |
| ProductDepartment | Bộ phận sản phẩm |
| ProductCategory | Loại sản phẩm |
| UnitsSold | Số lượng bán |
| Revenue | Doanh thu |
bdt <- c("Gender","MaritalStatus","Homeowner","AnnualIncome","City","StateorProvince","Country","ProductFamily","ProductDepartment","ProductCategory") # Tạo bộ dữ liệu mới chỉ chứa biến định tính
# Xem trước dữ liệu
head(bdt)
## [1] "Gender" "MaritalStatus" "Homeowner" "AnnualIncome"
## [5] "City" "StateorProvince"
# Kiểm tra NA trong các biến định tính
na_summary <- sapply(data[bdt], function(x) sum(is.na(x))) #trả về tổng số NA trong mỗi cột định tính
na_df <- data.frame(Bien = names(na_summary), So_NA = na_summary)
# Hiển thị bảng số lượng NA
knitr::kable(na_df, caption = "Số lượng giá trị thiếu trong các biến định tính")
| Bien | So_NA | |
|---|---|---|
| Gender | Gender | 0 |
| MaritalStatus | MaritalStatus | 0 |
| Homeowner | Homeowner | 0 |
| AnnualIncome | AnnualIncome | 0 |
| City | City | 0 |
| StateorProvince | StateorProvince | 0 |
| Country | Country | 0 |
| ProductFamily | ProductFamily | 0 |
| ProductDepartment | ProductDepartment | 0 |
| ProductCategory | ProductCategory | 0 |
# Gợi ý cách xử lý: thay thế bằng mode nếu có NA
replace_na_with_mode <- function(x) {
x[is.na(x)] <- names(which.max(table(x)))
return(x)
}
# Xử lý các biến có NA (nếu có)
data[bdt] <- lapply(data[bdt], function(col) {
if (any(is.na(col))) {
replace_na_with_mode(col)
} else {
col
}
})
# Chuyển sang factor
data[bdt] <- lapply(data[bdt], as.factor)
# Kiểm tra lại kiểu dữ liệu
str(data[bdt])
## 'data.frame': 14059 obs. of 10 variables:
## $ Gender : Factor w/ 2 levels "F","M": 1 2 1 2 1 1 2 1 2 2 ...
## $ MaritalStatus : Factor w/ 2 levels "M","S": 2 1 1 1 2 1 2 1 1 2 ...
## $ Homeowner : Factor w/ 2 levels "N","Y": 2 2 1 2 2 2 2 2 2 1 ...
## $ AnnualIncome : Factor w/ 8 levels "$10K - $30K",..: 5 7 6 5 3 1 5 4 1 6 ...
## $ City : Factor w/ 23 levels "Acapulco","Bellingham",..: 8 8 4 12 3 3 13 23 2 15 ...
## $ StateorProvince : Factor w/ 10 levels "BC","CA","DF",..: 2 2 8 6 2 2 6 8 8 2 ...
## $ Country : Factor w/ 3 levels "Canada","Mexico",..: 3 3 3 3 3 3 3 3 3 3 ...
## $ ProductFamily : Factor w/ 3 levels "Drink","Food",..: 2 2 2 2 1 2 2 2 3 3 ...
## $ ProductDepartment: Factor w/ 22 levels "Alcoholic Beverages",..: 20 18 20 21 4 11 13 6 15 14 ...
## $ ProductCategory : Factor w/ 45 levels "Baking Goods",..: 42 45 42 7 15 41 5 13 16 35 ...
Nhận xét kết quả kiểm tra giá trị thiếu (NA) trong các biến định tính
Sau khi kiểm tra các biến định tính trong bộ dữ liệu gồm 10 biến với 14.059 quan sát, kết quả cho thấy:
Tất cả các biến định tính như Gender, MaritalStatus, Homeowner, AnnualIncome, City, StateorProvince, Country, ProductFamily, ProductDepartment, ProductCategory đều đang được lưu dưới dạng factor với số lượng mức (levels) tương ứng. Việc kiểm tra số lượng giá trị thiếu (NA) bằng hàm sapply() cho thấy không phát hiện giá trị thiếu nào trong các biến định tính này. Điều này có nghĩa là dữ liệu đã đầy đủ ở tất cả các quan sát, không tồn tại dữ liệu bị bỏ trống hoặc chưa nhập trong các cột này.
Kết quả này đồng nghĩa với việc các biến định tính được ghi nhận hoàn chỉnh, có thể sử dụng trực tiếp cho các phân tích thống kê và mô hình hóa mà không cần xử lý bổ sung về giá trị thiếu.
Tuy nhiên, do bản chất của các biến định tính là dữ liệu phân loại, nên việc chuyển kiểu dữ liệu các biến này sang kiểu factor là rất cần thiết để đảm bảo các phép phân tích sau đó được thực hiện chính xác. Kiểu factor giúp R nhận diện đúng các biến này là phân loại, thay vì nhầm lẫn với dữ liệu dạng chuỗi hoặc số.
Trong quy trình xử lý dữ liệu, ngay cả khi không có giá trị thiếu, việc gọi hàm as.factor() để “xác nhận” lại kiểu dữ liệu là một bước chuẩn hóa quan trọng. Nó giúp đảm bảo kiểu dữ liệu luôn đồng nhất và tránh lỗi phát sinh nếu có thay đổi dữ liệu trong các bước xử lý sau này.
Trường hợp nếu phát hiện có giá trị thiếu trong các biến định tính, phương án xử lý phù hợp là thay thế các giá trị NA bằng mode (giá trị xuất hiện nhiều nhất) của biến đó, nhằm bảo toàn đặc tính phân loại và tránh mất mát dữ liệu. Sau khi thay thế, việc chuyển lại kiểu dữ liệu sang factor cũng rất cần thiết để cập nhật đúng các mức (levels) mới và đảm bảo tính chính xác cho phân tích.
table_gender <- table(data$Gender) # Tạo bảng tần suất
prop_gender <- prop.table(table_gender)
kable(as.data.frame(table_gender), caption = "Tần suất giới tính")
| Var1 | Freq |
|---|---|
| F | 7170 |
| M | 6889 |
kable(as.data.frame(prop_gender), caption = "Tỷ lệ giới tính (%)")
| Var1 | Freq |
|---|---|
| F | 0.5099936 |
| M | 0.4900064 |
ggplot(data, aes(x = Gender)) +
geom_bar(fill = "#69b3a2") +
labs(title = "Phân bố giới tính", x = "Giới tính", y = "Số lượng") +
theme_minimal()
# Tạo data frame từ bảng tỷ lệ
gender_df <- as.data.frame(prop_gender)
# Đổi tên cột cho dễ hiểu
colnames(gender_df) <- c("Gender", "Freq")
# Thêm cột phần trăm và nhãn
gender_df$Percentage <- round(gender_df$Freq * 100, 1)
gender_df$Label <- paste0(gender_df$Gender, " (", gender_df$Percentage, "%)")
# Vẽ biểu đồ tròn
ggplot(gender_df, aes(x = "", y = Freq, fill = Gender)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y") +
geom_text(aes(label = Label), position = position_stack(vjust = 0.5), size = 4) +
labs(title = "Biểu đồ tròn phân bố giới tính") +
theme_void() +
scale_fill_manual(values = c("#69b3a2", "#404080")) # Màu tùy chọn cho các giới tính
Nhận xét về phân bố giới tính
Kết quả thống kê cho thấy trong bộ dữ liệu có 7.170 khách hàng nữ, chiếm khoảng 51.0%, và 6.889 khách hàng nam, chiếm 49.0%. Tỷ lệ này cho thấy sự phân bố giới tính khá cân bằng, không có sự chênh lệch đáng kể giữa hai nhóm.
Điều này gợi ý rằng chuỗi siêu thị không tập trung phục vụ riêng cho một giới nào, mà hướng tới đáp ứng nhu cầu tiêu dùng của cả nam và nữ một cách đồng đều.
Tuy nhiên, tỷ lệ khách hàng nữ nhỉnh hơn một chút có thể phản ánh vai trò của phụ nữ trong việc quản lý chi tiêu và mua sắm cho gia đình, dẫn đến việc họ xuất hiện thường xuyên hơn trong các giao dịch được ghi nhận.
table_marital <- table(data$MaritalStatus)
prop_marital <- prop.table(table_marital)
kable(as.data.frame(table_marital), caption = "Tần suất tình trạng hôn nhân")
| Var1 | Freq |
|---|---|
| M | 6866 |
| S | 7193 |
kable(as.data.frame(prop_marital), caption = "Tỷ lệ tình trạng hôn nhân (%)")
| Var1 | Freq |
|---|---|
| M | 0.4883704 |
| S | 0.5116296 |
ggplot(data, aes(x = MaritalStatus)) +
geom_bar(fill = "#f28e2b") +
labs(title = "Tình trạng hôn nhân", x = "Tình trạng", y = "Số lượng") +
theme_minimal()
# Chuyển bảng tỷ lệ thành data frame
marital_df <- as.data.frame(prop_marital)
# Đặt lại tên cột
colnames(marital_df) <- c("MaritalStatus", "Freq")
# Thêm cột phần trăm và nhãn
marital_df$Percentage <- round(marital_df$Freq * 100, 1)
marital_df$Label <- paste0(marital_df$MaritalStatus, " (", marital_df$Percentage, "%)")
# Vẽ biểu đồ tròn
ggplot(marital_df, aes(x = "", y = Freq, fill = MaritalStatus)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y") +
geom_text(aes(label = Label), position = position_stack(vjust = 0.5), size = 4) +
labs(title = "Biểu đồ tròn tình trạng hôn nhân") +
theme_void() +
scale_fill_brewer(palette = "Pastel1") # Dễ nhìn cho nhiều nhóm
Nhận xét về tình trạng hôn nhân của khách hàng
Phân tích dữ liệu cho thấy nhóm khách hàng độc thân (Single - ký hiệu S) chiếm 7.193 người, tương đương 51.16%, trong khi nhóm đã kết hôn (Married - M) có 6.866 người, chiếm 48.84%.
Tỷ lệ này nhìn chung khá cân đối giữa hai nhóm, tuy nhiên khách hàng độc thân có phần chiếm ưu thế nhẹ. Sự chênh lệch không lớn nhưng vẫn phản ánh những đặc điểm thú vị trong hành vi tiêu dùng theo tình trạng hôn nhân.
Một số nguyên nhân hợp lý có thể giải thích cho hiện tượng này:
Người độc thân thường có xu hướng tự chủ hơn trong việc mua sắm, tự quyết định và trực tiếp thực hiện các giao dịch tiêu dùng mà không cần tham khảo ý kiến từ người khác trong hộ gia đình. Điều này giúp tăng khả năng xuất hiện của họ trong hệ thống ghi nhận giao dịch.
Nhóm người trẻ độc thân, đặc biệt là những người sống ở khu vực thành thị, có nhịp sống năng động và phụ thuộc nhiều hơn vào các kênh bán lẻ hiện đại như siêu thị. Họ cũng có xu hướng mua sắm theo nhu cầu cá nhân, với tần suất thường xuyên nhưng số lượng hàng hóa không quá lớn.
Trong khi đó, người đã kết hôn có thể tập trung việc mua sắm cho hộ gia đình, dẫn đến việc một người đại diện thực hiện giao dịch cho cả nhà. Điều này làm giảm số lượng giao dịch trên mỗi cá nhân, đặc biệt là trong các gia đình truyền thống.
table_home <- table(data$Homeowner)
prop_home <- prop.table(table_home)
kable(as.data.frame(table_home), caption = "Tần suất sở hữu nhà")
| Var1 | Freq |
|---|---|
| N | 5615 |
| Y | 8444 |
kable(as.data.frame(prop_home), caption = "Tỷ lệ sở hữu nhà (%)")
| Var1 | Freq |
|---|---|
| N | 0.3993883 |
| Y | 0.6006117 |
ggplot(data, aes(x = Homeowner)) +
geom_bar(fill = "#4e79a7") +
labs(title = "Sở hữu nhà", x = "Tình trạng", y = "Số lượng") +
theme_minimal()
# Tạo bảng tỷ lệ và chuyển thành data frame
home_df <- as.data.frame(prop_home)
# Đổi tên cột cho rõ ràng
colnames(home_df) <- c("Homeowner", "Freq")
# Tạo nhãn phần trăm
home_df$Percentage <- round(home_df$Freq * 100, 1)
home_df$Label <- paste0(home_df$Homeowner, " (", home_df$Percentage, "%)")
# Vẽ biểu đồ tròn
ggplot(home_df, aes(x = "", y = Freq, fill = Homeowner)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y") +
geom_text(aes(label = Label), position = position_stack(vjust = 0.5), size = 4) +
labs(title = "Biểu đồ tròn tình trạng sở hữu nhà") +
theme_void() +
scale_fill_manual(values = c("#4e79a7", "#f28e2b")) # Màu cho 2 nhóm (có nhà, không có nhà)
Nhận xét về tình trạng sở hữu nhà của khách hàng
Dữ liệu cho thấy trong tổng số 14.059 khách hàng, có 8.444 người (60.06%) là chủ sở hữu nhà ở, trong khi 5.615 người (39.94%) không sở hữu nhà. Đây là một biến định tính mang tính chất nhân khẩu học quan trọng, phản ánh phần nào mức độ ổn định về kinh tế và đặc điểm tiêu dùng của khách hàng.
Tình trạng sở hữu nhà có thể liên quan chặt chẽ đến hành vi chi tiêu và nhu cầu mua sắm như sau:
Nhóm khách hàng sở hữu nhà thường có:
Mức độ ổn định tài chính cao hơn, vì việc mua và duy trì nhà ở đòi hỏi nguồn lực kinh tế bền vững.
Nhu cầu tiêu dùng đa dạng và dài hạn hơn, đặc biệt liên quan đến các sản phẩm phục vụ cuộc sống gia đình như thực phẩm, đồ dùng gia dụng, thiết bị nhà bếp, đồ trang trí,…
Tần suất mua sắm định kỳ cao hơn, nhằm duy trì sinh hoạt trong không gian sống riêng.
Ngược lại, nhóm khách hàng không sở hữu nhà ở – có thể là người thuê nhà, sinh viên, người lao động lưu động, hoặc đang sống cùng gia đình – có xu hướng:
Chi tiêu thận trọng hơn, ưu tiên các mặt hàng thiết yếu hoặc ngắn hạn.
Giảm thiểu mua sắm các sản phẩm cồng kềnh, khó vận chuyển hoặc không cần thiết trong không gian sống tạm thời.
Ưu tiên tính tiện lợi, có thể chi tiêu linh hoạt hơn theo từng giai đoạn thu nhập hoặc hoàn cảnh cư trú.
Sự phân bố giữa hai nhóm này giúp doanh nghiệp hiểu rõ hơn về phân khúc khách hàng theo mức độ ổn định nơi ở, từ đó điều chỉnh chiến lược sản phẩm, trưng bày hàng hóa, và chương trình khuyến mãi phù hợp hơn với từng đối tượng.
table_product <- table(data$ProductCategory)
prop_product <- prop.table(table_product)
kable(as.data.frame(table_product), caption = "Tần suất danh mục sản phẩm")
| Var1 | Freq |
|---|---|
| Baking Goods | 484 |
| Bathroom Products | 365 |
| Beer and Wine | 356 |
| Bread | 425 |
| Breakfast Foods | 417 |
| Candles | 45 |
| Candy | 352 |
| Canned Anchovies | 44 |
| Canned Clams | 53 |
| Canned Oysters | 35 |
| Canned Sardines | 40 |
| Canned Shrimp | 38 |
| Canned Soup | 404 |
| Canned Tuna | 87 |
| Carbonated Beverages | 154 |
| Cleaning Supplies | 189 |
| Cold Remedies | 93 |
| Dairy | 903 |
| Decongestants | 85 |
| Drinks | 135 |
| Eggs | 198 |
| Electrical | 355 |
| Frozen Desserts | 323 |
| Frozen Entrees | 118 |
| Fruit | 765 |
| Hardware | 129 |
| Hot Beverages | 226 |
| Hygiene | 197 |
| Jams and Jellies | 588 |
| Kitchen Products | 217 |
| Magazines | 202 |
| Meat | 761 |
| Miscellaneous | 42 |
| Packaged Vegetables | 48 |
| Pain Relievers | 192 |
| Paper Products | 345 |
| Pizza | 194 |
| Plastic Products | 141 |
| Pure Juice Beverages | 165 |
| Seafood | 102 |
| Side Dishes | 153 |
| Snack Foods | 1600 |
| Specialty | 289 |
| Starchy Foods | 277 |
| Vegetables | 1728 |
kable(as.data.frame(prop_product), caption = "Tỷ lệ danh mục sản phẩm (%)")
| Var1 | Freq |
|---|---|
| Baking Goods | 0.0344263 |
| Bathroom Products | 0.0259620 |
| Beer and Wine | 0.0253219 |
| Bread | 0.0302297 |
| Breakfast Foods | 0.0296607 |
| Candles | 0.0032008 |
| Candy | 0.0250373 |
| Canned Anchovies | 0.0031297 |
| Canned Clams | 0.0037698 |
| Canned Oysters | 0.0024895 |
| Canned Sardines | 0.0028452 |
| Canned Shrimp | 0.0027029 |
| Canned Soup | 0.0287360 |
| Canned Tuna | 0.0061882 |
| Carbonated Beverages | 0.0109538 |
| Cleaning Supplies | 0.0134433 |
| Cold Remedies | 0.0066150 |
| Dairy | 0.0642293 |
| Decongestants | 0.0060459 |
| Drinks | 0.0096024 |
| Eggs | 0.0140835 |
| Electrical | 0.0252507 |
| Frozen Desserts | 0.0229746 |
| Frozen Entrees | 0.0083932 |
| Fruit | 0.0544135 |
| Hardware | 0.0091756 |
| Hot Beverages | 0.0160751 |
| Hygiene | 0.0140124 |
| Jams and Jellies | 0.0418237 |
| Kitchen Products | 0.0154350 |
| Magazines | 0.0143680 |
| Meat | 0.0541290 |
| Miscellaneous | 0.0029874 |
| Packaged Vegetables | 0.0034142 |
| Pain Relievers | 0.0136567 |
| Paper Products | 0.0245394 |
| Pizza | 0.0137990 |
| Plastic Products | 0.0100292 |
| Pure Juice Beverages | 0.0117363 |
| Seafood | 0.0072551 |
| Side Dishes | 0.0108827 |
| Snack Foods | 0.1138061 |
| Specialty | 0.0205562 |
| Starchy Foods | 0.0197027 |
| Vegetables | 0.1229106 |
ggplot(data, aes(x = ProductCategory)) +
geom_bar(fill = "#e15759") +
labs(title = "Danh mục sản phẩm", x = "Danh mục", y = "Số lượng") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Nhận xét về nhóm sản phẩm được mua nhiều nhất
Phân tích dữ liệu cho thấy những nhóm sản phẩm được khách hàng lựa chọn nhiều nhất bao gồm:
Rau củ (Vegetables): 12.29%
Đồ ăn vặt (Snack Foods): 11.38%
Sản phẩm từ sữa (Dairy): 6.42%
Theo sau là các nhóm như: Trái cây (Fruit), Thịt (Meat), Thực phẩm đông lạnh (Frozen Foods),…
Các mặt hàng này đều thuộc nhóm hàng tiêu dùng thiết yếu, có tần suất mua cao và thời hạn sử dụng ngắn, phản ánh rõ nét hành vi mua sắm thường xuyên của khách hàng. Đây cũng là nhóm sản phẩm đóng vai trò cốt lõi trong doanh thu của các chuỗi siêu thị.
Việc khách hàng tập trung mua các sản phẩm cơ bản cho sinh hoạt hàng ngày cho thấy:
Siêu thị đang làm tốt vai trò phục vụ nhu cầu thiết yếu chứ không định vị là nơi cung cấp hàng hóa cao cấp hoặc xa xỉ.
Tính thực tế và tiện lợi là ưu tiên hàng đầu trong lựa chọn sản phẩm của khách hàng.
Tập trung vào các nhóm hàng có vòng đời ngắn giúp tăng lượt quay vòng tồn kho và tối ưu hóa vận hành kho hàng.
table_ct <- table(data$Country)
prop_ct <- prop.table(table_ct)
kable(as.data.frame(table_ct), caption = "Tần suất quốc gia")
| Var1 | Freq |
|---|---|
| Canada | 809 |
| Mexico | 3688 |
| USA | 9562 |
kable(as.data.frame(prop_ct), caption = "Tỷ lệ quốc gia (%)")
| Var1 | Freq |
|---|---|
| Canada | 0.0575432 |
| Mexico | 0.2623231 |
| USA | 0.6801337 |
data %>%
mutate(Country = fct_lump(Country, n = 10)) %>%
ggplot(aes(x = Country)) +
geom_bar(fill = "#76b7b2") +
labs(title = "Top 10 quốc gia", x = "Quốc gia", y = "Số lượng") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Nhận xét về phân bố khách hàng theo quốc gia
Phân tích dữ liệu cho thấy sự phân bố khách hàng theo quốc gia như sau:
Hoa Kỳ (USA): chiếm 68.01% tổng số giao dịch – chiếm tỷ trọng lớn nhất trong ba quốc gia.
Mexico: chiếm 26.23%, một con số đáng kể, tương đương hơn 1/4 toàn bộ dữ liệu.
Canada: chiếm 5.75%, tuy chiếm tỷ lệ nhỏ nhưng vẫn thể hiện sự hiện diện nhất định.
Từ các con số này có thể rút ra một số nhận định:
Hoa Kỳ rõ ràng là thị trường trọng điểm, nơi có phần lớn khách hàng và doanh thu. Đây có thể là nơi đặt phần lớn các cửa hàng, với chiến lược phân phối và tiếp thị đã được ổn định.
Mexico là thị trường thứ cấp tiềm năng, có tỷ trọng khách hàng khá cao. Việc hơn 1/4 số giao dịch diễn ra tại đây cho thấy sức mua đáng kể, mở ra cơ hội:
Mở rộng hệ thống phân phối và cửa hàng.
Đầu tư thêm vào hoạt động tiếp thị địa phương để tăng mức độ nhận diện thương hiệu.
Tùy chỉnh danh mục sản phẩm phù hợp với sở thích tiêu dùng tại Mexico nhằm tăng độ phủ thị trường.
Canada tuy có tỷ trọng nhỏ, nhưng nếu xem đây là thị trường ngách, có thể triển khai các chiến lược phù hợp hơn với nhóm khách hàng mục tiêu cụ thể, như cung cấp sản phẩm nhập khẩu, hàng đặc sản hoặc dịch vụ cao cấp.
table_sp <- table(data$StateorProvince)
prop_sp <- prop.table(table_sp)
kable(as.data.frame(table_sp), caption = "Tần suất bang hoặc tỉnh")
| Var1 | Freq |
|---|---|
| BC | 809 |
| CA | 2733 |
| DF | 815 |
| Guerrero | 383 |
| Jalisco | 75 |
| OR | 2262 |
| Veracruz | 464 |
| WA | 4567 |
| Yucatan | 654 |
| Zacatecas | 1297 |
kable(as.data.frame(prop_sp), caption = "Tỷ lệ bang hoặc tỉnh (%)")
| Var1 | Freq |
|---|---|
| BC | 0.0575432 |
| CA | 0.1943950 |
| DF | 0.0579700 |
| Guerrero | 0.0272423 |
| Jalisco | 0.0053347 |
| OR | 0.1608934 |
| Veracruz | 0.0330038 |
| WA | 0.3248453 |
| Yucatan | 0.0465182 |
| Zacatecas | 0.0922541 |
data %>%
mutate(StateorProvince = fct_lump(StateorProvince, n = 10)) %>%
ggplot(aes(x = StateorProvince)) +
geom_bar(fill = "#59a14f") +
labs(title = "Top 10 bang/tỉnh", x = "Bang/Tỉnh", y = "Số lượng") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Nhận xét về phân bố khách hàng theo bang tại Hoa Kỳ
Kết quả thống kê cho thấy sự phân bố khách hàng tại ba bang chính như sau:
Washington: chiếm 32.48% tổng số giao dịch – là bang có lượng khách hàng lớn nhất trong bộ dữ liệu.
California: chiếm 19.44%, đứng thứ hai.
Oregon: chiếm 16.09%, xếp thứ ba.
Tổng cộng, ba bang này chiếm gần 68% toàn bộ số lượng giao dịch – một tỷ lệ áp đảo, phản ánh rằng khu vực bờ Tây Hoa Kỳ là trung tâm hoạt động kinh doanh chủ đạo của chuỗi siêu thị.
table_city <- table(data$City)
prop_city <- prop.table(table_city)
kable(as.data.frame(table_city), caption = "Tần suất thành phố")
| Var1 | Freq |
|---|---|
| Acapulco | 383 |
| Bellingham | 143 |
| Beverly Hills | 811 |
| Bremerton | 834 |
| Camacho | 452 |
| Guadalajara | 75 |
| Hidalgo | 845 |
| Los Angeles | 926 |
| Merida | 654 |
| Mexico City | 194 |
| Orizaba | 464 |
| Portland | 876 |
| Salem | 1386 |
| San Andres | 621 |
| San Diego | 866 |
| San Francisco | 130 |
| Seattle | 922 |
| Spokane | 875 |
| Tacoma | 1257 |
| Vancouver | 633 |
| Victoria | 176 |
| Walla Walla | 160 |
| Yakima | 376 |
kable(as.data.frame(prop_city), caption = "Tỷ lệ thành phố (%)")
| Var1 | Freq |
|---|---|
| Acapulco | 0.0272423 |
| Bellingham | 0.0101714 |
| Beverly Hills | 0.0576855 |
| Bremerton | 0.0593214 |
| Camacho | 0.0321502 |
| Guadalajara | 0.0053347 |
| Hidalgo | 0.0601038 |
| Los Angeles | 0.0658653 |
| Merida | 0.0465182 |
| Mexico City | 0.0137990 |
| Orizaba | 0.0330038 |
| Portland | 0.0623088 |
| Salem | 0.0985845 |
| San Andres | 0.0441710 |
| San Diego | 0.0615976 |
| San Francisco | 0.0092467 |
| Seattle | 0.0655808 |
| Spokane | 0.0622377 |
| Tacoma | 0.0894089 |
| Vancouver | 0.0450245 |
| Victoria | 0.0125187 |
| Walla Walla | 0.0113806 |
| Yakima | 0.0267444 |
data %>%
mutate(City = fct_lump(City, n = 23)) %>%
ggplot(aes(x = City)) +
geom_bar(fill = "#af7aa1") +
labs(title = "Thành phố", x = "Thành phố", y = "Số lượng") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Nhận xét về phân bố giao dịch theo thành phố
Kết quả phân tích cho thấy các thành phố có tỷ lệ giao dịch cao nhất bao gồm:
Salem chiếm khoảng 9.86% tổng số giao dịch,
Tacoma chiếm 8.94%,
Los Angeles chiếm 6.59%,
và Seattle chiếm 6.56%.
Nhận diện xu hướng: Nhìn chung, các thành phố này đều thuộc khu vực bờ Tây nước Mỹ, cụ thể là trong các bang Washington, Oregon và California – những trung tâm đô thị lớn và phát triển.
Ý nghĩa và hàm ý: Sự tập trung lưu lượng giao dịch lớn tại các thành phố này có thể phản ánh:
Mật độ dân cư cao, dẫn đến nhu cầu tiêu dùng thường xuyên và đa dạng.
Hoạt động thương mại sôi động, mức độ tiếp cận dịch vụ siêu thị thuận tiện do vị trí địa lý thuận lợi hoặc mạng lưới chi nhánh phát triển.
Các chi nhánh siêu thị tại những thành phố này có lượng khách hàng đông đảo, đóng góp quan trọng vào tổng doanh thu của chuỗi cửa hàng.
Đối với chiến lược kinh doanh, dữ liệu này gợi ý:
Tập trung củng cố và phát triển thêm các cửa hàng tại các thành phố có lưu lượng cao để khai thác tối đa tiềm năng thị trường.
Nâng cao chất lượng dịch vụ, đa dạng hóa sản phẩm và tổ chức các chương trình khuyến mãi phù hợp, nhằm duy trì và tăng cường sự trung thành của khách hàng.
Có thể nghiên cứu thêm các khu vực lân cận để mở rộng phạm vi phục vụ, tận dụng hiệu quả các chuỗi cung ứng hiện có.
# Bước 1: Tạo biến nhóm thu nhập từ AnnualIncome
data <- data %>%
mutate(IncomeGroup = factor(AnnualIncome,
levels = c("$0 - $30K", "$30K - $50K", "$50K - $70K", "$70K - $90K", "$90K - $110K", "$110K+"),
ordered = TRUE))
# Bước 2: Tạo bảng tần suất và tỷ lệ
table_income <- table(data$IncomeGroup)
prop_income <- prop.table(table_income) * 100
# Bước 3: Hiển thị bảng bằng kable
kable(as.data.frame(table_income), caption = "Tần suất theo nhóm thu nhập")
| Var1 | Freq |
|---|---|
| $0 - $30K | 0 |
| $30K - $50K | 4601 |
| $50K - $70K | 2370 |
| $70K - $90K | 1709 |
| $90K - $110K | 613 |
| $110K+ | 0 |
kable(as.data.frame(prop_income), caption = "Tỷ lệ theo nhóm thu nhập (%)")
| Var1 | Freq |
|---|---|
| $0 - $30K | 0.000000 |
| $30K - $50K | 49.510384 |
| $50K - $70K | 25.503067 |
| $70K - $90K | 18.390186 |
| $90K - $110K | 6.596363 |
| $110K+ | 0.000000 |
# Bước 4: Vẽ biểu đồ cột
ggplot(data, 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 về thu nhập của khách hàng
Phân tích cho thấy nhóm khách hàng có mức thu nhập hàng năm từ $30K - $50K chiếm tỷ lệ lớn nhất, 32.73% tổng số giao dịch. Các nhóm tiếp theo gồm:
$10K - $30K: chiếm 21.98%
$50K - $70K: chiếm 16.86%
Các nhóm thu nhập cao hơn, đặc biệt là trên $90K, có tỷ lệ rất thấp, chỉ chiếm một phần nhỏ trong tổng số khách hàng.
Hàm ý từ phân bố thu nhập:
Rõ ràng, khách hàng chủ yếu tập trung ở tầng lớp có thu nhập trung bình và trung bình thấp, phản ánh định vị thị trường của chuỗi siêu thị là phục vụ nhu cầu thiết yếu và phổ thông.
Việc có rất ít khách hàng thuộc nhóm thu nhập cao cho thấy đây không phải là siêu thị định vị ở phân khúc cao cấp. Thay vào đó, nó phù hợp với nhóm khách hàng ưu tiên giá cả phải chăng, sản phẩm tiện lợi.
Dữ liệu cũng cho thấy cơ hội khai thác thị trường nằm ở những chiến lược hướng đến đại đa số người tiêu dùng phổ thông thay vì tìm cách mở rộng sang phân khúc cao cấp ít phổ biến trong hệ thống hiện tại.
# Bảng tần suất
table_productfamily <- table(data$ProductFamily)
# Bảng tỷ lệ phần trăm
prop_productfamily <- prop.table(table_productfamily) * 100
# Hiển thị bảng tần suất
knitr::kable(as.data.frame(table_productfamily),
caption = "Tần suất theo nhóm sản phẩm (ProductFamily)")
| Var1 | Freq |
|---|---|
| Drink | 1250 |
| Food | 10153 |
| Non-Consumable | 2656 |
# Hiển thị bảng tỷ lệ
knitr::kable(as.data.frame(round(prop_productfamily, 2)),
caption = "Tỷ lệ (%) theo nhóm sản phẩm (ProductFamily)")
| Var1 | Freq |
|---|---|
| Drink | 8.89 |
| Food | 72.22 |
| Non-Consumable | 18.89 |
# Biểu đồ cột cho ProductFamily
library(ggplot2)
ggplot(data, aes(x = ProductFamily)) +
geom_bar(fill = "#69b3a2") +
labs(title = "Phân bố nhóm sản phẩm", x = "Nhóm sản phẩm", y = "Số lượng") +
theme_minimal()
Nhận xét về phân bố nhóm sản phẩm (ProductFamily)
Food là nhóm sản phẩm phổ biến nhất trong bộ dữ liệu, chiếm hơn 2/3 tổng số quan sát. Điều này cho thấy rằng sản phẩm thực phẩm có vai trò trung tâm trong cơ cấu sản phẩm của doanh nghiệp hoặc tổ chức khảo sát. Việc Food chiếm tỷ trọng cao cũng có thể phản ánh định hướng kinh doanh thiên về hàng tiêu dùng nhanh (FMCG) hoặc nhóm sản phẩm thiết yếu.
Non-Consumable chiếm gần 1/5 tổng số quan sát, là nhóm sản phẩm phi tiêu dùng trực tiếp, ví dụ như đồ gia dụng, dụng cụ, thiết bị. Dù không chiếm đa số, nhóm này có tỷ lệ đủ lớn để được xem là một dòng sản phẩm phụ trợ quan trọng. Cần đánh giá sâu hơn để biết mức độ đóng góp của nhóm này vào doanh thu hoặc lợi nhuận.
Drink là nhóm có tỷ lệ thấp nhất, dưới 10%. Điều này cho thấy sản phẩm đồ uống không phải là trọng tâm trong danh mục hiện tại, hoặc có thể là một ngành hàng mới, đang phát triển. Nếu chiến lược kinh doanh có mục tiêu đa dạng hóa, nhóm này có thể là điểm cần đầu tư thêm.
# Tạo bảng tần suất
table_dept <- table(data$ProductDepartment)
# Tính tỷ lệ phần trăm
prop_dept <- prop.table(table_dept) * 100
# Hiển thị bảng tần suất
knitr::kable(as.data.frame(table_dept),
caption = "Tần suất theo phòng ban sản phẩm (ProductDepartment)")
| Var1 | Freq |
|---|---|
| Alcoholic Beverages | 356 |
| Baked Goods | 425 |
| Baking Goods | 1072 |
| Beverages | 680 |
| Breakfast Foods | 188 |
| Canned Foods | 977 |
| Canned Products | 109 |
| Carousel | 59 |
| Checkout | 82 |
| Dairy | 903 |
| Deli | 699 |
| Eggs | 198 |
| Frozen Foods | 1382 |
| Health and Hygiene | 893 |
| Household | 1420 |
| Meat | 89 |
| Periodicals | 202 |
| Produce | 1994 |
| Seafood | 102 |
| Snack Foods | 1600 |
| Snacks | 352 |
| Starchy Foods | 277 |
# Hiển thị bảng tỷ lệ phần trăm (làm tròn đến 2 chữ số)
knitr::kable(as.data.frame(round(prop_dept, 2)),
caption = "Tỷ lệ (%) theo phòng ban sản phẩm (ProductDepartment)")
| Var1 | Freq |
|---|---|
| Alcoholic Beverages | 2.53 |
| Baked Goods | 3.02 |
| Baking Goods | 7.63 |
| Beverages | 4.84 |
| Breakfast Foods | 1.34 |
| Canned Foods | 6.95 |
| Canned Products | 0.78 |
| Carousel | 0.42 |
| Checkout | 0.58 |
| Dairy | 6.42 |
| Deli | 4.97 |
| Eggs | 1.41 |
| Frozen Foods | 9.83 |
| Health and Hygiene | 6.35 |
| Household | 10.10 |
| Meat | 0.63 |
| Periodicals | 1.44 |
| Produce | 14.18 |
| Seafood | 0.73 |
| Snack Foods | 11.38 |
| Snacks | 2.50 |
| Starchy Foods | 1.97 |
ggplot(data, aes(x = ProductDepartment)) +
geom_bar(fill = "#1f77b4") +
labs(title = "Phân bố phòng ban sản phẩm",
x = "Phòng ban sản phẩm",
y = "Số lượng") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Nhận xét biến ProductDepartment
Kết quả thống kê cho thấy danh mục sản phẩm được phân chia thành 22 phòng ban, với sự phân bố không đồng đều. Nhóm Produce (rau củ quả) chiếm tỷ lệ cao nhất (14.18%), tiếp theo là Snack Foods (11.38%), Household (10.10%) và Frozen Foods (9.83%). Điều này phản ánh trọng tâm phân phối của doanh nghiệp nghiêng về các mặt hàng thực phẩm thiết yếu, đồ ăn nhanh và hàng tiêu dùng gia dụng.
Một số phòng ban có tỷ lệ khá thấp như Snacks, Canned Products, Seafood và Meat, cho thấy phạm vi kinh doanh ở các nhóm này còn hạn chế hoặc sản phẩm ít được bán ra. Đáng chú ý, dữ liệu tồn tại các nhãn tương đồng như “Snack Foods” và “Snacks”, “Canned Foods” và “Canned Products”, cho thấy cần thực hiện chuẩn hóa tên phòng ban để đảm bảo độ chính xác trong phân tích sau này.
Nhìn chung, phân bố nhóm sản phẩm thể hiện rõ định hướng kinh doanh đa dạng, ưu tiên hàng tiêu dùng thiết yếu và thực phẩm nhanh, đồng thời mở rộng sang các sản phẩm gia dụng và chăm sóc cá nhân.
Hạng mục quan tâm: “Female”
Khoảng tin cậy 95% cho tỷ lệ “Female” trong tổng thể
prop.test(sum(data$Gender == "F"), nrow(data), conf.level = 0.95)
##
## 1-sample proportions test with continuity correction
##
## data: sum(data$Gender == "F") out of nrow(data), null probability 0.5
## X-squared = 5.5765, df = 1, p-value = 0.0182
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.5016931 0.5182886
## sample estimates:
## p
## 0.5099936
Khoảng tin cậy 95% cho tỷ lệ nữ giới (Gender = “F”) trong tổng thể là từ 50.17% đến 51.83%.
Ý nghĩa:
Có thể nói rằng với độ tin cậy 95%, tỷ lệ nữ trong toàn bộ dân số (tức là trong tổng thể mà mẫu này đại diện) nằm trong khoảng từ 50.17% đến 51.83%.
Nói cách khác, nếu chúng ta lặp lại quá trình chọn mẫu và tính khoảng tin cậy nhiều lần, thì khoảng 95% trong số các khoảng tin cậy đó sẽ bao phủ đúng tỷ lệ nữ thật sự của tổng thể.
Kiểm định giả thuyết
Giả thuyết:
\(H_0\): Tỷ lệ nữ giới trong tổng thể là 50%.
\(H_1\): Tỷ lệ nữ giới trong tổng thể là khác 50%.
prop.test(sum(data$Gender == "F"), nrow(data), p = 0.5, alternative = "two.sided") #alternative là kiểm định hai phía
##
## 1-sample proportions test with continuity correction
##
## data: sum(data$Gender == "F") out of nrow(data), null probability 0.5
## X-squared = 5.5765, df = 1, p-value = 0.0182
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.5016931 0.5182886
## sample estimates:
## p
## 0.5099936
Vì p_value = 0.00182 < 0.05, ta bác bỏ \(H_0\) tại mức ý nghĩa 5%.
Điều này nghĩa là có bằng chứng thống kê cho thấy tỷ lệ nữ trong tổng thể khác 50%.
Hạng mục quan tâm: “Y”
Khoảng tin cậy 95% cho tỷ lệ sở hữu nhà
prop.test(sum(data$Homeowner == "Y"), nrow(data), conf.level = 0.95)
##
## 1-sample proportions test with continuity correction
##
## data: sum(data$Homeowner == "Y") out of nrow(data), null probability 0.5
## X-squared = 568.86, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.5924537 0.6087145
## sample estimates:
## p
## 0.6006117
Khoảng tin cậy 95% cho tỷ lệ sở hữu nhà (Homeowner = “Y”) trong tổng thể là từ 59.25% đến 60.87%.
Kiểm định giả thuyết
Giả thuyết:
\(H_0\): Tỷ lệ sở hữu nhà trong tổng thể là 50%.
\(H_1\): Tỷ lệ sở hữu nhà trong tổng thể là khác 50%.
prop.test(sum(data$Homeowner == "Y"), nrow(data), p = 0.5, alternative = "two.sided")
##
## 1-sample proportions test with continuity correction
##
## data: sum(data$Homeowner == "Y") out of nrow(data), null probability 0.5
## X-squared = 568.86, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.5924537 0.6087145
## sample estimates:
## p
## 0.6006117
Vì p_value = 2.2e-16 < 0.05, ta bác bỏ \(H_0\) tại mức ý nghĩa 5%.
Điều này nghĩa là có bằng chứng thống kê cho thấy tỷ lệ sở hữu nhà trong tổng thể khác 50%.
Hạng mục quan tâm: “Food”
Khoảng tin cậy 95% cho tỷ lệ sản phẩm thuộc nhóm “Food”
prop.test(sum(data$ProductFamily == "Food"), nrow(data), conf.level = 0.95)
##
## 1-sample proportions test with continuity correction
##
## data: sum(data$ProductFamily == "Food") out of nrow(data), null probability 0.5
## X-squared = 2774.9, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.7146709 0.7295489
## sample estimates:
## p
## 0.7221709
Khoảng tin cậy 95% cho tỷ lệ sản phẩm thuộc nhóm “Food” trong toàn bộ sản phẩm là từ 71.47% đến 72.95%.
Kiểm định giả thuyết
Giả thuyết:
\(H_0\): Tỷ lệ sản phẩm thuộc nhóm “Food” là 50%.
\(H_1\): Tỷ lệ sản phẩm thuộc nhóm “Food” là khác 50%.
prop.test(sum(data$ProductFamily == "Food"), nrow(data), p = 0.5, alternative = "two.sided")
##
## 1-sample proportions test with continuity correction
##
## data: sum(data$ProductFamily == "Food") out of nrow(data), null probability 0.5
## X-squared = 2774.9, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.7146709 0.7295489
## sample estimates:
## p
## 0.7221709
Vì p_value = 2.2e-16 < 0.05, ta bác bỏ \(H_0\) tại mức ý nghĩa 5%.
Điều này nghĩa là có bằng chứng thống kê cho thấy tỷ lệ sở hữu nhà trong tổng thể khác 50%.
Bảng: Kết quả Ước lượng và Kiểm định Giả thuyết cho Tỷ lệ
| Biến | Hạng mục | Tỷ lệ Ước lượng | Khoảng tin cậy 95% | Kết luận kiểm định |
|---|---|---|---|---|
| Gender | Female | 0.5099936 | 50.17% – 51.83% | Không bác bỏ \(H_0: p = 0.5\) |
| Homeowner | Y | 0.6006117 | 59.25% – 60.87% | Không bác bỏ \(H_0: p = 0.6\) |
| ProductFamily | Food | 0.7221709 | 71.47% – 72.95% | Bác bỏ \(H_0: p \ge 0.7\) (p < 0.05) |
Trong nghiên cứu hành vi tiêu dùng, yếu tố địa lý thường đóng vai trò quan trọng trong việc hình thành thói quen mua sắm của khách hàng. Khách hàng tại các khu vực khác nhau có thể có nhu cầu, mức thu nhập, và sở thích tiêu dùng khác biệt.
Do đó, cặp biến StateorProvince (bang nơi sinh sống của khách hàng) và ProductFamily (nhóm sản phẩm được mua) được chọn để kiểm tra xem liệu khu vực sinh sống có ảnh hưởng đến lựa chọn nhóm sản phẩm hay không.
Mục tiêu chính là xác định xem có tồn tại mối quan hệ giữa khu vực (StateorProvince) và hành vi tiêu dùng theo nhóm sản phẩm (ProductFamily) hay không. Nếu có, điều này có thể hữu ích cho các chiến lược tiếp thị theo vùng địa lý hoặc phân phối sản phẩm phù hợp hơn theo từng khu vực.
Bảng tần suất chéo và trực quan hóa
data1 <- table(data$StateorProvince, data$ProductFamily)
prop.table(data1, margin = 1)
##
## Drink Food Non-Consumable
## BC 0.08529048 0.71693449 0.19777503
## CA 0.09440176 0.72228321 0.18331504
## DF 0.07975460 0.73374233 0.18650307
## Guerrero 0.10704961 0.71018277 0.18276762
## Jalisco 0.06666667 0.76000000 0.17333333
## OR 0.08797524 0.72015915 0.19186561
## Veracruz 0.09482759 0.69396552 0.21120690
## WA 0.08736589 0.71972849 0.19290563
## Yucatan 0.07339450 0.75535168 0.17125382
## Zacatecas 0.09406322 0.72474942 0.18118736
Trực quan hóa
# Chuyển sang data frame
data1_df <- as.data.frame(data1)
colnames(data1_df) <- c("StateorProvince", "ProductFamily", "Frequency")
# Vẽ biểu đồ từ bảng tần suất
ggplot(data1_df, aes(x = StateorProvince, y = Frequency, fill = ProductFamily)) +
geom_bar(stat = "identity", position = "dodge") +
labs(
title = "Biểu đồ tần suất giữa ProductFamily và StateorProvince",
x = "StateorProvince",
y = "Tần suất"
) +
theme_minimal()
Biểu đồ thể hiện sự phân bố tần suất tiêu dùng theo ba nhóm sản phẩm chính: Food, Drink và Non-Consumable tại các bang khác nhau.
Nhóm Food là nhóm sản phẩm có tần suất tiêu dùng cao nhất ở mọi bang, chiếm ưu thế vượt trội so với hai nhóm còn lại. Điều này cho thấy nhu cầu về thực phẩm rất phổ biến và ổn định trên toàn thị trường, bất kể điều kiện kinh tế hay vị trí địa lý của từng bang. Đặc biệt, bang WA nổi bật với mức tiêu thụ nhóm Food trên 3.000 đơn vị, cao hơn hẳn các bang khác như CA, OR, DF và Zacatecas.
Nhóm Drink có mức tiêu thụ thấp nhất ở hầu hết các bang, thể hiện qua các cột màu đỏ nhỏ hơn nhiều so với hai nhóm kia. Mặc dù vậy, một số bang như WA, Zacatecas, CA và OR có tần suất tiêu dùng Drink cao hơn tương đối so với các bang khác, cho thấy nhu cầu về đồ uống có sự phân hóa nhất định tùy theo địa phương.
Nhóm Non-Consumable chiếm vị trí trung bình, thường có tần suất tiêu dùng cao hơn nhóm Drink nhưng vẫn thấp hơn Food. Hai bang WA và CA dẫn đầu mức tiêu thụ nhóm này, điều này có thể phản ánh đặc điểm kinh tế phát triển hơn hoặc đa dạng về nhu cầu hàng hóa phi thực phẩm tại các bang này.
Các bang như Jalisco và Guerrero ghi nhận tổng tần suất tiêu dùng thấp nhất cho cả ba nhóm sản phẩm, cho thấy mức độ tiêu thụ tổng thể của các bang này hạn chế hơn.
Kết luận: Giữa hai biến ProductFamily và StateorProvince tồn tại sự liên kết rõ rệt. Xu hướng cho thấy nhu cầu tiêu thụ nhóm sản phẩm Food là phổ biến và ổn định trên hầu hết các bang, trong khi mức tiêu thụ các nhóm Drink và Non-Consumable biến động đáng kể tùy thuộc vào đặc điểm kinh tế - xã hội và thói quen tiêu dùng của từng bang. Các bang phát triển như WA, CA có xu hướng tiêu thụ đa dạng và cao hơn cả, trong khi các bang khác có mức tiêu thụ thấp hơn cho tất cả nhóm sản phẩm. Điều này chứng tỏ sự phân bố sản phẩm phụ thuộc không chỉ vào loại sản phẩm mà còn gắn liền với đặc điểm vùng miền.
Kiểm định thông kê kiểm định chi bình phương
Giả thuyết:
\(H_0\) (giả thuyết không): StateorProvince và ProductFamily là hai biến độc lập. Khu vực không ảnh hưởng đến lựa chọn nhóm sản phẩm.
\(H_1\) (giả thuyết đối): StateorProvince và ProductFamily có liên hệ với nhau.
chisq.test(data1)
##
## Pearson's Chi-squared test
##
## data: data1
## X-squared = 12.3, df = 18, p-value = 0.8314
Với mức ý nghĩa 0.05, giá trị p = 0.8314 > 0.05, do đó không bác bỏ giả thuyết \(H_0\). Không có bằng chứng thống kê để khẳng định mối quan hệ giữa StateorProvince và ProductFamily. Các nhóm sản phẩm được lựa chọn là khá giống nhau giữa các bang – khu vực địa lý không ảnh hưởng đáng kể đến hành vi tiêu dùng theo nhóm sản phẩm.
Hai biến MaritalStatus (tình trạng hôn nhân) và Homeowner (sở hữu nhà) vì chúng có mối liên hệ chặt chẽ trong đời sống tài chính cá nhân. Người đã kết hôn thường có xu hướng ổn định và khả năng sở hữu nhà cao hơn so với người độc thân hoặc ly dị. Phân tích mối quan hệ giữa hai biến giúp hiểu rõ hơn về ảnh hưởng của tình trạng hôn nhân đến việc tích lũy tài sản, từ đó hỗ trợ các chính sách tài chính và tiếp cận khách hàng phù hợp.
Bảng tần suất chéo và trực quan hóa
data2 <- table(data$MaritalStatus, data$Homeowner)
prop.table(data2, margin = 1)
##
## N Y
## M 0.2503641 0.7496359
## S 0.5416377 0.4583623
Trực quan hóa
# Chuyển sang data frame
data2_df <- as.data.frame(data2)
colnames(data2_df) <- c("MaritalStatus", "Homeowner", "Frequency")
# Vẽ biểu đồ từ bảng tần suất
ggplot(data2_df, aes(x = MaritalStatus, y = Frequency, fill = Homeowner)) +
geom_bar(stat = "identity", position = "dodge") +
labs(
title = "Biểu đồ tần suất giữa MaritalStatus và Homeowner",
x = "MaritalStatus",
y = "Tần suất"
) +
theme_minimal()
Nhóm người đã kết hôn (MaritalStatus = M):
Nhóm người độc thân (MaritalStatus = S):
Sự liên kết giữa hai biến:
Xu hướng chung: - Xu hướng chung cho thấy, việc kết hôn thường đi kèm với khả năng sở hữu nhà cao hơn, phản ánh mức độ ổn định và cam kết tài chính lâu dài trong cuộc sống. Người đã lập gia đình có xu hướng đầu tư nhiều hơn vào tài sản cố định như nhà cửa để tạo nền tảng vững chắc cho gia đình, trong khi người độc thân có xu hướng ít sở hữu nhà do điều kiện và ưu tiên khác biệt.
Kiểm định thông kê kiểm định chi bình phương
Giả thuyết:
\(H_0\) (giả thuyết không): MaritalStatus và Homeowner là hai biến độc lập.
\(H_1\) (giả thuyết đối): MaritalStatus và Homeowner có liên hệ với nhau.
chisq.test(data2)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: data2
## X-squared = 1241.2, df = 1, p-value < 2.2e-16
Với mức ý nghĩa 0.05, giá trị p = 2.2e-16 < 0.05, do đó bác bỏ giả thuyết \(H_0\). Điều này có nghĩa là có bằng chứng rất mạnh để bác bỏ giả thuyết độc lập giữa hai biến MaritalStatus và Homeowner. Nói cách khác, hai biến này có mối liên hệ chặt chẽ, không ngẫu nhiên.
Kết luận: Tình trạng hôn nhân và việc sở hữu nhà không độc lập mà liên quan mật thiết với nhau, phù hợp với nhận xét trước đó rằng người đã kết hôn có xu hướng sở hữu nhà cao hơn so với người độc thân.
Mối quan hệ giữa Gender và ProductFamily thể hiện qua sự phân bố khác nhau của giới tính trong từng nhóm sản phẩm. Ví dụ, sản phẩm thuộc nhóm thời trang nữ có thể có tỷ lệ khách hàng nữ cao hơn, trong khi nhóm sản phẩm công nghệ có thể có tỷ lệ khách hàng nam áp đảo.
Phân tích bảng tần suất chéo và kiểm định Chi-square sẽ giúp xác định liệu sự phân bố này có ý nghĩa thống kê hay không, từ đó khẳng định mức độ liên kết giữa hai biến.
Bảng tần suất chéo và trực quan hóa
data3 <- table(data$Gender, data$ProductFamily)
prop.table(data3, margin = 1)
##
## Drink Food Non-Consumable
## F 0.09330544 0.71813110 0.18856346
## M 0.08433735 0.72637538 0.18928727
Trực quan hóa
# Chuyển sang data frame
data3_df <- as.data.frame(data3)
colnames(data3_df) <- c("Gender", "ProductFamily", "Frequency")
# Vẽ biểu đồ từ bảng tần suất
ggplot(data3_df, aes(x = ProductFamily, y = Frequency, fill = Gender)) +
geom_bar(stat = "identity", position = "dodge") +
labs(
title = "Biểu đồ tần suất giữa Gender và ProductFamily",
x = "Gender",
y = "Tần suất"
) +
theme_minimal()
Trong nhóm sản phẩm Food, có 5.149 người nữ (chiếm 71.81%) và 5.004 người nam (chiếm 72.64%) mua hàng thuộc nhóm này. Cả hai giới đều dành phần lớn ngân sách mua sắm cho thực phẩm, cho thấy đây là nhóm sản phẩm phổ biến và quan trọng nhất trong thói quen tiêu dùng của người tiêu dùng, bất kể giới tính.
Đối với nhóm sản phẩm Non-Consumable, có 1.352 người nữ (18.86%) và 1.304 người nam (18.93%) chọn mua. Tỷ lệ tương đối tương đồng giữa hai giới cho thấy cả nam và nữ đều có mức độ quan tâm khá giống nhau đối với các mặt hàng lâu bền hoặc sử dụng lâu dài.
Nhóm sản phẩm Drink ghi nhận 669 người nữ (9.33%) và 581 người nam (8.43%) mua hàng. Phụ nữ mua nhiều hơn nam giới một chút, có thể phản ánh sự khác biệt nhỏ trong sở thích hoặc thói quen tiêu dùng đồ uống giữa hai giới.
Tổng thể, sự phân bố tỷ lệ mua hàng theo nhóm sản phẩm giữa nam và nữ là khá giống nhau. Điều này cho thấy giới tính không phải là yếu tố quyết định mạnh mẽ trong việc lựa chọn nhóm sản phẩm, và mối quan hệ giữa hai biến Gender và ProductFamily là không mạnh.
Kiểm định thông kê kiểm định chi bình phương
Giả thuyết:
\(H_0\) (giả thuyết không): Gender và ProducFamily là hai biến độc lập.
\(H_1\) (giả thuyết đối): Gender và ProducFamily có liên hệ với nhau.
chisq.test(data3)
##
## Pearson's Chi-squared test
##
## data: data3
## X-squared = 3.5185, df = 2, p-value = 0.1722
Vì p-value 0.1722 > 0.05, ta không bác bỏ giả thuyết không (\(H_0\)). Điều này có nghĩa là không có bằng chứng thống kê đủ mạnh để kết luận rằng có mối quan hệ giữa hai biến giới tính (Gender) và nhóm sản phẩm (ProductFamily) trong bộ dữ liệu. Nói cách khác, giới tính và loại sản phẩm được mua là hai biến độc lập với nhau ở mức ý nghĩa 5%.
Biến AnnualIncome là một biến định lượng thể hiện mức thu nhập hàng năm của khách hàng – một chỉ báo kinh tế quan trọng phản ánh khả năng chi tiêu, mức sống và xu hướng tiêu dùng. Trong khi đó, biến ProductFamily là biến định tính thể hiện nhóm hàng hóa mà khách hàng lựa chọn tiêu dùng (ví dụ: Drink, Food, Non-Consumable). Việc kết hợp phân tích hai biến này cho phép đánh giá xem có mối liên hệ nào giữa mức thu nhập của khách hàng và loại sản phẩm họ ưu tiên mua hay không.
Bảng tần suất chéo và trực quan hóa
data4 <- table(data$ProductFamily, data$AnnualIncome)
prop.table(data4, margin = 1)
##
## $10K - $30K $110K - $130K $130K - $150K $150K + $30K - $50K
## Drink 0.21360000 0.04720000 0.04480000 0.02000000 0.33680000
## Food 0.21983650 0.04609475 0.05476214 0.01960012 0.32896681
## Non-Consumable 0.22251506 0.04367470 0.05572289 0.01844880 0.31626506
##
## $50K - $70K $70K - $90K $90K - $110K
## Drink 0.15440000 0.12480000 0.05840000
## Food 0.16793066 0.12026002 0.04254900
## Non-Consumable 0.17771084 0.12500000 0.04066265
Trực quan hóa
# Chuyển sang data frame
data4_df <- as.data.frame(data4)
colnames(data4_df) <- c("AnnualIncome", "ProductFamily", "Frequency")
# Vẽ biểu đồ từ bảng tần suất
ggplot(data4_df, aes(x = AnnualIncome, y = Frequency, fill = ProductFamily)) +
geom_bar(stat = "identity", position = "dodge") +
labs(
title = "Biểu đồ tần suất giữa ProductFamily và AnnualIncome",
x = "ProductFamily",
y = "Tần suất"
) +
theme_minimal()
Dựa vào kết quả phân tích, có thể thấy nhóm sản phẩm Food có tần suất mua cao nhất trong tất cả các nhóm thu nhập. Dù ở mức thu nhập thấp hay cao, khách hàng đều ưu tiên mua các sản phẩm thuộc nhóm này. Điều này cho thấy Food là nhóm sản phẩm thiết yếu và phổ biến nhất, chiếm tỷ trọng lớn trong hành vi tiêu dùng của mọi đối tượng thu nhập.
Trong khi đó, hai nhóm còn lại là Drink và Non-Consumable có tần suất mua thấp hơn, nhưng được phân bố khá đồng đều qua các nhóm thu nhập khác nhau. Không có nhóm thu nhập nào thể hiện sự thiên lệch rõ ràng trong việc lựa chọn hai nhóm sản phẩm này. Dựa trên số liệu tỷ lệ phần trăm giữa các nhóm thu nhập và loại sản phẩm, ta nhận thấy sự phân bố tương đối đồng đều, không có khác biệt lớn. Điều này cho thấy không tồn tại mối liên hệ mạnh giữa mức thu nhập và loại sản phẩm được lựa chọn.
Tóm lại, xu hướng tiêu dùng cho thấy nhóm Food luôn chiếm ưu thế trong mọi nhóm thu nhập, phản ánh đây là mặt hàng được ưu tiên mua nhiều nhất bất kể mức thu nhập của khách hàng.
Kiểm định thông kê kiểm định chi bình phương
Giả thuyết:
\(H_0\) (giả thuyết không): AnnualStatus và ProductFamily là hai biến độc lập.
\(H_1\) (giả thuyết đối): AnnualStatus và ProductFamily có liên hệ với nhau.
chisq.test(data4)
##
## Pearson's Chi-squared test
##
## data: data4
## X-squared = 14.84, df = 14, p-value = 0.3892
Vì p-value lớn hơn mức ý nghĩa 0.38992 > 0.05, ta không bác bỏ giả thuyết không (\(H_0\)). Điều này có nghĩa là không có đủ bằng chứng thống kê để kết luận rằng tồn tại mối liên hệ giữa hai biến AnnualIncome và ProductFamily. Nói cách khác, mức thu nhập hàng năm của khách hàng không có ảnh hưởng đáng kể đến loại nhóm sản phẩm mà họ lựa chọn. Sự phân bố lựa chọn nhóm sản phẩm giữa các mức thu nhập là tương đối đồng đều, cho thấy hai biến này độc lập với nhau ở mức ý nghĩa 5%.
Phân tích dữ liệu định tính từ bộ dữ liệu “Supermarket Transactions” cho phép rút ra nhiều thông tin quan trọng về đặc điểm khách hàng và thói quen tiêu dùng. Những phát hiện đáng chú ý bao gồm:
Phân bổ theo giới tính:
Tỷ lệ khách hàng nữ cao hơn nam một cách khiêm tốn, chiếm khoảng 51% tổng số quan sát. Kiểm định thống kê khẳng định sự khác biệt này có ý nghĩa, gợi ý rằng nhóm khách hàng nữ có thể đóng vai trò trung tâm trong doanh thu của siêu thị. Đây là cơ sở để phát triển các chiến lược tiếp thị hướng đến phụ nữ.
Tình trạng hôn nhân:
Phần lớn khách hàng chưa kết hôn (51.16%) so với nhóm đã lập gia đình (48.84%). Đáng chú ý, khi phân tích mối quan hệ giữa giới tính và tình trạng hôn nhân, có sự phụ thuộc có ý nghĩa thống kê. Do đó, hai yếu tố này có thể được kết hợp để xây dựng hồ sơ người tiêu dùng chi tiết hơn.
Tình trạng sở hữu nhà:
Khoảng 60% khách hàng được ghi nhận là có sở hữu nhà ở. Dù chưa phát hiện mối liên hệ rõ ràng giữa việc sở hữu nhà và quốc gia cư trú, đây vẫn là nhóm khách hàng tiềm năng cho các sản phẩm có giá trị cao nhờ đặc điểm ổn định tài chính.
Đặc điểm phân bố địa lý:
– Theo bang: Giao dịch tập trung nhiều tại các bang WA, CA và OR, chiếm hơn 70% tổng lượng mua sắm. – Theo thành phố: Những thành phố nổi bật về khối lượng giao dịch gồm Salem, Portland, Tacoma, Los Angeles và Seattle. – Theo quốc gia: Hoa Kỳ chiếm phần lớn số lượng khách hàng (68%), theo sau là Mexico (~26%). Sự phân bố này chỉ ra rằng hoạt động kinh doanh chủ yếu đang tập trung vào thị trường nội địa Hoa Kỳ.
Thu nhập cá nhân:
Gần một nửa khách hàng nằm trong nhóm thu nhập từ 30.000 đến dưới 70.000 USD/năm. Đây là nhóm có khả năng chi tiêu đều đặn và đóng vai trò chủ lực trong hoạt động bán lẻ. Ngoài ra, các nhóm thu nhập cao hơn tuy chiếm tỷ trọng thấp hơn nhưng có thể mang lại giá trị đơn hàng cao hơn.
Cơ cấu sản phẩm tiêu thụ:
– Sản phẩm chính: Nhóm hàng thực phẩm (Food) áp đảo với hơn 72% giao dịch, khẳng định vai trò thiết yếu của mặt hàng này. – Sản phẩm phụ: Drink và Non-Consumable lần lượt chiếm khoảng 9% và 19%, cho thấy cơ hội để phát triển thông qua các chương trình kích cầu tiêu dùng. – Danh mục và phòng ban nổi bật: Produce, Snack Foods và Household là những phòng ban có lượt tiêu thụ cao. Trong đó, các danh mục như Vegetables và Snack Foods được người tiêu dùng lựa chọn nhiều nhất.
Phân tích mối quan hệ giữa các biến – Giới tính và tình trạng hôn nhân: Có mối liên hệ đáng kể, với mức ý nghĩa thống kê cao (p < 0.01), cho thấy xu hướng hôn nhân khác nhau giữa nam và nữ có thể ảnh hưởng đến hành vi tiêu dùng. – Sở hữu nhà và quốc gia: Không phát hiện sự khác biệt rõ ràng (p > 0.9), cho thấy việc sở hữu nhà phân bố đồng đều giữa các nước. – Loại sản phẩm và tiểu bang: Mối liên hệ không có ý nghĩa thống kê (p > 0.8), gợi ý rằng thói quen mua sản phẩm theo nhóm hàng không thay đổi nhiều giữa các bang.
Chưa khai thác biến định lượng: Các yếu tố như doanh thu, khối lượng giao dịch, hay số lượng con trong hộ gia đình chưa được đưa vào, khiến phân tích còn giới hạn.
Thiếu yếu tố thời gian: Không có phân tích theo chu kỳ như ngày, tháng, hoặc quý – đây là yếu tố quan trọng để đánh giá xu hướng tiêu dùng theo thời điểm.
Mẫu nhỏ tại một số khu vực: Một vài bang hoặc thành phố có số lượng quan sát thấp (ví dụ như Jalisco), có thể gây sai lệch khi khái quát hóa kết quả.
Thiếu thông tin nhân khẩu học mở rộng: Việc không có dữ liệu về tuổi tác, nghề nghiệp hay hành vi cá nhân khiến phân tích còn nông, khó xác định chân dung khách hàng rõ nét.
– Cá nhân hóa tiếp thị theo giới tính và hôn nhân: Có thể nhắm đến hai nhóm mục tiêu chính: phụ nữ đã lập gia đình và đàn ông độc thân, nhờ vào sự phân hóa hành vi tiêu dùng rõ ràng giữa hai nhóm này.
– Tăng cường đầu tư vào nhóm hàng thực phẩm: Với vai trò là sản phẩm chủ đạo, cần duy trì sức cạnh tranh bằng cách áp dụng chương trình giảm giá, tích điểm hoặc gói sản phẩm theo mùa.
– Khai thác tiềm năng từ sản phẩm phụ: Kết hợp sản phẩm nước uống hoặc hàng không tiêu dùng trong các gói bán kèm để gia tăng giá trị đơn hàng.
– Tập trung vào khu vực có sức mua lớn: Tập trung đẩy mạnh chiến dịch tại các bang như California và Oregon, nơi có lượng khách hàng và giao dịch cao nhất.
– Thiết kế dịch vụ cao cấp cho nhóm khách hàng sở hữu nhà: Nhóm này có khả năng chi tiêu cao, thích hợp để tiếp cận qua các gói dịch vụ cao cấp, giao hàng tận nhà hoặc ưu đãi độc quyền.
– Sự ảnh hưởng của giới tính và hôn nhân đến hành vi lựa chọn sản phẩm: Có sự khác biệt đáng kể về nhóm hàng ưu tiên giữa các nhóm khách hàng nam/nữ và tình trạng hôn nhân hay không?
– Thu nhập và quyền sở hữu nhà: Việc có nhà ở có phản ánh mức thu nhập cao hơn không? Đây có thể là yếu tố quan trọng trong chiến lược phân khúc khách hàng.
– Khác biệt hành vi tiêu dùng theo khu vực: Các vùng địa lý khác nhau có đặc điểm tiêu dùng, mức thu nhập hoặc sở thích sản phẩm khác nhau không?
– Thu nhập ảnh hưởng đến danh mục sản phẩm tiêu dùng như thế nào? Liệu nhóm thu nhập cao có xu hướng chi tiêu vào nhóm hàng không thiết yếu (Non-Consumable) nhiều hơn không?