Bài 15 · SPSS trong phân tích dữ liệu BĐS

Select Cases và Filter: chọn đúng mẫu phân tích mà không xóa dữ liệu

Select Cases và Filter: chọn đúng mẫu phân tích mà không xóa dữ liệu là bài 15 của chuyên đề SPSS trong phân tích dữ liệu BĐS. Chọn tập con phân tích bằng điều kiện, filter variable, mẫu ngẫu nhiên hoặc khoảng thời gian, ưu tiên lọc có thể khôi phục thay vì xóa case.

Biên soạn: ThS. Nguyễn Mạnh Hùng
GV. Khoa QLĐĐ&BĐS – ĐH Nông Lâm TP.HCM
Email: nguyenmanhhung@hcmuaf.edu.vn

Cập nhật 01/10/2026: Nội dung đối chiếu với IBM SPSS Statistics 31 và các tài liệu phương pháp nêu ở cuối bài. Dữ liệu BĐS trong ví dụ là giả lập phục vụ giảng dạy, trừ khi ghi rõ nguồn khác.

Vị trí của bài trong mạch học

Bài thuộc Chương 2 – Nhập, chuẩn hóa và làm sạch dữ liệu. Mục tiêu là làm dữ liệu đáng tin và có thể truy vết trước khi bước sang thống kê mô tả. Bài nối trực tiếp quy tắc ở Bài 1–10: hiểu mỗi dòng, mỗi cột và thuộc tính biến trước khi bấm Analyze.

1. Chọn mẫu khác xóa dữ liệu

Filter giữ case trong file nhưng loại khỏi nhiều phân tích; phù hợp thực hành và QA.

Liên hệ BĐS: với giá, diện tích, khu vực, loại hình hoặc dữ liệu khảo sát, một thao tác đúng kỹ thuật vẫn có thể tạo kết quả sai nghĩa nếu đơn vị quan sát, mã hóa, missing hoặc phạm vi mẫu chưa được kiểm. Vì vậy sau mỗi thao tác phải đối chiếu với codebook và ít nhất một số case cụ thể.

Cách tự kiểm: lưu trạng thái trước thao tác, chạy công cụ, ghi N/giá trị đầu ra, rồi kiểm ngược 5–10 dòng. Nếu không giải thích được vì sao một case được giữ, đổi nhóm, trở thành missing hoặc xuất hiện trong Output, chưa chuyển bước.

2. If condition is satisfied

Điều kiện có thể dùng biến, phép toán, hàm và logic.

Liên hệ BĐS: với giá, diện tích, khu vực, loại hình hoặc dữ liệu khảo sát, một thao tác đúng kỹ thuật vẫn có thể tạo kết quả sai nghĩa nếu đơn vị quan sát, mã hóa, missing hoặc phạm vi mẫu chưa được kiểm. Vì vậy sau mỗi thao tác phải đối chiếu với codebook và ít nhất một số case cụ thể.

Cách tự kiểm: lưu trạng thái trước thao tác, chạy công cụ, ghi N/giá trị đầu ra, rồi kiểm ngược 5–10 dòng. Nếu không giải thích được vì sao một case được giữ, đổi nhóm, trở thành missing hoặc xuất hiện trong Output, chưa chuyển bước.

3. AND OR và ngoặc

Biểu thức dài phải có ngoặc rõ để tránh chọn sai case.

Liên hệ BĐS: với giá, diện tích, khu vực, loại hình hoặc dữ liệu khảo sát, một thao tác đúng kỹ thuật vẫn có thể tạo kết quả sai nghĩa nếu đơn vị quan sát, mã hóa, missing hoặc phạm vi mẫu chưa được kiểm. Vì vậy sau mỗi thao tác phải đối chiếu với codebook và ít nhất một số case cụ thể.

Cách tự kiểm: lưu trạng thái trước thao tác, chạy công cụ, ghi N/giá trị đầu ra, rồi kiểm ngược 5–10 dòng. Nếu không giải thích được vì sao một case được giữ, đổi nhóm, trở thành missing hoặc xuất hiện trong Output, chưa chuyển bước.

4. Filter variable

Cờ 0/1 như qa_hople giúp tái sử dụng tiêu chí.

Liên hệ BĐS: với giá, diện tích, khu vực, loại hình hoặc dữ liệu khảo sát, một thao tác đúng kỹ thuật vẫn có thể tạo kết quả sai nghĩa nếu đơn vị quan sát, mã hóa, missing hoặc phạm vi mẫu chưa được kiểm. Vì vậy sau mỗi thao tác phải đối chiếu với codebook và ít nhất một số case cụ thể.

