Cách tạo biến giả (dummy variable) trong Stata: Hướng dẫn chi tiết

Chi tiết - Cách tạo biến giả (dummy variable) trong Stata: Hướng dẫn chi tiết

  • Website chính thức của MOSL hiện đang trong quá trình bảo trì Sản phẩm và thanh toán

  • Dịch vụ nghiên cứu vẫn hoạt động bình thường

Trang chủ/Kiến thức nghiên cứu/Dữ liệu bảng (Panel Data)/Cách tạo biến giả (dummy variable) trong Stata: Hướng dẫn chi tiết

Blog

  • Bởi Tấn Đăng

  • 02 Tháng 06, 2025

  • 17 views

Cách tạo biến giả (dummy variable) trong Stata: Hướng dẫn chi tiết

Hãy đánh giá bài viết nhé!

Bạn đã từng vừa nhìn bảng số liệu vừa băn khoăn: “Làm sao chuyển các thông tin như giới tính, vùng miền… thành dạng mà Stata hiểu để phân tích hồi quy?” Đó chính là lúc bạn cần biết về biến giả (dummy variable). MOSL sẽ cùng bạn tháo gỡ – từ lý thuyết đến thực hành – đảm bảo bạn làm chủ hoàn toàn quá trình này!


1. Biến giả (Dummy Variable) là gì? Ứng dụng & phân biệt các loại biến

Biến giả (dummy variable) là biến được tạo ra từ dữ liệu định tính (categorical), chuyển đổi thành giá trị số 0 hoặc 1. Trong kinh tế lượng, biến giả cực kỳ hữu dụng vì giúp phần mềm phân tích (Stata, SPSS, R…) nhận diện các nhóm như “Nam – Nữ”, “Miền Bắc – Miền Nam”, “Có – Không”.

  • 0 thường đại diện cho nhóm tham chiếu (reference group).
  • 1 ám chỉ “thuộc nhóm quan tâm”.

Ứng dụng của biến giả:

  • Sử dụng trong phân tích hồi quy, kiểm định nhóm, mô hình dự báo.
  • Giúp xử lý, phân tích dữ liệu phi số (qualitative data) một cách logic.

Phân biệt biến giả & biến mã hóa thường

  • Biến mã hóa thường: Có thể chuyển thành nhiều số (ví dụ: Giới tính – Nam=1, Nữ=2), nhưng Stata/R coi là biến số, ảnh hưởng kết quả phân tích.
  • Biến giả: Chỉ nhận 2 giá trị 0/1, tương thích hoàn toàn với phân tích hồi quy.

Ví dụ thực tế:

Họ tên Giới tính (gốc) gender_dummy
Trần A Nam 1
Nguyễn B Nữ 0
Lê C Nam 1

Các loại biến giả thường gặp:

  • Cho biến 2 nhóm: Nam/Nữ, Có/Không.
  • Cho biến nhiều nhóm: vùng miền, ngành học, nhóm tuổi (cần nhiều biến dummy tương ứng).

➡️ Tiếp theo, chúng ta sẽ phân nhóm, đặt tên và hướng dẫn tạo biến giả cho từng loại biến với dữ liệu thực tế.


2. Các loại biến giả: Phân nhóm, phân loại & nguyên tắc đặt tên

Có hai loại biến giả chủ yếu mà bạn sẽ gặp khi làm việc trên Stata:

  • Biến giả cho 2 nhóm (binary): Dùng khi biến gốc chỉ có hai giá trị (ví dụ: Nam/Nữ).
  • Biến giả cho nhiều nhóm (multi-categories): Phù hợp với biến có từ 3 nhóm trở lên (ví dụ: vùng miền – Bắc, Trung, Nam).

Xác định nhóm tham chiếu & đặt tên biến

  • Luôn chọn một nhóm làm tham chiếu – thường là nhóm thông dụng hoặc mong muốn so sánh.
  • Quy tắc đặt tên: ngắn gọn, dễ hiểu, đi kèm tên nhóm (vd: gendermale, regionnorth).
  • Khi biến có k nhóm, tạo k-1 biến giả tương ứng.

Bảng ví dụ: Biến “vùng miền”

Vùng miền region_north region_central
Bắc 1 0
Trung 0 1
Nam 0 0

(Nam là nhóm tham chiếu)

Mẹo đặt tên trong Stata

  • Không dùng dấu cách, ký tự đặc biệt lạ.
  • Prefix tên nhóm rõ ràng, ví dụ: jobtype_fulltime.

➡️ Sang phần tiếp theo, bạn sẽ thực hành các lệnh cụ thể để tạo biến giả trên Stata.


3. Hướng dẫn chi tiết cách tạo biến giả trong Stata kèm lệnh thực tế

3.1. Tạo biến giả thủ công bằng lệnh gen

Với Stata, bạn có thể chủ động tạo biến giả chỉ với một dòng lệnh ngắn gọn:

  • Lệnh cơ bản:
    gen ten_bien = (dieu_kien)
  • Lọc giá trị thiếu:
    gen gender_dummy = (gender == "Nam") if gender != ""

