Phần 1: Tìm hiểu và chuẩn bị dữ liệu

1.1.Đọc dữ liệu

1.2.Cấu trúc của dữ liệu

str(k)
## '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 ...

Nhận xét: Bộ dữ liệu gồm 14,059 quan sát và 16 biến, chủ yếu mô tả thông tin giao dịch mua hàng và nhân khẩu học khách hàng. Các biến quan trọng bao gồm thông tin định tính như giới tính (Gender), tình trạng hôn nhân(MaritalStatus), thu nhập hàng năm (AnnualIncome - hiện ở dạng chuỗi cần chuyển đổi), và địa lý (City, StateorProvince), cùng các biến định lượng như số lượng bán (UnitsSold) và doanh thu (Revenue). Dữ liệu có tiềm năng lớn để phân tích hành vi tiêu dùng theo từng phân khúc khách hàng, nhưng cần kiểm tra và xử lý các vấn đề như giá trị thiếu (đặc biệt ở biếnCountry),chuẩn hóa danh mục sản phẩm (ProductDepartment, ProductCategory), và chuyển đổi kiểu dữ liệu cho các biến ngày tháng (PurchaseDate) và thu nhập để phân tích chính xác hơn. Đây là nguồn dữ liệu phù hợp cho các bài toán từ phân tích mô tả đến dự đoán xu hướng mua hàng.

Phần 2: Phân tích mô tả biến định tính

2.1. Biến Gender (Giới tính)

tbdt <- c("Gender", "MaritalStatus", "Homeowner","AnnualIncome", "City", "StateorProvince", "Country", "ProductFamily", "ProductDepartment", "ProductCategory")
dc <- k[ , tbdt]

# Xem trước dữ liệu biến Gender
head(dc)
##   Gender MaritalStatus Homeowner  AnnualIncome          City StateorProvince
## 1      F             S         Y   $30K - $50K   Los Angeles              CA
## 2      M             M         Y   $70K - $90K   Los Angeles              CA
## 3      F             M         N   $50K - $70K     Bremerton              WA
## 4      M             M         Y   $30K - $50K      Portland              OR
## 5      F             S         Y $130K - $150K Beverly Hills              CA
## 6      F             M         Y   $10K - $30K Beverly Hills              CA
##   Country ProductFamily ProductDepartment      ProductCategory
## 1     USA          Food       Snack Foods          Snack Foods
## 2     USA          Food           Produce           Vegetables
## 3     USA          Food       Snack Foods          Snack Foods
## 4     USA          Food            Snacks                Candy
## 5     USA         Drink         Beverages Carbonated Beverages
## 6     USA          Food              Deli          Side Dishes
table(dc$Gender)
## 
##    F    M 
## 7170 6889
pxh_Gender <- as.data.frame(prop.table(table(dc$Gender)) * 100)
colnames(pxh_Gender) <- c("Gender", "Percentage")
pxh_Gender$Percentage <- round(pxh_Gender$Percentage, 2)
print(pxh_Gender)
##   Gender Percentage
## 1      F         51
## 2      M         49

Nhận xét: Vậy bộ dữ liệu này có số lượng Nam giới6889 người chiếm 50.9993598% là giới tính Nam và số lượng Nữ7170 chiếm 49.0006402% là giới tính Nữ

ggplot(dc, aes(x = Gender)) +
  geom_bar(fill = "#66CC99", color = "black") +
  geom_text(
    stat = "count", 
    aes(label = after_stat(count)),  # Hiển thị số liệu tần số
    vjust = -0.5, color = "black", size = 4                   
  ) +
  labs(
    x = "Gender", 
    y = "Tần số", 
    title = "Biểu đồ tần số giới tính"
  ) +
  theme(
    plot.title = element_text(hjust = 0.5, size = 16, face = "bold"),  # Tiêu đề căn giữa
    axis.text.x = element_text(angle = 45, hjust = 1)                  # Nghiêng nhãn trục x
  )

ggplot(data = dc, aes(x = "", fill = Gender)) +
  geom_bar(width = 1) +
  coord_polar("y") +
  
  # Thêm số liệu lên biểu đồ
  geom_text(aes(label = after_stat(count)), 
            stat = "count",
            position = position_stack(vjust = 0.5),
            color = "white", size = 5) +
  
  labs(title = "Biểu đồ tần số giới tính") +
  theme_void() +
  
  # Căn giữa tiêu đề
  theme(plot.title = element_text(hjust = 0.5, size = 14, face = "bold"))

Nhận xét: Hai biểu đồ tần số giới tính đều thể hiện sự chênh lệch nhỏ giữa hai giới tính trong tập dữ liệu, với nữ(F) chiếm 7,170 trường hợp và nam (M) chiếm 6,889 trường hợp, tương ứng tỷ lệ 51.1% và 48.9%. Biểu đồ thứ nhất trình bày theo dạng cột truyền thống có trục tung hiển thị thang đo tần số rõ ràng , trong khi biểu đồ thứ hai hiển thị trực tiếp giá trị tần số trên biểu đồ. Cả hai biểu đồ đều cho thấy số lượng khách hàng nữ nhiều hơn nam khoảng 281 người,một khác biệt có ý nghĩa thống kê do cỡ mẫu lớn (14,059 quan sát)

tsuat_pxh <- as.data.frame(pxh_Gender)
names(tsuat_pxh) <- c("Gender", "Tansuat")
  tsuat_pxh$Tansuat <- round(tsuat_pxh$Tansuat, 4)
ggplot(tsuat_pxh, aes(x = Gender, y = Tansuat)) +
  geom_col(fill = "green") +
  # Thêm số liệu lên mỗi cột
  geom_text(aes(label = Tansuat), 
            vjust = -0.5,          # Đặt số phía trên cột
            color = "black", 
            size = 5) +
  labs(title = "Biểu đồ tần suất giới tính",
       x = "Giới tính",
       y = "Tần suất (%)") +
  theme_minimal() +
  # Căn giữa tiêu đề
  theme(plot.title = element_text(hjust = 0.5, size = 14, face = "bold"))

library(ggplot2)
ggplot(tsuat_pxh, aes(x = "", y = Tansuat, fill = Gender)) +
  geom_col(width = 1, color = "white") +
  coord_polar(theta = "y") +
  labs(title = "Biểu đồ tần suất giới tính") +
  theme_void() +  
  geom_text(aes(label = paste0(round(Tansuat,4), "%")), 
            position = position_stack(vjust = 0.5),
            color = "white", size = 4)+