Cách tự kiểm: lưu trạng thái trước thao tác, chạy công cụ, ghi N/giá trị đầu ra, rồi kiểm ngược 5–10 dòng. Nếu không giải thích được vì sao một case được giữ, đổi nhóm, trở thành missing hoặc xuất hiện trong Output, chưa chuyển bước.

5. Random sample

Dùng khi thiết kế lấy mẫu yêu cầu, không để làm file nhẹ.

Liên hệ BĐS: với giá, diện tích, khu vực, loại hình hoặc dữ liệu khảo sát, một thao tác đúng kỹ thuật vẫn có thể tạo kết quả sai nghĩa nếu đơn vị quan sát, mã hóa, missing hoặc phạm vi mẫu chưa được kiểm. Vì vậy sau mỗi thao tác phải đối chiếu với codebook và ít nhất một số case cụ thể.

Cách tự kiểm: lưu trạng thái trước thao tác, chạy công cụ, ghi N/giá trị đầu ra, rồi kiểm ngược 5–10 dòng. Nếu không giải thích được vì sao một case được giữ, đổi nhóm, trở thành missing hoặc xuất hiện trong Output, chưa chuyển bước.

6. Range of cases/time

Số dòng phụ thuộc thứ tự; ưu tiên biến ngày/ID khi có thể.

Liên hệ BĐS: với giá, diện tích, khu vực, loại hình hoặc dữ liệu khảo sát, một thao tác đúng kỹ thuật vẫn có thể tạo kết quả sai nghĩa nếu đơn vị quan sát, mã hóa, missing hoặc phạm vi mẫu chưa được kiểm. Vì vậy sau mỗi thao tác phải đối chiếu với codebook và ít nhất một số case cụ thể.

Cách tự kiểm: lưu trạng thái trước thao tác, chạy công cụ, ghi N/giá trị đầu ra, rồi kiểm ngược 5–10 dòng. Nếu không giải thích được vì sao một case được giữ, đổi nhóm, trở thành missing hoặc xuất hiện trong Output, chưa chuyển bước.

7. Dấu filter trong Data View

Case vẫn còn nhưng phân tích bỏ qua; dễ quên trạng thái filter.

Liên hệ BĐS: với giá, diện tích, khu vực, loại hình hoặc dữ liệu khảo sát, một thao tác đúng kỹ thuật vẫn có thể tạo kết quả sai nghĩa nếu đơn vị quan sát, mã hóa, missing hoặc phạm vi mẫu chưa được kiểm. Vì vậy sau mỗi thao tác phải đối chiếu với codebook và ít nhất một số case cụ thể.

Cách tự kiểm: lưu trạng thái trước thao tác, chạy công cụ, ghi N/giá trị đầu ra, rồi kiểm ngược 5–10 dòng. Nếu không giải thích được vì sao một case được giữ, đổi nhóm, trở thành missing hoặc xuất hiện trong Output, chưa chuyển bước.

8. Missing trong điều kiện

Case có điều kiện missing thường không được chọn; cần biết N mất vì lý do nào.

Liên hệ BĐS: với giá, diện tích, khu vực, loại hình hoặc dữ liệu khảo sát, một thao tác đúng kỹ thuật vẫn có thể tạo kết quả sai nghĩa nếu đơn vị quan sát, mã hóa, missing hoặc phạm vi mẫu chưa được kiểm. Vì vậy sau mỗi thao tác phải đối chiếu với codebook và ít nhất một số case cụ thể.

Cách tự kiểm: lưu trạng thái trước thao tác, chạy công cụ, ghi N/giá trị đầu ra, rồi kiểm ngược 5–10 dòng. Nếu không giải thích được vì sao một case được giữ, đổi nhóm, trở thành missing hoặc xuất hiện trong Output, chưa chuyển bước.

9. Kiểm N trước-sau

Mọi lọc phải có bảng số case và tiêu chí chọn.

Liên hệ BĐS: với giá, diện tích, khu vực, loại hình hoặc dữ liệu khảo sát, một thao tác đúng kỹ thuật vẫn có thể tạo kết quả sai nghĩa nếu đơn vị quan sát, mã hóa, missing hoặc phạm vi mẫu chưa được kiểm. Vì vậy sau mỗi thao tác phải đối chiếu với codebook và ít nhất một số case cụ thể.

