Appearance
🛠 Workshop Buổi 2: Phân tích thống kê mô tả
Nhận dataset lương nhân viên 1000 dòng, tính mean/median/mode, vẽ histogram & box plot, phát hiện outlier — tất cả bằng Excel!
🎯 Mục tiêu
Sau khi hoàn thành workshop này, bạn sẽ:
- Tính toán chính xác các chỉ số thống kê mô tả (mean, median, mode, standard deviation, variance, percentile) cho dataset lương nhân viên bằng Excel
- Tạo biểu đồ phân phối (histogram và box plot) để trực quan hóa sự phân bố lương theo phòng ban
- Phát hiện outlier bằng phương pháp IQR, xác định đúng các giá trị bất thường và giải thích ý nghĩa kinh doanh
- Viết ít nhất 3 nhận xét kinh doanh có số liệu cụ thể từ kết quả phân tích thống kê
🧰 Công cụ & Setup
| Công cụ | Phiên bản | Ghi chú |
|---|---|---|
| Microsoft Excel / Google Sheets | 2021+ / Web | Analysis ToolPak cần bật (Excel) |
Bật Analysis ToolPak (Excel)
- Vào File → Options → Add-ins
- Chọn Analysis ToolPak → nhấn Go
- Tick ✅ Analysis ToolPak → OK
- Kiểm tra: tab Data sẽ xuất hiện nút Data Analysis
💡 Google Sheets không cần cài thêm — các hàm thống kê đã có sẵn.
📦 Dataset: Lương nhân viên công ty Tech
Dataset mô phỏng dữ liệu lương của 1.000 nhân viên tại một công ty công nghệ tại Việt Nam. Dữ liệu bao gồm thông tin nhân sự, phòng ban, kinh nghiệm và mức lương tháng. Dataset được thiết kế với:
- Phân phối lương lệch phải (right-skewed) — phản ánh thực tế thị trường
- Một số outlier ở mức lương cao bất thường (~3-5% dữ liệu)
- Sự khác biệt lương giữa các phòng ban và vị trí
| Cột | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| Employee_ID | string | Mã nhân viên | EMP001 |
| Department | string | Phòng ban (Engineering, Marketing, Sales, HR, Finance, Data) | Engineering |
| Position | string | Vị trí (Junior, Senior, Lead, Manager) | Senior |
| Years_Experience | int | Số năm kinh nghiệm (0–25) | 5 |
| Salary_Monthly | float | Lương tháng (triệu VNĐ) | 28.5 |
| Age | int | Tuổi (22–55) | 30 |
| Gender | string | Giới tính (Nam, Nữ) | Nam |
| Education | string | Trình độ (Bachelor, Master, PhD) | Master |
| Performance_Score | float | Điểm đánh giá (1.0–5.0) | 3.8 |
| City | string | Thành phố (Hà Nội, TP.HCM, Đà Nẵng) | TP.HCM |
📥 Tải dataset: File
buoi02_salary_data.xlsxđược phát trong lớp hoặc tải từ LMS.
⏱️ Thời lượng
| Phần | Thời gian |
|---|---|
| Hướng dẫn | 15 phút |
| Bài tập 1: Thống kê mô tả | 25 phút |
| Bài tập 2: Biểu đồ | 20 phút |
| Bài tập 3: Outlier detection | 15 phút |
| Review & feedback | 15 phút |
| Tổng | 90 phút |
Bài tập 1: Tính toán thống kê mô tả
Hướng dẫn
Mục tiêu: Tính các chỉ số thống kê mô tả cho cột Salary_Monthly, cả tổng thể và theo từng phòng ban.
Bước 1 — Thống kê tổng thể:
- Tạo sheet mới đặt tên "Stats"
- Tạo bảng tổng hợp với các chỉ số: Count, Mean, Median, Mode, Std Dev, Variance, Min, Max, Q1, Q3, P10, P90
- Áp dụng công thức Excel cho cột
Salary_Monthly(giả sử dữ liệu nằm ở cột E, từ E2:E1001)
Bước 2 — Thống kê theo phòng ban:
- Tạo bảng với 6 dòng (Engineering, Marketing, Sales, HR, Finance, Data) và các cột thống kê
- Dùng các hàm
AVERAGEIF,COUNTIF,MAXIFS,MINIFSđể tính theo điều kiện - Dùng công thức mảng hoặc helper column cho Median theo nhóm
Bước 3 — So sánh:
- So sánh mean vs. median cho từng phòng ban
- Ghi nhận phòng ban nào có chênh lệch lớn → dấu hiệu phân phối lệch
Code mẫu
Thống kê tổng thể (cột Salary nằm ở E2:E1001):
Số lượng: =COUNT(E2:E1001)
Trung bình: =AVERAGE(E2:E1001)
Trung vị: =MEDIAN(E2:E1001)
Mode: =MODE(E2:E1001)
Độ lệch chuẩn: =STDEV(E2:E1001)
Phương sai: =VAR(E2:E1001)
Giá trị nhỏ nhất: =MIN(E2:E1001)
Giá trị lớn nhất: =MAX(E2:E1001)
Q1 (25%): =QUARTILE(E2:E1001, 1)
Q3 (75%): =QUARTILE(E2:E1001, 3)
Phân vị 10%: =PERCENTILE(E2:E1001, 0.1)
Phân vị 90%: =PERCENTILE(E2:E1001, 0.9)
Range: =MAX(E2:E1001) - MIN(E2:E1001)Thống kê theo phòng ban (Department ở cột B):
Count theo phòng ban: =COUNTIF(B2:B1001, "Engineering")
Mean theo phòng ban: =AVERAGEIF(B2:B1001, "Engineering", E2:E1001)
Max theo phòng ban: =MAXIFS(E2:E1001, B2:B1001, "Engineering")
Min theo phòng ban: =MINIFS(E2:E1001, B2:B1001, "Engineering")
Std Dev theo phòng ban: {Dùng Data Analysis → Descriptive Statistics, hoặc helper column}Median theo phòng ban (công thức mảng — nhấn Ctrl+Shift+Enter):
=MEDIAN(IF(B2:B1001="Engineering", E2:E1001))Trong Excel 365 / Google Sheets, không cần Ctrl+Shift+Enter — công thức mảng tự động.
Kết quả mong đợi
Bảng thống kê tổng thể:
| Chỉ số | Giá trị (triệu VNĐ) |
|---|---|
| Count | 1,000 |
| Mean | ~25.8 |
| Median | ~23.5 |
| Mode | ~20.0 |
| Std Dev | ~12.4 |
| Variance | ~153.8 |
| Min | ~8.0 |
| Max | ~85.0 |
| Q1 | ~17.2 |
| Q3 | ~31.5 |
Bảng thống kê theo phòng ban (ví dụ):
| Department | Count | Mean | Median | Std Dev | Min | Max |
|---|---|---|---|---|---|---|
| Engineering | ~200 | ~32.1 | ~30.0 | ~13.5 | ~12.0 | ~85.0 |
| Data | ~120 | ~30.5 | ~28.0 | ~12.8 | ~11.0 | ~78.0 |
| Finance | ~150 | ~26.0 | ~24.5 | ~10.2 | ~10.0 | ~60.0 |
| Marketing | ~180 | ~22.5 | ~21.0 | ~9.8 | ~9.0 | ~55.0 |
| Sales | ~200 | ~21.0 | ~19.5 | ~11.5 | ~8.0 | ~65.0 |
| HR | ~150 | ~20.8 | ~19.0 | ~8.5 | ~9.5 | ~48.0 |
📌 Giá trị thực tế sẽ khác tuỳ dataset — quan trọng là công thức đúng và biết cách diễn giải.
Bài tập 2: Vẽ biểu đồ phân phối
Hướng dẫn
Mục tiêu: Tạo histogram để thấy phân phối lương tổng thể và box plot để so sánh lương giữa các phòng ban.
Phần A — Histogram:
- Tạo sheet mới đặt tên "Charts"
- Xác định bins (khoảng phân nhóm): 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60+
- Dùng hàm
FREQUENCYhoặc Data Analysis → Histogram để đếm tần suất - Tạo biểu đồ cột (Column Chart) từ bảng tần suất
- Thêm tiêu đề, nhãn trục, và ghi chú
Phần B — Box Plot:
- Chọn dữ liệu lương theo phòng ban
- Tạo Box & Whisker Chart (Excel 2016+)
- So sánh trực quan median, spread, và outlier giữa các phòng ban
Code mẫu
Histogram bằng hàm FREQUENCY:
Bước 1: Tạo bins ở cột riêng (ví dụ H2:H12)
H2 = 10, H3 = 15, H4 = 20, H5 = 25, H6 = 30
H7 = 35, H8 = 40, H9 = 45, H10 = 50, H11 = 60, H12 = 80
Bước 2: Chọn vùng kết quả I2:I12 (cùng số dòng với bins)
Bước 3: Nhập công thức mảng:
=FREQUENCY(E2:E1001, H2:H12)
Nhấn Ctrl + Shift + Enter
Bước 4: Chọn bảng bins + frequency → Insert → Column ChartHistogram bằng Data Analysis ToolPak:
Bước 1: Vào tab Data → Data Analysis → Histogram
Bước 2: Input Range: $E$2:$E$1001
Bước 3: Bin Range: $H$2:$H$12 (bins đã tạo ở trên)
Bước 4: Tick ✅ Chart Output
Bước 5: Output Range: chọn vị trí trống → OKBox Plot:
Bước 1: Sắp xếp dữ liệu lương theo phòng ban thành các cột riêng
(hoặc dùng dữ liệu gốc nếu Excel hỗ trợ)
Bước 2: Chọn dữ liệu → Insert → Statistical Chart → Box and Whisker
Bước 3: Format chart:
- Tiêu đề: "Phân phối lương theo phòng ban"
- Trục Y: "Lương tháng (triệu VNĐ)"
- Hiển thị data points cho outlier💡 Google Sheets: Vào Insert → Chart → Chart type → chọn Histogram hoặc dùng add-on cho Box Plot.
Kết quả mong đợi
Histogram — Những điều cần quan sát:
- Phân phối lệch phải (right-skewed): đa số lương tập trung 15–30 triệu, đuôi dài phía phải
- Peak (đỉnh) ở khoảng 18–25 triệu
- Mean > Median → xác nhận phân phối lệch phải
- Một vài cột nhỏ ở mức 60–85 triệu → khả năng là outlier
Box Plot — Những điều cần quan sát:
- Engineering và Data có hộp rộng hơn (IQR lớn) → lương phân tán nhiều
- HR có hộp hẹp nhất → lương đồng đều
- Các điểm nằm ngoài râu (whisker) là outlier tiềm năng
- Median của Engineering cao hơn rõ rệt so với các phòng ban khác
Bài tập 3: Phát hiện Outlier
Hướng dẫn
Mục tiêu: Sử dụng phương pháp IQR (Interquartile Range) để phát hiện các giá trị lương bất thường.
Bước 1 — Tính IQR:
- Tạo sheet mới đặt tên "Outliers"
- Tính Q1 (phân vị 25%) và Q3 (phân vị 75%)
- Tính IQR = Q3 − Q1
Bước 2 — Xác định ngưỡng:
- Lower Bound = Q1 − 1.5 × IQR
- Upper Bound = Q3 + 1.5 × IQR
- Mọi giá trị nằm ngoài [Lower, Upper] được đánh dấu là outlier
Bước 3 — Gắn cờ (flag) outlier:
- Thêm cột mới
Is_Outliervào dữ liệu gốc - Dùng công thức IF + OR để gắn "Outlier" hoặc "Normal"
- Đếm số lượng outlier, tính tỷ lệ %
Bước 4 — Phân tích outlier:
- Lọc (Filter) các dòng outlier → xem đặc điểm chung
- Outlier thuộc phòng ban nào? Vị trí gì? Kinh nghiệm bao nhiêu năm?
- Outlier là bất thường thật hay hợp lý (ví dụ: Manager 20 năm kinh nghiệm)?
Code mẫu
Tính IQR và ngưỡng:
Q1: =QUARTILE(E2:E1001, 1)
Q3: =QUARTILE(E2:E1001, 3)
IQR: =Q3 - Q1 (ví dụ: =H4 - H3)
Lower Bound: =Q1 - 1.5 * IQR (ví dụ: =H3 - 1.5 * H5)
Upper Bound: =Q3 + 1.5 * IQR (ví dụ: =H4 + 1.5 * H5)Gắn cờ outlier (thêm cột K — giả sử Lower ở $H$6, Upper ở $H$7):
=IF(OR(E2 < $H$6, E2 > $H$7), "Outlier", "Normal")Kéo công thức xuống toàn bộ 1000 dòng.
Đếm và tính tỷ lệ outlier:
Số outlier: =COUNTIF(K2:K1001, "Outlier")
Tỷ lệ outlier: =COUNTIF(K2:K1001, "Outlier") / COUNT(E2:E1001) * 100Thống kê outlier theo phòng ban:
=COUNTIFS(B2:B1001, "Engineering", K2:K1001, "Outlier")Kết quả mong đợi
Bảng ngưỡng outlier:
| Chỉ số | Giá trị (triệu VNĐ) |
|---|---|
| Q1 | ~17.2 |
| Q3 | ~31.5 |
| IQR | ~14.3 |
| Lower Bound | ~−4.3 (thực tế không có lương âm) |
| Upper Bound | ~52.9 |
Kết quả phát hiện outlier:
| Metric | Giá trị |
|---|---|
| Tổng nhân viên | 1,000 |
| Số outlier | ~35–50 |
| Tỷ lệ outlier | ~3.5–5.0% |
| Outlier thấp (dưới Lower) | 0 (lương không âm) |
| Outlier cao (trên Upper) | ~35–50 |
Đặc điểm chung của outlier:
- Phần lớn thuộc phòng Engineering và Data
- Vị trí chủ yếu: Lead và Manager
- Kinh nghiệm trung bình: 15+ năm
- Các outlier này có thể là hợp lý — cần xem xét business context
🏆 Bài tập Bonus: Viết nhận xét kinh doanh
Từ kết quả phân tích thống kê ở 3 bài tập trên, hãy viết ít nhất 3 nhận xét kinh doanh (business insights) có đầy đủ:
- Số liệu cụ thể (mean, median, std dev, số lượng outlier...)
- So sánh giữa các nhóm (phòng ban, vị trí...)
- Đề xuất hành động cho ban lãnh đạo
Ví dụ nhận xét mẫu
Insight 1 — Chênh lệch lương giữa phòng ban: Phòng Engineering có mức lương trung bình 32.1 triệu/tháng, cao hơn 54% so với phòng HR (20.8 triệu). Tuy nhiên, độ lệch chuẩn của Engineering (13.5) cũng cao nhất, cho thấy chính sách lương chưa đồng nhất. Đề xuất: Rà soát bảng lương Engineering để đảm bảo tính công bằng nội bộ.
Insight 2 — Phân phối lương lệch phải: Mean (25.8 triệu) cao hơn Median (23.5 triệu) 9.8%, xác nhận phân phối lương lệch phải. Điều này có nghĩa đa số nhân viên có lương dưới mức trung bình. Đề xuất: Khi báo cáo lương trung bình cho mục đích tuyển dụng, nên dùng Median thay vì Mean để phản ánh chính xác hơn.
Insight 3 — Outlier cần chú ý: 42 nhân viên (4.2%) có lương trên 52.9 triệu/tháng (ngưỡng Upper Bound). Trong đó, 18 người thuộc Engineering ở vị trí Lead/Manager — đây là mức hợp lý. Tuy nhiên, 5 nhân viên Junior có lương outlier cần kiểm tra lại. Đề xuất: Audit 5 trường hợp Junior lương cao để xác minh tính chính xác dữ liệu.
Yêu cầu
- Mỗi nhận xét: 3–5 câu, có số liệu cụ thể
- Dùng ít nhất 2 chỉ số thống kê trong mỗi nhận xét
- Gắn kết với quyết định kinh doanh thực tế
- Có thể kèm hình ảnh biểu đồ minh hoạ
📦 Deliverable
| # | Deliverable | Format | Mô tả |
|---|---|---|---|
| 1 | File Excel phân tích | .xlsx | Sheet 1 — Stats: Bảng thống kê tổng thể + theo phòng ban |
| Sheet 2 — Charts: Histogram + Box Plot có label đầy đủ | |||
| Sheet 3 — Outliers: Bảng ngưỡng IQR, cột flag, thống kê outlier | |||
| 2 | Nhận xét thống kê | 1 trang (trong Sheet hoặc file riêng) | 3 nhận xét kinh doanh có số liệu + hình ảnh minh hoạ |
🎯 Output này đóng góp vào Capstone Project: Kỹ năng thống kê mô tả và phát hiện outlier sẽ được áp dụng trực tiếp trong giai đoạn EDA (Exploratory Data Analysis) của Capstone.
Cấu trúc file nộp
HọTên_Buoi02_Workshop.xlsx
├── Sheet 1: Stats
│ ├── Bảng thống kê tổng thể (12 chỉ số)
│ └── Bảng thống kê theo 6 phòng ban
├── Sheet 2: Charts
│ ├── Histogram phân phối lương
│ └── Box Plot theo phòng ban
├── Sheet 3: Outliers
│ ├── Bảng Q1, Q3, IQR, Lower, Upper
│ ├── Cột Is_Outlier (flag)
│ └── Bảng tổng hợp outlier theo phòng ban
└── Sheet 4: Insights (hoặc file riêng)
└── 3 nhận xét kinh doanh📊 Tiêu chí chấm điểm
| Tiêu chí | Trọng số | Mô tả chi tiết |
|---|---|---|
| Tính toán chính xác | 30% | Mean, median, mode, std dev, variance đúng; thống kê theo phòng ban đầy đủ 6 nhóm |
| Biểu đồ rõ ràng | 25% | Histogram + Box Plot có tiêu đề, nhãn trục, legend; bins hợp lý; nhận diện được pattern |
| Phát hiện outlier | 25% | IQR tính đúng; Lower/Upper Bound chính xác; flag outlier đúng; đếm và phân tích outlier |
| Nhận xét kinh doanh | 20% | 3 insights có số liệu cụ thể, so sánh có ý nghĩa, đề xuất hành động khả thi |
Thang điểm chi tiết
| Mức | Điểm | Mô tả |
|---|---|---|
| Xuất sắc | 9–10 | Đầy đủ, chính xác, insights sâu sắc, biểu đồ chuyên nghiệp |
| Tốt | 7–8 | Đầy đủ, có 1–2 lỗi nhỏ, insights hợp lý |
| Đạt | 5–6 | Thiếu một số chỉ số hoặc biểu đồ, insights chung chung |
| Chưa đạt | < 5 | Thiếu nhiều phần, công thức sai, không có insights |
💡 Tips & Common Mistakes
✅ Tips
Bật Analysis ToolPak trước khi bắt đầu: Vào File → Options → Add-ins. Không có ToolPak thì thiếu nhiều tính năng thống kê nâng cao (Descriptive Statistics, Histogram tự động).
Mean vs. Median — dùng đúng ngữ cảnh: Khi dữ liệu lệch (skewed) hoặc có outlier, Median phản ánh trung tâm tốt hơn Mean. Luôn báo cáo cả hai và giải thích sự khác biệt.
Label biểu đồ đầy đủ: Mọi biểu đồ cần có: tiêu đề, nhãn trục X, nhãn trục Y, đơn vị, legend (nếu có nhiều series). Biểu đồ không có label = biểu đồ vô nghĩa.
Cẩn thận công thức IQR: Lower Bound có thể ra số âm — điều này không có nghĩa là sai. Với dữ liệu lương, chỉ xét Upper Bound cho outlier phía trên vì lương không thể âm.
Không xoá outlier tự động: Outlier không phải lúc nào cũng là lỗi. Manager 20 năm kinh nghiệm lương 80 triệu là hợp lý. Luôn kiểm tra context trước khi quyết định giữ hay loại.
Gắn business context vào mọi con số: Nói "std dev = 12.4" thì chưa đủ. Phải diễn giải: "Lương dao động trung bình ±12.4 triệu quanh mức mean 25.8 triệu, cho thấy sự phân tán khá lớn — có thể do sự khác biệt giữa Junior và Manager."
Format số liệu nhất quán: Dùng 1 chữ số thập phân cho lương (25.8), 2 chữ số cho phần trăm (4.20%). Dùng Number Format trong Excel để đồng bộ toàn bộ bảng.
❌ Common Mistakes
| Lỗi | Giải thích | Cách sửa |
|---|---|---|
Dùng STDEVP thay vì STDEV | STDEVP dùng cho population, STDEV (hay STDEV.S) dùng cho sample | Dùng =STDEV.S() vì dataset 1000 dòng là sample |
| Quên Ctrl+Shift+Enter cho công thức mảng | Median theo nhóm cần công thức mảng trong Excel cũ | Dùng Excel 365 hoặc nhớ nhấn Ctrl+Shift+Enter |
| Bins histogram quá nhiều hoặc quá ít | Quá nhiều bins → rời rạc; quá ít → mất chi tiết | Dùng 8–12 bins, hoặc theo quy tắc Sturges: |
Nhầm QUARTILE với PERCENTILE | QUARTILE(range, 1) = PERCENTILE(range, 0.25) | Dùng cái nào cũng được, nhưng nhất quán |
| Nhận xét không có số liệu | "Lương Engineering cao hơn" — thiếu cụ thể | "Lương Engineering trung bình 32.1 triệu, cao hơn HR 54%" |
📚 Tài liệu tham khảo
- Excel AVERAGE function — Microsoft Support
- Excel QUARTILE function — Microsoft Support
- Descriptive Statistics in Excel — ExcelJet
- Khan Academy: Descriptive Statistics — khanacademy.org
- Google Course: Ask Questions to Make Data-Driven Decisions — Coursera
- IQR and Outliers — Statistics by Jim
🔗 Xem thêm Buổi 2
→ 📘 Nội dung chính → 📝 Blog → 🧠 Case Study → 🏆 Tiêu chuẩn → 🎮 Mini Game