suppressPackageStartupMessages(library(readxl))
## Warning: package 'readxl' was built under R version 4.4.3
# Gán file dữ liệu
Supermarket_Transactions <- read_excel("D:/tai/Supermarket Transactions.xlsx")
## New names:
## • `` -> `...1`
# Lọc và tạo bảng dữ liệu
dt <- c("Gender", "Homeowner", "MaritalStatus","AnnualIncome", "City", "StateorProvince", "Country", "ProductFamily", "ProductDepartment","ProductCategory")
df_dt <- Supermarket_Transactions[,dt]
Gender | Drink | Food | Non-Consumable |
---|---|---|---|
F | 669 (9.33%) | 5,149 (71.81%) | 1,352 (18.86%) |
M | 581 (8.43%) | 5,004 (72.64%) | 1,304 (18.93%) |
Lưu ý: Kết quả phản ánh sự tương đồng trong hành vi mua sắm giữa các giới tính đối với các nhóm sản phẩm chính, cho thấy mức độ ưu tiên tương tự nhau mức chênh lệch dưới 1%.
So sánh tỷ lệ phân phối sản phẩm giữa hai giới cho thấy nam giới có xu hướng ưa chuộng các danh mục như Food và Non-Consumable hơn so với nữ giới, thể hiện qua tỷ trọng tổng thể cao hơn ở các nhóm sản phẩm này.
Homeowner | $10K - $30K | $110K - $130K | $130K - $150K | $150K + | $30K - $50K | $50K - $70K | $70K - $90K | $90K - $110K |
---|---|---|---|---|---|---|---|---|
N | 1,359 (24.20%) | 119 (2.12%) | 136 (2.42%) | 48 (0.85%) | 2,087 (37.17%) | 1,063 (18.93%) | 686 (12.22%) | 117 (2.08%) |
Y | 1,731 (20.50%) | 524 (6.21%) | 624 (7.39%) | 225 (2.66%) | 2,514 (29.77%) | 1,307 (15.48%) | 1,023 (12.12%) | 496 (5.87%) |
Lưu ý: Kết quả cho thấy hành vi mua sắm giữa nhóm khách hàng có và không có nhà ở có thể chịu ảnh hưởng bởi mức thu nhập. Phần lớn khách hàng không sở hữu nhà có thu nhập dao động trong khoảng $10k - $90k, với sự chênh lệch đáng kể so với nhóm có nhà – vốn chiếm phần lớn trong phân khúc khách hàng chính. Đáng chú ý, theo khảo sát, đa số khách hàng có thu nhập trên $90k hầu như sở hữu nhà và thể hiện sức mua cao hơn so với nhóm còn lại.
So sánh tỷ lệ phân phối sản phẩm giữa hai nhóm khách hàng này cho thấy sự chênh lệch rõ rệt ở các phân khúc thu nhập khác nhau.
StateorProvince | $10K - $30K | $110K - $130K | $130K - $150K | $150K + | $30K - $50K | $50K - $70K | $70K - $90K | $90K - $110K |
---|---|---|---|---|---|---|---|---|
BC | 172 (21.26%) | 49 (6.06%) | 45 (5.56%) | 16 (1.98%) | 296 (36.59%) | 126 (15.57%) | 80 (9.89%) | 25 (3.09%) |
CA | 599 (21.92%) | 130 (4.76%) | 124 (4.54%) | 64 (2.34%) | 888 (32.49%) | 491 (17.97%) | 311 (11.38%) | 126 (4.61%) |
DF | 177 (21.72%) | 33 (4.05%) | 60 (7.36%) | 11 (1.35%) | 286 (35.09%) | 130 (15.95%) | 88 (10.80%) | 30 (3.68%) |
Guerrero | 122 (31.85%) | 15 (3.92%) | 15 (3.92%) | 10 (2.61%) | 104 (27.15%) | 60 (15.67%) | 42 (10.97%) | 15 (3.92%) |
Jalisco | 29 (38.67%) | 2 (2.67%) | 3 (4.00%) | 0 (0.00%) | 17 (22.67%) | 13 (17.33%) | 9 (12.00%) | 2 (2.67%) |
OR | 514 (22.72%) | 93 (4.11%) | 132 (5.84%) | 27 (1.19%) | 724 (32.01%) | 378 (16.71%) | 274 (12.11%) | 120 (5.31%) |
Veracruz | 85 (18.32%) | 34 (7.33%) | 35 (7.54%) | 5 (1.08%) | 142 (30.60%) | 104 (22.41%) | 46 (9.91%) | 13 (2.80%) |
WA | 1,005 (22.01%) | 193 (4.23%) | 249 (5.45%) | 111 (2.43%) | 1,502 (32.89%) | 768 (16.82%) | 561 (12.28%) | 178 (3.90%) |
Yucatan | 113 (17.28%) | 23 (3.52%) | 36 (5.50%) | 15 (2.29%) | 230 (35.17%) | 85 (13.00%) | 105 (16.06%) | 47 (7.19%) |
Zacatecas | 274 (21.13%) | 71 (5.47%) | 61 (4.70%) | 14 (1.08%) | 412 (31.77%) | 215 (16.58%) | 193 (14.88%) | 57 (4.39%) |
Lưu ý: Kết quả phân tích cho thấy hành vi mua sắm của khách hàng tại các Bang/Tỉnh có thể chịu ảnh hưởng đáng kể bởi mức thu nhập. Phần lớn khách hàng tập trung trong nhóm thu nhập từ $10k đến $90k, trong đó khoảng $30k–$50k thường chiếm tỷ trọng cao nhất. Tuy nhiên, có hai ngoại lệ đáng chú ý là các thành phố Guerrero và Jalisco, nơi nhóm khách hàng có thu nhập $10k–$30k lại chiếm ưu thế vượt trội.
So sánh tỷ lệ phân phối sản phẩm giữa các nhóm thu nhập và khu vực địa lý cũng cho thấy sự chênh lệch đáng kể.
Kiểm định Chi-Square được sử dụng để xác định xem có mối quan hệ đáng kể giữa hai biến danh mục (phân loại) hay không. Phân tích được thực hiện bằng cách so sánh tần suất quan sát giữa các nhóm, thường được trình bày trong bảng chéo, nơi hàng và cột đại diện cho các mức của hai biến. Điều này giúp phát hiện mối liên hệ tiềm ẩn giữa chúng.
Công thức:
Giá trị kỳ vọng tại ô hàng i, cột j:
\[ E_{ij} = \frac{(\text{Tổng hàng } i) \times (\text{Tổng cột } j)}{\text{Tổng số quan sát}} \]
\[ \chi^2 = \sum \frac{(O_{ij} - E_{ij})^2}{E_{ij}} \]
Trong đó:
\[ df = (r - 1) \times (c - 1) \]
Trong đó:
Giả thuyết (Gender và ProductFamily)
# Tạo bảng Tần số giữa Gender và ProductFamily
table_chisq <- table(df_dt$Gender, df_dt$ProductFamily)
# Thực hiện kiểm định Chi-squared
chi1 <- chisq.test(table_chisq)
# In kết quả kiểm định
print(chi1)
##
## Pearson's Chi-squared test
##
## data: table_chisq
## X-squared = 3.5185, df = 2, p-value = 0.1722
Kết quả kiểm định Chi-squared
Kết luận:
Với \(p-value\) = 0.1722
> 0.05, ta không có bằng chứng để bác bỏ giả thuyết \(H_0\).
Do đó, hai biến quan sát có không có mối liên hệ với nhau, nghĩa là 2
biến độc lập.
Giả thuyết (AnnualIncome và Homeowner)
# Tạo bảng Tần số giữa Gender và ProductFamily
table_chisq <- table(df_dt$AnnualIncome, df_dt$Homeowner)
# Thực hiện kiểm định Chi-squared
chi2 <- chisq.test(table_chisq)
# In kết quả kiểm định
print(chi2)
##
## Pearson's Chi-squared test
##
## data: table_chisq
## X-squared = 546.37, df = 7, p-value < 2.2e-16
Kết quả kiểm định Chi-squared
Kết luận:
Với \(p-value\) = 2.2e-16
< 0.05, ta có bằng chứng để bác bỏ giả thuyết \(H_0\), chấp nhận \(H_1\).
Điều này cho thấy giữa hai biến quan sát tồn tại mối liên hệ có ý nghĩa
thống kê, tức là chúng có sự liên kết đáng kể với nhau.
Giả thuyết (StateorProvince và AnnualIncome)
# Tạo bảng Tần số giữa Gender và ProductFamily
table_chisq <- table(df_dt$AnnualIncome, df_dt$StateorProvince)
# Thực hiện kiểm định Chi-squared
chi3 <- chisq.test(table_chisq)
## Warning in stats::chisq.test(x, y, ...): Chi-squared approximation may be
## incorrect
# In kết quả kiểm định
print(chi3)
##
## Pearson's Chi-squared test
##
## data: table_chisq
## X-squared = 181.72, df = 63, p-value = 1.893e-13
Kết quả kiểm định Chi-squared
Kết luận:
Với \(p-value\) = 2.2e-16
< 0.05, ta có bằng chứng để bác bỏ giả thuyết \(H_0\), chấp nhận \(H_1\).
Điều này cho thấy giữa hai biến quan sát tồn tại mối liên hệ có ý nghĩa
thống kê, tức là chúng có sự liên kết đáng kể với nhau.
Từ phân tích bảng chéo và hệ số nguy cơ tương đối (Relative Risk – RR) ở tuần 2, chúng ta bước đầu thấy được mối liên hệ giữa hai biến định tính.
Bảng chéo giúp so sánh tần suất giữa các nhóm, cho phép quan sát sự phân bố và mối liên quan giữa các biến.
Rủi ro tương đối (RR) là một thước đo thống kê đánh giá mối liên hệ giữa một yếu tố tiếp xúc (exposure) và khả năng xảy ra một kết quả (thường là bất lợi). RR được tính bằng tỷ lệ giữa xác suất xảy ra kết quả ở nhóm tiếp xúc và Nhóm không tiếp xúc.
RR giúp đánh giá hiệu quả can thiệp hoặc tác hại của nhiều sự kiện xảy ra.
RR được tính dựa trên Rủi ro tuyệt đối (RR) – là tỷ lệ số sự kiện xảy ra trên tổng số người trong nhóm.
Nhóm | Sự kiện xảy ra | Sự kiện không xảy ra | Rủi ro tương đối |
---|---|---|---|
Nhóm tiếp xúc | A | B | \(\frac{A}{A+B}\) |
Nhóm không tiếp xúc | C | D | \(\frac{C}{C+D}\) |
\[ RR = \frac{\text{Risk}_{\text{tiếp xúc}}}{\text{Risk}_{\text{không tiếp xúc}}} = \frac{\frac{A}{A + B}}{\frac{C}{C + D}} \]
Nhóm | Sự kiện xảy ra (Mắc bệnh phổi) | Sự kiện không xảy ra (Không mắc bệnh) | Rủi ro tuyệt đối (RR) |
---|---|---|---|
Nhóm tiếp xúc (Hút thuốc lá) | 20 | 80 | \(\frac{20}{20 + 80} = 0.2\) |
Nhóm không tiếp xúc (Không hút thuốc lá) | 5 | 195 | \(\frac{5}{5 + 195} = 0.025\) |
Từ bảng trên, ta tính được:
\[ RR = \frac{\text{Risk}_{\text{nhóm hút thuốc}}}{\text{Risk}_{\text{nhóm không hút thuốc}}} = \frac{0.2}{0.025} = 8 \]
Diễn giải thực tế:
Những người hút thuốc lá có nguy cơ mắc bệnh phổi cao gấp 8 lần
so với những người không hút thuốc. Điều này cho thấy việc hút
thuốc là một yếu tố nguy cơ mạnh, ảnh hưởng lớn đến khả năng mắc bệnh
phổi. Các nhà nghiên cứu và chuyên gia y tế có thể dựa vào kết quả này
để khuyến cáo giảm hoặc bỏ thuốc lá nhằm giảm thiểu nguy cơ mắc bệnh
phổi trong cộng đồng.
# Tạo bảng chéo giữa Gender và Homeowner
tbl <- table(Supermarket_Transactions$Gender, Supermarket_Transactions$Homeowner)
# Kiểm tra bảng
print(tbl)
##
## N Y
## F 2826 4344
## M 2789 4100
library(epitools)
riskratio(tbl)
## $data
##
## N Y Total
## F 2826 4344 7170
## M 2789 4100 6889
## Total 5615 8444 14059
##
## $measure
## risk ratio with 95% C.I.
## estimate lower upper
## F 1.0000000 NA NA
## M 0.9823291 0.9561812 1.009192
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## F NA NA NA
## M 0.195158 0.1964833 0.1950884
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
Kết quả phân tích:
1. Lý thuyết bảng ngẫu nhiên (Contingency Table & Probability Models)
Khái niệm: Bảng ngẫu nhiên là công cụ thống kê trình bày tần suất hoặc xác suất xảy ra của các biến phân loại (categorical variables). Nó cho phép khảo sát mối quan hệ giữa hai hay nhiều biến rời rạc (ví dụ: giới tính và loại hiện vật tìm thấy).
Mục đích:
2. Phân phối Poisson (Poisson Distribution)
Lý thuyết: Phân phối Poisson mô tả xác suất xảy ra đúng \(x\) sự kiện trong một khoảng thời gian hay không gian nhất định, với các điều kiện:
Công thức:
\[ P(x) = \frac{\lambda^x \cdot e^{-\lambda}}{x!} \]
Trong đó:
3. Phân phối đa thức (Multinomial Distribution)
Lý thuyết: Phân phối đa thức là sự mở rộng của phân phối nhị thức, áp dụng khi mỗi lần thử nghiệm có nhiều hơn hai kết quả khả dĩ (ví dụ: loại hiện vật A, B, C,…).
Điều kiện:
Công thức:
\[ P(x_1, x_2, ..., x_k) = \frac{n!}{x_1! \, x_2! \, \cdots \, x_k!} \cdot p_1^{x_1} \cdot p_2^{x_2} \cdots p_k^{x_k} \]
Trong đó:
Giả sử ta có một biến phân loại theo 2 nhóm (ví dụ: có tiếp xúc và không tiếp xúc) và 2 kết quả (ví dụ: mắc bệnh và không mắc bệnh). Dữ liệu thường được trình bày như sau:
Sự kiện xảy ra (Bị bệnh) | Sự kiện không xảy ra (Không bệnh) | Tổng | |
---|---|---|---|
Nhóm tiếp xúc | a | b | a + b |
Nhóm không tiếp xúc | c | d | c + d |
Tổng | a + c | b + d | n = a + b + c + d |
Trong đó:
a: số cá thể Nhóm tiếp xúc và bị bệnh
b: số cá thể Nhóm tiếp xúc nhưng không bị bệnh
c: số cá thể Nhóm không tiếp xúc nhưng bị bệnh
d: số cá thể Nhóm không tiếp xúc và không bị bệnh
Chúng ta thường quan tâm đến việc so sánh nguy cơ hoặc tỷ lệ xuất hiện sự kiện giữa hai nhóm. Ba chỉ số phổ biến là:
1. Hiệu hai tỷ lệ (Risk Difference – RD)
Hiệu hai tỷ lệ (Risk Difference – RD) dùng để đo sự khác biệt tuyệt đối về tỷ lệ mắc bệnh giữa hai nhóm, giúp đánh giá mức độ thay đổi nguy cơ thực tế do một can thiệp hay các yếu tố do tiếp xúc gây ra.
Công thức:
\[
RD \;=\; \frac{a}{a + b} \;-\; \frac{c}{c + d}
\]
Ý nghĩa:
Thực hành bộ trên biến định tính Gender và Homeowner
# Tính tỷ lệ sở hữu nhà cho từng giới
p_female <- tbl["F", "Y"] / sum(tbl["F", ])
p_male <- tbl["M", "Y"] / sum(tbl["M", ])
# Tính hiệu hai tỷ lệ
delta_p <- p_female - p_male
delta_p
## [1] 0.01070605
2. Tỷ số nguy cơ (Relative Risk – RR)
Tỷ số nguy cơ (Relative Risk – RR) đo mức độ tăng hay giảm nguy cơ mắc bệnh ở nhóm tiếp xúc so với nhóm không tiếp xúc, phản ánh nguy cơ tương đối giữa hai nhóm.
Công thức:
\[
RR \;=\; \frac{\frac{a}{a + b}}{\frac{c}{c + d}}
\quad\Longleftrightarrow\quad
RR = \frac{a/(a + b)}{\,c/(c + d)\,}
\]
Ý nghĩa:
3. Tỷ số chênh (Odds Ratio – OR)
Tỷ số chênh (Odds Ratio – OR) đo tỷ lệ odds (khả năng xảy ra so với không xảy ra) của sự kiện ở nhóm tiếp xúc so với Nhóm không tiếp xúc.
Công thức
\[
OR \;=\; \frac{\dfrac{a}{b}}{\dfrac{c}{d}} \;=\; \frac{a \times d}{b
\times c}
\]
Ý nghĩa
Thước đo | Viết tắt | Công thức | Ưu điểm | Nhược điểm |
---|---|---|---|---|
Hiệu nguy cơ | RD | \(\frac{a}{a+b} - \frac{c}{c+d}\) | Dễ hiểu, trực quan (chênh lệch phần trăm) | Không phản ánh mức độ tương đối |
Tỷ số nguy cơ | RR | \(\frac{a/(a+b)}{c/(c+d)}\) | Dễ hiểu vì nói về tỷ lệ xảy ra sự kiện; phù hợp với nghiên cứu theo dõi nhóm | Không phù hợp, dễ gây sai lệch trong nghiên cứu so sánh người bệnh và người không bệnh |
Tỷ số chênh | OR | \(\frac{a \cdot d}{b \cdot c}\) | Dùng tốt trong nghiên cứu bệnh-chứng và hồi quy logistic | Khó diễn giải nếu OR quá lớn/nhỏ; dễ gây hiểu nhầm nếu thay cho RR |
Khoảng tin cậy (Confidence Interval – CI) cho Odds Ratio (OR)
Khoảng tin cậy cho các tham số đo mối liên hệ, đặc biệt là Odds Ratio (OR), thể hiện phạm vi giá trị hợp lý của OR trong quần thể dựa trên dữ liệu mẫu với một mức độ tin cậy nhất định, thường là 95%.
Ý nghĩa:
Khoảng tin cậy phản ánh độ chính xác và độ tin cậy của ước lượng OR. Nếu
khoảng tin cậy không bao gồm giá trị 1, kết quả được coi là có ý nghĩa
thống kê, tức có sự khác biệt hoặc mối liên hệ thực sự giữa hai
nhóm.
Cách tính:
Khoảng tin cậy cho OR thường được tính dựa trên logarit của OR
(log(OR)), vì phân phối log(OR) gần đúng phân phối chuẩn. Cách tính
khoảng tin cậy 95% như sau:
Tính logarit của OR: \[ \log(OR) = \ln(OR) \]
Tính sai số chuẩn (SE) của \(\log(OR)\).
\[ SE = \sqrt{\frac{1}{a} + \frac{1}{b} + \frac{1}{c} + \frac{1}{d}} \]
Tính khoảng tin cậy cho \(\log(OR)\): \[ \log(OR) \pm Z_{\alpha/2} \times SE \] với \(Z_{\alpha/2} = 1.96\) tương ứng với mức độ tin cậy 95%
Chuyển về khoảng tin cậy cho OR bằng cách lấy lũy thừa của giới hạn trên và dưới:
\[ CI_{OR} = \left( e^{\log(OR) - 1.96 \times SE}, \quad e^{\log(OR) + 1.96 \times SE} \right) \]
Một công ty muốn đánh giá xem việc tham gia chương trình đào tạo có ảnh hưởng đến khả năng nhân viên đạt mục tiêu doanh số bán hàng hay không. Công ty theo dõi 200 nhân viên trong 6 tháng, chia thành hai nhóm:
Kết quả thu được:
Nhóm nhân viên | Đạt mục tiêu doanh số | Không đạt mục tiêu doanh số | Tổng |
---|---|---|---|
Tham gia đào tạo | 60 | 40 | 100 |
Không tham gia đào tạo | 45 | 55 | 100 |
Tổng | 105 | 95 | 200 |
Giải thích Odds Ratio (OR):
Odds Ratio (OR) = 1.5 / 0.82 ≈ 1.83
Công thức:
\[ SE = \sqrt{\frac{1}{a} + \frac{1}{b} + \frac{1}{c} + \frac{1}{d}} = \sqrt{\frac{1}{60} + \frac{1}{40} + \frac{1}{45} + \frac{1}{55}} \approx 0.2865 \]
Ta dùng công thức:
\[ \log(OR) \pm z_{\alpha/2} \cdot SE = \log(1.833) \approx 0.606 \]
Vậy:
\[ CI_{\log(OR)} = [0.606-(1.96.0.2865),\ 0.606+(1.96.0.2865)] = (0.0445,\ 1.1675) \]
\[ CI_{OR} = (e^{0.0445},\ e^{1.1675}) \approx (1.045,\ 3.213) \]
Kết luận:
Odds Ratio = 1.83 với khoảng tin cậy 95% là (1.05, 3.21) cho thấy:
# Bảng chéo giữa Gender và Homeowner
table_2x2 <- table(df_dt$MaritalStatus, df_dt$Gender)
table_2x2
##
## F M
## M 3602 3264
## S 3568 3625
oddsratio(table_2x2)
## $data
##
## F M Total
## M 3602 3264 6866
## S 3568 3625 7193
## Total 7170 6889 14059
##
## $measure
## odds ratio with 95% C.I.
## estimate lower upper
## M 1.000000 NA NA
## S 1.121175 1.049365 1.197914
##
## $p.value
## two-sided
## midp.exact fisher.exact chi.square
## M NA NA NA
## S 0.0007045092 0.0007373895 0.0007038837
##
## $correction
## [1] FALSE
##
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"
OR = 1.12 có nghĩa là khả năng mua sản phẩm của nữ đã kết hôn cao hơn khoảng 12% so với nữ chưa kết hôn, khi so sánh với nhóm nam đã và chưa kết hôn. Nói cách khác, nữ đã kết hôn có xu hướng mua sản phẩm này nhiều hơn một chút so với nữ chưa kết hôn, so với ảnh hưởng tương tự ở nam giới.
Với mức tin cậy 95%, Odds Ratio từ 1.05 đến 1.20 cho thấy nhóm được xét có khả năng xảy ra sự kiện cao hơn nhóm còn lại từ 5% đến 20%. Vì khoảng này không chứa số 1, nên sự khác biệt là thật, không phải do ngẫu nhiên.
Odds Ratio (OR) xấp xỉ Relative Risk (RR) khi sự kiện quan tâm là hiếm xảy ra, tức khi xác suất xảy ra sự kiện nhỏ (thường <10%). Trong những tình huống này, xác suất (probability) và odds gần bằng nhau vì:
\[ \text{Odds} = \frac{p}{1 - p} \approx p \quad \text{khi} \quad p \ll 1 \]
Tính đối xứng: OR không thay đổi nếu ta đảo nhóm phơi nhiễm và không phơi nhiễm, hoặc nhóm bệnh và không bệnh. Đây là một đặc tính hữu ích trong phân tích mối quan hệ giữa hai biến nhị phân.
Trong hồi quy logistic: OR là hệ số giải thích chính. Mô hình logistic không ước lượng trực tiếp xác suất, mà ước lượng log odds (logit), từ đó suy ra OR:
\[ \log \left( \frac{p}{1 - p} \right) = \beta_0 + \beta_1 X \quad \Rightarrow \quad \text{OR} = e^{\beta_1} \]
Do đó, OR là nền tảng trong việc diễn giải kết quả mô hình hóa mối quan hệ giữa biến độc lập và xác suất xảy ra sự kiện.