Loại bỏ Outliers bằng Winsorization trên STATA

Trước khi bắt đầu phân tích, việc làm bắt buộc đối với các nhà nghiên cứu là "làm sạch dữ liệu"- trong đó, loại bỏ các giá trị outliers là một trong những bước quan trọng cần thực hiện. Các giá trị này có thể làm kết quả nghiên cứu sai lệch và hoàn toàn không tốt cho nghiên cứu của bạn (các bạn có thể tham khảo tác hại của nó tại các giáo trình thống kê hoặc kinh tế lượng để có cái nhìn tổng quát hơn).


Để loại bỏ các giá trị này, bạn có thể dùng thuật toán Winsorization trên STATA để thực hiện một cách nhanh chóng và gọn gàng.

Hãy bắt đầu với một ví dụ nho nhỏ, chúng ta có một dữ liệu và sau khi vẽ đồ thị dạng hộp (box plot), bạn nhận thấy có vài giá trị "khó ưa" và muốn loại bỏ chúng. 


- Khởi động STATA, nhập dữ liệu. Đầu tiên bạn cần hoàn thành lệnh sau:

ssc install winsor2

(tương tự như download packages và gọi packages trong R)

- Tiếp theo, bạn có thể xem thông tin lệnh winsor2 mà chúng ta sẽ sử dụng bằng cách gõ:

help winsor2

Một cửa sổ nhỏ sẽ được bật lên và bạn có thể xem cấu trúc lệnh...



- Giả sử bạn cần loại bỏ các giá trị outliers cho biến x1 trong file data, bạn có 2 cách tiến hành

Cách 1: Các quan sát có giá trị bé hơn 5 và 95 percentile sẽ bị loại bỏ

winsor2 x1, replace cuts(5 95) trim

Cách 2: Các quan sát có giá trị bé hơn 5 percentile sẽ được thay thế bằng giá trị 5 percentile, Các quan sát có giá trị lớn hơn 95 percentile sẽ được thay thế bằng giá trị tại 95 percentile

winsor2 x1, replace cuts(5 95)

Lưu ý:
          + Bạn có thể tùy biến giá trị trong ngoặc đơn- chẳng hạn 1 và 99 percentile. Đa phần trong các papers, tác giả sử dụng mức 5 và 95
          + Bạn có thể tiến hành trên nhiều biến khác nhau chỉ với 1 lệnh. VD:

winsor2 x1 x2 x3 x4, replace cuts(5 95)

- Sau khi đã hoàn thành quá trình winsorize như trên, bạn có thể trình bày biểu đồ hộp của biến x1 vừa rồi:


Wow, các giá trị khó ưa đã không còn xuất hiện và dữ liệu của bạn đã "sạch sẽ" hơn so với ban đầu.

-----------
Dành cho các bạn lỡ quên box plot:





Comments