Mọi đồ án có số liệu đều đi qua cùng một chuỗi: thu thập, làm sạch, tính toán, vẽ đồ thị, đưa vào quyển.
Và gần như ai cũng gặp cùng một tình huống: tới tuần thứ mười, phát hiện một lỗi trong dữ liệu, phải làm lại toàn bộ chuỗi đó.
Người làm bằng thao tác tay mất vài ngày. Người làm bằng kịch bản mất mười phút. Đây là khác biệt lớn nhất mà bài này nói tới.
Tách ba lớp dữ liệu
Quy tắc nền tảng, áp dụng cho mọi loại đồ án:
- Dữ liệu thô — nguyên bản như khi thu được. Không bao giờ sửa vào đây. Để ở thư mục riêng, đặt chế độ chỉ đọc nếu có thể.
- Dữ liệu đã xử lý — kết quả của việc làm sạch và biến đổi. Đây là thứ sinh ra được, nên mất cũng dựng lại được.
- Kết quả — bảng và hình đưa vào quyển.
Vì sao quan trọng: khi phát hiện xử lý sai, bạn quay về dữ liệu thô và chạy lại. Nếu đã sửa đè lên dữ liệu thô thì không còn đường lùi, và dữ liệu thô thường là thứ không lấy lại được.
Ghi lại các bước xử lý
Dù bạn dùng bảng tính hay viết mã, phải trả lời được câu: từ dữ liệu thô tới con số trong bảng 4.2, đã làm những gì.
Nếu dùng bảng tính:
- Để dữ liệu thô ở một trang riêng, không đụng vào.
- Mỗi bước xử lý một trang mới, dùng công thức tham chiếu sang trang trước — đừng dán giá trị, vì dán giá trị là mất dấu vết.
- Ghi chú ngay trong tệp: trang này làm gì, lọc bỏ những dòng nào và vì sao.
Nếu viết mã:
- Một kịch bản chạy từ đầu tới cuối, đọc dữ liệu thô và sinh ra mọi bảng và hình.
- Đừng sửa dữ liệu bằng tay rồi mới chạy — mọi thao tác phải nằm trong kịch bản.
- Chú thích từng khối làm gì.
Phép thử: xoá hết kết quả, chạy lại từ dữ liệu thô, và kiểm xem có ra đúng các con số cũ không. Làm được phép thử này nghĩa là chuỗi xử lý của bạn lặp lại được — và đó cũng là thứ hội đồng tin tưởng.
Làm sạch dữ liệu cho trung thực
Dữ liệu thật luôn có chỗ bẩn: ô trống, giá trị vô lý, bản ghi trùng, điểm ngoại lai.
Nguyên tắc xử lý:
- Ghi lại đã bỏ gì và vì sao. Số dòng ban đầu, số dòng bỏ, lý do từng nhóm.
- Có tiêu chí trước khi nhìn kết quả. Đặt tiêu chí loại điểm ngoại lai từ đầu, đừng loại sau khi thấy nó làm đồ thị xấu — đó là chỉnh số liệu, không phải làm sạch.
- Báo cáo cả hai phiên bản nếu việc loại bỏ ảnh hưởng nhiều tới kết luận: kết quả khi giữ và khi bỏ.
- Ô trống không tự điền bằng số 0. Thiếu dữ liệu và bằng không là hai chuyện khác nhau.
Phần mô tả làm sạch dữ liệu nên nằm trong chương phương pháp. Nó ngắn nhưng nó là thứ phân biệt một đồ án làm nghiêm túc.
Vẽ đồ thị bằng kịch bản
Vẽ bằng thao tác tay thì mỗi lần dữ liệu đổi là vẽ lại từ đầu, và bạn sẽ ngại sửa dữ liệu dù biết là nên sửa.
Vẽ bằng kịch bản thì:
- Dữ liệu đổi, chạy lại, mọi đồ thị tự cập nhật.
- Định dạng đồng nhất giữa các hình vì cùng một đoạn cấu hình.
- Sửa một chi tiết như cỡ chữ hay đơn vị trục thì sửa một chỗ cho tất cả.
Không quen viết mã thì ít nhất hãy dùng biểu đồ liên kết với vùng dữ liệu trong bảng tính, thay vì gõ số vào biểu đồ.
Ba lỗi hay gặp
- Kết quả trong quyển không khớp tệp tính. Do sửa số liệu sau khi đã chèn hình vào quyển. Xuất lại toàn bộ hình ở bước cuối, sau khi số đã chốt.
- Làm tròn quá sớm. Làm tròn ở bước trung gian rồi tính tiếp thì sai số dồn lại. Chỉ làm tròn ở bước trình bày.
- Mất tệp trung gian. Giữ cả chuỗi, không chỉ giữ kết quả cuối — khi bị hỏi con số này ở đâu ra, bạn cần chuỗi đó.
Câu hỏi thường gặp
Vì sao phải tách dữ liệu thô khỏi dữ liệu đã xử lý?
Vì khi phát hiện xử lý sai, bạn quay về dữ liệu thô chạy lại. Nếu đã sửa đè lên dữ liệu thô thì không còn đường lùi, mà dữ liệu thô thường là thứ không lấy lại được.
Làm sao biết chuỗi xử lý của mình lặp lại được?
Xoá hết kết quả, chạy lại từ dữ liệu thô, và kiểm xem có ra đúng các con số cũ không. Làm được phép thử này thì hội đồng tin tưởng được.
Loại điểm ngoại lai thế nào cho trung thực?
Đặt tiêu chí trước khi nhìn kết quả, đừng loại sau khi thấy nó làm đồ thị xấu — đó là chỉnh số liệu chứ không phải làm sạch. Và ghi lại đã bỏ bao nhiêu dòng vì lý do gì.
Có nên điền số 0 vào ô trống không?
Không. Thiếu dữ liệu và bằng không là hai chuyện khác nhau, điền nhầm sẽ làm sai mọi phép tính trung bình và phân tích sau đó.
Vì sao nên vẽ đồ thị bằng kịch bản thay vì thao tác tay?
Vì dữ liệu đổi thì chạy lại là mọi đồ thị tự cập nhật, định dạng đồng nhất giữa các hình, và sửa một chi tiết như cỡ chữ thì sửa một chỗ cho tất cả.