Cách tự kiểm: lưu trạng thái trước thao tác, chạy công cụ, ghi N/giá trị đầu ra, rồi kiểm ngược 5–10 dòng. Nếu không giải thích được vì sao một case được giữ, đổi nhóm, trở thành missing hoặc xuất hiện trong Output, chưa chuyển bước.

10. Trở về All cases

Sau phân tích phải tắt filter và ghi lại trạng thái.

Liên hệ BĐS: với giá, diện tích, khu vực, loại hình hoặc dữ liệu khảo sát, một thao tác đúng kỹ thuật vẫn có thể tạo kết quả sai nghĩa nếu đơn vị quan sát, mã hóa, missing hoặc phạm vi mẫu chưa được kiểm. Vì vậy sau mỗi thao tác phải đối chiếu với codebook và ít nhất một số case cụ thể.

Cách tự kiểm: lưu trạng thái trước thao tác, chạy công cụ, ghi N/giá trị đầu ra, rồi kiểm ngược 5–10 dòng. Nếu không giải thích được vì sao một case được giữ, đổi nhóm, trở thành missing hoặc xuất hiện trong Output, chưa chuyển bước.

Bộ dữ liệu thực hành xuyên suốt

Các bài 11–20 dùng một cấu trúc BĐS thống nhất để tập trung vào phương pháp. Có thể thay bằng dữ liệu thật nếu giữ đúng ý nghĩa biến, đơn vị và yêu cầu bảo mật.

Tên biếnKiểuÝ nghĩaMã/đơn vịMeasure
ma_bdsStringMã quan sát/tài sản—Nominal
khu_vucNumericKhu vực1=Trung tâm; 2=Cận trung tâm; 3=Ngoại viNominal
loai_bdsNumericLoại BĐS1=Căn hộ; 2=Nhà phố; 3=Đất ởNominal
dien_tichNumericDiện tíchm²Scale
gia_raoNumericGiá raotriệu đồngScale
gia_m2NumericĐơn giátriệu đồng/m²Scale
khoang_cach_tamNumericKhoảng cáchkmScale
nam_xay_dungNumericNăm xây dựngnămScale
muc_hai_longNumericMức hài lòng1–5; 99=không trả lời nếu đã khai MissingOrdinal
y_dinh_muaNumericÝ định mua1–5; 99=không trả lời nếu đã khai MissingOrdinal

Cú pháp tham khảo

Nên bấm Paste ở hộp thoại quan trọng để lưu dấu vết thao tác. Syntax dưới đây minh họa logic của bài và cần đổi tên biến theo tệp thực tế.

USE ALL. COMPUTE filter_$=(loai_bds=1 AND (khu_vuc=1 OR khu_vuc=2)). FILTER BY filter_$. EXECUTE. * Sau khi xong. FILTER OFF. USE ALL. EXECUTE.

Tình huống thực hành BĐS

Dữ liệu 900 BĐS được lọc căn hộ ở hai khu vực. Sinh viên quên tắt filter, sang bài sau chỉ còn căn hộ trong Output và tưởng dữ liệu bị mất. Bài học là filter là trạng thái của dataset.

Trong tình huống này, sinh viên phải tách ba việc: phát hiện – xác minh – xử lý. Không được nhảy từ phát hiện sang xóa/sửa khi chưa có căn cứ từ nguồn, codebook hoặc quy tắc nghiên cứu.

Ma trận lựa chọn nhanh

Tình huốngCách hiểu/công cụĐiểm phải kiểm
If conditionChọn theo tiêu chíGhi biểu thức
Filter variableCờ QA 0/1Tái sử dụng
Random sampleThiết kế mẫuGhi quy tắc/seed
Case/time rangeTheo phạm viCẩn thận Sort
Delete unselectedMất case activeChỉ bản sao

Bài thực hành

Tạo ba bộ lọc: loại hình+khu vực, cờ QA và thời gian; ghi N trước/sau và tắt filter sau mỗi phân tích.

Sản phẩm phải nộp

  • Syntax ba điều kiện
  • Bảng N trước/sau
  • Output khi filter bật
  • Bằng chứng filter đã tắt
  • Quy tắc đặt tên file

Những lỗi thường gặp

  • Delete trên file duy nhất
  • Lọc để p-value đẹp
  • Sai ngoặc AND/OR
  • Quên filter bật
  • Dùng số dòng thay ID/ngày
  • Không kiểm N

