Phần này chỉ ra cách tạo và mã hóa lại các biến. Trong Stata, bạn có thể tạo các biến mới bằng lệnh generate và bạn có thể sửa đổi các giá trị của một biến hiện có bằng lệnh replace hoặc recode. 3 phần chính sau sẽ được đề cập trong bài viết này:
- Tính toán các biến mới bằng cách sử dụng generate và replace
- Mã hóa phân loại các biến mới bằng cách sử dụng generate và replace
- Mã hóa phân loại các biến bằng cách sử dụng recode
Tính toán các biến mới bằng cách sử dụng generate và replace
Hãy sử dụng file auto cho các ví dụ . Trong phần này, chúng ta sẽ xem cách tính toán các biến với lệnh generate và replace.
sysuse auto, clear
Biến length là chiều dài của xe tính bằng inch. Dưới đây là thống kê tóm tắt về chiều dài của xe.
Giờ muốn đổi chiều dài qua thành đơn vị mét thì tạo biến mới length_met như sau
generate length_met=length*0.0254
Lưu ý để tạo biến mới thì dùng lệnh generate
Còn để cập nhật giá trị cho biến đã có sẵn thì dùng lệnh replace
Ví dụ cập nhật giá trị cho biến được tạo lúc nãy thì làm như sau:
replace length_met=length*0.0254
summarize length length_met
Cú pháp của generate và replace giống hệt nhau, ngoại trừ: – generate hoạt động khi biến chưa tồn tại và sẽ báo lỗi nếu biến đã tồn tại. – replace hoạt động khi biến đã tồn tại và sẽ đưa ra lỗi nếu biến chưa tồn tại.
Giả sử chúng ta muốn tạo một biến có tên là length2 là độ dài bình phương.
generate length2=length^2
hoặc lấy Logarit tự nhiên (còn gọi là logarit Nêpe)
generate loglen = log(length)
Giờ sẽ tính trung bình cộng và độ lệch chuẩn của length, từ đó tính được điểm Z-scores của length.
summarize length length_met
Trung bình cộng là 187.93 và độ lệch chuẩn là 22.27, vậy biến zlength được tính như sau.
generate zlength = (length – 187.93) / 22.27
summarize zlength
Mã hóa phân loại các biến mới bằng cách sử dụng generate và replace
Giả sử rằng muốn chia biến mpg thành ba loại. Hãy xem bảng mpg hiện tại đang như thế nào nhé.
Ta dùng các câu lệnh sau để tạo biến mới và gán giá trị cho nó
generate mpg3 = .
replace mpg3 = 1 if (mpg <= 18)
replace mpg3 = 2 if (mpg >= 19) & (mpg <=23)
replace mpg3 = 3 if (mpg >= 24) & (mpg <.)
tab mpg3
Như vậy quãng đường đi được trên một đơn vị xăng đã được chia ra 3 loại. Từ đó ta có thể phân khúc được xe nào ít tốn xăng hơn theo thể loại xe nhập và xe nội
tab mpg3 foreign
Mã hóa phân loại các biến bằng cách sử dụng recode
Có một cách dễ dàng hơn để mã hóa lại biến mpg thành ba danh mục bằng cách sử dụng lệnh generate và recode. Đầu tiên, chúng ta tạo một bản copy của mpg, gọi nó là mpg3a. Sau đó, chúng ta sử dụng recode để chuyển đổi mpg3a thành ba loại: nhỏ nhất đến 18 thành 1, 19-23 thành 2 và 24 đến lớn nhất thành 3.
generate mpg3a = mpg
recode mpg3a (min/18=1) (19/23=2) (24/max=3)
Giờ ta so sánh biến mpg3 và mpg3a xem có giống nhau không nhé
tab mpg3 mpg3a
Hai biến này xem như là một nhé, tuy dùng 2 cách khác nhau nhưng cùng ra kết quả
Ngoài ra, ta có thể sử dụng lệnh if nếu muốn recode một số đối tượng nào đó theo 1 chuẩn nào đó, ví dụ nhé
generate mpgfd = mpg
recode mpgfd (min/18=0) (19/max=1) if foreign==0
recode mpgfd (min/24=0) (25/max=1) if foreign==1
Ở đây có nghĩa là nếu xe nước ngoài thì ngưỡng chia recode khác, xe trong nước thì ngưỡng chia recode khác
Bạn cứ trao đổi thêm với nhóm ở đây, hoặc comment bên dưới nhé.
Liên hệ nhóm thạc sĩ Hỗ trợ Stata.
– SMS, Zalo, Viber:
– Facebook facebook.com/hotroStata
– Email hotrostata@gmail.com