Thống kê mô tả Python là bước dùng các thư viện như pandas và seaborn để tóm tắt đặc điểm mẫu và các biến nghiên cứu bằng con số và biểu đồ, trước khi chạy bất kỳ kiểm định nào. Kết quả của bước này thường trở thành những bảng đầu tiên của chương kết quả, nên cần chính xác, gọn và khớp với bộ dữ liệu đã làm sạch.
Bài viết hướng dẫn cách chọn thư viện, tóm tắt biến định lượng và định tính, vẽ biểu đồ và trình bày bảng theo chuẩn học thuật. Ví dụ minh họa là một khảo sát giả định về mức gắn kết với công việc của nhân viên văn phòng, gồm năm nhân tố đo bằng thang Likert.
Tóm tắt nhanh: chọn chỉ số theo loại biến, không theo thói quen; biến phân loại cần tần số và tỷ lệ, biến liên tục cần trung bình, độ lệch chuẩn và hình dạng phân phối.
Mọi bảng nên được xuất bằng mã, làm tròn thống nhất và ghi rõ cỡ mẫu sau khi xử lý giá trị thiếu.
Vai trò của thống kê mô tả Python trong chương kết quả
Phần mô tả trả lời hai câu hỏi: mẫu gồm những ai và các biến phân bố ra sao. Hội đồng dựa vào đó để đánh giá mẫu có phản ánh được tổng thể mục tiêu hay không. Đây cũng là lúc bạn phát hiện bất thường còn sót lại, chẳng hạn một nhóm tuổi chỉ có vài người hoặc một nhân tố dồn hẳn về một đầu thang đo.
Nên tách kết quả thành hai nhóm bảng: đặc điểm người trả lời như giới tính, độ tuổi, thâm niên; và các biến trong mô hình, thường là điểm trung bình của từng nhân tố. Cách tách này khớp với bố cục chương bốn của đa số luận văn định lượng.
Chọn thư viện cho từng phần việc
Bạn không cần cài nhiều gói để làm thống kê mô tả Python cho luận văn hay khóa luận. Ba thư viện dưới đây đáp ứng gần như mọi nhu cầu, mỗi thư viện đảm nhận một phần việc riêng.
- pandas: đọc dữ liệu, tính chỉ số tóm tắt, lập bảng tần số, bảng chéo và xuất bảng ra Excel.
- seaborn: vẽ nhanh histogram, boxplot, biểu đồ cột theo nhóm với ít dòng lệnh.
- matplotlib: tinh chỉnh nhãn trục, phông chữ, kích thước hình và lưu file ở độ phân giải in ấn.
Tham số chi tiết của từng hàm tóm tắt có trong tài liệu chính thức của pandas. Nếu notebook chưa có ô thiết lập thư viện riêng, hãy sắp xếp lại theo khung trong bài cấu trúc notebook phân tích Python cho luận văn.
Tóm tắt biến định lượng bằng pandas
Với biến liên tục và điểm nhân tố, hàm describe() trả về số quan sát, trung bình, độ lệch chuẩn, giá trị nhỏ nhất, lớn nhất và các tứ phân vị chỉ trong một lệnh. Hãy truyền vào đúng danh sách cột cần mô tả thay vì gọi trên toàn bộ DataFrame, vì kết quả sẽ lẫn cả mã phiếu và cột thời gian. Dòng count cho biết ngay biến nào còn giá trị thiếu.
Bổ sung độ lệch và độ nhọn
Hàm describe() không tính hình dạng phân phối, nên bạn bổ sung bằng skew() và kurt(). Lưu ý rằng kurt() của pandas trả về độ nhọn vượt chuẩn (excess kurtosis), nghĩa là phân phối chuẩn có giá trị bằng 0 chứ không phải 3. Hãy ghi rõ điều này khi báo cáo.
Ngưỡng tham khảo khi đọc hình dạng phân phối
Một quy ước hay được trích dẫn là của West, Finch và Curran (1995): độ lệch tuyệt đối dưới 2 và độ nhọn vượt chuẩn dưới 7 được xem là chưa lệch chuẩn nghiêm trọng. Một số giáo trình dùng mốc chặt hơn là ±1. Bạn cần đối chiếu yêu cầu của khoa và kết hợp quan sát biểu đồ thay vì chỉ dựa vào con số.
Tóm tắt theo nhóm với groupby
Muốn so sánh mức gắn kết giữa các phòng ban, hãy kết hợp groupby() với agg() để tính số quan sát, trung bình và độ lệch chuẩn của từng nhóm trong cùng một bảng. Kết quả này chỉ mô tả chênh lệch quan sát được, chưa đủ để kết luận khác biệt có ý nghĩa thống kê. Hãy xem cỡ mẫu từng nhóm trước, vì trung bình của nhóm chỉ có năm người rất dễ dao động.
Tóm tắt biến định tính và câu hỏi Likert
Biến phân loại như giới tính, trình độ hay loại hình doanh nghiệp được mô tả bằng tần số và tỷ lệ phần trăm. Hàm value_counts() với tham số normalize cho ra tỷ lệ, còn tham số dropna=False hiển thị cả nhóm thiếu để tổng luôn khớp cỡ mẫu. Hãy sắp các nhóm theo thứ tự logic, ví dụ độ tuổi từ thấp đến cao.
Bảng chéo hai biến phân loại
Hàm crosstab() lập bảng chéo, chẳng hạn giới tính theo phòng ban, và tính được tỷ lệ theo hàng hoặc theo cột. Tỷ lệ theo hàng cho biết mỗi phòng ban có bao nhiêu phần trăm là nữ, còn tỷ lệ theo cột cho biết nhân viên nữ phân bố vào các phòng ban ra sao. Hãy chọn loại tỷ lệ trả lời đúng câu hỏi của bạn.
Trung bình hay trung vị cho câu hỏi Likert?
Một câu hỏi Likert đơn lẻ về bản chất là biến thứ bậc, nên tần số từng mức hoặc trung vị phản ánh dữ liệu sát hơn. Với điểm nhân tố tính từ nhiều câu hỏi, đa số luận văn báo cáo trung bình và độ lệch chuẩn. Dù chọn cách nào, hãy nêu lý do trong chương phương pháp và giữ thống nhất cho mọi nhân tố.
Bảng dưới đây gợi ý chỉ số và biểu đồ theo loại biến, dùng làm điểm xuất phát khi lập các bảng mô tả.
| Loại biến | Ví dụ minh họa | Chỉ số nên báo cáo | Hàm hoặc biểu đồ gợi ý |
|---|---|---|---|
| Định danh | Giới tính, phòng ban | Tần số, tỷ lệ phần trăm | value_counts(), biểu đồ cột |
| Thứ bậc | Trình độ, một câu Likert | Tần số từng mức, trung vị | value_counts(), median() |
| Điểm nhân tố | Trung bình năm câu đo gắn kết | Trung bình, độ lệch chuẩn, độ lệch, độ nhọn | describe(), skew(), kurt(), histogram |
| Liên tục lệch phải | Thu nhập, số năm công tác | Trung vị, khoảng tứ phân vị, nhỏ nhất, lớn nhất | quantile(), boxplot |
| Hai biến phân loại | Giới tính theo phòng ban | Tần số và tỷ lệ theo hàng hoặc cột | crosstab(), biểu đồ cột nhóm |
Trực quan hóa dữ liệu mô tả
Biểu đồ giúp người đọc thấy hình dạng phân phối mà bảng số khó thể hiện hết, nhưng chỉ nên dành cho những điểm đáng chú ý. Với seaborn, mỗi loại biểu đồ chỉ cần một lệnh, sau đó bạn dùng matplotlib để chỉnh nhãn và lưu file bằng savefig(). Cách tùy biến màu, phông và kích thước được hướng dẫn trong tài liệu matplotlib.
- histplot() cho phân phối điểm nhân tố, giúp nhận ra lệch trái khi phần lớn người trả lời chọn mức 4 và 5.
- boxplot() để so sánh một biến liên tục giữa các nhóm và phát hiện giá trị ngoại lai.
- countplot() cho biến phân loại, thay thế biểu đồ tròn khi có nhiều hơn bốn nhóm.
- Biểu đồ cột chồng 100% cho bộ câu Likert, thể hiện tỷ lệ từng mức trả lời của mỗi câu.
Báo cáo kết quả thống kê mô tả Python theo chuẩn học thuật
Khi chuyển kết quả từ notebook sang luận văn, mục tiêu là bảng gọn và khớp tuyệt đối với mã. Hãy làm tròn bằng round() ngay trong mã, thường hai chữ số thập phân cho trung bình và độ lệch chuẩn, một chữ số cho tỷ lệ phần trăm. Sau đó xuất bằng to_excel() rồi định dạng lại theo mẫu của trường.
Một bảng mô tả biến nghiên cứu hoàn chỉnh thường có:
- Tên nhân tố hoặc biến, kèm ký hiệu khớp với bảng thang đo ở chương ba.
- Cỡ mẫu hợp lệ của từng biến nếu còn giá trị thiếu.
- Trung bình và độ lệch chuẩn, hoặc trung vị và khoảng tứ phân vị với biến lệch.
- Ghi chú dưới bảng nêu thang đo và nguồn dữ liệu.
Về hình thức, hướng dẫn trình bày bảng và hình theo APA là chuẩn tham khảo tốt, nhưng mẫu của trường vẫn được ưu tiên. Lời văn đi kèm chỉ nên nêu điểm nổi bật, không đọc lại từng con số.
Kinh nghiệm từ Luận Văn 360: khi rà soát chương kết quả, chúng tôi hay gặp bảng mô tả mẫu có tổng phần trăm chỉ đạt 98% hoặc cỡ mẫu khác với bảng hồi quy mà không kèm giải thích.
Nguyên nhân thường là giá trị thiếu bị bỏ qua một cách lặng lẽ. Hãy luôn hiển thị nhóm thiếu khi đếm tần số và ghi rõ cỡ mẫu dùng cho từng bảng.
Nếu bạn đã có bảng mô tả nhưng chưa chắc cách chọn chỉ số hay cách diễn giải, dịch vụ hỗ trợ phân tích dữ liệu Python của Luận Văn 360 có thể đọc notebook và góp ý cho từng bảng. Bạn tự quyết định việc chỉnh sửa và chịu trách nhiệm về số liệu được báo cáo.
Lỗi thường gặp khi làm thống kê mô tả Python
Tính trung bình cho biến phân loại đã mã hóa số
Nếu giới tính được mã thành 1 và 2, describe() vẫn tính ra trung bình 1,46 cho biến này, một con số không mang ý nghĩa. Hãy chuyển biến phân loại sang kiểu category trước khi tóm tắt, hoặc chỉ định rõ danh sách cột định lượng cần mô tả.
Mô tả trên dữ liệu chưa làm sạch
Chạy thống kê trên file gốc sẽ cho cỡ mẫu và trung bình khác với mô hình chính. Luôn nạp file đã xử lý theo quy trình trong bài làm sạch dữ liệu khảo sát bằng pandas, đồng thời in số dòng ở đầu phần mô tả để đối chiếu.
Kết luận
Thống kê mô tả Python hiệu quả bắt đầu từ việc xác định loại biến, chọn chỉ số tương ứng, bổ sung biểu đồ cho những điểm đáng chú ý và xuất bảng bằng mã. Bộ ba pandas, seaborn và matplotlib đủ cho hầu hết nhu cầu của một luận văn định lượng.
Khi đã nắm rõ phân phối của các biến, bạn có thể chuyển sang bài ước lượng mô hình hồi quy với Python để kiểm định quan hệ giữa chúng. Nếu từng làm bước này trên SPSS, bài bảng mô tả và tần số trong SPSS giúp bạn đối chiếu cách đọc kết quả. Khi cần một lượt góp ý độc lập, hãy tham khảo dịch vụ phân tích dữ liệu Python của Luận Văn 360.