# Căn giữa tiêu đề
  theme(plot.title = element_text(hjust = 0.5, size = 14, face = "bold"))

Nhận xét: Hai biểu đồ tần suất giới tính đều cho thấy sự phân bổ gần như cân bằng giữa hai giới tính với nữ (F) chiếm 51% và nam (M) chiếm 49%, chênh lệch không đáng kể (2%). Biểu đồ cột sử dụng kết hợp cả thang đo giúp thể hiện rõ đơn vị phần trăm nhưng gây thừa thông tin do các con số đã được hiển thị trực tiếp trên hình. Trong khi đó, biểu đồ thứ hai trình bày ngắn gọn với tỷ lệ hiển thị ngay trên các phần của biểu đồ tròn, tuy tiện lợi cho việc đọc nhanh nhưng lại thiếu đơn vị đo lường rõ ràng.

2.2.Biến MaritalStatus (Tình trạng hôn nhân)

head(dc)
##   Gender MaritalStatus Homeowner  AnnualIncome          City StateorProvince
## 1      F             S         Y   $30K - $50K   Los Angeles              CA
## 2      M             M         Y   $70K - $90K   Los Angeles              CA
## 3      F             M         N   $50K - $70K     Bremerton              WA
## 4      M             M         Y   $30K - $50K      Portland              OR
## 5      F             S         Y $130K - $150K Beverly Hills              CA
## 6      F             M         Y   $10K - $30K Beverly Hills              CA
##   Country ProductFamily ProductDepartment      ProductCategory
## 1     USA          Food       Snack Foods          Snack Foods
## 2     USA          Food           Produce           Vegetables
## 3     USA          Food       Snack Foods          Snack Foods
## 4     USA          Food            Snacks                Candy
## 5     USA         Drink         Beverages Carbonated Beverages
## 6     USA          Food              Deli          Side Dishes
table(dc$MaritalStatus)
## 
##    M    S 
## 6866 7193
pxh_marital <- as.data.frame(prop.table(table(dc$MaritalStatus)) * 100)
colnames(pxh_marital) <- c("MaritalStatus", "Percentage")
pxh_marital$Percentage <- round(pxh_marital$Percentage, 2)
print(pxh_marital)
##   MaritalStatus Percentage
## 1             M      48.84
## 2             S      51.16

Nhận xét: Dựa trên bảng dữ liệu và kết quả thống kê trong hình, có thể nhận xét như sau: Tập dữ liệu gồm các thông tin về nhân khẩu học và tiêu dùng của khách hàng, bao gồm các biến như giới tính (Gender), tình trạng hôn nhân (MaritalStatus), quyền sở hữu nhà (Homeowner), thu nhập (AnnualIncome), nơi cư trú (StateorProvince), cùng với thông tin sản phẩm như nhóm sản phẩm (ProductFamily) và danh mục tiêu dùng (ProductCategory). Trong bảng tần suất cặp biến Gender và MaritalStatus, có 6.866 người đã kết hôn (M) và 7.193 người độc thân (S), tương ứng với tỷ lệ lần lượt là 48.84% và 51.16%. Điều này cho thấy tỷ lệ giữa người độc thân và người đã kết hôn trong mẫu gần như ngang nhau, với một sự chênh lệch nhẹ nghiêng về nhóm độc thân. Thông tin này là cơ sở quan trọng để tiếp tục thực hiện các phân tích kiểm định giả thuyết hoặc mô hình hóa hành vi tiêu dùng theo đặc điểm nhân khẩu học.

ggplot(dc, aes(x = MaritalStatus)) +
  geom_bar(fill = "#FF9999", color = "black") +
  geom_text(stat = "count", aes(label = after_stat(count)), vjust = -0.5, size = 4) +
  labs(title = "Biểu đồ tần số kết hôn", x = "Tình trạng hôn nhân", y = "Tần số") +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"))+
  # Thêm chú thích giải thích các giá trị
  annotate(
    "text",
    x = Inf, y = Inf,
    label = "Chú thích:\nS: Độc thân\nM: Đã kết hôn",
    hjust = 1, vjust = 3.2,
    size = 3.5,
    color = "gray30"
  )

ggplot(data = dc, aes(x = "", fill = MaritalStatus)) +
  geom_bar(width = 1) +
  coord_polar("y") +
  
  # Thêm số liệu lên biểu đồ
  geom_text(aes(label = after_stat(count)), 
            stat = "count",
            position = position_stack(vjust = 0.5),
            color = "white", size = 5) +
  
  labs(title = "Biểu đồ tần số kết hôn") +
  theme_void() +
  
  # Căn giữa tiêu đề
  theme(plot.title = element_text(hjust = 0.5, size = 14, face = "bold"))

Nhận xét: Hai biểu đồ trên thể hiện trực quan về tình trạng hôn nhân của khách hàng trong tập dữ liệu. Biểu đồ cột cho thấy số lượng người độc thân (ký hiệu “S”) và người đã kết hôn (ký hiệu “M”) gần tương đương nhau, với lần lượt 7.193 người độc thân và 6.866 người đã kết hôn. Điều này cũng được minh họa rõ ràng trong biểu đồ tròn, nơi phần màu xanh dương (độc thân) chiếm tỷ lệ hơi nhỉnh hơn so với phần màu hồng (đã kết hôn). Sự chênh lệch nhỏ này cho thấy tập dữ liệu có sự phân bố khá cân bằng giữa hai nhóm, tuy nhiên nhóm độc thân chiếm tỷ lệ lớn hơn một chút. Cả hai biểu đồ đều hỗ trợ việc hiểu rõ cấu trúc dân số theo tình trạng hôn nhân, từ đó làm cơ sở cho các phân tích sâu hơn như hành vi tiêu dùng theo từng nhóm.

names(pxh_marital) <- c("Gender", "Tansuat")
  pxh_marital$Tansuat <- round(pxh_marital$Tansuat, 4)
