Histogram, Q-Q Plot và kiểm tra phân phối: nên đọc kết quả thế nào? là bài 20 của chuyên đề SPSS trong phân tích dữ liệu BĐS. Đọc histogram, Q-Q plot và normality tests bằng cách kết hợp đồ thị, cỡ mẫu và mục tiêu phân tích; tránh quy tắc máy móc p>0,05 là chuẩn.
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 3 – Thống kê mô tả và khám phá dữ liệu. Từ đây người học bắt đầu đọc cấu trúc/phân bố của dữ liệu sau khi đã hoàn tất các bước làm sạch cốt lõi ở Chương 2.
1. Không phải mọi biến cần normality
Nominal/ordinal không kiểm như continuous; nhiều mô hình quan tâm residuals hoặc phân bố trong nhóm.
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. Histogram cho hình dạng
Giúp thấy skew, nhiều đỉnh, đuôi và gaps; phụ thuộc cách chia bins.
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. Giá BĐS thường lệch phải
Đuôi phải có thể là cấu trúc thị trường chứ không phải lỗ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.
4. Q-Q đọc độ thẳng tương đối
Dữ liệu gần normal thì điểm gần đường; lệch có hệ thống cho thấy departure.
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. Đuôi lệch và outlier
Giữa bám đường nhưng đuôi lệch cần kiểm extreme cases.
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. Normality plots with tests
Explore cung cấp test cùng đồ thị; p-value không đứng một mì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.
7. Cỡ mẫu ảnh hưởng test
N lớn phát hiện lệch nhỏ; N nhỏ có thể thiếu power.
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. Kiểm theo nhóm
T-test/ANOVA cần nhìn đúng nhóm, không chỉ toàn mẫu.
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. Regression chú ý residuals
Raw Y không bell-shaped chưa đủ để loại mô hì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.
10. Log transform cần lý do
Giữ biến gốc, tạo biến mới và chấp nhận thay đổi cách diễn giả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ến | Kiểu | Ý nghĩa | Mã/đơn vị | Measure |
|---|---|---|---|---|
| ma_bds | String | Mã quan sát/tài sản | — | Nominal |
| khu_vuc | Numeric | Khu vực | 1=Trung tâm; 2=Cận trung tâm; 3=Ngoại vi | Nominal |
| loai_bds | Numeric | Loại BĐS | 1=Căn hộ; 2=Nhà phố; 3=Đất ở | Nominal |
| dien_tich | Numeric | Diện tích | m² | Scale |
| gia_rao | Numeric | Giá rao | triệu đồng | Scale |
| gia_m2 | Numeric | Đơn giá | triệu đồng/m² | Scale |
| khoang_cach_tam | Numeric | Khoảng cách | km | Scale |
| nam_xay_dung | Numeric | Năm xây dựng | năm | Scale |
| muc_hai_long | Numeric | Mức hài lòng | 1–5; 99=không trả lời nếu đã khai Missing | Ordinal |
| y_dinh_mua | Numeric | Ý định mua | 1–5; 99=không trả lời nếu đã khai Missing | Ordinal |
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ế.
EXAMINE VARIABLES=gia_m2 BY khu_vuc /PLOT HISTOGRAM NPPLOT /STATISTICS DESCRIPTIVES /CINTERVAL 95 /MISSING LISTWISE. COMPUTE ln_gia_m2=$SYSMIS. IF (gia_m2>0) ln_gia_m2=LN(gia_m2). EXECUTE.Tình huống thực hành BĐS
2.500 căn hộ có Q-Q lệch ở đuôi trên và test p<0,001. Các case cao là penthouse thật. Không nên tự chuyển mọi phân tích sang phi tham số chỉ vì p nhỏ; cần xét đồ thị, cỡ mẫu và giả định của phương pháp cụ thể.
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ống | Cách hiểu/công cụ | Điểm phải kiểm |
|---|---|---|
| Histogram | Hình dạng | Skew/multimodal/tails |
| Q-Q | So normal lý thuyết | Độ thẳng/đuôi |
| Normality test | Bằng chứng formal | Nhạy cỡ mẫu |
| Theo nhóm | Factor List | Đúng cấp giả định |
| Log | Biến mới | Giảm skew khi có lý do |
Bài thực hành
Kiểm gia_m2 toàn mẫu và theo khu vực bằng histogram, Q-Q và tests; viết kết luận 150–250 từ không dùng pass/fail máy móc.
Sản phẩm phải nộp
- Histogram và Q-Q
- Normality tests
- Kết luận có N/bối cảnh
- Nếu dùng: biến log trước-sau
- Quyết định cho bước tiếp
Những lỗi thường gặp
- Kiểm normality cho nominal
- P>0,05=chắc chắn chuẩn
- P<0,05=phải phi tham số
- Chỉ nhìn histogram
- Chỉ nhìn test
- Không kiểm theo nhóm
Sổ tay thao tác nhanh
- Lưu bản trước thao tác bằng tên version rõ.
- Kiểm Type, Values, Missing, Measure của biến dùng.
- Viết câu hỏi cần trả lời trước khi mở menu.
- Thực hiện và Paste Syntax nếu quy tắc/công thức phức tạp.
- Kiểm N trước–sau và 5–10 case cụ thể.
- Đối chiếu Output với nguồn; không chỉ nhìn bảng đẹp.
- Ghi lỗi/quyết định/lý do vào biên bản QA.
- 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 Histogram, Q-Q Plot và kiểm tra phân phối: nên đọc kết quả thế nào?. 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
- Không phải mọi biến cần normality
- Histogram và Q-Q bổ sung nhau
- P-value phải đọc cùng cỡ mẫu/đồ thị
- Kiểm đúng nhóm/residual phù hợp
- Biến đổi chỉ khi có mục đích
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/en/spss-statistics/31.0.0?topic=features-explore
- https://www.ibm.com/docs/SSLVMB_31.0.0/pdf/IBM_SPSS_Statistics_Base.pdf
- https://www.ibm.com/docs/en/spss-statistics/31.0.0?topic=charts-normal-distribution-methods-used-in-different-procedures
- https://www.itl.nist.gov/div898/handbook/eda/section3/normprpl.htm
- https://itl.nist.gov/div898/handbook/pmd/section4/pmd445.htm
Bài tiếp theo
Boxplot và ngoại lệ: khi nào một mức giá BĐS cần được kiểm tra lại?.
Bài luyện tập mở rộng
Luyện tập 1: Không phải mọi biến cần normality
Tạo một bản dữ liệu nhỏ có vấn đề liên quan đến Không phải mọi biến cần normality và Histogram cho hình dạng. 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 nominal/ordinal không kiểm như continuous; nhiều mô hình quan tâm residuals hoặc phân bố trong nhóm. Đồng thời đối chiếu với nguyên tắc thứ hai: giúp thấy skew, nhiều đỉnh, đuôi và gaps; phụ thuộc cách chia bins. 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: Giá BĐS thường lệch phải
Tạo một bản dữ liệu nhỏ có vấn đề liên quan đến Giá BĐS thường lệch phải và Q-Q đọc độ thẳng tương đối. 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 đuôi phải có thể là cấu trúc thị trường chứ không phải lỗi. Đồng thời đối chiếu với nguyên tắc thứ hai: dữ liệu gần normal thì điểm gần đường; lệch có hệ thống cho thấy departure. 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: Đuôi lệch và outlier
Tạo một bản dữ liệu nhỏ có vấn đề liên quan đến Đuôi lệch và outlier và Normality plots with tests. 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 giữa bám đường nhưng đuôi lệch cần kiểm extreme cases. Đồng thời đối chiếu với nguyên tắc thứ hai: explore cung cấp test cùng đồ thị; p-value không đứng một mình. 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: Cỡ mẫu ảnh hưởng test
Tạo một bản dữ liệu nhỏ có vấn đề liên quan đến Cỡ mẫu ảnh hưởng test và Kiểm theo nhóm. 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 n lớn phát hiện lệch nhỏ; n nhỏ có thể thiếu power. Đồng thời đối chiếu với nguyên tắc thứ hai: t-test/anova cần nhìn đúng nhóm, không chỉ toàn mẫu. 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: Regression chú ý residuals
Tạo một bản dữ liệu nhỏ có vấn đề liên quan đến Regression chú ý residuals và Log transform cần lý do. 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 raw y không bell-shaped chưa đủ để loại mô hình. Đồng thời đối chiếu với nguyên tắc thứ hai: giữ biến gốc, tạo biến mới và chấp nhận thay đổi cách diễn giả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: Không phải mọi biến cần normality
Tạo một bản dữ liệu nhỏ có vấn đề liên quan đến Không phải mọi biến cần normality và Histogram cho hình dạng. 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 nominal/ordinal không kiểm như continuous; nhiều mô hình quan tâm residuals hoặc phân bố trong nhóm. Đồng thời đối chiếu với nguyên tắc thứ hai: giúp thấy skew, nhiều đỉnh, đuôi và gaps; phụ thuộc cách chia bins. 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ục | Trước | Quy tắc/thao tác | Sau | Xác nhận |
|---|---|---|---|---|
| Số case | Ghi N | Theo đúng mục tiêu | Ghi N sau | Hợp lý |
| Biến chính | Type/Measure | Kiểm thuộc tính | Không đổi ngoài ý muốn | Đạt/không đạt |
| Missing/category | Ghi hiện trạng | Theo quy tắc bài | Ghi sau | Không hợp thức hóa lỗi |
| Giá trị bất thường | Danh sách | Xác minh nguồn | Giữ/sửa/gắn cờ | Có lý do |
| Version | Tên file trước | Save As | Tên file sau | Không overwrite |