Phân biệt gen vs egen, listwise vs pairwise deletion
3. Phân biệt gen vs egen; listwise vs pairwise delection
Các kỹ thuật thống kê cần xác định rõ đang xử lí trên đối tượng có hay không có missing data, bởi sự tồn tại missing data trong tập dữ liệu có thể làm thay đổi đáng kể các kết quả xử lý và phân tích số liệu. Tôi sẽ minh họa sự thay đổi này trong trường hợp tương quan và tạo biến.
3.1 Phân biệt listwise và pairwise
Trong phân tích hồi quy, và đặc biệt là phân tích sự tương quan giữa các cặp biến chúng ta thường gặp là listwise delection (câu lệnh pwcorr, listwise) và pairwise delection (câu lệnh corr hoặc pwcorr không có tùy chọn listwise).
- Trường hợp listwise delection chỉ tính trên các quan sát không có missing data hay nói cách khác, các quan sát có missing data sẽ bị loại bỏ khỏi tính toán.
- Trường hợp pairwise delection sẽ tính toán trên các cặp giá trị hợp lệ (không missing data). Chỉ có các giá trị missing data sẽ bị loại bỏ chứ không loại bỏ toàn bộ quan sát như listwise delection.
Điều này sẽ được minh họa rõ hơn ở ví dụ bên dưới:
use missing_data.dta, clear
mvdecode _all, mv(-999=.a \-99=.b)
pwcorr x1 x2 x3, obs
Hoặc câu lệnh corr x1 – x3
pwcorr x1 x2 x3, listwise obs
Ta thấy trong trường hợp pairwise delection thì có 3 cặp giá trị phù hợp giữa x1-x1, 2 cặp giá trị hợp lí giữa x1-x2, và 3 cặp giá trị hợp lí giữa x1-x3. Tương tự như vậy có 3 cặp giá trị hợp lí x2-x2 và 3 cặp giá trị hợp lí giữa x2-x3, cũng như 6 cặp giá trị hợp lí x3-x3. Tuy nhiên, do loại bỏ tất cả các quan sát có giá trị missing nên kết quả tương quan listwise delection thực tế chỉ tính cho 2 quan sát (id = 1 và id = 6).
3.2 Phân biệt gen và egen
Cả gen và egen đều có ý nghĩa là tạo một biến mới, tuy nhiên cách sử dụng và ý nghĩa của gen với egen là hoàn toàn khác nhau.
use missing_data.dta, clear
mvdecode _all, mv(-999=.a \-99=.b)
gen sum = x1 + x2 + x3
egen esum = rowtotal(x1 x2 x3)
list
Khi nào sử dụng gen và egen?
- Câu lệnh gen xem các missing là các vô cùng lớn, do vậy, tổng của ít nhất một quan sát với các quan sát còn lại sẽ là missing. Với id = 2 thì sum = .a + . + 1.9 = . hoặc ở id = 5 thì sum = 1.9 + .b + 2 = .
- Câu lệnh egen xem các missing có giá trị bằng 0 hay bỏ qua các giá trị của quan sát có missing trong tính toán. Với id = 2 thì esum = .a + . + 1.9 = 0 + 0 + 1.9 = 1.9 hoặc ở id = 5 thì esum = 1.9 + .b + 2 = 1.9 + 0 + 2 = 3.9
Lưu ý, ở id = 7 thì esum = . + . + . = 0 là phù hợp với ý nghĩa của egen, tuy nhiên, có lẽ không phù hợp với ý nghĩa missing. Trong trường hợp đó, sử dụng tùy chọn missing sau câu lệnh egen để thông báo cho Stata biết nếu một quan sát có missing ở tất cả các biến thì kết quả trả lời sẽ là missing chứ không phải giá trị 0.
egen esum_m = rowtotal(x1 x2 x3) , missing
list
Điều này cũng tương tự với cách tính trung bình (hàm rowmean trong egen)
gen avg = (x1 + x2 + x3)/3
egen eavg = rowmean(x1 – x3)
list