← Tất cả các tuần · Phase 1: Nền tảng dữ liệu · khoảng 240 phút
Tuần 1: Dữ liệu là gì
Bản nháp, đang chờ duyệt nội dung
- Phân biệt dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc, mỗi loại kể được 2 ví dụ trong công việc.
- Giải thích một bộ dữ liệu được sinh ra như thế nào, và vì sao điều đó quyết định nó đại diện cho ai.
- Phân loại biến categorical / numerical và 4 thang đo; biết phép tính nào được và không được làm.
- Viết được đoạn Python đầu tiên với list, dict, vòng lặp và function.
Video bảng trắng tóm tắt cả tuần (tạo bằng NotebookLM). Xem trước khi đọc để nắm bức tranh chung.
Hai người dẫn trò chuyện về khái niệm Tuần 1 và các bẫy hay gặp. Nghe khi đi đường hoặc khi ôn.
Cách học tuần này: đọc 3 bài ngắn (mỗi bài 5–7 phút), làm câu hỏi nhanh sau mỗi bài, rồi sang phần Python. Cuối tuần làm 2 tình huống. Đừng vội: tuần 1 là nền cho cả 15 tuần sau.
Bài 1.1. Ba loại dữ liệu [7]
Khi nói “dữ liệu”, người làm business thường nghĩ ngay tới file Excel. Thực ra file Excel chỉ là một trong ba dạng dữ liệu bạn sẽ gặp. Cách phân biệt đơn giản nhất là hỏi: dữ liệu này đã có khuôn sẵn chưa?
| Loại | Có khuôn không? | Ví dụ trong công việc | Phân tích thế nào |
|---|---|---|---|
| Có cấu trúc (structured) | Có. Mỗi dòng cùng các cột, mỗi cột cùng một kiểu | Bảng đơn hàng, bảng lương, file CSV xuất từ hệ thống bán hàng | Lọc, nhóm, cộng trực tiếp |
| Bán cấu trúc (semi-structured) | Có tên trường (key) nhưng mỗi bản ghi có thể khác nhau, có thể lồng nhau | Nhật ký giao dịch JSON, dữ liệu trả về từ API, email (có tiêu đề, người gửi, nhưng nội dung tự do) | Phải “làm phẳng” thành bảng trước |
| Phi cấu trúc (unstructured) | Không | Phản hồi khách hàng bằng chữ, ảnh hoá đơn, file ghi âm cuộc gọi | Phải trích xuất thông tin trước (ngoài phạm vi lộ trình) |
Một ví dụ JSON (bán cấu trúc) về một đơn hàng:
{"order_id": "OR-01", "customer": {"id": "CU-7", "segment": "Corporate"},
"items": [{"product": "Chair", "qty": 2}, {"product": "Paper", "qty": 5}]}
Đơn này có 2 sản phẩm lồng bên trong. Khi làm phẳng thành bảng, nó thành 2 dòng, và customer.id thành một cột. Đây chính là lý do một Order ID xuất hiện nhiều lần trong file CSV, bạn sẽ gặp lại ở Tuần 2.
Bài 1.2. Dữ liệu sinh ra từ đâu [7]
Mỗi con số trong file đều được một ai đó hoặc một hệ thống nào đó ghi lại vào một thời điểm nào đó. Chuỗi sự kiện tạo ra dữ liệu gọi là data-generating process (DGP). Hiểu DGP giúp bạn trả lời câu hỏi quan trọng nhất trước mọi phân tích: dữ liệu này đại diện cho ai, và bỏ sót ai?
Ví dụ với dữ liệu bán hàng Superstore:
- Khách đặt hàng → hệ thống tạo Order ID và ghi Order Date.
- Mỗi sản phẩm trong đơn được ghi thành một dòng, kèm giá, số lượng, chiết khấu.
- Khi giao hàng → hệ thống cập nhật Ship Date.
- Cuối kỳ, kế toán tính Profit theo quy tắc phân bổ chi phí.
Từ đó suy ra những điều không có trong file nhưng rất quan trọng:
- Khách xem mà không mua không có trong dữ liệu. File bán hàng không nói được tỷ lệ chuyển đổi.
- Đơn bị huỷ trước khi xác nhận có thể không được ghi. Tỷ lệ huỷ tính từ file này có thể thấp hơn thực tế.
- Profit là con số tính ra theo quy tắc, không phải đo trực tiếp. Đổi quy tắc phân bổ thì Profit đổi theo.
Vòng đời dữ liệu đi theo các bước: phát sinh → ghi nhận → lưu trữ → xử lý/biến đổi → sử dụng (báo cáo, phân tích) → lưu trữ dài hạn hoặc xoá. Mỗi bước đều có thể làm sai lệch dữ liệu: nhập tay sai ở bước ghi nhận, lọc mất dòng ở bước xử lý.
Bài 1.3. Kiểu biến và thang đo [7]
Mỗi cột trong bảng là một biến. Trước khi tính toán, hãy xếp biến vào đúng loại, vì loại biến quyết định phép tính nào có nghĩa.
Hai nhóm lớn:
- Categorical (phân loại): giá trị là nhãn, dùng để chia nhóm. Ví dụ Region, Category, Segment.
- Numerical (định lượng): giá trị là số đo được, cộng trừ có nghĩa. Ví dụ Sales, Quantity.
Bốn thang đo, từ “ít phép tính” đến “nhiều phép tính”:
| Thang đo | Đặc điểm | Ví dụ | Được làm | Không được làm |
|---|---|---|---|---|
| Nominal | Nhãn, không có thứ tự | Region, mã bưu điện, Customer ID | Đếm, tỷ trọng, mode | Sắp thứ tự, tính trung bình |
| Ordinal | Có thứ tự, khoảng cách không đều | Hạng 1-2-3, mức hài lòng “thấp/vừa/cao” | Sắp thứ tự, median | Tính trung bình như số thật |
| Interval [5] | Khoảng cách đều, 0 không có nghĩa thật | Nhiệt độ °C, ngày tháng | Cộng trừ, chênh lệch | Nói “gấp đôi” |
| Ratio [5] | Khoảng cách đều, 0 là “không có gì” | Doanh thu, số lượng, thời gian giao hàng (ngày) | Mọi phép tính, kể cả “gấp đôi” | — |
Hai câu để nhớ:
- Mã số không phải con số. Customer ID 1024 không “lớn hơn” Customer ID 512. Trung bình của mã bưu điện là vô nghĩa.
- Có thứ tự chưa chắc có khoảng cách đều. Hạng 1 và hạng 2 có thể cách nhau 1 giây, hạng 2 và hạng 3 cách nhau 10 phút. Trung bình hạng không nói được gì.
Interval và ratio chỉ cần nhận biết: điểm 0 có nghĩa thật hay không? 0 °C không phải “không có nhiệt độ”, nên 20 °C không “nóng gấp đôi” 10 °C. Doanh thu 0 là không bán được gì, nên 200 triệu đúng là gấp đôi 100 triệu.
Thực hành Python [6]
Tuần này chỉ cần Python cơ bản: biến, list, dict, vòng lặp, điều kiện và function. Mỗi ô có nút ✓ Kiểm tra. Bạn được tra tài liệu, chỉ không xem lời giải.
1. List và vòng lặp
2. Dict: dữ liệu có tên
3. Function và điều kiện
Luyện tập tình huống
Viết câu trả lời trước, rồi mới mở đáp án mẫu. Câu trả lời được lưu lại để bạn so sánh khi ôn.
Tình huống 1. Một đơn hàng được tạo ra như thế nào?
Bối cảnh. Trưởng phòng Kinh doanh gửi bạn file Superstore.csv và yêu cầu tìm hiểu nguồn gốc dữ liệu trước khi lập báo cáo. Khi khách đặt hàng, hệ thống ghi nhận thông tin đơn và từng sản phẩm được mua; khi hàng được gửi đi, hệ thống cập nhật Ship Date. Ngoài file CSV, bộ phận IT lưu nhật ký giao dịch dạng JSON, còn bộ phận Chăm sóc khách hàng lưu phản hồi bằng văn bản tự do.
Câu hỏi. Phân loại ba nguồn thành có cấu trúc, bán cấu trúc, phi cấu trúc. Dữ liệu Superstore phát sinh qua những bước nghiệp vụ nào, và vì sao không nên coi mỗi dòng là một đơn hàng độc lập?
Câu trả lời đã nộp sẽ được khoá lại, không sửa được.
Đáp án mẫu
- Có cấu trúc: CSV Superstore (dòng và cột xác định).
- Bán cấu trúc: nhật ký JSON (có tên trường, nhưng các bản ghi không bắt buộc cùng cấu trúc).
- Phi cấu trúc: phản hồi văn bản tự do.
- Quá trình phát sinh: khách đặt hàng → hệ thống ghi đơn và các dòng sản phẩm → ghi giá, số lượng, chiết khấu → phát sinh thông tin giao hàng → tính lợi nhuận theo quy tắc.
- Một Order ID có thể xuất hiện nhiều lần vì một đơn chứa nhiều dòng sản phẩm.
Lỗi hay gặp: cho rằng CSV luôn đầy đủ, chính xác mà không tìm hiểu cách dữ liệu được tạo ra; nhầm số dòng với số đơn hàng.
Tình huống 2. Có nên tính trung bình mọi cột dữ liệu?
Bối cảnh. Một đồng nghiệp muốn chuyển mọi cột thành số: mã hoá Region thành 1, 2, 3, 4 rồi tính 'vùng trung bình', đồng thời so sánh trực tiếp các giá trị Order Date. Nhóm còn tạo ba mức ưu đãi từ Discount: không giảm (0%), giảm thấp (trên 0% đến 10%), giảm cao (trên 10%).
Câu hỏi. Phân loại Region, mức ưu đãi vừa tạo, Order Date, Sales và Quantity theo bốn thang đo. Phép tính nào có ý nghĩa và không có ý nghĩa với từng loại?
Câu trả lời đã nộp sẽ được khoá lại, không sửa được.
Đáp án mẫu
| Thang đo | Biến | Phép tính phù hợp |
|---|---|---|
| Nominal | Region, Category, Segment | Phân nhóm, đếm, tỷ trọng; không có thứ tự |
| Ordinal | Mức ưu đãi: không giảm, thấp, cao | Có thứ tự, khoảng cách giữa các mức không nhất thiết bằng nhau |
| Interval | Order Date, Ship Date | Khoảng cách thời gian có ý nghĩa, nhưng không nói “gấp đôi” được |
| Ratio | Sales, Quantity | Có số 0 thực; cộng, trung bình, so sánh tỷ lệ đều được |
Gán mã số cho Region không biến vùng địa lý thành biến định lượng.
Lỗi hay gặp: nhầm mã số (Customer ID, Product ID) với biến số học vì chúng chứa chữ số.
Ôn bằng thẻ ghi nhớ
14 thẻ ôn lại các khái niệm của tuần. Thẻ “chưa nhớ” sẽ quay lại cuối lượt.
Còn 14 thẻ trong lượt này
Tóm tắt tuần
- Dữ liệu có 3 dạng; chỉ dạng có cấu trúc là phân tích ngay được.
- Trước khi phân tích, hỏi ai ghi, ghi khi nào, cái gì không được ghi.
- Loại biến quyết định phép tính: mã số không phải con số, có thứ tự chưa chắc khoảng cách đều.