Làm sạch dữ liệu STATA là quá trình kiểm tra và chuẩn hóa tệp dữ liệu trước khi ước lượng: xác nhận cấu trúc biến, loại quan sát trùng, xử lý giá trị thiếu và ngoại lệ, tạo biến mới có nhãn rõ ràng. Mọi thao tác được ghi bằng lệnh trong do-file nên có thể chạy lại từ tệp gốc. Đây là nền móng để hồi quy hay mô hình dữ liệu bảng cho ra con số đáng tin.
Bài viết đi theo đúng trình tự một người làm luận văn kinh tế, tài chính hay y tế công cộng thường gặp: nhập tệp, soi lỗi, sửa lỗi, tạo biến rồi lưu quy trình. Mỗi bước đều nêu lệnh STATA cụ thể, cách đọc kết quả và cách ghi lại quyết định để giải trình với giảng viên hướng dẫn.
Tóm tắt nhanh: không bao giờ sửa trực tiếp trên tệp dữ liệu gốc, mọi thay đổi phải nằm trong do-file.
Kiểm tra mã định danh và quan sát trùng trước, rồi mới xử lý giá trị thiếu và ngoại lệ.
Biến mới cần có nhãn biến, nhãn giá trị và được lưu sang một tệp .dta riêng.
Làm sạch dữ liệu STATA gồm những việc gì?
STATA khuyến khích làm việc bằng lệnh, nên quy trình làm sạch thực chất là một chuỗi lệnh có thứ tự. Dữ liệu thứ cấp từ báo cáo tài chính hay khảo sát hộ gia đình thường có số bị đọc thành chữ, mã thiếu tự quy ước và tên biến khó hiểu. Bốn nhóm việc dưới đây bao quát gần hết các lỗi đó.
- Kiểm tra ban đầu: cấu trúc tệp, kiểu biến, mã định danh và quan sát trùng.
- Xử lý thiếu và ngoại lệ: khai báo đúng mã thiếu, đánh giá mức độ thiếu, soát giá trị bất thường.
- Tạo biến và nhãn: biến đổi, gộp nhóm, đặt nhãn biến và nhãn giá trị.
- Lưu quy trình: do-file, tệp log và tệp dữ liệu sạch đặt tên riêng.
Bước 1: Kiểm tra dữ liệu ban đầu
Sau khi nhập tệp Excel bằng import excel với tùy chọn firstrow, hãy chạy ngay describe để xem số quan sát, số biến và kiểu lưu trữ. Tiếp theo, codebook cho biết mỗi biến có bao nhiêu giá trị khác nhau, bao nhiêu ô thiếu và miền giá trị. Hai lệnh này thường đủ để phát hiện cột bị lệch hoặc biến số bị đọc thành chuỗi ký tự.
Chuyển biến chuỗi về dạng số
Một cột doanh thu chứa dấu phẩy ngăn cách hàng nghìn hay ký tự “n/a” sẽ bị STATA lưu dạng chuỗi (string). Lệnh destring với tùy chọn ignore giúp bỏ ký tự thừa và chuyển về kiểu số. Với biến phân loại dạng chữ như tên tỉnh, dùng encode để tạo biến số có sẵn nhãn giá trị, thuận tiện cho hồi quy với biến giả.
Kiểm tra mã định danh và quan sát trùng
Với dữ liệu doanh nghiệp theo năm, cặp mã doanh nghiệp và năm phải xác định duy nhất một dòng. Lệnh isid sẽ báo lỗi nếu điều kiện này bị vi phạm, còn duplicates report cho biết có bao nhiêu nhóm dòng trùng. Đừng vội dùng duplicates drop; hãy đánh dấu bằng duplicates tag rồi xem từng trường hợp, vì hai dòng trùng mã có thể chứa số liệu khác nhau.
Bước 2: Xử lý giá trị thiếu và ngoại lệ
Đây là phần tốn thời gian nhất khi làm sạch dữ liệu STATA. Giá trị thiếu được ký hiệu bằng dấu chấm cho biến số và chuỗi rỗng cho biến chữ; ngoài ra còn có mã thiếu mở rộng từ .a đến .z để phân biệt “không trả lời” với “không áp dụng”. Nếu dữ liệu gốc dùng 99 hoặc -1 cho ô trống, lệnh mvdecode sẽ chuyển chúng thành giá trị thiếu đúng chuẩn.
Đánh giá mức độ thiếu dữ liệu
Lệnh misstable summarize liệt kê số ô thiếu của từng biến, còn misstable patterns cho thấy các tổ hợp thiếu thường gặp. Nhờ đó bạn biết thiếu tập trung ở vài biến hay rải đều. Nếu một biến quan trọng thiếu nhiều, cần xem thiếu có theo quy luật không, chẳng hạn doanh nghiệp nhỏ hay bỏ trống chỉ tiêu lợi nhuận.
Bẫy so sánh lớn hơn với giá trị thiếu
STATA coi giá trị thiếu lớn hơn mọi con số, nên điều kiện kiểu doanh thu lớn hơn 1.000 sẽ vô tình gom cả quan sát thiếu. Đây là lỗi kinh điển khi tạo biến giả hoặc lọc mẫu. Cách an toàn là luôn thêm điều kiện !missing() cho biến liên quan, rồi dùng count if để kiểm tra số dòng trước và sau.
Soát giá trị ngoại lệ
Lệnh summarize với tùy chọn detail cho phân vị, độ lệch (skewness) và độ nhọn (kurtosis), đủ để nhận ra biến có đuôi dài. Kết hợp graph box hoặc histogram giúp thấy rõ các điểm tách biệt. Ngoại lệ có thể là lỗi nhập liệu, khác đơn vị tính hoặc quan sát thật nhưng hiếm; mỗi loại cần cách xử lý riêng.
| Vấn đề dữ liệu | Lệnh STATA gợi ý | Hướng xử lý cần ghi lại |
|---|---|---|
| Biến số bị đọc thành chuỗi | describe, destring | Ghi ký tự đã loại bỏ và số ô không chuyển được |
| Dòng trùng mã định danh | isid, duplicates report, duplicates tag | Đối chiếu nguồn gốc, giữ một dòng có căn cứ |
| Mã thiếu tự quy ước | mvdecode, misstable summarize | Ghi mã cũ, mã mới và tỷ lệ thiếu từng biến |
| Giá trị ngoài miền hợp lý | assert, list if | Tra lại nguồn, sửa hoặc đặt thiếu có lý do |
| Đuôi phân phối quá dài | summarize kèm detail, graph box | Cân nhắc lấy log, winsorize và chạy độ nhạy |
Với ngoại lệ là quan sát thật, nhiều nghiên cứu tài chính chọn winsorize ở phân vị 1% và 99% qua lệnh cộng đồng như winsor2. Đây là lựa chọn phương pháp, không phải quy tắc bắt buộc. Hãy nêu rõ ngưỡng, lý do và so sánh kết quả có và không có bước này.
Bước 3: Tạo biến và gắn nhãn
Phần lớn biến nghiên cứu được tạo từ biến gốc: tỷ số tài chính, logarit quy mô, biến giả theo nhóm hay điểm trung bình thang đo. Lệnh generate tạo biến mới, replace thay giá trị có điều kiện, còn egen cung cấp hàm tổng hợp như rowmean hoặc trung bình theo nhóm. Nên tạo biến mới thay vì ghi đè lên biến gốc.
Mã hóa lại và gộp nhóm
Lệnh recode kèm tùy chọn generate giúp đảo chiều thang đo hoặc gộp trình độ học vấn thành ít nhóm hơn mà vẫn giữ biến cũ. Sau mỗi lần mã hóa, hãy chạy tabulate giữa biến cũ và biến mới để chắc mọi giá trị rơi đúng nhóm. Lệnh assert giúp khẳng định một điều kiện, ví dụ tỷ lệ nợ nằm trong khoảng hợp lý.
Đặt nhãn biến và nhãn giá trị
Lệnh label variable gắn mô tả ngắn cho từng biến, giúp bảng kết quả dễ đọc hơn. Với biến phân loại, dùng label define để khai báo bộ nhãn, ví dụ 0 là “Doanh nghiệp tư nhân”, 1 là “Doanh nghiệp nhà nước”, rồi label values để gán vào biến. Lệnh notes đính kèm ghi chú về nguồn và cách tính vào tệp dữ liệu.
Kinh nghiệm từ Luận Văn 360: khi rà soát tệp của người học, chúng tôi thường thấy biến được tạo bằng lệnh gõ tay trong cửa sổ Command rồi lưu đè lên tệp .dta.
Vài tuần sau, không ai nhớ biến đòn bẩy được tính từ nợ ngắn hạn hay tổng nợ. Cách phòng tránh đơn giản là chỉ tạo biến trong do-file và ghi công thức vào nhãn hoặc notes.
Bước 4: Lưu quy trình bằng do-file
Trong quy trình làm sạch dữ liệu STATA, do-file là tệp văn bản chứa toàn bộ lệnh theo thứ tự, cho phép tái tạo tệp sạch từ dữ liệu thô chỉ bằng một lần chạy. Đây cũng là bằng chứng minh bạch khi hội đồng hỏi cách xây dựng biến. Một do-file gọn gàng thường có cấu trúc như sau.
- Đầu tệp: lệnh version, clear all và log using để mở tệp nhật ký.
- Nhập dữ liệu thô từ thư mục gốc, không chỉnh sửa tệp này.
- Các khối kiểm tra, xử lý thiếu, ngoại lệ và tạo biến, mỗi khối có chú thích.
- Lệnh compress, save sang tệp dữ liệu sạch mang tên mới, rồi log close.
Lệnh version giúp mã chạy theo cú pháp của phiên bản bạn đã dùng, hạn chế khác biệt khi mở trên máy có STATA mới hơn. Danh sách tính năng quản lý dữ liệu có trong trang tính năng chính thức của STATA. Nên tách do-file làm sạch và do-file phân tích để dễ kiểm tra từng phần.
Nếu muốn có người soát lại do-file và quyết định xử lý dữ liệu trước khi chạy mô hình, dịch vụ hỗ trợ phân tích dữ liệu bằng STATA của Luận Văn 360 sẽ góp ý theo từng bước. Bạn vẫn là người trực tiếp chỉnh sửa và chịu trách nhiệm với dữ liệu của mình.
Lỗi thường gặp khi làm sạch dữ liệu STATA
Xóa quan sát bằng drop mà không đếm trước
Lệnh drop if xóa các dòng thỏa điều kiện khỏi bộ nhớ, và nếu sau đó bạn lưu đè thì không thể lấy lại. Điều kiện viết sai có thể làm mẫu mất hàng trăm quan sát mà bạn không hay biết. Hãy chạy count if với cùng điều kiện trước, ghi con số vào chú thích, rồi mới xóa và đối chiếu số quan sát còn lại.
Ghép dữ liệu nhưng không kiểm tra kết quả merge
Khi ghép bảng tài chính với bảng đặc điểm doanh nghiệp bằng merge, STATA tạo biến _merge cho biết dòng nào khớp, dòng nào chỉ có ở một bên. Bỏ qua biến này dễ dẫn tới mẫu thiếu hoặc lặp. Hãy lập bảng tần số cho biến đó, giải thích các dòng không khớp, rồi mới xóa nó trước lần ghép tiếp theo.
Kết luận
Làm sạch dữ liệu STATA hiệu quả gồm bốn bước: kiểm tra cấu trúc và mã định danh, xử lý giá trị thiếu và ngoại lệ, tạo biến có nhãn, rồi lưu toàn bộ quy trình bằng do-file. Mỗi quyết định đều cần lý do, con số trước và sau, và có thể chạy lại từ tệp gốc.
Khi tệp đã sạch, bước tiếp theo là mô tả mẫu qua bài thống kê mô tả và bảng kết quả trong STATA; nếu dữ liệu theo doanh nghiệp và năm, hãy đọc thêm cách thiết lập dữ liệu bảng trong STATA. Để lưu hồ sơ gọn gàng, tham khảo checklist tái lập kết quả phân tích. Cần một lượt góp ý độc lập, hãy tìm hiểu dịch vụ phân tích STATA.