Ví dụ:
Có biến “city” gồm các giá trị “Hà Nội” và “TP.HCM”, bạn muốn tạo biến city_hn (1 nếu Hà Nội, 0 nếu khác):

gen city_hn = (city == "Hà Nội") if city != ""
Kiểm tra với: tab city_hn

Bảng trước/sau khi tạo biến:

city city_hn
Hà Nội 1
HCM 0

Lưu ý kiểm tra:
Sau khi tạo biến, luôn kiểm tra với tab, summarize để tránh lỗi.

➡️ Khi biến phân nhóm nhiều giá trị, chuyển sang phương pháp tự động dưới đây.


3.2. Tạo biến giả tự động bằng lệnh tabulate, generate()

Đối với biến có nhiều nhóm như vùng miền, ngành nghề, bạn nên dùng lệnh tự động:

  • Cú pháp tổng quát:
    tabulate bien, generate(bien_gia_)

Ví dụ:
tab region, generate(region_)
Stata sẽ tạo ra các biến như region1, region2,… tương ứng với các nhóm trong biến “region”.

Bảng chuyển đổi minh họa:

region region_1 region_2
Bắc 1 0
Trung 0 1
Nam 0 0

(Nam là nhóm tham chiếu mặc định khi so sánh)

Lưu ý:
Tạo tên biến không chứa ký tự lạ để tránh lỗi.

➡️ Đối với trường hợp phức tạp hơn hoặc cần linh hoạt, xem tiếp các lệnh nâng cao.


3.3. Lệnh nâng cao & các mẹo tạo biến giả khác

Khi gặp biến phân loại dạng phức tạp hoặc dữ liệu chưa chuẩn hóa, bạn có thể dùng:

  • encode: Chuyển biến text sang biến số theo mã hóa, phù hợp khi cần số hóa nhưng chưa phải dummy.
  • recode: Đổi lại giá trị của biến theo ý muốn.
  • xi: Tạo tự động biến giả cho biến nhiều nhóm ngay trong lệnh hồi quy.
  • Dùng macro để tự động hóa trong do-file.

Bảng so sánh nhanh:

Lệnh Khi nào dùng Ưu điểm Lưu ý
gen Biến 2 nhóm Chủ động, rõ ràng Dễ nhầm logic
tab …, gen() Biến nhiều nhóm Nhanh, tự động Tên biến dễ rối
encode Biến text thành số Tiện mã hóa Không đúng dạng dummy
recode Đổi giá trị Linh hoạt Cần kiểm lại
xi Tự động hóa hồi quy Tối ưu mô hình Ít dùng riêng lẻ

Cảnh báo:

  • Tránh ghi đè biến cũ, luôn kiểm tra sau khi mã hóa hoặc recode.

➡️ Sau khi tạo biến giả, cần kiểm tra và chuẩn hóa cho phân tích tiếp theo.


4. Lưu ý thực tế khi tạo, kiểm tra & bảo toàn biến giả trong Stata

  • Khi tạo biến giả, loại bỏ hoặc xử lý dữ liệu thiếu (missing value) để không phát sinh lỗi.
  • Bảo toàn định dạng dữ liệu: Kiểm chứng bằng các lệnh như tab, summarize, list.
  • Đổi tên biến giả rõ ràng, tránh nhầm lẫn với biến gốc.
  • Nếu tập dữ liệu lớn, quản lý nhóm nhiều biến giả bằng cách ghi chú/coding nhất quán.

Checklist thực tiễn xây dựng và kiểm tra biến giả:

  • Luôn kiểm tra missing value trước khi tạo biến.
  • Kiểm tra lại kết quả tạo biến (so với biến gốc).
  • Rà soát nhóm tham chiếu chính xác.
  • Đặt tên biến nhất quán, không trùng lặp.
  • Lưu lại file dữ liệu gốc trước khi sửa/chuyển đổi biến.
  • Kiểm tra kỹ trước khi đưa vào mô hình phân tích.

➡️ Phần kế tiếp sẽ tổng hợp nhanh các lệnh hay ho nhất trong thực hành Stata!


5. Tổng hợp 30+ câu lệnh Stata tạo biến giả phổ biến nhất (Checklist thực hành)

