Sử dụng lệnh generate replace recode để tạo biến, mã hóa biến trong Stata

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 replace
  • Mã hóa phân loại các biến mới bằng cách sử dụng generate 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 generatereplace.
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 generatereplace 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 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:

phone number

– Facebook  facebook.com/hotroStata

Email  hotrostata@gmail.com

Comments