HocThuatSo.comHọc Thuật Số
Gửi thư
Dữ liệu FAIR và lưu trữ dài hạn

Từ điển dữ liệu: mô tả từng biến để người khác đọc được bảng của bạn

Từ điển dữ liệu là bảng mô tả từng biến: tên, nhãn, kiểu, đơn vị, giá trị hợp lệ, mã thiếu. Bài hướng dẫn các cột cần có, ví dụ cho dữ liệu khảo sát và cách dựng tự động bằng R, Python.

Từ điển dữ liệu: mô tả từng biến để người khác đọc được bảng của bạn

Từ điển dữ liệu là một bảng, mỗi dòng mô tả một biến: tên biến, nhãn đầy đủ, kiểu dữ liệu, đơn vị, khoảng giá trị hợp lệ, ý nghĩa từng mã, cách ghi giá trị thiếu và câu hỏi gốc. Có nó, người khác đọc được bảng của bạn mà không phải hỏi lại.

Thiếu từ điển là lý do số một khiến dữ liệu đã công khai vẫn không ai dùng được. Một cột tên q7_3 chứa các số 1 đến 5 có thể là mức độ đồng ý, có thể là số con, có thể là mã tỉnh. Chính người thu thập, sau hai năm, cũng thường quên. Bài này đưa ra cấu trúc cột, ví dụ cụ thể cho dữ liệu khảo sát và cách sinh từ điển tự động từ tệp dữ liệu.

Các cột nên có trong từ điển dữ liệu

Không phải bộ dữ liệu nào cũng cần đủ mọi cột, nhưng bốn cột đầu là tối thiểu.

CộtNội dungVí dụ
ten_bienTên biến đúng như trong tệp dữ liệuthu_nhap_thang
nhanMô tả đầy đủ bằng lờiTổng thu nhập hộ trong tháng trước khảo sát
kieuSố nguyên, số thực, chuỗi, ngày, phân loạiSố nguyên
don_viĐơn vị đoNghìn đồng
gia_tri_hop_leKhoảng hoặc danh sách giá trị cho phép0 đến 500000
ma_gia_triÝ nghĩa từng mã với biến phân loại1 = Nam; 2 = Nữ
ma_thieuCác mã thể hiện thiếu và lý do-8 = Không biết; -9 = Từ chối trả lời
cau_hoi_gocSố câu và nguyên văn câu hỏi trong bảng hỏiCâu C12
nguonThu trực tiếp, tính toán từ biến khác, ghép từ nguồn ngoàiTính bằng tổng C12a đến C12f
ghi_chuNhững điều bất thường: đổi câu hỏi giữa đợt, lỗi đã biếtĐợt 1 hỏi theo năm, đã quy về tháng

Ví dụ: ghi từ điển cho một bộ khảo sát hộ gia đình

Biến phân loại một lựa chọn

Câu hỏi nghề nghiệp chính có bảy phương án. Từ điển ghi đủ bảy mã kèm nhãn, kể cả mã “Khác” và cột phụ chứa câu trả lời mở đi kèm. Nếu sau khi làm sạch bạn gộp phương án 6 và 7, ghi rõ trong cột ghi chú và lưu cả biến trước khi gộp.

Câu hỏi chọn nhiều phương án

Câu hỏi nhiều lựa chọn thường được tách thành nhiều biến nhị phân, mỗi phương án một biến 0 và 1. Từ điển cần cho biết các biến này thuộc cùng một câu, ví dụ đặt tên theo gốc chung c15_1 đến c15_8 và ghi câu hỏi gốc giống nhau ở cột cau_hoi_goc.

Thang đo Likert

Ghi rõ chiều của thang: 1 là hoàn toàn không đồng ý hay hoàn toàn đồng ý. Nếu có câu đảo chiều đã được mã hoá lại, ghi tên biến gốc và biến đã đảo, kèm công thức. Đây là chỗ người dùng lại hay tính sai điểm tổng nhất.

Biến tính toán

Thu nhập bình quân đầu người, chỉ số tài sản, điểm tổng thang đo đều là biến tính từ biến khác. Cột nguon ghi công thức hoặc trỏ tới tên tệp mã xử lý tạo ra biến đó.