Sổ tay thao tác nhanh

  1. Lưu bản trước thao tác bằng tên version rõ.
  2. Kiểm Type, Values, Missing, Measure của biến dùng.
  3. Viết câu hỏi cần trả lời trước khi mở menu.
  4. Thực hiện và Paste Syntax nếu quy tắc/công thức phức tạp.
  5. Kiểm N trước–sau và 5–10 case cụ thể.
  6. Đối chiếu Output với nguồn; không chỉ nhìn bảng đẹp.
  7. Ghi lỗi/quyết định/lý do vào biên bản QA.
  8. Save As bản mới, không overwrite nguồn duy nhất.

Phản biện chéo tại lớp

Một nhóm thao tác; nhóm còn lại hỏi về dữ liệu đầu vào, đơn vị quan sát, biến được dùng, thuộc tính biến, tác động của thao tác tới hàng/cột/giá trị và tình huống có thể làm kết quả sai. Người thực hiện phải giải thích được cả thao tác và ý nghĩa.

Sau phản biện, ghi ba điểm: điều làm đúng, lỗi/rủi ro phát hiện và biện pháp ngăn lỗi lặp lại.

Tình huống kiểm tra cuối bài

Giảng viên giao tệp 300–600 case có vấn đề liên quan trực tiếp đến Select Cases và Filter: chọn đúng mẫu phân tích mà không xóa dữ liệu. Sinh viên ghi trạng thái ban đầu, quy tắc kiểm, thao tác, Output/Syntax và bảng trước–sau. Điểm dựa cả vào lý do, không chỉ kết quả cuối.

Phiếu tự kiểm

  • Tôi có giữ bản dữ liệu gốc/bản trước thao tác không?
  • Tôi có hiểu mỗi dòng và mỗi biến đại diện cho gì không?
  • Type, Values, Missing, Measure của biến chính có đúng không?
  • Tôi có ghi điều kiện/công thức/ngưỡng thay vì sửa cảm tính không?
  • N trước và sau thao tác có hợp lý không?
  • Tôi có kiểm 5–10 case cụ thể không?
  • Tôi có vô tình xóa/overwrite dữ liệu không?
  • Output có category/missing/đơn vị bất thường không?
  • Syntax/biên bản có đủ để tái hiện không?
  • Tôi có phân biệt mô tả với suy luận không?
  • Tôi có ghi giới hạn của thao tác không?
  • Tệp sau xử lý có version rõ không?

Ghi nhớ trong 30 giây

  • Select Cases không đồng nghĩa xóa
  • Ưu tiên filter có thể khôi phục
  • Logic cần ngoặc rõ
  • Luôn kiểm N và trạng thái filter
  • Không lọc theo kết quả mong muốn

Nguồn tham khảo

Nguồn kỹ thuật chính là IBM SPSS Statistics 31; nguồn phương pháp bổ sung dùng để giải thích cách đọc thống kê/đồ thị. Khi menu trên máy khác bài, đối chiếu đúng phiên bản SPSS đang sử dụng.

  • https://www.ibm.com/docs/SSLVMB_31.0.0/pdf/IBM_SPSS_Statistics_Core_System_User_Guide.pdf
  • https://www.ibm.com/docs/en/spss-statistics/30.0.0?topic=transformations-select-cases
  • https://www.ibm.com/docs/en/spss-statistics/31.0.0?topic=cases-select-range

Bài tiếp theo

Merge Files: nối thêm biến hoặc ghép thêm quan sát từ nhiều bộ dữ liệu.

Bài luyện tập mở rộng

Luyện tập 1: Chọn mẫu khác xóa dữ liệu

Tạo một bản dữ liệu nhỏ có vấn đề liên quan đến Chọn mẫu khác xóa dữ liệu và If condition is satisfied. Trước khi thao tác, viết dự đoán về N hoặc cấu trúc kết quả. Thực hiện đúng công cụ của bài, lưu Output/Syntax và kiểm lại bằng ít nhất 5 case.

Phần giải thích: trình bày 120–180 từ về vì sao filter giữ case trong file nhưng loại khỏi nhiều phân tích; phù hợp thực hành và qa. Đồng thời đối chiếu với nguyên tắc thứ hai: điều kiện có thể dùng biến, phép toán, hàm và logic. Nếu kết quả khác dự đoán, xác định chênh lệch do dữ liệu hay do thao tác.

Luyện tập 2: AND OR và ngoặc