ggplot(pxh_marital, aes(x = Gender, y = Tansuat)) +
  geom_col(fill = "green") +
  # Thêm số liệu lên mỗi cột
  geom_text(aes(label = Tansuat), 
            vjust = -0.5,          # Đặt số phía trên cột
            color = "black", 
            size = 5) +
  labs(title = "Biểu đồ tần suất kết hôn",
       x = "Kết hôn",
       y = "Tần suất (%)") +
  theme_minimal() +
  # Căn giữa tiêu đề
  theme(plot.title = element_text(hjust = 0.5, size = 14, face = "bold"))

names(pxh_marital) <- c("MaritalStatus", "Tansuat")
ggplot(pxh_marital, aes(x = "", y = Tansuat, fill = MaritalStatus)) +
  geom_col(width = 1, color = "white") +
  coord_polar("y") +
  geom_text(aes(label = paste0(round(Tansuat*100,1), "%")), 
            position = position_stack(vjust = 0.5), size = 4) +
  labs(title = "Biểu đồ tần suất kết hôn") +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"))

Nhận xét: Hai biểu đồ trên minh họa tỷ lệ phần trăm của các nhóm tình trạng hôn nhân trong tập dữ liệu. Biểu đồ cột cho thấy người độc thân (ký hiệu “S”) chiếm 51.16%, trong khi người đã kết hôn (ký hiệu “M”) chiếm 48.84%, cho thấy sự chênh lệch không đáng kể giữa hai nhóm. Biểu đồ tròn cũng phản ánh kết quả tương tự với phần màu xanh (độc thân) chiếm hơi nhiều hơn so với phần màu đỏ (đã kết hôn). Tuy nhiên, biểu đồ tròn có lỗi hiển thị tỷ lệ phần trăm, khi các giá trị hiển thị là “4884%” và “5116%” thay vì 48.84% và 51.16%. Dù vậy, về tổng thể, cả hai biểu đồ đều cho thấy rằng số lượng người độc thân trong dữ liệu cao hơn một chút so với người đã kết hôn, với sự phân bố gần như cân bằng giữa hai nhóm.

2.3.Biến ProductFamily

head(dc)
##   Gender MaritalStatus Homeowner  AnnualIncome          City StateorProvince
## 1      F             S         Y   $30K - $50K   Los Angeles              CA
## 2      M             M         Y   $70K - $90K   Los Angeles              CA
## 3      F             M         N   $50K - $70K     Bremerton              WA
## 4      M             M         Y   $30K - $50K      Portland              OR
## 5      F             S         Y $130K - $150K Beverly Hills              CA
## 6      F             M         Y   $10K - $30K Beverly Hills              CA
##   Country ProductFamily ProductDepartment      ProductCategory
## 1     USA          Food       Snack Foods          Snack Foods
## 2     USA          Food           Produce           Vegetables
## 3     USA          Food       Snack Foods          Snack Foods
## 4     USA          Food            Snacks                Candy
## 5     USA         Drink         Beverages Carbonated Beverages
## 6     USA          Food              Deli          Side Dishes
table(dc$ProductFamily)
## 
##          Drink           Food Non-Consumable 
##           1250          10153           2656
pxh_ProductFamily <- as.data.frame(prop.table(table(dc$ProductFamily)) * 100)
colnames(pxh_ProductFamily) <- c("ProductFamily", "Percentage")
pxh_ProductFamily$Percentage <- round(pxh_ProductFamily$Percentage, 2)
print(pxh_ProductFamily)
##    ProductFamily Percentage
## 1          Drink       8.89
## 2           Food      72.22
## 3 Non-Consumable      18.89

Nhận xét: Các bảng số liệu trên cung cấp thông tin về phân bố nhóm sản phẩm (ProductFamily) trong dữ liệu. Cụ thể, nhóm sản phẩm “Food” chiếm ưu thế với 10.153 quan sát, tương ứng 72.22% tổng số, cho thấy đây là nhóm chính được tiêu dùng hoặc khảo sát. Nhóm “Non-Consumable” có 2.656 quan sát, chiếm 18.89%, và nhóm “Drink” có 1.250 quan sát, chiếm tỷ lệ thấp nhất với 8.89%. Điều này phản ánh rằng sản phẩm thực phẩm là mặt hàng chủ đạo, trong khi đồ uống và sản phẩm không tiêu dùng có mức độ xuất hiện ít hơn đáng kể trong dữ liệu. Phân bố này có thể cho thấy xu hướng tiêu dùng tập trung chủ yếu vào thực phẩm.

ggplot(dc, aes(x = ProductFamily)) +
  geom_bar(fill = "#FF9999", color = "black") +
  geom_text(stat = "count", aes(label = after_stat(count)), vjust = -0.5, size = 4) +
  labs(title = "Biểu đồ tần số tiêu thụ của gia đình", x = "Sản phẩm", y = "Tần số") +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"))+
  # Thêm chú thích giải thích các giá trị
  annotate(
    "text",
    x = Inf, y = Inf,
    label = "Chú thích:\nFood: Thức ăn\nDrink: Đồ uống\nNon-Consumable:Không tiêu thụ",
    hjust = 1, vjust = 3.2,
    size = 3.5,
    color = "gray30"
  )

ggplot(data = dc, aes(x = "", fill = ProductFamily)) +
  geom_bar(width = 1) +
  coord_polar("y") +
  
  # Thêm số liệu lên biểu đồ
  geom_text(aes(label = after_stat(count)), 
            stat = "count",
            position = position_stack(vjust = 0.5),
            color = "white", size = 5) +
  
  labs(title = "Biểu đồ tần số tiêu thụ của gia đình") +
  theme_void() +
  
  # Căn giữa tiêu đề
  theme(plot.title = element_text(hjust = 0.5, size = 14, face = "bold"))

Nhận xét: Hai biểu đồ trên thể hiện tần số tiêu thụ các nhóm sản phẩm của gia đình, bao gồm “Food” (thực phẩm), “Drink” (đồ uống) và “Non-Consumable” (không tiêu thụ). Biểu đồ cột cho thấy nhóm sản phẩm “Food” chiếm số lượng vượt trội với 10.153 lần, tiếp theo là “Non-Consumable” với 2.656 lần và thấp nhất là “Drink” với 1.250 lần. Biểu đồ tròn củng cố điều này khi phần lớn diện tích thuộc về nhóm “Food”, phản ánh vai trò chủ đạo của thực phẩm trong tiêu dùng gia đình. Sự chênh lệch rõ rệt giữa ba nhóm sản phẩm cho thấy rằng nhu cầu tiêu dùng hàng ngày của các gia đình tập trung chủ yếu vào thực phẩm, trong khi các sản phẩm không tiêu dùng và đồ uống chỉ chiếm tỷ trọng nhỏ hơn.