Giá trị thiếu: chỗ dễ làm hỏng phân tích nhất

Phân biệt các loại thiếu. Không biết, từ chối, không áp dụng vì bị bỏ qua theo bước nhảy, lỗi nhập. Mỗi loại một mã riêng, vì ý nghĩa thống kê khác nhau.

Dùng mã không thể trùng giá trị thật. Mã 99 cho tuổi là nguy hiểm vì có người 99 tuổi. Mã âm như -8, -9 an toàn hơn cho biến số lượng.

Ghi rõ trong bản CSV dùng gì. Có bộ dữ liệu để ô trống, có bộ ghi NA, có bộ giữ mã âm. Chọn một kiểu và viết trong README lẫn từ điển. Người dùng R đọc ô trống thành NA, còn mã -9 sẽ thành số thật nếu không khai báo, làm trung bình lệch hẳn.

Kiểm tra bước nhảy. Người không có con thì các câu về con phải là mã không áp dụng, không phải số 0. Từ điển nên ghi điều kiện để một biến được hỏi.

Dựng từ điển tự động từ tệp dữ liệu

Bằng R

Nếu dữ liệu đến từ SPSS hoặc Stata, đọc bằng haven::read_sav() hoặc haven::read_dta(), nhãn biến và nhãn giá trị đi theo. Hàm labelled::generate_dictionary() trả về bảng có tên biến, nhãn, kiểu và nhãn giá trị; ghi ra CSV bằng write.csv() hoặc readr::write_csv(). Gói skimr với hàm skim() cho thêm số giá trị thiếu, trung bình, phân vị của từng biến, ghép vào thành cột thống kê tóm tắt.

Bằng Python

Với pandas, khung dữ liệu cơ bản lấy từ df.dtypes cho kiểu, df.isna().sum() cho số ô thiếu, df.describe() cho thống kê. Ghép các phần này thành một bảng mới rồi to_csv(). Đọc tệp SPSS kèm nhãn thì dùng gói pyreadstat, đối tượng siêu dữ liệu trả về có column_names_to_labels và variable_value_labels.

Phần máy không làm được

Máy sinh được khung, nhưng nhãn đầy đủ, đơn vị, điều kiện bước nhảy, công thức biến tính toán thì phải do người hiểu dữ liệu điền. Cách làm hiệu quả là sinh khung một lần, rồi điền tay các cột còn trống, rồi giữ từ điển trong cùng thư mục với mã xử lý để cập nhật khi thêm biến.

Định dạng và nơi đặt từ điển

Từ điển nên ở dạng máy đọc được trước, đẹp sau:

  • Lưu thành codebook.csv hoặc data_dictionary.csv, cùng mã hoá UTF-8 với tệp dữ liệu.
  • Nếu cần bản để in hoặc nộp kèm hồ sơ, xuất thêm PDF từ cùng một nguồn, không duy trì hai bản gõ tay.
  • Đặt ở thư mục gốc của bộ dữ liệu, tên tệp được nhắc trong README.
  • Khi dữ liệu có nhiều bảng, mỗi bảng một từ điển hoặc thêm cột bang để phân biệt.
  • Với khảo sát lớn, cân nhắc chuẩn DDI để kho dữ liệu và công cụ tìm kiếm đọc được tự động.

Từ điển cho dữ liệu nhiều đợt và nhiều bảng

Khảo sát lặp lại nhiều đợt

Khi cùng một bảng hỏi được dùng ở nhiều đợt, câu hỏi thường bị sửa nhẹ: thêm phương án, đổi thời gian hồi tưởng, đổi đơn vị. Thêm cột dot_ap_dung cho biết biến có ở đợt nào, và ghi mọi thay đổi ở cột ghi chú. Nếu một biến đổi ý nghĩa giữa các đợt, tốt nhất tách thành hai biến có tên khác nhau thay vì giữ cùng tên.

Nhiều bảng nối với nhau

