Home | KTL cơ bản | Tạo biến giả nhanh trên Stata

Tạo biến giả nhanh trên Stata

Biến giả được sử dụng rất thường xuyên trong các mô hình phân tích. Để tạo một biến giả, trên Stata chúng ta có rất nhiều công cụ hỗ trợ như inlist, inrange, cond hoặc lệnh recode. Đặc biệt trong trường hợp một biến giả là kết hợp của nhiều phép toán logic, ví dụ, tôi muốn tạo biến giả tên là dnb với ý nghĩa là vùng Đông Nam bộ bao gồm các tỉnh từ Bình Phước đến TpHCM. Mỗi tỉnh trong bộ dữ liệu của TCTK được gán cho một mã số từ 1 đến 63. Trong trường hợp này biến dnb sẽ bao gồm các tỉnh có mã số từ 45 – 50.

Trên Stata, tôi có thể sử dụng các lệnh như inlist, inrange, cond và lệnh recode như sau:

Lệnh inlist(z, a, b,…) sẽ tạo biến giả bằng 1 khi biến z nhận các giá trị rời rạc a, b, c…

gen dnb = inlist(tinh,45,46,47,48,49,50)

sẽ tạo ra một biến giả dnb (Đông Nam bộ) nhận giá trị bằng 1 nếu biến tỉnh (tinh) nhận các giá trị từ 45 đến 50 (tương ứng từ Bình Phước đến TpHCM).

Khi biến giả nhận một khoảng giá trị liên tục của biến z thì sử dụng lệnh inrange(z,a,b)

gen dnb = inrange(tinh,45,50)

cũng sẽ tạo ra kết quả tương ứng. Hoặc biến dnb trên cũng được tạo ra bằng lệnh điều kiện cond(a,b,c) như sau:

gen dnb = cond(tinh >=45 & tinh <=50,1,0)

Lệnh cond(a,b,c) sẽ trả về kết quả là b nếu biểu thức so sánh a nhận giá trị TRUE, ngược lại sẽ trả về kết quả là c nếu biểu thức so sánh a là FALSE.

Ngoài ra, tôi cũng có thể sử dụng với lệnh recode:

recode tinh (45/50 = 1) (1/44 = 0) (46/63 = 0), gen(dnb)

Liên quan đến missing khi tạo biến giả thì chúng ta cần thêm điều kiện if chẳng hạn như if !missing(tinh) để tránh nhận được các kết quả không mong muốn.

PS: Những công cụ lệnh trên ngoài công dụng tạo biến giả nêu trên thì còn nhiều tính năng hữu ích khác, các bạn từ từ khám phá nhé.