names(pxh_ProductFamily) <- c("ProductFamily", "Tansuat")
  pxh_ProductFamily$Tansuat <- round(pxh_ProductFamily$Tansuat, 4)
ggplot(pxh_ProductFamily, aes(x = ProductFamily, y = Tansuat)) +
  geom_col(fill = "green") +
  # Thêm số liệu lên mỗi cột
  geom_text(aes(label = Tansuat), 
            vjust = -0.5,          # Đặt số phía trên cột
            color = "black", 
            size = 5) +
  labs(title = "Biểu đồ tần suất tiêu thụ của gia đình",
       x = "Tiêu thụ",
       y = "Tần suất (%)") +
  theme_minimal() +
  # Căn giữa tiêu đề
  theme(plot.title = element_text(hjust = 0.5, size = 14, face = "bold"))

names(pxh_ProductFamily) <- c("ProductFamily", "Tansuat")
ggplot(pxh_ProductFamily, aes(x = "", y = Tansuat, fill = ProductFamily)) +
  geom_col(width = 1, color = "white") +
  coord_polar("y") +
  geom_text(aes(label = paste0(round(Tansuat*100,1), "%")), 
            position = position_stack(vjust = 0.5), size = 4) +
  labs(title = "Biểu đồ tần suất tiêu thụ của gia đình") +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"))

Nhận xét: Hai biểu đồ trên thể hiện tần suất tiêu thụ của các nhóm sản phẩm trong gia đình, bao gồm “Drink” (đồ uống), “Food” (thực phẩm) và “Non-Consumable” (không tiêu thụ). Biểu đồ cột cho thấy nhóm “Food” chiếm tỷ lệ cao nhất với 72.22%, tiếp theo là “Non-Consumable” với 18.89% và thấp nhất là “Drink” chỉ với 8.89%. Biểu đồ tròn minh họa trực quan sự chênh lệch này, trong đó phần lớn diện tích thuộc về nhóm “Food”, cho thấy thực phẩm vẫn là nhu cầu tiêu dùng thiết yếu và chiếm ưu thế trong đời sống gia đình. Tỷ lệ tiêu thụ của nhóm “Drink” và “Non-Consumable” tuy có phần khiêm tốn hơn, nhưng vẫn thể hiện vai trò hỗ trợ nhất định trong tiêu dùng hàng ngày. Nhìn chung, dữ liệu từ hai biểu đồ cho thấy cơ cấu tiêu dùng gia đình tập trung mạnh vào thực phẩm, phản ánh rõ nét xu hướng và nhu cầu thiết yếu trong sinh hoạt.

Phần 3:Ước lượng khoảng và kiểm định giả thuyết cho tỷ lệ

3.1.Ước lượng khoảng

3.1.1.Biến Gender

# Tính khoảng tin cậy 95% cho tỷ lệ Nam (M) trong biến Gender

# Dữ liệu của bạn
so_nam <- sum(dc$Gender == "M")  # Số lượng Nam
tong_mau <- nrow(dc)             # Tổng số quan sát

# Tính tỷ lệ mẫu
ty_le <- so_nam / tong_mau

# Tính sai số chuẩn
sai_so <- sqrt(ty_le * (1 - ty_le) / tong_mau)

# Z-score cho 95% CI (1.96)
z <- qnorm(0.975)

# Tính khoảng tin cậy
khoang_tin_cay <- c(
  lower = ty_le - z * sai_so,
  upper = ty_le + z * sai_so
)

# Kết quả
cat("Kết quả ước lượng tỷ lệ Nam (M):\n")
## Kết quả ước lượng tỷ lệ Nam (M):
cat("Tỷ lệ mẫu:", round(ty_le * 100, 2), "%\n")
## Tỷ lệ mẫu: 49 %
cat("Khoảng tin cậy 95%: [", 
    round(khoang_tin_cay["lower"] * 100, 2), "%; ", 
    round(khoang_tin_cay["upper"] * 100, 2), "%]\n")
## Khoảng tin cậy 95%: [ 48.17 %;  49.83 %]
cat("Số lượng Nam:", so_nam, "/", tong_mau, "\n")
## Số lượng Nam: 6889 / 14059

Nhận xét: Dựa vào kết quả ước lượng tỷ lệ Nam (M) trong tổng thể mẫu gồm 14.059 người, có 6.889 người là nam, chiếm tỷ lệ mẫu là 49%. Khoảng tin cậy 95% cho tỷ lệ nam giới trong tổng thể nằm trong khoảng từ 48.17% đến 49.83%. Điều này cho thấy rằng tỷ lệ nam giới trong mẫu khá cân bằng so với nữ giới, và có thể suy ra rằng tỷ lệ nam giới trong quần thể tổng thể cũng xấp xỉ 49%, với độ tin cậy 95%. Sự khác biệt giữa tỷ lệ nam và nữ là không đáng kể và không có dấu hiệu nghiêng hẳn về một giới nào.

3.1.2.Biến MaritalStatus

# Tính khoảng tin cậy 95% cho tỷ lệ Độc thân (S) trong MaritalStatus

# Tính số lượng và tổng mẫu
so_doc_than <- sum(dc$MaritalStatus == "S")  # Số lượng người độc thân
tong_mau <- nrow(dc)                        # Tổng số quan sát

# Tính tỷ lệ mẫu
ty_le <- so_doc_than / tong_mau

# Tính sai số chuẩn
sai_so <- sqrt(ty_le * (1 - ty_le) / tong_mau)

# Z-score cho 95% CI (1.96)
z <- qnorm(0.975)

# Tính khoảng tin cậy
khoang_tin_cay <- c(
  lower = ty_le - z * sai_so,
  upper = ty_le + z * sai_so
)

# Kết quả
cat("\nKết quả ước lượng tỷ lệ Độc thân (S):\n")
## 
## Kết quả ước lượng tỷ lệ Độc thân (S):
cat("Tỷ lệ mẫu:", round(ty_le * 100, 2), "%\n")
## Tỷ lệ mẫu: 51.16 %
cat("Khoảng tin cậy 95%: [", 
    round(khoang_tin_cay["lower"] * 100, 2), "%; ", 
    round(khoang_tin_cay["upper"] * 100, 2), "%]\n")