Dữ liệu hộ gia đình thường có bảng hộ và bảng thành viên, nối với nhau qua mã hộ. Từ điển cần chỉ rõ khoá nối: biến nào là mã duy nhất của mỗi bảng, biến nào dùng để ghép. Người dùng lại hay ghép sai khi mã hộ trong hai bảng có kiểu khác nhau, ví dụ một bên là số, một bên là chuỗi có số 0 ở đầu.

Dữ liệu nhập từ biểu mẫu trực tuyến

Biểu mẫu trực tuyến thường tự đặt tên cột bằng nguyên văn câu hỏi rất dài. Đổi sang tên biến ngắn ngay từ đầu, lưu ánh xạ giữa tên cũ và tên mới thành một cột trong từ điển. Như vậy vẫn truy lại được câu hỏi gốc mà mã phân tích gọn hơn nhiều.

Kiểm từ điển bằng chính dữ liệu

Từ điển ghi khoảng giá trị hợp lệ thì có thể dùng nó để kiểm dữ liệu tự động. Viết một đoạn mã ngắn đọc từ điển, với mỗi biến số lượng thì đếm số dòng nằm ngoài khoảng cho phép, với mỗi biến phân loại thì liệt kê các mã xuất hiện trong dữ liệu mà không có trong danh sách mã. Kết quả thường lộ ra lỗi nhập liệu, như tuổi 250 hay mã tỉnh không tồn tại.

Cách làm này biến từ điển từ một tài liệu mô tả thành một công cụ kiểm tra chất lượng. Mỗi lần nhận thêm dữ liệu, chạy lại bước kiểm trước khi phân tích.

Lỗi hay gặp khi viết từ điển

Viết từ điển sau khi đã làm sạch xong. Lúc đó đã quên các quyết định giữa chừng. Mở từ điển ngay từ khi nhập liệu và ghi theo.

Từ điển và dữ liệu lệch tên biến. Đổi tên biến trong mã mà không sửa từ điển. Thêm một bước kiểm đơn giản: so danh sách tên biến hai bên, báo nếu khác.

Ghi đơn vị ở tiêu đề cột. Tên cột như “Thu nhập (triệu)” gây lỗi khi đọc bằng máy. Để đơn vị ở từ điển, tên biến chỉ dùng chữ không dấu, số và gạch dưới.

Câu hỏi thường gặp

Từ điển dữ liệu khác bảng hỏi ở chỗ nào?

Bảng hỏi là công cụ thu thập, từ điển mô tả dữ liệu sau khi thu: tên biến, kiểu, mã, giá trị thiếu, biến tính toán. Hai thứ nên đi cùng nhau và dẫn chiếu sang nhau qua số câu hỏi.

Có mẫu từ điển dữ liệu chuẩn để dùng không?

Chưa có một mẫu bắt buộc chung. Nhiều kho dữ liệu và thư viện đại học có mẫu gợi ý, và các cột trong bài là phần giao nhau phổ biến. Khảo sát lớn có thể theo chuẩn DDI.

Ô trống và mã -9 nên chọn cái nào?

Nên giữ mã riêng cho từng loại thiếu trong bản gốc vì mang thông tin. Bản chia sẻ có thể giữ mã hoặc đổi thành ô trống, miễn là ghi rõ trong từ điển và README.

Dữ liệu định tính có cần từ điển không?

Cần ở dạng khác: danh sách tệp phỏng vấn, mã người tham gia, thuộc tính như vai trò, địa bàn, ngày phỏng vấn, và bảng mã chủ đề kèm định nghĩa từng mã.

Từ điển dữ liệu nên đặt tên tệp thế nào?

Đặt tên rõ như codebook.csv hoặc data_dictionary.csv, ở cùng thư mục với dữ liệu và được nhắc tới trong README để người tải về biết mở tệp nào trước.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

🧭
Bạn đang ở chặng nào của đường học vị?
Nhập chỗ bạn đang đứng và đích bạn nhắm — công cụ trả về số năm, chi phí và việc phải làm từng chặng.
Xem lộ trình của tôi →
Miễn phí, không cần tài khoản. Xem tất cả công cụ

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
[email protected]