Nhiệm vụ 1. Tóm tắt cuốn sách: 2019_Generalized Linear Models With Examples in R
Nhiệm vụ 2. Thực hiện thống kê mô tả cho các biến trong file: Supermarket Transactions
Giới thiệu mô hình thống kê bao gồm các khái niệm cơ bản như biến phản hồi response, biến giải thích explanatory, thành phần hệ thống systematic component và thành phần ngẫu nhiên random component.
Nhấn mạnh sự cần thiết của việc mô tả dữ liệu bằng biểu đồ và biến đổi dữ liệu định tính thành định lượng để đưa vào mô hình.
Giới thiệu cách phân biệt mô hình vật lý và mô hình thống kê, cũng như tiêu chí đánh giá một mô hình tốt là:
Tính chính xác (accuracy)
Tính đơn giản (parsimony)
Kết luận bằng việc nhấn mạnh rằng mọi mô hình đều có tính gần đúng, không hoàn hảo, nhưng một số mô hình vẫn hữu ích nếu sử dụng đúng cách.
\[ y_i = \beta_0 + \beta_1 x_{1i} + \cdots + \beta_p x_{pi} + \varepsilon_i \\ \text{với giả định: } \varepsilon_i \sim \mathcal{N}(0, \sigma^2) \]
Phân biệt:
Simple Linear Regression (một biến giải thích)
Multiple Regression (nhiều biến giải thích)
Giới thiệu cách ước lượng hệ số hồi quy bằng phương pháp bình phương tối thiểu OLS.
Phân tích phương sai và kiểm định ý nghĩa mô hình.
So sánh mô hình lồng ghép nested và không lồng ghép non-nested.
Cách sử dụng R để xây dựng mô hình hồi quy tuyến tính thông qua hàm lm().
\[ f(y; \theta, \phi) = \exp \left( \frac{y \theta - b(\theta)}{a(\phi)} + c(y, \phi) \right) \]
Giới thiệu khung lý thuyết tổng quát của GLMs (Generalized Linear Models) gồm 3 thành phần:
Phân phối xác suất (Exponential Family)
Hàm liên kết (Link Function): liên kết kỳ vọng 𝐸(𝑦) với thành phần hệ thống.
Thành phần hệ thống (Systematic Component): biểu diễn mối quan hệ tuyến tính giữa biến độc lập và kỳ vọng của biến phản hồi.
Trình bày các ví dụ điển hình:
Hồi quy logistic (phân phối nhị phân)
Hồi quy Poisson (dữ liệu đếm)
Hồi quy Gamma (dữ liệu liên tục, dương)
Giới thiệu hạn chế của OLS: không phù hợp khi dữ liệu không tuân theo giả định phân phối chuẩn, hoặc phương sai không đồng nhất.
Trình bày phương pháp ước lượng hợp lý tối đa (Maximum Likelihood Estimation – MLE):
Lập công thức hàm hợp lý
Tính đạo hàm và tìm cực trị
Áp dụng Fisher scoring hoặc Newton-Raphson
Phân tích chi tiết các trường hợp:
Dữ liệu tỉ lệ (0 ≤ y ≤ 1)
Dữ liệu đếm (y = 0, 1, 2, …)
Dữ liệu dương liên tục (y > 0)
Trình bày 3 phương pháp suy luận từ MLE:
Kiểm định Wald
Kiểm định tỉ số hợp lý (Likelihood Ratio)
Kiểm định điểm (Score Test)
Sử dụng chỉ số AIC và BIC để chọn mô hình tối ưu
Giới thiệu các mô hình phân tán hàm mũ mở rộng Extended Exponential Dispersion Models – EDMs giúp linh hoạt hơn so với GLM cổ điển.
Bao gồm các phân phối: quasi-likelihood, negative binomial, Tweedie,…
Tập trung vào mô hình hóa phương sai: thay vì giả định phương sai cố định như GLM chuẩn, các mô hình mở rộng cho phép phương sai phụ thuộc vào giá trị trung bình.
Sử dụng quasi-likelihood để mô hình hóa mà không cần chỉ rõ đầy đủ phân phối.
Định nghĩa và minh họa các hàm power variance function, cho phép mô tả phương sai dưới dạng:
\[ \mathrm{Var}(Y) = \phi \cdot \mu^p \]
Mở rộng phương pháp ước lượng MLE từ chương 4 để áp dụng vào GLM.
Trình bày thuật toán IRLS (Iteratively Reweighted Least Squares) để tìm ước lượng tối đa khả năng dựa vào score equations và Fisher scoring
Phân tích deviance như một phép đo thay thế cho RSS để đánh giá độ phù hợp mô hình.
Phát triển các công thức ma trận để tính hệ số và sai số chuẩn.
Đưa ra kỹ thuật ước lượng tham số phân tán φ trong các mô hình có phương sai thay đổi.
Cách sử dụng R để fitting GLM với hàm glm() và điều chỉnh thông số với glm.control()
Áp dụng các kiểm định từ chương 4 vào ngữ cảnh GLM:
Wald test
Likelihood Ratio Test (LRT)
Score test
Giới thiệu suy luận khi:
Biết trước φ
Không biết φ (phải ước lượng)
Xây dựng các kiểm định goodness-of-fit dựa trên deviance và thống kê Pearson.
Trình bày kết quả tiệm cận với số lượng mẫu lớn.
Thảo luận cách so sánh mô hình không lồng ghép (non-nested) và các phương pháp chọn mô hình tự động như AIC/BIC.
Minh họa bằng R cho từng loại kiểm định.
Tập trung vào đánh giá giả định của mô hình sau khi đã fitting:
Residual analysis với 3 loại: Pearson residual - Deviance residual - Quantile residual
Leverage (tác động của từng quan sát lên mô hình)
Cook’s distance để phát hiện điểm ảnh hưởng lớn.
Trình bày cách xử lý:
Mô hình không hội tụ
Dữ liệu dị thường
Sai mô hình hóa liên kết (link function)
Hướng dẫn sử dụng các biểu đồ chẩn đoán trong R để phát hiện sai lệch.
Tập trung vào binomial GLM, cụ thể là hồi quy logistic.
Dữ liệu phù hợp: biến phản hồi là tỉ lệ, nhị phân (success/failure).
Trình bày các hàm liên kết cho binomial:
Logit (thường dùng nhất)
Probit
Complementary log-log (cloglog)
Giải thích cách mô hình hóa xác suất thành hàm logit:
\[ \log\left(\frac{p}{1 - p}\right) = \beta_0 + \beta_1 x_1 + \cdots \]
Diễn giải hệ số dưới dạng tỷ số odds (odds ratio).
Giới thiệu ứng dụng thực tế như:
Ước lượng liều gây hiệu ứng 50% (ED50)
Phân tích hiệu ứng của biến độc lập lên khả năng thành công
Đề cập đến vấn đề overdispersion trong hồi quy nhị phân và cách xử lý.
Mô hình hóa các biến phản hồi là số đếm (count data), ví dụ: số ca bệnh, số sự kiện.
Phân phối Poisson là nền tảng:
\[ P(y; \mu) = \frac{e^{-\mu} \mu^y}{y!} \]
\[ \log(\mu_i) = X_i^T \beta \]
Áp dụng cho các trường hợp:
Dữ liệu đếm thuần túy
Tỷ lệ (rates): dùng offset log(exposure)
Dữ liệu bảng chéo (contingency tables)
Overdispersion: khi phương sai > trung bình → dùng quasi-Poisson hoặc Negative Binomial GLM.
So sánh AIC, kiểm định dispersion để chọn mô hình phù hợp
Mô hình hóa dữ liệu phân loại có > 2 mức:
Multinomial Logistic Regression: với biến phản hồi phân loại không thứ tự.
Ordinal Logistic Regression: khi các mức có thứ tự (ví dụ: yếu – trung bình – tốt).
Logit đa thức (multinomial logit):
\[ \log\left(\frac{P(Y = j)}{P(Y = J)}\right) = X^T \beta_j \]
\[ \log\left(\frac{P(Y \le j)}{P(Y > j)}\right) = X^T \beta \]
Thảo luận về giả định proportionality và cách kiểm định.
R code sử dụng hàm multinom() từ gói nnet và polr() từ MASS.
Mở rộng GLM để mô hình hóa quan hệ phi tuyến giữa biến phản hồi và biến giải thích.
Công thức GAM:
\[ g(\mu_i) = \beta_0 + f_1(x_{1i}) + f_2(x_{2i}) + \cdots \]
Dùng các công cụ như:
gam() trong gói mgcv
s() để chỉ định spline trong công thức mô hình
GAM cho phép linh hoạt nhưng cần đánh đổi với việc kiểm soát độ phức tạp (overfitting).
Chương cuối cùng là phần luyện tập mở rộng
Các bài toán yêu cầu kết hợp mọi kiến thức từ trước để giải quyết tình huống thực tế.
Supermarket Transactions là file csv, nên ta đọc từ file csv
Thao tác thực hiện : Ta gán bộ dữ liệu Supermarket Transactions với tên là data
library(csv)
data <- read.csv("D:/UFM/2025- Kì 2/Phân tích dữ liệu định tính - Trần Mạnh Tường/Supermarket Transactions.csv", header = T)
Bộ dữ liệu Supermarket Transactions ghi lại các giao dịch mua hàng tại một hệ thống siêu thị, kèm theo thông tin khách hàng, địa lý, và chi tiết sản phẩm.
Nó có thể dùng để phân tích hành vi mua sắm, phân khúc khách hàng, hoặc hiệu suất kinh doanh theo sản phẩm, khu vực, nhân khẩu học.
Tên của các biến trong bộ dữ liệu sẽ bao gồm:
names(data)
## [1] "X" "PurchaseDate" "CustomerID"
## [4] "Gender" "MaritalStatus" "Homeowner"
## [7] "Children" "AnnualIncome" "City"
## [10] "StateorProvince" "Country" "ProductFamily"
## [13] "ProductDepartment" "ProductCategory" "UnitsSold"
## [16] "Revenue"
Cụ thể từng các biến và quan sát có ý nghĩa như sau:
library(knitr)
# Tạo bảng mô tả các biến
variable_description <- data.frame(
Variable = c(
"Unnamed: 0",
"PurchaseDate",
"CustomerID",
"Gender",
"MaritalStatus",
"Homeowner",
"Children",
"AnnualIncome",
"City",
"StateorProvince",
"Country",
"ProductFamily",
"ProductDepartment",
"ProductCategory",
"UnitsSold",
"Revenue"
),
Description = c(
"Mã dòng (có thể bỏ qua)",
"Ngày mua hàng",
"ID khách hàng",
"Giới tính (F: nữ, M: nam)",
"Tình trạng hôn nhân (S: độc thân, M: đã kết hôn)",
"Sở hữu nhà (Y: có, N: không)",
"Số con trong gia đình",
"Thu nhập hàng năm (theo nhóm)",
"Thành phố sinh sống",
"Bang / tỉnh",
"Quốc gia",
"Nhóm sản phẩm chính (Food, Drink, ...)",
"Phòng ban sản phẩm (Snacks, Produce, ...)",
"Danh mục sản phẩm cụ thể",
"Số lượng sản phẩm đã bán",
"Doanh thu từ giao dịch (USD)"
)
)
# Hiển thị bảng
kable(variable_description, col.names = c("Biến", "Mô tả"))
Biến | Mô tả |
---|---|
Unnamed: 0 | Mã dòng (có thể bỏ qua) |
PurchaseDate | Ngày mua hàng |
CustomerID | ID khách hàng |
Gender | Giới tính (F: nữ, M: nam) |
MaritalStatus | Tình trạng hôn nhân (S: độc thân, M: đã kết hôn) |
Homeowner | Sở hữu nhà (Y: có, N: không) |
Children | Số con trong gia đình |
AnnualIncome | Thu nhập hàng năm (theo nhóm) |
City | Thành phố sinh sống |
StateorProvince | Bang / tỉnh |
Country | Quốc gia |
ProductFamily | Nhóm sản phẩm chính (Food, Drink, …) |
ProductDepartment | Phòng ban sản phẩm (Snacks, Produce, …) |
ProductCategory | Danh mục sản phẩm cụ thể |
UnitsSold | Số lượng sản phẩm đã bán |
Revenue | Doanh thu từ giao dịch (USD) |
Ta có thể lấy ví dụ từ quan sát đầu tiên: Vào ngày 18/12/2007, khách hàng ID 7223 (nữ, độc thân, có nhà, 2 con, thu nhập $30K–$50K) ở Los Angeles, bang CA Hoa Kỳ mua 5 đơn vị sản phẩm “Snack Foods” thuộc nhóm “Food”, tạo ra doanh thu $27.38 cho siêu thị
Bộ dữ liệu data bao gồm 14059 quan sát và 16 biến
14059 quan sát, tương ứng với 14.059 giao dịch mua hàng tại siêu thị. Mỗi quan sát đại diện cho một lần mua hàng, kèm theo 16 yếu tố mô tả đã nói trên
dim(data)
## [1] 14059 16
Ta có thể kiểm tra cấu trúc tổng quát của dữ liệu như sau:
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 ...
Vì bộ dữ liệu có cả dữ liệu định tính như dạng thông tin định danh hoặc phân loại khách hàng, các dữ liệu này không dùng để tính toán trực tiếp như biến định lượng (doanh thu, số lượng,…). Nên khi thống kê mô tả ta cần phân biệt rõ hai nhóm biến
Thống kê cho từng biến định tính - Gender
Gender đại diện cho giới tính của khách hàng, F - Female là nữ và M - Male là nam
Dựa theo kết quả, trong 14059 khách hàng thì có 7170 khách hàng là nữ và 6889 khách hàng là nam
table(data$Gender)
##
## F M
## 7170 6889
Thống kê cho từng biến định tính - MaritalStatus
MaritalStatus đại diện cho tình trạng hôn nhân
Kết quả cho thấy có 6866 khách hàng đã kết hôn (M - Married) và 7193 khách hàng là độc thân (S - Single)
Những kết quả này cũng có thể ảnh hưởng đến sức mua hàng, chẳng hạn như người đã kết hôn sẽ có nhu cầu mua hàng nhiều hơn người độc thân.
table(data$MaritalStatus)
##
## M S
## 6866 7193
Tổng hợp thống kê mô tả cho từng biến địng tính
2 kết quả của 2 biến phân loại trên chỉ là để ví dụ nếu ta muốn nhìn thấy kết quả riêng của từng biến
Ta có thể tổng hợp kết quả như dưới đây:
# Danh sách các biến phân loại categorical
cat_vars <- c("Gender", "MaritalStatus", "Homeowner", "AnnualIncome",
"City", "StateorProvince", "Country",
"ProductFamily", "ProductDepartment", "ProductCategory")
# Lặp qua từng biến để thống kê
for (var in cat_vars) {
cat("\n----------------------------------------\n")
cat("Biến:", var, "\n")
cat("----------------------------------------\n")
freq_table <- table(data[[var]])
percent_table <- prop.table(freq_table) * 100
print(data.frame(Tần_suất = freq_table, Tỷ_lệ_phần_trăm = round(percent_table, 2)))
}
##
## ----------------------------------------
## Biến: Gender
## ----------------------------------------
## Tần_suất.Var1 Tần_suất.Freq Tỷ_lệ_phần_trăm.Var1 Tỷ_lệ_phần_trăm.Freq
## 1 F 7170 F 51
## 2 M 6889 M 49
##
## ----------------------------------------
## Biến: MaritalStatus
## ----------------------------------------
## Tần_suất.Var1 Tần_suất.Freq Tỷ_lệ_phần_trăm.Var1 Tỷ_lệ_phần_trăm.Freq
## 1 M 6866 M 48.84
## 2 S 7193 S 51.16
##
## ----------------------------------------
## Biến: Homeowner
## ----------------------------------------
## Tần_suất.Var1 Tần_suất.Freq Tỷ_lệ_phần_trăm.Var1 Tỷ_lệ_phần_trăm.Freq
## 1 N 5615 N 39.94
## 2 Y 8444 Y 60.06
##
## ----------------------------------------
## Biến: AnnualIncome
## ----------------------------------------
## Tần_suất.Var1 Tần_suất.Freq Tỷ_lệ_phần_trăm.Var1 Tỷ_lệ_phần_trăm.Freq
## 1 $10K - $30K 3090 $10K - $30K 21.98
## 2 $110K - $130K 643 $110K - $130K 4.57
## 3 $130K - $150K 760 $130K - $150K 5.41
## 4 $150K + 273 $150K + 1.94
## 5 $30K - $50K 4601 $30K - $50K 32.73
## 6 $50K - $70K 2370 $50K - $70K 16.86
## 7 $70K - $90K 1709 $70K - $90K 12.16
## 8 $90K - $110K 613 $90K - $110K 4.36
##
## ----------------------------------------
## Biến: City
## ----------------------------------------
## Tần_suất.Var1 Tần_suất.Freq Tỷ_lệ_phần_trăm.Var1 Tỷ_lệ_phần_trăm.Freq
## 1 Acapulco 383 Acapulco 2.72
## 2 Bellingham 143 Bellingham 1.02
## 3 Beverly Hills 811 Beverly Hills 5.77
## 4 Bremerton 834 Bremerton 5.93
## 5 Camacho 452 Camacho 3.22
## 6 Guadalajara 75 Guadalajara 0.53
## 7 Hidalgo 845 Hidalgo 6.01
## 8 Los Angeles 926 Los Angeles 6.59
## 9 Merida 654 Merida 4.65
## 10 Mexico City 194 Mexico City 1.38
## 11 Orizaba 464 Orizaba 3.30
## 12 Portland 876 Portland 6.23
## 13 Salem 1386 Salem 9.86
## 14 San Andres 621 San Andres 4.42
## 15 San Diego 866 San Diego 6.16
## 16 San Francisco 130 San Francisco 0.92
## 17 Seattle 922 Seattle 6.56
## 18 Spokane 875 Spokane 6.22
## 19 Tacoma 1257 Tacoma 8.94
## 20 Vancouver 633 Vancouver 4.50
## 21 Victoria 176 Victoria 1.25
## 22 Walla Walla 160 Walla Walla 1.14
## 23 Yakima 376 Yakima 2.67
##
## ----------------------------------------
## Biến: StateorProvince
## ----------------------------------------
## Tần_suất.Var1 Tần_suất.Freq Tỷ_lệ_phần_trăm.Var1 Tỷ_lệ_phần_trăm.Freq
## 1 BC 809 BC 5.75
## 2 CA 2733 CA 19.44
## 3 DF 815 DF 5.80
## 4 Guerrero 383 Guerrero 2.72
## 5 Jalisco 75 Jalisco 0.53
## 6 OR 2262 OR 16.09
## 7 Veracruz 464 Veracruz 3.30
## 8 WA 4567 WA 32.48
## 9 Yucatan 654 Yucatan 4.65
## 10 Zacatecas 1297 Zacatecas 9.23
##
## ----------------------------------------
## Biến: Country
## ----------------------------------------
## Tần_suất.Var1 Tần_suất.Freq Tỷ_lệ_phần_trăm.Var1 Tỷ_lệ_phần_trăm.Freq
## 1 Canada 809 Canada 5.75
## 2 Mexico 3688 Mexico 26.23
## 3 USA 9562 USA 68.01
##
## ----------------------------------------
## Biến: ProductFamily
## ----------------------------------------
## Tần_suất.Var1 Tần_suất.Freq Tỷ_lệ_phần_trăm.Var1 Tỷ_lệ_phần_trăm.Freq
## 1 Drink 1250 Drink 8.89
## 2 Food 10153 Food 72.22
## 3 Non-Consumable 2656 Non-Consumable 18.89
##
## ----------------------------------------
## Biến: ProductDepartment
## ----------------------------------------
## Tần_suất.Var1 Tần_suất.Freq Tỷ_lệ_phần_trăm.Var1 Tỷ_lệ_phần_trăm.Freq
## 1 Alcoholic Beverages 356 Alcoholic Beverages 2.53
## 2 Baked Goods 425 Baked Goods 3.02
## 3 Baking Goods 1072 Baking Goods 7.63
## 4 Beverages 680 Beverages 4.84
## 5 Breakfast Foods 188 Breakfast Foods 1.34
## 6 Canned Foods 977 Canned Foods 6.95
## 7 Canned Products 109 Canned Products 0.78
## 8 Carousel 59 Carousel 0.42
## 9 Checkout 82 Checkout 0.58
## 10 Dairy 903 Dairy 6.42
## 11 Deli 699 Deli 4.97
## 12 Eggs 198 Eggs 1.41
## 13 Frozen Foods 1382 Frozen Foods 9.83
## 14 Health and Hygiene 893 Health and Hygiene 6.35
## 15 Household 1420 Household 10.10
## 16 Meat 89 Meat 0.63
## 17 Periodicals 202 Periodicals 1.44
## 18 Produce 1994 Produce 14.18
## 19 Seafood 102 Seafood 0.73
## 20 Snack Foods 1600 Snack Foods 11.38
## 21 Snacks 352 Snacks 2.50
## 22 Starchy Foods 277 Starchy Foods 1.97
##
## ----------------------------------------
## Biến: ProductCategory
## ----------------------------------------
## Tần_suất.Var1 Tần_suất.Freq Tỷ_lệ_phần_trăm.Var1 Tỷ_lệ_phần_trăm.Freq
## 1 Baking Goods 484 Baking Goods 3.44
## 2 Bathroom Products 365 Bathroom Products 2.60
## 3 Beer and Wine 356 Beer and Wine 2.53
## 4 Bread 425 Bread 3.02
## 5 Breakfast Foods 417 Breakfast Foods 2.97
## 6 Candles 45 Candles 0.32
## 7 Candy 352 Candy 2.50
## 8 Canned Anchovies 44 Canned Anchovies 0.31
## 9 Canned Clams 53 Canned Clams 0.38
## 10 Canned Oysters 35 Canned Oysters 0.25
## 11 Canned Sardines 40 Canned Sardines 0.28
## 12 Canned Shrimp 38 Canned Shrimp 0.27
## 13 Canned Soup 404 Canned Soup 2.87
## 14 Canned Tuna 87 Canned Tuna 0.62
## 15 Carbonated Beverages 154 Carbonated Beverages 1.10
## 16 Cleaning Supplies 189 Cleaning Supplies 1.34
## 17 Cold Remedies 93 Cold Remedies 0.66
## 18 Dairy 903 Dairy 6.42
## 19 Decongestants 85 Decongestants 0.60
## 20 Drinks 135 Drinks 0.96
## 21 Eggs 198 Eggs 1.41
## 22 Electrical 355 Electrical 2.53
## 23 Frozen Desserts 323 Frozen Desserts 2.30
## 24 Frozen Entrees 118 Frozen Entrees 0.84
## 25 Fruit 765 Fruit 5.44
## 26 Hardware 129 Hardware 0.92
## 27 Hot Beverages 226 Hot Beverages 1.61
## 28 Hygiene 197 Hygiene 1.40
## 29 Jams and Jellies 588 Jams and Jellies 4.18
## 30 Kitchen Products 217 Kitchen Products 1.54
## 31 Magazines 202 Magazines 1.44
## 32 Meat 761 Meat 5.41
## 33 Miscellaneous 42 Miscellaneous 0.30
## 34 Packaged Vegetables 48 Packaged Vegetables 0.34
## 35 Pain Relievers 192 Pain Relievers 1.37
## 36 Paper Products 345 Paper Products 2.45
## 37 Pizza 194 Pizza 1.38
## 38 Plastic Products 141 Plastic Products 1.00
## 39 Pure Juice Beverages 165 Pure Juice Beverages 1.17
## 40 Seafood 102 Seafood 0.73
## 41 Side Dishes 153 Side Dishes 1.09
## 42 Snack Foods 1600 Snack Foods 11.38
## 43 Specialty 289 Specialty 2.06
## 44 Starchy Foods 277 Starchy Foods 1.97
## 45 Vegetables 1728 Vegetables 12.29
Sau khi đã thống kê các biến phân loại, ta sẽ tiếp tục tiến hành với các biến định lượng. Thông tin của các biến này mới là những con số để có thể tính toán những giá trị như: trung bình, trung vị, giá trị lớn nhất nhỏ nhất,…
Trong bộ dữ liệu chỉ có biến UnitsSold (Số lượng sản phẩm đã bán) và Revenue (Doanh thu) là có thể tính ra các thông số
Thống kê cho biến UnitsSold - Số lượng sản phẩm đã bán
library(psych)
## Warning: package 'psych' was built under R version 4.3.3
describe(data$UnitsSold)
vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
X1 | 1 | 14059 | 4.080589 | 1.174421 | 4 | 4.076985 | 1.4826 | 1 | 8 | 7 | 0.0124645 | -0.4381643 | 0.0099048 |
Giá trị trung bình mean: 4.08
Độ lệch chuẩn sd: 1.17
Giá trị trung vị median: 4
Giá trị trung bình đã cắt trimmed mean: 4.08
Độ lệch tuyệt đối trung bình MAD: 1.48
Giá trị nhỏ nhất min: 1
Giá trị lớn nhất max: 8
Độ nhọn Kurtosis: -0.44
Sai số chuẩn của độ nhọn SE: 0.01
Nhận xét: Giá trị trung bình và trung vị cho thấy phân phối dữ liệu khá cân đối và đối xứng, trung bình cắt cũng xác nhận thêm rằng không có nhiều ngoại lệ lớn ảnh hưởng đến trung bình. Độ lệch chuẩn đạt và độ lệch tuyệt đối trung vị phản ánh mức độ biến động thấp quanh giá trị trung tâm. Giá trị nhỏ nhất là 1 và lớn nhất là 8, cho thấy dữ liệu nằm trong một khoảng hẹp, dễ quản lý và phân tích.
Thống kê cho biến Revenue - Doanh thu
describe(data$Revenue)
vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
X1 | 1 | 14059 | 13.00451 | 8.215543 | 11.25 | 12.04553 | 7.398174 | 0.53 | 56.7 | 56.17 | 1.134659 | 1.390813 | 0.0692882 |
Giá trị trung bình mean: 13
Độ lệch chuẩn sd: 8.22
Giá trị trung vị median: 11.25
Giá trị trung bình đã cắt trimmed mean: 12.05
Độ lệch tuyệt đối trung bình MAD: 7.4
Giá trị nhỏ nhất min: 0.53
Giá trị lớn nhất max: 56.7
Độ nhọn Kurtosis: 1.39
Sai số chuẩn của độ nhọn SE: 0.07
Nhận xét: Biến Revenue với giá trị trung bình là 13 và độ lệch chuẩn đạt 8.22, cho thấy dữ liệu có mức độ phân tán khá lớn quanh trung bình. Trung vị của biến thấp hơn trung bình, cho thấy phân phối dữ liệu có thể lệch phải. Giá trị trung bình đã cắt thấp hơn nhẹ so với trung bình, phản ánh sự hiện diện của một số giá trị ngoại lệ lớn làm tăng giá trị trung bình gốc. Giá trị nhỏ nhất và lớn nhất có khoảng biến thiên khá rộng. Về đặc điểm phân phối, độ nhọn thấp hơn phân phối chuẩn. Sai số chuẩn của độ nhọn là 0.07, giúp xác nhận rằng độ nhọn này khác biệt có ý nghĩa thống kê so với phân phối chuẩn.