## Khoảng tin cậy 95%: [ 50.34 %;  51.99 %]
cat("Số lượng Độc thân:", so_doc_than, "/", tong_mau, "\n")
## Số lượng Độc thân: 7193 / 14059

Nhận xét: Dựa trên kết quả ước lượng tỷ lệ người độc thân trong mẫu khảo sát gồm 14.059 người, có 7.193 người độc thân, chiếm tỷ lệ mẫu là 51.16%. Khoảng tin cậy 95% cho tỷ lệ này nằm trong khoảng từ 50.34% đến 51.99%. Điều này cho thấy tỷ lệ người độc thân trong tổng thể dân số được khảo sát có xu hướng nhỉnh hơn một chút so với người có gia đình hoặc quan hệ tình cảm, và sự khác biệt này có ý nghĩa thống kê trong khoảng tin cậy đã nêu.

3.1.3.Biến ProductFamily

# Tính khoảng tin cậy 95% cho tỷ lệ Food trong ProductFamily

# Tính số lượng và tổng mẫu
so_drink <- sum(dc$ProductFamily == "Drink")  # Số lượng sản phẩm thuộc nhóm Drink
tong_mau <- nrow(dc)                       # Tổng số quan sát

# Tính tỷ lệ mẫu
ty_le <- so_drink / tong_mau

# Tính sai số chuẩn
sai_so <- sqrt(ty_le * (1 - ty_le) / tong_mau)

# Z-score cho 95% CI (1.96)
z <- qnorm(0.975)

# Tính khoảng tin cậy
khoang_tin_cay <- c(
  lower = ty_le - z * sai_so,
  upper = ty_le + z * sai_so
)

# Kết quả
cat("\nKết quả ước lượng tỷ lệ Drink trong ProductFamily:\n")
## 
## Kết quả ước lượng tỷ lệ Drink trong ProductFamily:
cat("Tỷ lệ mẫu:", round(ty_le * 100, 2), "%\n")
## Tỷ lệ mẫu: 8.89 %
cat("Khoảng tin cậy 95%: [", 
    round(khoang_tin_cay["lower"] * 100, 2), "%; ", 
    round(khoang_tin_cay["upper"] * 100, 2), "%]\n")
## Khoảng tin cậy 95%: [ 8.42 %;  9.36 %]
cat("Số lượng Drink:", so_drink, "/", tong_mau, "\n")
## Số lượng Drink: 1250 / 14059

Nhận xét: Dựa trên kết quả ước lượng, tỷ lệ mẫu của nhóm Drink trong biến ProductFamily là 8,89%, tương ứng với 1.250 mục Drink trên tổng số 14.059 quan sát. Khoảng tin cậy 95% cho tỷ lệ này nằm trong khoảng từ 8,42% đến 9,36%, cho thấy ước lượng này có độ chính xác cao và phản ánh khá tin cậy tỷ lệ thực tế trong tổng thể. Mặc dù tỷ lệ của nhóm Drink tương đối thấp (dưới 10%), điều này có thể cho thấy rằng nhóm sản phẩm đồ uống không chiếm ưu thế hoặc không phải là nhóm phổ biến trong bộ dữ liệu được khảo sát.

3.2.Kiểm định giả thuyết tỷ lệ

# Kiểm định tỷ lệ trong các biến: Gender, MaritalStatus, ProductFamily

# Hàm thực hiện kiểm định và in kết quả
kiem_dinh_tyle <- function(bien, muc_tyle, ten_giatri, h0, huong_kt = "two.sided") {
  x <- sum(bien == ten_giatri)
  n <- length(bien)
  test <- prop.test(x, n, p = muc_tyle, alternative = huong_kt)
  
  cat("=== Kiểm định tỷ lệ", ten_giatri, "===\n")
  cat("• H0:", h0, "\n")
  cat("• Số lượng", ten_giatri, ":", x, "\n")
  cat("• Tổng mẫu:", n, "\n")
  cat("• Tỷ lệ mẫu:", round(100 * x / n, 2), "%\n")
  cat("• p-value:", round(test$p.value, 4), "\n")
  cat("• Kết luận:", ifelse(test$p.value < 0.05, "Bác bỏ H0", "Không bác bỏ H0"), "\n\n")
}

# Thực hiện kiểm định
kiem_dinh_tyle(dc$Gender, 0.5, "M", "Tỷ lệ Nam = 50%")
## === Kiểm định tỷ lệ M ===
## • H0: Tỷ lệ Nam = 50% 
## • Số lượng M : 6889 
## • Tổng mẫu: 14059 
## • Tỷ lệ mẫu: 49 %
## • p-value: 0.0182 
## • Kết luận: Bác bỏ H0

Nhận xét: Kết quả kiểm định cho thấy tỷ lệ Nam trong mẫu là 49%, thấp hơn so với giả thuyết H0 (50%). Với p-value = 0.0182 (< 0.05), chúng ta có đủ bằng chứng để bác bỏ H0, kết luận rằng tỷ lệ Nam trong tổng thể khác biệt có ý nghĩa so với mức 50%. Điều này phù hợp với thực tế mẫu có số lượng Nữ (7,170) cao hơn Nam (6,889), cho thấy sự chênh lệch nhỏ nhưng có ý nghĩa thống kê. Kết quả này gợi ý rằng doanh nghiệp cần cân nhắc điều chỉnh chiến lược marketing để phù hợp với đặc điểm giới tính của khách hàng.

kiem_dinh_tyle(dc$MaritalStatus, 0.6, "S", "Tỷ lệ Độc thân = 60%")
## === Kiểm định tỷ lệ S ===
## • H0: Tỷ lệ Độc thân = 60% 
## • Số lượng S : 7193 
## • Tổng mẫu: 14059 
## • Tỷ lệ mẫu: 51.16 %
## • p-value: 0 
## • Kết luận: Bác bỏ H0

Nhận xét: Tỷ lệ Độc thân trong mẫu là 51.16%, thấp hơn đáng kể so với giả thuyết H0 (60%). P-value ≈ 0 (< 0.001) khẳng định sự khác biệt này có ý nghĩa thống kê mạnh. Kết quả cho thấy tỷ lệ Độc thân trong thực tế thấp hơn nhiều so với dự đoán ban đầu, với số lượng người Độc thân (7,193) và Đã kết hôn gần như tương đương. Điều này có thể ảnh hưởng đến chiến lược sản phẩm, vì nhóm Đã kết hôn thường có nhu cầu mua sắm khác biệt (ví dụ: sản phẩm gia đình).