Mục đích Cú pháp mẫu Lưu ý
Tạo biến giả cho giới tính gen male = (gender == “Nam”) Nhớ kiểm tra dấu tiếng Việt
Tạo biến giả cho vùng miền gen north = (region == “Bắc”) Nếu region có 3 giá trị, tạo k-1 biến
Tạo biến cho nhu cầu đào tạo gen train_yes = (training == 1) Gán giá trị nhị phân
Loại trừ missing khi tạo biến gen dummy_x = (x == 1) if x != . Cần sạch dữ liệu trước
Tạo biến giả với tab tabulate region, generate(region_) Cho biến nhiều nhóm
Tạo biến giả từ biến số gen age25 = (age >= 25) Nhóm lại tuổi thành nhóm
Kết hợp 2 điều kiện gen group1 = (gender == “Nam” & region == “Bắc”) Tạo dummy cho tổ hợp nhóm
Đổi tên biến giả rename oldname newname Sau khi tạo xong
Tổng hợp biến giả egen total_dummy = rowtotal(dummy1 dummy2 dummy3) Thống kê tổng số thuộc nhóm
Encode biến text sang số encode job, gen(job_num) Lưu ý: chưa phải dummy
Recode biến số recode income (0/200=0) (201/max=1), gen(income_new) Cắt nhóm giá trị số
Kiểm tra biến giả tab dummy_var Kiểm bảng tần suất
Xóa biến giả drop dummy_var Khi không còn dùng tới
Gán nhãn biến label variable dummy1 “Nữ” Gắn mô tả rõ ràng
Lưu biến mới ra file save newfile.dta, replace Chủ động lưu thành file mới
Dùng xi cho hồi quy tự động xi: regress income i.region Tạo dummy ngay trong model
Tổng hợp nhóm ngành nghề gen major_econ = (major == “Kinh tế”) Tất cả biến qualitative

Tải script mẫu: Tải file lệnh Stata mẫu tạo biến giả

Tham khảo thêm hướng dẫn Stata cơ bản tại Hướng dẫn sử dụng Stata phần 1 hoặc Lệnh if trong Stata.


6. Câu hỏi thường gặp (FAQ) về tạo biến giả trong Stata

  • Nên giữ hay xóa biến gốc sau khi tạo biến giả?
    Nên giữ biến gốc để tiện đối chứng và kiểm tra, chỉ xóa khi dữ liệu lớn và chắc chắn không sử dụng lại.
  • Chọn nhóm tham chiếu thế nào?
    Thường là nhóm phổ biến hoặc nhóm không quan tâm so sánh, tuân thủ nguyên tắc trong phân tích kinh tế lượng.
  • Bao nhiêu biến giả phù hợp khi biến nhiều nhóm?
    Nếu biến có k nhóm, chỉ tạo k-1 biến giả để tránh đa cộng tuyến giả.
  • Xử lý dữ liệu thiếu khi tạo biến giả ra sao?
    Loại bỏ dòng thiếu hoặc sử dụng lệnh điều kiện trong gen/recode.
  • Lưu biến giả đã tạo ra file mới bằng cách nào?
    Dùng lệnh save file_moi.dta, replace.

Bạn có thể tìm thêm thông tin tại Stata Help MOSL hoặc các group cộng đồng bên dưới.


7. Tài nguyên mở rộng: Video, bài viết, group hỗ trợ Stata


8. So sánh nhanh: Tạo biến giả ở Stata và SPSS/R

Tạo biến giả trên Stata trực quan qua lệnh, thích hợp xử lý nhiều biến/category lớn và dễ kiểm soát tên nhóm. SPSS ưu thế ở giao diện kéo-thả, phù hợp người mới. R yêu cầu code (dùng hàm model.matrix hoặc dummy_cols).

Phần mềm Cú pháp Ưu điểm Nhược điểm
Stata gen, tab…, gen Linh hoạt, tường minh Cần nhớ cú pháp
SPSS Transform/Recode Dễ thao tác GUI Khó mở rộng khi nhiều biến
R model.matrix… Tự động hóa dễ Cần biết code

Chọn Stata nếu muốn làm nhiều biến giả hoặc thường xuyên chạy mô hình với dữ liệu phức tạp (nhóm ngành, vùng, vị trí…).


Kết luận

Phân tích dữ liệu hiệu quả bắt đầu từ những bước nhỏ như tạo biến giả. MOSL đồng hành cùng bạn, giúp bạn tự tin xử lý và làm chủ bất kỳ dataset nào – dù là luận văn năm cuối hay báo cáo công ty. Đừng để những thao tác tưởng chừng “lặt vặt” này gây trở ngại nữa! Ib ngay cho MOSL để nhận thông tin tư vấn bằng cách liên hệ Hotline/Zalo: 0707339700 hoặc truy cập liên hệ tại đây.

Tham khảo thêm các chủ đề liên quan như Xuất kết quả Stata ra Word, Cách nhập dữ liệu vào StataCách xử lý dữ liệu trong Stata để nâng cao kỹ năng phân tích.

Đừng ngần ngại kết nối cùng cộng đồng MOSL trên Facebook để cập nhật kiến thức mới và nhận sự hỗ trợ nhanh chóng từ đội ngũ mentor dày dạn kinh nghiệm.

Tấn Đăng

Chào bạn, tôi là Đăng hiện là 1 trong những Founder của Mosl.vn. Tôi hiện nay đã có hơn 5 năm kinh nghiệm trong quá trình thực hiện các nghiên cứu khoa học và xử lý đa dạng các phần mềm phân tích dữ liệu. Với kiến thức có được tôi hy vọng sẽ cung cấp đến bạn các thông tin bổ ích và giúp bạn hoàn thành bài nghiên cứu một cách tốt nhất. Tôi xin chúc các bạn học tập và làm việc hiệu quả!

Không có từ khóa

Để lại cảm nghĩ của bạn ở đây

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *