
Mất dữ liệu khi recode phải làm sao? Cách khôi phục và kiểm tra trong SPSS
Hiện tượng bạn đang gặp
Bạn mở file SPSS lên, chọn Transform > Recode into Different Variables hoặc Transform > Recode into Same Variables, chạy xong rồi thấy một phần ô dữ liệu chuyển thành dấu chấm .. Có trường hợp cả cột biến mới chỉ còn missing value, hoặc các giá trị hợp lệ như 1, 2, 3 biến mất sau khi đổi mã.
Trong SPSS, dấu chấm ở Data View thường biểu thị system-missing. Đây chưa đủ để kết luận dữ liệu đã bị xóa khỏi file. Nguyên nhân có thể nằm ở khoảng giá trị nhập sai, bảng Old and New Values, điều kiện If, kiểu biến, mã missing hoặc việc bạn recode đè lên biến gốc.
Trước khi sửa tiếp, hãy dừng việc chạy thêm lệnh trên file hiện tại. Lưu một bản sao với tên mới, chẳng hạn du_lieu_loi_recode.sav, rồi kiểm tra biến gốc, biến sau recode và số lượng missing. Nếu bạn đang làm nhiều bước làm sạch dữ liệu, có thể xem thêm hướng dẫn chạy syntax SPSS để lưu lại từng lệnh thay vì thao tác mà không có dấu vết.
Nguyên nhân thường gặp
Bảng dưới đây giúp bạn đối chiếu dấu hiệu trên màn hình với nguyên nhân có khả năng xảy ra. Hãy kiểm tra trước khi sửa, vì cùng một hiện tượng có thể xuất phát từ nhiều thiết lập khác nhau.
| Dấu hiệu trong SPSS | Nguyên nhân thường gặp | Cách kiểm tra |
|---|---|---|
| Toàn bộ biến mới là dấu chấm | Chưa khai báo quy tắc chuyển từ giá trị cũ sang giá trị mới | Mở lại hộp thoại Recode, xem từng dòng trong Old and New Values |
| Một nhóm giá trị biến mất | Khoảng recode bị nhập thiếu hoặc sai dấu thập phân | Vào Analyze > Descriptive Statistics > Frequencies, xem biến trước recode |
| Chỉ một số dòng bị đổi | Đang bật Data > Select Cases hoặc có điều kiện If | Kiểm tra trạng thái lọc và nút If trong hộp thoại recode |
| Giá trị ngoài khoảng trở thành missing | Chọn All other values > System-missing | Mở Old and New Values, xem quy tắc cho giá trị còn lại |
| Biến mới không xuất hiện đúng kiểu | Sai tên biến hoặc chưa bấm Change | Kiểm tra ô Name, Label và danh sách biến bên phải |
| Giá trị chữ bị chuyển thành missing | Đang xử lý biến string như numeric | Vào Variable View, kiểm tra cột Type, Values và khoảng trắng |
| Dữ liệu gốc cũng thay đổi | Dùng Recode into Same Variables | So sánh với bản sao trước khi recode hoặc file dữ liệu ban đầu |
Một lỗi dễ bỏ qua là mã missing do người nhập quy ước, chẳng hạn 99, 999 hoặc NA. Nếu bạn chuyển 99 thành system-missing nhưng dùng điều kiện không đúng, SPSS có thể biến cả nhóm giá trị hợp lệ thành dấu chấm. Vì vậy, hãy xem hướng dẫn chuẩn hóa dữ liệu là gì để xác định mã missing trước khi recode các biến phân tích.
Cách xử lý theo thứ tự ưu tiên
Hãy xử lý từ phương án ít làm thay đổi dữ liệu nhất. Mục tiêu đầu tiên là xác định dữ liệu còn ở đâu, sau đó mới tạo biến phân tích. Đừng vội nhập lại toàn bộ bảng hỏi khi chưa kiểm tra file gốc.
Tạo bản sao và đối chiếu biến gốc
Dùng File > Save As để lưu một bản sao. Nếu trước đó bạn đã recode đè bằng Recode into Same Variables, hãy đóng file hiện tại mà không lưu, sau đó mở dữ liệu gốc. Đây là cách an toàn nhất nếu file gốc vẫn còn nguyên.
Trong bản sao, vào Analyze > Descriptive Statistics > Frequencies. Đưa biến gốc và biến sau recode vào ô Variable(s), rồi xem số lượng hợp lệ và missing. Ghi lại kết quả trước và sau recode thay vì chỉ nhìn các ô trên Data View.
Kiểm tra kiểu biến và mã missing
Mở Variable View. Biến chứa số từ 1 đến 5 phải được nhận là Numeric. Biến chứa chuỗi như Nam, Nữ hoặc Đồng ý phải là String trước khi xử lý phù hợp. Kiểm tra tiếp cột Missing, vì SPSS có thể đang xem một giá trị cụ thể là missing do bạn khai báo từ trước.
Trong Data View, bật Value Labels bằng nút trên thanh công cụ để phân biệt giữa giá trị lưu thật và nhãn hiển thị. Ô hiện Hoàn toàn đồng ý có thể đang lưu số 5. Khi recode, bạn phải dùng giá trị 5 trong Old Value, không dùng phần chữ đang hiển thị.
Nếu biến string có khoảng trắng thừa, Nam và Nam có thể bị xem là hai chuỗi khác nhau. Hãy chạy tần suất trước, ghi nhận các biến thể, rồi xử lý có kiểm soát. Không xóa hàng loạt các giá trị chữ chỉ vì chúng không khớp với nhãn dự kiến.
Mở lại hộp thoại Recode và rà từng quy tắc
Vào Transform > Recode into Different Variables. Chọn biến gốc, đặt tên biến mới, bấm Change, sau đó chọn Old and New Values. Kiểm tra các loại quy tắc Value, Range, Lowest through, Range through highest, All other values và System-missing.
Nếu muốn chuyển thang Likert 1 đến 5 thành nhóm, có thể đặt 1 through 2 thành 1, 3 thành 2, 4 through 5 thành 3. Sau mỗi dòng, bấm Add. Nếu chỉ nhập quy tắc nhưng quên Add, dòng đó chưa được đưa vào danh sách xử lý.
Ở phần Output variables, nhập tên biến mới rồi bấm Change. Sau khi bấm OK, kiểm tra biến mới bằng Frequencies. Tạo biến mới giúp bạn giữ lại biến gốc để đối chiếu và dễ giải trình hơn trong luận văn.
Tắt Select Cases và điều kiện If
Vào Data > Select Cases, chọn All cases, rồi bấm OK nếu bạn không chủ ý lọc dữ liệu. Khi bộ lọc đang bật, SPSS chỉ xử lý các dòng được chọn. Các dòng còn lại thường bị đánh dấu bằng đường chéo trong Data View.
Mở lại hộp thoại recode và kiểm tra nút If. Nếu có điều kiện như gioitinh = 1 hoặc tuoi >= 18, chỉ những dòng thỏa điều kiện mới được đổi mã. Điều kiện đúng cho một bước phân tích có thể gây mất dữ liệu nếu bạn tưởng toàn bộ mẫu đã được recode.
Sau khi tắt bộ lọc, chạy lại trên biến mới. Không ghi đè lên biến cũ để sửa nhanh, bởi bạn sẽ khó biết giá trị nào được tạo ở lần chạy trước và giá trị nào đến từ lần chạy sau.
Kiểm tra bằng Frequencies và Crosstabs
Với một biến đơn, dùng Analyze > Descriptive Statistics > Frequencies. Với biến trước và sau recode, dùng Analyze > Descriptive Statistics > Crosstabs, đặt biến gốc ở hàng và biến mới ở cột. Bảng chéo cho thấy mã cũ nào được chuyển thành mã mới.
Output Crosstabs, số liệu minh họa:
| Biến gốc q1 | Biến mới q1_group = 1 | Biến mới q1_group = 2 | Biến mới q1_group = 3 | Total |
|---|---|---|---|---|
| 1 | 18 | 0 | 0 | 18 |
| 2 | 22 | 0 | 0 | 22 |
| 3 | 0 | 31 | 0 | 31 |
| 4 | 0 | 0 | 24 | 24 |
| 5 | 0 | 0 | 27 | 27 |
| Total | 40 | 31 | 51 | 122 |
Bảng minh họa này cho thấy mã 1 và 2 đã chuyển thành nhóm 1, mã 3 thành nhóm 2, mã 4 và 5 thành nhóm 3. Nếu một hàng của biến gốc có số đếm nhưng toàn bộ ô tương ứng ở biến mới bằng 0, hãy quay lại kiểm tra Old and New Values.
Nếu biến mới chỉ còn dấu chấm, bảng Crosstabs sẽ giúp bạn xác định tất cả mã gốc đang bị bỏ sót. Sau đó, xem thêm chủ đề SPSS để đặt bước kiểm tra mô tả trước Cronbach's Alpha, EFA hoặc hồi quy.
Dùng syntax để tạo lại biến có thể truy vết
Khi thao tác bằng menu nhiều lần, bạn dễ quên quy tắc đã chọn. Hãy bấm Paste thay vì OK để SPSS tạo syntax, sau đó xem lệnh trong Syntax Editor trước khi chạy:
RECODE q1 (1 THRU 2=1) (3=2) (4 THRU 5=3) INTO q1_group.
VARIABLE LABELS q1_group 'Nhóm recode của q1'.
EXECUTE.
Đây là số liệu minh họa về cú pháp, bạn phải thay tên biến và khoảng mã theo dữ liệu thật. Syntax giúp bạn chạy lại cùng một quy tắc, ghi chú từng vòng sửa và gửi cho giảng viên khi cần giải thích. Nếu biến là string, cú pháp và giá trị cần dùng sẽ khác, nên hãy kiểm tra Variable View trước khi chạy.
Khi nào phải quay lại thu thêm dữ liệu
Recode chỉ thay đổi cách mã hóa hoặc nhóm hóa giá trị đã có. Nó không thể khôi phục câu trả lời nếu bạn đã xóa cột, xóa dòng, ghi đè file gốc và không còn bản sao, hoặc người tham gia thực sự bỏ trống câu hỏi.
Bạn nên quay lại nguồn dữ liệu khi file Excel hoặc biểu mẫu ban đầu vẫn có câu trả lời nhưng file SPSS bị mất, tỷ lệ missing tăng mạnh sau một thao tác mà không giải thích được, một nhóm đối tượng bị bỏ hoàn toàn do điều kiện lọc, hoặc biến cần thiết cho giả thuyết không còn đủ quan sát hợp lệ.
Nếu dữ liệu gốc còn trong Google Forms, Excel hoặc hệ thống thu thập, hãy xuất lại thành một file mới thay vì chắp vá các ô mất dữ liệu. Nếu dữ liệu đến từ nguồn thứ cấp, xem dữ liệu thứ cấp là gì để xác định bản gốc và quy tắc ghi nhận dữ liệu. Với bảng hỏi tự thu thập, dữ liệu sơ cấp nên được lưu thành bản xuất thô, bản làm sạch và bản phân tích.
Không tự điền giá trị thay cho người trả lời chỉ để đủ cỡ mẫu. Việc này làm thay đổi dữ liệu quan sát và có thể bị hỏi tại buổi bảo vệ. Nếu mất dữ liệu do lỗi phần mềm nhưng không còn bản gốc, hãy ghi nhận số dòng bị ảnh hưởng, đánh giá tác động đến cỡ mẫu và trao đổi với giảng viên.
| Câu hỏi cần trả lời | Có thể sửa trong SPSS | Cần tìm lại dữ liệu gốc hoặc thu bổ sung |
|---|---|---|
Nhập sai khoảng Old and New Values | Có | Không |
Quên bấm Add hoặc Change | Có | Không |
Bật Select Cases hoặc If nhầm | Có | Không |
| Dùng sai kiểu Numeric và String | Có, nếu dữ liệu gốc còn | Có thể cần nếu bản gốc cũng sai |
| Người trả lời bỏ trống câu hỏi | Không | Có thể cần thu bổ sung |
| Xóa dòng và không còn bản sao | Không | Có |
| Ghi đè biến gốc nhưng còn file trước đó | Có, mở lại file trước đó | Không |
Cách giải trình với giảng viên hướng dẫn
Bạn nên trình bày theo chuỗi bằng chứng, không chỉ nói rằng SPSS bị lỗi. Hãy chuẩn bị file gốc, file sau xử lý, bảng Frequencies trước và sau recode, ảnh hoặc syntax của quy tắc đã dùng. Nêu rõ số quan sát hợp lệ thay đổi từ bao nhiêu xuống bao nhiêu và lý do thay đổi.
Cách viết vào luận văn: “Dữ liệu được kiểm tra bằng bảng tần suất trước khi phân tích. Các giá trị mã hóa không hợp lệ và giá trị thiếu được xác định theo quy tắc [mô tả quy tắc]. Biến [tên biến gốc] được recode thành [tên biến mới] theo các khoảng [ghi khoảng giá trị], trong khi biến gốc được giữ lại để đối chiếu.”
Cách viết vào luận văn khi phải khôi phục dữ liệu: “Sau khi phát hiện số lượng missing tăng bất thường trong quá trình recode, nghiên cứu sử dụng lại file dữ liệu gốc [tên file hoặc nguồn dữ liệu]. Quy trình recode được thực hiện trên bản sao [tên phiên bản], với syntax được lưu lại để kiểm tra và tái lập.”
Nếu phải loại một số dòng, hãy ghi số lượng, tiêu chí và ảnh hưởng đến cỡ mẫu. Nếu chỉ tạo biến mới do sai quy tắc trước đó, giải thích rằng dữ liệu gốc được khôi phục từ [tên file hoặc nguồn], sau đó chạy lại quy trình trên bản sao có lưu syntax. Cách trình bày này cho thấy bạn kiểm soát quy trình thay vì thay đổi số liệu để đạt kết quả mong muốn.
Cách phòng từ bước thiết kế
Ngay khi nhận dữ liệu, hãy tạo ba thư mục hoặc ba phiên bản file: 01_raw, 02_cleaning và 03_analysis. File raw chỉ đọc, không recode và không xóa dòng. Mỗi lần chỉnh sửa, lưu thêm phiên bản có ngày hoặc số vòng, chẳng hạn cleaning_v02.sav.
Đặt tên biến nhất quán ngay từ bảng hỏi. Một biến quan sát nên có mã ngắn như HL1, HL2, HL3, còn nhãn đầy đủ đặt trong Variable Label. Tạo một bảng codebook gồm tên biến, nội dung, kiểu dữ liệu, thang đo, giá trị hợp lệ và mã missing. Khi cần đảo chiều một biến, tạo biến mới như HL3_R và ghi rõ công thức.
Trước khi chạy phân tích, kiểm tra nhanh bằng Frequencies cho tất cả biến bảng hỏi. Nếu dùng dữ liệu từ Excel, không để tiêu đề cột trùng nhau, không trộn chữ và số trong cùng một cột, không dùng công thức chưa chuyển thành giá trị và không thêm dòng tổng vào cuối bảng.
Quy trình làm sạch nên đi theo thứ tự: kiểm tra cấu trúc file, kiểm tra số dòng và số cột, phát hiện mã ngoài phạm vi, xác định missing, kiểm tra outlier nếu phù hợp, tạo biến recode, rồi mới chạy Cronbach's Alpha hoặc EFA. Với biến định tính đưa vào hồi quy, cần xác định nhóm tham chiếu và cách tạo biến giả, thay vì recode tùy ý. Trường hợp này có thể xem thêm biến định tính chạy hồi quy phải làm sao.
Lỗi thường gặp khi sửa
Lỗi đầu tiên là sửa trực tiếp trên file duy nhất. Khi kết quả xấu, bạn không còn cách phân biệt dữ liệu ban đầu với dữ liệu đã qua nhiều lần biến đổi. Luôn giữ bản raw và tạo biến mới khi có thể.
Lỗi thứ hai là đổi mọi dấu chấm thành một giá trị trung bình. System-missing, missing do người trả lời bỏ trống và mã quy ước 99 có thể mang ý nghĩa khác nhau. Cách xử lý missing phải dựa trên thiết kế bảng hỏi, tỷ lệ thiếu và yêu cầu của phân tích.
Lỗi thứ ba là nhìn nhãn thay vì nhìn giá trị. Value Labels chỉ là phần hiển thị. Khi recode, hãy xác nhận mã lưu thật trong Data View, bảng tần suất và Variable View.
Lỗi thứ tư là chạy lại Cronbach's Alpha hoặc hồi quy ngay sau khi thấy số liệu đã đẹp. Trước hết phải lưu quy tắc, đối chiếu số quan sát và chắc chắn rằng biến mới đại diện đúng khái niệm. Kết quả phân tích chỉ đáng tin khi đường đi từ dữ liệu thô đến biến phân tích có thể kiểm tra lại.
Câu hỏi thường gặp
Recode có làm mất dữ liệu gốc trong SPSS không?
Có, nếu bạn chọn Recode into Same Variables và lưu file sau khi chạy. Nếu chọn Recode into Different Variables, biến gốc vẫn được giữ lại, còn kết quả nằm ở một biến mới. Khi chưa chắc quy tắc đúng, hãy tạo biến mới và lưu bản sao trước khi thao tác.
Vì sao biến sau recode chỉ còn dấu chấm?
Các nguyên nhân thường gặp là chưa bấm Add, chưa bấm Change, nhập sai kiểu giá trị, bật điều kiện If, hoặc đặt toàn bộ giá trị còn lại thành System-missing. Mở lại hộp thoại recode, kiểm tra Old and New Values, sau đó dùng Frequencies để xem biến gốc có chứa các mã đang chuyển hay không.
Có thể khôi phục dữ liệu đã recode đè không?
Nếu file chưa lưu, hãy đóng mà không lưu rồi mở lại bản gốc. Nếu đã lưu, hãy tìm bản sao, file Excel ban đầu, file xuất từ biểu mẫu hoặc phiên bản trước trong thư mục làm việc. Khi không còn nguồn gốc nào, SPSS không thể suy ra câu trả lời ban đầu từ một giá trị đã bị thay thế.
Có nên điền giá trị trung bình vào các ô bị mất sau recode?
Không nên làm ngay. Trước hết cần xác định dấu chấm xuất hiện do lỗi quy tắc hay do người trả lời bỏ trống. Nếu là lỗi recode, tạo lại biến từ dữ liệu gốc. Nếu là missing thật, việc thay thế cần có lý do phương pháp rõ ràng và phải được báo cáo.
Recode xong có cần chạy lại Cronbach's Alpha không?
Có, nếu biến sau recode được dùng trong thang đo hoặc bạn đã thay đổi mã của biến quan sát. Hãy chạy lại phân tích trên đúng bộ biến, lưu output mới và ghi rõ biến nào được giữ, biến nào bị loại. Không dùng output của phiên bản dữ liệu trước khi recode cho kết luận cuối cùng.
Sau khi xác định dữ liệu nào còn khôi phục được, hãy mở lại file .sav, tạo bản sao, kiểm tra Frequencies và chạy lại recode bằng biến mới hoặc syntax có lưu lệnh. Nếu muốn kiểm tra toàn bộ quy trình phân tích trên dữ liệu thật của mình, M4 phân tích dữ liệu SPSS và SmartPLS là bước tiếp theo phù hợp.