kiem_dinh_tyle(dc$ProductFamily, 0.2, "Drink", "Tỷ lệ Drink ≥ 20%", huong_kt = "less")
## === Kiểm định tỷ lệ Drink ===
## • H0: Tỷ lệ Drink ≥ 20% 
## • Số lượng Drink : 1250 
## • Tổng mẫu: 14059 
## • Tỷ lệ mẫu: 8.89 %
## • p-value: 0 
## • Kết luận: Bác bỏ H0

Nhận xét: Tỷ lệ sản phẩm Drink trong mẫu chỉ chiếm 8.89%, thấp hơn rõ rệt so với giả thuyết H0 (20%). P-value ≈ (< 0.001) cho phép bác bỏ H0 với độ tin cậy cao. Kết quả này tiết lộ rằng nhóm sản phẩm Drink có tần suất mua thấp hơn nhiều so với kỳ vọng (chỉ 1,250/14,059 giao dịch). Doanh nghiệp cần xem xét lại chiến lược phân phối hoặc quảng bá cho nhóm sản phẩm này, hoặc điều tra nguyên nhân khiến tỷ lệ mua thấp (ví dụ: chất lượng, giá cả, hoặc thiếu đa dạng sản phẩm).

Phần 4: Phân tích mối liên hệ giữa hai biến định tính

4.1.Bảng tần số chéo và trực quan hoá dữ liệu bằng biểu đồ

4.1.1. Biến Marital và Homeowner

# Bảng tần suất
table_mh <- table(dc$MaritalStatus, dc$Homeowner)
prop_mh <- prop.table(table_mh, margin = 1)  # theo hàng

# Xem bảng
round(prop_mh * 100, 2)
##    
##         N     Y
##   M 25.04 74.96
##   S 54.16 45.84

Nhận xét: Phân tích tỷ lệ sở hữu nhà theo tình trạng hôn nhân cho thấy sự khác biệt đáng kể giữa hai nhóm: trong khi 74.96% người đã kết hôn (M) sở hữu nhà, tỷ lệ này ở nhóm độc thân (S) chỉ đạt 45.84%. Ngược lại, tỷ lệ không sở hữu nhà ở nhóm độc thân lên tới 54.16%, gần gấp đôi so với 25.04% ở nhóm đã kết hôn. Sự chênh lệch ~30% này phản ánh rõ ràng mối quan hệ giữa tình trạng hôn nhân và khả năng sở hữu bất động sản, có thể do các yếu tố như ổn định tài chính, nhu cầu an cư khi có gia đình, hay khả năng tiếp cận các khoản vay mua nhà thuận lợi hơn ở nhóm đã kết hôn so với nhóm độc thân. Kết quả này cung cấp thông tin quan trọng cho các chiến lược tiếp thị bất động sản, gợi ý nên tập trung vào các cặp đôi đã kết hôn như một nhóm khách hàng tiềm năng có tỷ lệ sở hữu nhà cao hơn đáng kể.

ggplot(data = as.data.frame(table_mh), aes(x = Var1, y = Freq, fill = Var2)) +
  geom_bar(stat = "identity", position = "fill") +
  scale_y_continuous(labels = percent_format()) +
  labs(x = "Tình trạng hôn nhân", y = "Tỷ lệ", fill = "Chủ nhà", 
       title = "Tỷ lệ sở hữu nhà theo tình trạng hôn nhân") +
  theme_minimal()

Nhận xét: Biểu đồ tỷ lệ sở hữu nhà theo tình trạng hôn nhân cho thấy sự chênh lệch rõ rệt giữa hai nhóm khách hàng. Ở nhóm đã kết hôn (M), tỷ lệ sở hữu nhà (Y) chiếm khoảng 75%, trong khi tỷ lệ này ở nhóm độc thân (S) chỉ đạt gần 50%. Ngược lại, tỷ lệ không sở hữu nhà (N) ở nhóm độc thân lên tới 50%, cao hơn đáng kể so với khoảng 25% ở nhóm đã kết hôn. Sự khác biệt này (khoảng 25-30%) cho thấy tình trạng hôn nhân là yếu tố có ảnh hưởng mạnh đến khả năng sở hữu nhà, có thể do các cặp đã kết hôn thường có nhu cầu ổn định chỗ ở cao hơn, khả năng tài chính tốt hơn từ hai nguồn thu nhập, và dễ tiếp cận các chính sách hỗ trợ mua nhà dành cho gia đình. Kết quả này gợi ý các ngân hàng và công ty bất động sản nên phát triển các sản phẩm tín dụng và chương trình hỗ trợ khác biệt cho từng nhóm đối tượng khách hàng này.

4.1.2.Biến StateorProvince và ProductFamily

table_sp <- table(dc$StateorProvince, dc$ProductFamily)
prop_sp <- prop.table(table_sp)  # theo tổng thể

# Xem bảng
round(prop_sp * 100, 2)
##            
##             Drink  Food Non-Consumable
##   BC         0.49  4.13           1.14
##   CA         1.84 14.04           3.56
##   DF         0.46  4.25           1.08
##   Guerrero   0.29  1.93           0.50
##   Jalisco    0.04  0.41           0.09
##   OR         1.42 11.59           3.09
##   Veracruz   0.31  2.29           0.70
##   WA         2.84 23.38           6.27
##   Yucatan    0.34  3.51           0.80
##   Zacatecas  0.87  6.69           1.67

Nhận xét: Bảng số liệu thể hiện sự phân bố sản phẩm theo nhóm ProductFamily tại các bang (StateorProvince) cho thấy xu hướng rõ rệt: nhóm sản phẩm Food luôn chiếm tỷ lệ cao nhất tại tất cả các bang, trong đó nổi bật là bang Washington (WA) với 23.38%, tiếp theo là California (CA) với 14.04% và Oregon (OR) với 11.59%. Tỷ lệ sản phẩm Drink và Non-Consumable thấp hơn đáng kể so với Food, nhưng vẫn tuân theo mô hình tương tự khi WA dẫn đầu cả ba nhóm sản phẩm. Đặc biệt, bang Jalisco có tỷ lệ thấp nhất ở cả ba nhóm, trong khi các bang biên giới như CA, WA và OR thể hiện mức tiêu thụ sản phẩm vượt trội. Sự chênh lệch lớn giữa các bang (ví dụ: Food tại WA gấp gần 60 lần so với Jalisco) phản ánh khả năng liên quan đến quy mô dân số, văn hóa tiêu dùng hoặc hiệu quả phân phối tại từng khu vực, gợi ý doanh nghiệp nên điều chỉnh chiến lược phân phối tập trung vào các thị trường trọng điểm.

ggplot(data = as.data.frame(table_sp), aes(x = Var1, y = Freq, fill = Var2)) +
  geom_bar(stat = "identity", position = "fill") +
  scale_y_continuous(labels = percent_format()) +
  labs(x = "Tỉnh/Bang", y = "Tỷ lệ", fill = "Nhóm sản phẩm", 
       title = "Tỷ lệ nhóm sản phẩm theo tỉnh/bang") +
  theme_minimal()

Nhận xét: Biểu đồ tỷ lệ nhóm sản phẩm theo bang/tỉnh cho thấy sự phân bổ không đồng đều giữa các vùng, với nhóm sản phẩm Food luôn chiếm tỷ lệ áp đảo (trên 50%) ở hầu hết các khu vực. Các bang lớn như California (CA), Washington (WA) và Oregon (OR) có tỷ lệ tiêu thụ cả ba nhóm sản phẩm (Drink, Food, Non-Consumable) cao hơn rõ rệt so với các bang nhỏ như Jalisco hay Guerrero. Đặc biệt, WA nổi bật với cột biểu đồ cao nhất, phản ánh đây có thể là thị trường trọng điểm của doanh nghiệp. Tỷ lệ sản phẩm Non-Consumable tuy thấp hơn Food nhưng vẫn duy trì ổn định ở mức 10-25% tại các bang lớn. Sự chênh lệch đáng kể giữa các bang (ví dụ: WA so với Jalisco) gợi ý yếu tố quy mô thị trường và đặc điểm vùng miền ảnh hưởng mạnh đến cơ cấu sản phẩm tiêu thụ, từ đó doanh nghiệp cần có chiến lược phân phối phù hợp cho từng địa bàn.

4.1.3.Biến Gender và ProductFamily

# Tạo bảng tần suất
table_gp <- table(dc$Gender, dc$ProductFamily)

# Tính tỷ lệ phần trăm theo cột (mỗi sản phẩm được mua bởi giới nào nhiều hơn)
prop_gp <- prop.table(table_gp, margin = 2)  # theo cột

# Hiển thị bảng tỷ lệ %
round(prop_gp * 100, 2)
##    
##     Drink  Food Non-Consumable
##   F 53.52 50.71          50.90
##   M 46.48 49.29          49.10

Nhận xét: Bảng số liệu thể hiện sự phân bổ tỷ lệ mua sản phẩm theo giới tính cho thấy các nhóm sản phẩm có tỷ lệ tương đối cân bằng giữa hai giới. Cụ thể, nhóm sản phẩm Drink có tỷ lệ nữ giới (F) mua hàng chiếm 53.52%, cao hơn nam giới (M) ở mức 46.48%, trong khi hai nhóm Food và Non-Consumable có tỷ lệ gần như tương đương giữa hai giới (F: ~50.7-50.9% vs M: ~49.1-49.3%). Điều này cho thấy nhóm Drink có thể có sự khác biệt về sở thích hoặc nhu cầu theo giới tính, trong khi Food và Non-Consumable được cả hai giới đón nhận tương đối đồng đều. Kết quả này gợi ý doanh nghiệp nên cân nhắc các chiến dịch marketing riêng biệt cho nhóm sản phẩm Drink nhằm thu hút cả hai đối tượng khách hàng nam và nữ một cách hiệu quả hơn.

ggplot(data = as.data.frame(table_gp), aes(x = Var2, y = Freq, fill = Var1)) +
  geom_bar(stat = "identity", position = "fill") +
  scale_y_continuous(labels = percent_format()) +
  labs(x = "Nhóm sản phẩm", y = "Tỷ lệ", fill = "Giới tính",
       title = "Tỷ lệ giới tính theo nhóm sản phẩm") +
  theme_minimal()

Nhận xét: Biểu đồ tỷ lệ giới tính theo nhóm sản phẩm cho thấy sự phân bổ khá cân đối giữa hai giới tính trong các nhóm sản phẩm chính. Đối với nhóm Food và Non-Consumable, tỷ lệ mua hàng của nam và nữ gần như tương đương nhau (xấp xỉ 50-50%), trong khi nhóm Drink có sự chênh lệch nhỏ với nữ giới chiếm tỷ lệ cao hơn nam giới khoảng 3-4%. Điều này phản ánh rằng các sản phẩm thuộc nhóm Food và Non-Consumable có sức hấp dẫn chung đối với cả hai giới, trong khi nhóm Drink có thể cần xem xét các yếu tố về sở thích giới tính trong chiến lược phát triển sản phẩm và marketing. Sự phân bố này cũng gợi ý rằng các chiến dịch quảng cáo cho nhóm Drink có thể cần được điều chỉnh để thu hút cân bằng hơn từ cả hai nhóm khách hàng nam và nữ.

4.2 Kiểm định thống kê

kiem_dinh_chi2 <- function(bien1, bien2, alpha = 0.05) {
  tbl <- table(bien1, bien2)
  test <- chisq.test(tbl)
  
  cat("=== Kiểm định Chi-bình phương ===\n")
  cat("• H0: Hai biến độc lập\n")
  cat("• H1: Hai biến có liên quan\n")
  cat("• Giá trị Chi-bình phương:", round(test$statistic, 4), "\n")
  cat("• Bậc tự do:", test$parameter, "\n")
  cat("• Giá trị p-value:", round(test$p.value, 4), "\n")
  cat("• Kết luận:", ifelse(test$p.value < alpha,
                           "Bác bỏ H0 → Có mối liên hệ giữa hai biến",
                           "Không đủ bằng chứng bác bỏ H0 → Hai biến độc lập"), "\n\n")
}
kiem_dinh_chi2(dc$Gender, dc$ProductFamily)
## === Kiểm định Chi-bình phương ===
## • H0: Hai biến độc lập
## • H1: Hai biến có liên quan
## • Giá trị Chi-bình phương: 3.5185 
## • Bậc tự do: 2 
## • Giá trị p-value: 0.1722 
## • Kết luận: Không đủ bằng chứng bác bỏ H0 → Hai biến độc lập

Nhận xét: Kết quả kiểm định cho thấy không có đủ bằng chứng thống kê để bác bỏ giả thuyết H0 (p-value = 0.1722 > 0.05), điều này khẳng định hai biến được kiểm định độc lập với nhau. Giá trị Chi-bình phương thấp (3.5185) và bậc tự do (df = 2) phù hợp với kết luận này. Trong bối cảnh phân tích dữ liệu, điều này có nghĩa không có mối liên hệ đáng kể giữa hai biến, và các yếu tố này không ảnh hưởng lẫn nhau trong tập dữ liệu.

kiem_dinh_chi2(dc$MaritalStatus, dc$Homeowner)
## === Kiểm định Chi-bình phương ===
## • H0: Hai biến độc lập
## • H1: Hai biến có liên quan
## • Giá trị Chi-bình phương: 1241.218 
## • Bậc tự do: 1 
## • Giá trị p-value: 0 
## • Kết luận: Bác bỏ H0 → Có mối liên hệ giữa hai biến

Nhận xét: Kết quả này cho thấy mối liên hệ rất mạnh giữa hai biến với giá trị Chi-bình phương cực cao (1241.218) và p-value ≈ 0 (< 0.001). Việc bác bỏ H0 khẳng định hai biến có sự phụ thuộc đáng kể trong tổng thể. Điều này gợi ý rằng một biến có thể dùng để dự đoán hoặc giải thích biến kia, và cần được nghiên cứu sâu hơn để hiểu bản chất mối quan hệ (ví dụ: tác động nhân quả hoặc tương quan).

kiem_dinh_chi2(dc$StateorProvince, dc$ProductFamily)
## === Kiểm định Chi-bình phương ===
## • H0: Hai biến độc lập
## • H1: Hai biến có liên quan
## • Giá trị Chi-bình phương: 12.2996 
## • Bậc tự do: 18 
## • Giá trị p-value: 0.8314 
## • Kết luận: Không đủ bằng chứng bác bỏ H0 → Hai biến độc lập

Nhận xét: Với p-value = 0.8314 lớn hơn nhiều so với mức ý nghĩa 0.05, kết quả một lần nữa không bác bỏ H0, cho thấy hai biến này độc lập về mặt thống kê. Mặc dù bậc tự do khá cao (df = 18), giá trị Chi-bình phương thấp (12.2996) phản ánh sự khác biệt giữa các quan sát và giá trị kỳ vọng là không đáng kể. Điều này củng cố kết luận rằng không có mối liên hệ nào giữa hai biến trong phân tích.

Phần 5: Tổng kết thảo luận

5.1.Tóm tắt những phát hiện chính

Nghiên cứu đã khám phá các đặc điểm nhân khẩu học và hành vi tiêu dùng thông qua phân tích các biến định tính. Kết quả cho thấy: - Nhân khẩu học: Tỷ lệ giới tính gần cân bằng (Nữ: 51%, Nam: 49%), nhưng nhóm độc thân (51.16%) cao hơn nhóm đã kết hôn (48.84%). Đáng chú ý, tỷ lệ sở hữu nhà ở nhóm đã kết hôn (74.96%) gần gấp đôi nhóm độc thân (45.84%), phản ánh mối liên hệ mạnh giữa tình trạng hôn nhân và khả năng sở hữu bất động sản. - Hành vi mua sắm: Nhóm sản phẩm “Food” chiếm ưu thế (72.22%), trong khi “Drink” chỉ chiếm 8.89%. Các bang lớn như WA, CA có tỷ lệ tiêu thụ sản phẩm cao hơn hẳn so với bang nhỏ như Jalisco. - Khác biệt giới tính: Nữ giới có xu hướng mua đồ uống (Drink) nhiều hơn nam (53.52% vs 46.48%), trong khi hai nhóm còn lại cân bằng.

5.2. Hạn chế của đề tài

Nghiên cứu có một số hạn chế cần lưu ý: - Chất lượng dữ liệu: Biến thu nhập (AnnualIncome) ở dạng khoảng, gây khó khăn khi phân tích chi tiết. Một số danh mục sản phẩm chồng lấp (ví dụ: “Snacks” và “Snack Foods”). - Kích thước mẫu con: Một số nhóm sản phẩm (ví dụ: “Drink”) hoặc bang nhỏ (ví dụ: Jalisco) có số lượng mẫu thấp, làm giảm độ tin cậy của kiểm định. - Thiếu biến định lượng: Nghiên cứu chưa kết hợp với biến như Revenue hoặc UnitsSold để đánh giá tác động của nhân khẩu học đến giá trị mua hàng.

5.3. Đề xuất

Dựa trên kết quả phân tích, một số đề xuất được đưa ra: - Chiến lược marketing: Tập trung vào nhóm đã kết hôn cho sản phẩm gia đình và bất động sản. Nhóm “Drink” cần chiến. dịch riêng để thu hút nam giới. - Tối ưu phân phối: Tăng cường phân phối sản phẩm “Food” tại các bang có nhu cầu cao (WA, CA, OR) và điều tra nguyên nhân tỷ lệ “Drink” thấp. - Cải thiện dữ liệu: Chuẩn hóa danh mục sản phẩm và chuyển đổi biến thu nhập sang dạng số để phân tích sâu hơn.

5.4.Hướng nghiên cứu tiếp theo

Các câu hỏi mở và hướng nghiên cứu tiếp theo bao gồm: - Phân tích đa biến: Kết hợp biến định tính (ví dụ: MaritalStatus) với biến định lượng (ví dụ: Revenue) để xác định yếu tố ảnh hưởng đến giá trị mua hàng. - Theo dõi theo thời gian: Phân tích xu hướng tiêu dùng theo mùa hoặc sự kiện để tối ưu chiến lược kinh doanh. - Mở rộng dữ liệu: Thu thập thêm biến như độ tuổi, nghề nghiệp hoặc chi tiết địa lý (ví dụ: thành thị/nông thôn) để hiểu rõ hơn về phân khúc khách hàng.