Tạo một bản dữ liệu nhỏ có vấn đề liên quan đến AND OR và ngoặc và Filter variable. Trước khi thao tác, viết dự đoán về N hoặc cấu trúc kết quả. Thực hiện đúng công cụ của bài, lưu Output/Syntax và kiểm lại bằng ít nhất 5 case.

Phần giải thích: trình bày 120–180 từ về vì sao biểu thức dài phải có ngoặc rõ để tránh chọn sai case. Đồng thời đối chiếu với nguyên tắc thứ hai: cờ 0/1 như qa_hople giúp tái sử dụng tiêu chí. Nếu kết quả khác dự đoán, xác định chênh lệch do dữ liệu hay do thao tác.

Luyện tập 3: Random sample

Tạo một bản dữ liệu nhỏ có vấn đề liên quan đến Random sample và Range of cases/time. Trước khi thao tác, viết dự đoán về N hoặc cấu trúc kết quả. Thực hiện đúng công cụ của bài, lưu Output/Syntax và kiểm lại bằng ít nhất 5 case.

Phần giải thích: trình bày 120–180 từ về vì sao dùng khi thiết kế lấy mẫu yêu cầu, không để làm file nhẹ. Đồng thời đối chiếu với nguyên tắc thứ hai: số dòng phụ thuộc thứ tự; ưu tiên biến ngày/id khi có thể. Nếu kết quả khác dự đoán, xác định chênh lệch do dữ liệu hay do thao tác.

Luyện tập 4: Dấu filter trong Data View

Tạo một bản dữ liệu nhỏ có vấn đề liên quan đến Dấu filter trong Data View và Missing trong điều kiện. Trước khi thao tác, viết dự đoán về N hoặc cấu trúc kết quả. Thực hiện đúng công cụ của bài, lưu Output/Syntax và kiểm lại bằng ít nhất 5 case.

Phần giải thích: trình bày 120–180 từ về vì sao case vẫn còn nhưng phân tích bỏ qua; dễ quên trạng thái filter. Đồng thời đối chiếu với nguyên tắc thứ hai: case có điều kiện missing thường không được chọn; cần biết n mất vì lý do nào. Nếu kết quả khác dự đoán, xác định chênh lệch do dữ liệu hay do thao tác.

Luyện tập 5: Kiểm N trước-sau

Tạo một bản dữ liệu nhỏ có vấn đề liên quan đến Kiểm N trước-sau và Trở về All cases. Trước khi thao tác, viết dự đoán về N hoặc cấu trúc kết quả. Thực hiện đúng công cụ của bài, lưu Output/Syntax và kiểm lại bằng ít nhất 5 case.

Phần giải thích: trình bày 120–180 từ về vì sao mọi lọc phải có bảng số case và tiêu chí chọn. Đồng thời đối chiếu với nguyên tắc thứ hai: sau phân tích phải tắt filter và ghi lại trạng thái. Nếu kết quả khác dự đoán, xác định chênh lệch do dữ liệu hay do thao tác.

Luyện tập 6: Chọn mẫu khác xóa dữ liệu

Tạo một bản dữ liệu nhỏ có vấn đề liên quan đến Chọn mẫu khác xóa dữ liệu và If condition is satisfied. Trước khi thao tác, viết dự đoán về N hoặc cấu trúc kết quả. Thực hiện đúng công cụ của bài, lưu Output/Syntax và kiểm lại bằng ít nhất 5 case.

Phần giải thích: trình bày 120–180 từ về vì sao filter giữ case trong file nhưng loại khỏi nhiều phân tích; phù hợp thực hành và qa. Đồng thời đối chiếu với nguyên tắc thứ hai: điều kiện có thể dùng biến, phép toán, hàm và logic. Nếu kết quả khác dự đoán, xác định chênh lệch do dữ liệu hay do thao tác.

Biên bản QA tối thiểu

MụcTrướcQuy tắc/thao tácSauXác nhận
Số caseGhi NTheo đúng mục tiêuGhi N sauHợp lý
Biến chínhType/MeasureKiểm thuộc tínhKhông đổi ngoài ý muốnĐạt/không đạt
Missing/categoryGhi hiện trạngTheo quy tắc bàiGhi sauKhông hợp thức hóa lỗi
Giá trị bất thườngDanh sáchXác minh nguồnGiữ/sửa/gắn cờCó lý do
VersionTên file trướcSave AsTên file sauKhông overwrite
📚 Xem toàn bộ 22 bài trong series SPSS trong phân tích dữ liệu BĐS