1. Mục tiêu bài học
Bài 3 tiếp nối trực tiếp Bài 2. Dữ liệu đầu vào là wbes2023_clean.dta, trong đó tên biến đã được chuẩn hóa và các mã trả lời đặc biệt, phạm vi giá trị, tính nhất quán, skip patterns và ngoại lệ đã được kiểm tra. Từ nền dữ liệu sạch này, Bài 3 chuyển trọng tâm từ làm sạch sang xây dựng các biến có ý nghĩa phân tích và khám phá đặc điểm của chúng.
Mục tiêu của bài là tạo các biến về quy mô và đặc điểm doanh nghiệp, giới, xuất nhập khẩu, đổi mới, tài chính, cơ sở hạ tầng, khí hậu, lao động và kỹ năng; chuyển đổi một số biến tiền tệ và biến log; xây dựng chỉ tiêu tăng trưởng sơ bộ; đồng thời chuẩn bị các biến cần thiết để Bài 4 có thể nghiên cứu đổi mới sáng tạo bằng binary logit hoặc multinomial logit (MNL).
Nguyên tắc xuyên suốt là giữ nguyên các biến gốc, tạo biến phân tích mới với tên rõ ràng, kiểm tra ngay sau khi tạo và chưa diễn giải các mối liên hệ mô tả như quan hệ nhân quả.
2. Chuẩn bị dữ liệu
clear all
set more off
cd “D:\Stata\WBES2023”
use “wbes2023_clean.dta”, clear
Lệnh clear all làm sạch bộ nhớ; set more off giúp Stata chạy liên tục. Lệnh cd xác định thư mục làm việc và use mở dữ liệu sạch được tạo ở Bài 2. Bài 3 không ghi đè wbes2023_clean.dta mà sẽ lưu kết quả thành một tệp mới.
3. Kiểm tra dữ liệu đầu vào
describe, short
count
isid id
Lệnh describe, short cho biết nhanh số biến và cấu trúc dữ liệu; count xác nhận số quan sát; isid id kiểm tra id vẫn xác định duy nhất từng doanh nghiệp/cơ sở. Đây là bước kiểm tra ngắn trước khi tạo biến mới, nhằm bảo đảm dữ liệu đầu vào đúng tệp và cấu trúc không bị thay đổi ngoài dự kiến.
4. Quy mô và đặc điểm doanh nghiệp
4.1. Phân nhóm quy mô doanh nghiệp
generate byte firm_size = .
replace firm_size = 1 if inrange(emp_fulltime, 5, 19)
replace firm_size = 2 if inrange(emp_fulltime, 20, 99)
replace firm_size = 3 if emp_fulltime >= 100 & !missing(emp_fulltime)
label define firm_size_lbl 1 “Nhỏ (5-19)” 2 “Vừa (20-99)” 3 “Lớn (100+)”
label values firm_size firm_size_lbl
firm_size là biến phân loại được xây dựng từ số lao động toàn thời gian hiện tại emp_fulltime. generate byte tạo biến mới tiết kiệm bộ nhớ; các lệnh replace gán doanh nghiệp vào ba nhóm nhỏ, vừa và lớn. Điều kiện !missing(emp_fulltime) ngăn Stata nhầm missing là một giá trị rất lớn.
tab firm_size, missing
tab sample_size firm_size, missing
Lệnh tab firm_size, missing kiểm tra phân phối của biến mới. Bảng chéo với sample_size giúp so sánh quy mô hiện tại với biến quy mô dùng trong thiết kế mẫu. Hai biến không nhất thiết giống nhau vì chúng phục vụ mục đích khác nhau; firm_size là biến phân tích thực hành và không thay thế biến phân tầng mẫu.

Lưu ý: sample_size là biến Sampling Size (a6a) đã được đổi tên ở Bài 1, phản ánh nhóm quy mô doanh nghiệp được sử dụng trong thiết kế mẫu của WBES. Trong Bài 3, chúng ta tạo thêm firm_size từ số lao động toàn thời gian hiện tại (emp_fulltime) để phục vụ phân tích. Vì vậy, hai biến có thể không hoàn toàn trùng nhau; lệnh dưới đây giúp đối chiếu sự khác biệt giữa quy mô theo mẫu khảo sát và quy mô được xây dựng cho phân tích.
4.2. Tuổi doanh nghiệp
generate firm_age = fyend_year – start_year if !missing(fyend_year, start_year)
replace firm_age = . if firm_age < 0
summarize firm_age, detail
Lệnh summarize, detail giúp xem trung vị, percentile và cực trị; histogram cho thấy hình dạng phân phối. Tuổi doanh nghiệp thường được dùng như một biến kiểm soát trong các mô hình về đổi mới, tài chính hoặc hiệu quả hoạt động.

histogram firm_age, frequency ///
title(“Phân phối tuổi doanh nghiệp”) ///
xtitle(“Tuổi doanh nghiệp (năm)”) ///
ytitle(“Tần số”)
Biến firm_age được tính bằng năm kết thúc năm tài chính gần nhất trừ năm bắt đầu hoạt động. Cách dùng fyend_year phù hợp với mốc tham chiếu tài chính của bảng hỏi hơn là mặc định lấy 2023 cho mọi doanh nghiệp. Giá trị âm được chuyển thành missing vì không hợp lý về thời gian.

4.3. Sở hữu nước ngoài và sở hữu nhà nước
generate byte foreign_owned = own_foreign > 0 if !missing(own_foreign)
generate byte state_owned = own_state > 0 if !missing(own_state)
label define yesno_lbl 0 “Không” 1 “Có”
label values foreign_owned yesno_lbl
label values state_owned yesno_lbl
Hai biến nhị phân cho biết doanh nghiệp có tỷ lệ sở hữu nước ngoài hoặc sở hữu nhà nước lớn hơn 0 hay không. Điều kiện if !missing() rất quan trọng: nếu tỷ lệ sở hữu bị thiếu, biến mới cũng phải missing thay vì tự động trở thành 0. Nhãn Có/Không giúp bảng kết quả dễ đọc hơn.
tab foreign_owned, missing
tab state_owned, missing

5. Giới và quản lý doanh nghiệp
generate byte female_owner_d = .
replace female_owner_d = 1 if female_owner == 1
replace female_owner_d = 0 if female_owner == 2
generate byte female_manager_d = .
replace female_manager_d = 1 if female_manager == 1
replace female_manager_d = 0 if female_manager == 2
label values female_owner_d yesno_lbl
label values female_manager_d yesno_lbl
Các biến gốc female_owner và female_manager là câu hỏi phân loại. Bài 3 tạo phiên bản nhị phân 1/0 để thuận tiện cho thống kê và mô hình hóa. Cách recode tường minh 1 thành 1 và 2 thành 0 giúp các trường hợp missing tiếp tục là missing. Bảng chéo giữa biến gốc và biến mới là bước xác nhận quan trọng sau khi recode.
tab female_owner female_owner_d, missing
tab female_manager female_manager_d, missing

6. Hoạt động xuất nhập khẩu
generate byte direct_exporter = direct_exportpct > 0 if !missing(direct_exportpct)
generate byte exporter = (direct_exportpct > 0 | indirect_exportpct > 0) ///
if !missing(direct_exportpct) & !missing(indirect_exportpct)
generate byte foreign_input = input_foreignpct > 0 if !missing(input_foreignpct)
label values direct_exporter yesno_lbl
label values exporter yesno_lbl
label values foreign_input yesno_lbl
Biến direct_exporter nhận giá trị 1 khi tỷ trọng xuất khẩu trực tiếp lớn hơn 0. Biến exporter rộng hơn, nhận giá trị 1 khi doanh nghiệp có xuất khẩu trực tiếp hoặc gián tiếp. Còn biến foreign_input cho biết doanh nghiệp có sử dụng đầu vào có nguồn gốc nước ngoài.
Đối với exporter, do-file chỉ tạo giá trị khi cả direct_exportpct và indirect_exportpct đều có dữ liệu. Cách làm thận trọng này tránh coi một thành phần missing như 0. Khi sử dụng các biến này trong nghiên cứu, cần nhớ rằng chúng phản ánh trạng thái tham gia thị trường quốc tế chứ không đo cường độ xuất khẩu.
tab direct_exporter, missing
tab exporter, missing
tab foreign_input, missing

7. Đổi mới và công nghệ
generate byte product_innov_d = .
replace product_innov_d = 1 if product_innov == 1
replace product_innov_d = 0 if product_innov == 2
generate byte process_innov_d = .
replace process_innov_d = 1 if process_innov == 1
replace process_innov_d = 0 if process_innov == 2
generate byte rd_spend_d = .
replace rd_spend_d = 1 if rd_spend == 1
replace rd_spend_d = 0 if rd_spend == 2 generate byte foreign_tech_d = .
replace foreign_tech_d = 1 if foreign_tech == 1
replace foreign_tech_d = 0 if foreign_tech == 2
generate byte quality_cert_d = .
replace quality_cert_d = 1 if quality_cert == 1
replace quality_cert_d = 0 if quality_cert == 2
generate byte website_d = .
replace website_d = 1 if website == 1
replace website_d = 0 if website == 2
Nhóm này chuẩn hóa các câu hỏi Yes/No thành biến 1/0: đổi mới sản phẩm, đổi mới quy trình, chi R&D, sử dụng công nghệ nước ngoài, chứng nhận chất lượng và có website. Đây là những biến đặc biệt quan trọng cho hướng nghiên cứu đổi mới sáng tạo ở Bài 4.
Sau khi gán nhãn yesno_lbl, các lệnh tab giữa biến gốc và biến mới cần được chạy để xác nhận coding. Không nên chỉ nhìn tên biến và giả định rằng mọi câu hỏi Yes/No đều có cùng mã nếu chưa kiểm tra dữ liệu gốc.
7.1. Phân loại trạng thái đổi mới
generate byte innov_type = .
replace innov_type = 0 if product_innov_d == 0 & process_innov_d == 0
replace innov_type = 1 if product_innov_d == 1 & process_innov_d == 0
replace innov_type = 2 if product_innov_d == 0 & process_innov_d == 1
replace innov_type = 3 if product_innov_d == 1 & process_innov_d == 1
label define innov_type_lbl 0 “Không đổi mới” 1 “Chỉ đổi mới sản phẩm” 2 “Chỉ đổi mới quy trình” 3 “Đổi mới cả hai”
label values innov_type innov_type_lbl
Biến innov_type kết hợp hai chiều đổi mới thành bốn trạng thái loại trừ lẫn nhau. Biến này được chuẩn bị cho multinomial logit (MNL), trong đó doanh nghiệp có thể thuộc một trong nhiều trạng thái đổi mới. Trước khi dùng MNL, cần xem tab innov_type để kiểm tra số quan sát của từng nhóm; nếu một nhóm quá nhỏ, ước lượng có thể kém ổn định.
tab innov_type, missing

7.2. Biến đổi mới tổng hợp
generate byte any_innov = .
replace any_innov = 1 if product_innov_d == 1 | process_innov_d == 1
replace any_innov = 0 if product_innov_d == 0 & process_innov_d == 0
label values any_innov yesno_lbl
any_innov nhận giá trị 1 nếu doanh nghiệp có ít nhất một trong hai loại đổi mới và 0 nếu không có cả hai. Đây là một biến phụ thuộc tự nhiên cho binary logit. Bảng chéo product_innov_d với process_innov_d giúp nhìn trực tiếp bốn tổ hợp tạo nên any_innov và innov_type.
tab any_innov, missing
tab product_innov_d process_innov_d, missing

8. Tiếp cận tài chính
generate byte bank_account_d = .
replace bank_account_d = 1 if bank_account == 1
replace bank_account_d = 0 if bank_account == 2
generate byte overdraft_d = .
replace overdraft_d = 1 if overdraft == 1
replace overdraft_d = 0 if overdraft == 2
generate byte credit_line_d = .
replace credit_line_d = 1 if credit_line == 1
replace credit_line_d = 0 if credit_line == 2
Các biến bank_account_d, overdraft_d và credit_line_d chuẩn hóa các chỉ báo tiếp cận dịch vụ tài chính thành 1/0. Các biến này có thể đóng vai trò biến giải thích trong nghiên cứu đổi mới, nhưng việc lựa chọn cuối cùng phải dựa trên câu hỏi nghiên cứu và cơ sở lý thuyết, không chỉ vì biến có sẵn trong dữ liệu.
generate byte loan_applied = .
replace loan_applied = 1 if inlist(loan_apply, 1, 2, 3)
replace loan_applied = 0 if loan_apply == 4
label values loan_applied yesno_lbl
Biến loan_apply có bốn trạng thái: vay, hạn mức tín dụng, cả hai, hoặc không nộp đơn. inlist() gộp ba trạng thái đầu thành loan_applied = 1 và trạng thái không nộp đơn thành 0. Đây là ví dụ cho thấy xây dựng biến nhị phân cần dựa vào nội dung mã hóa thực tế của câu hỏi.
tab loan_apply loan_applied, missing

9. Cơ sở hạ tầng và khí hậu
generate byte power_outage_d = .
replace power_outage_d = 1 if power_outage == 1
replace power_outage_d = 0 if power_outage == 2
generate byte internet_disrupt_d = .
replace internet_disrupt_d = 1 if internet_disrupt == 1
replace internet_disrupt_d = 0 if internet_disrupt == 2
generate byte climate_damage_d = .
replace climate_damage_d = 1 if climate_damage == 1
replace climate_damage_d = 0 if climate_damage == 2
Ba biến nhị phân phản ánh doanh nghiệp có trải qua mất điện, gián đoạn internet và thiệt hại do khí hậu hay không. Chúng có thể đại diện cho một phần môi trường hoạt động hoặc các cú sốc mà doanh nghiệp đối mặt. Ở Bài 3, mục tiêu chỉ là chuẩn hóa và khám phá; chưa kết luận các yếu tố này làm tăng hay giảm đổi mới.
tab power_outage power_outage_d, missing
tab internet_disrupt internet_disrupt_d, missing
tab climate_damage climate_damage_d, missing

10. Lao động và kỹ năng
generate byte formal_training_d = .
replace formal_training_d = 1 if formal_training == 1
replace formal_training_d = 0 if formal_training == 2
label values formal_training_d yesno_lbl
Biến formal_training_d cho biết doanh nghiệp có chương trình đào tạo chính thức. Biến female_emp_pct tính tỷ lệ lao động nữ trên tổng lao động toàn thời gian và chỉ được tính khi mẫu số lớn hơn 0. Và biến highschool_pct được giữ nguyên vì đã là tỷ lệ trong dữ liệu.
Các biến về đào tạo, kỹ năng và cơ cấu lao động có thể liên quan đến năng lực hấp thụ công nghệ và đổi mới. Tuy nhiên, trong dữ liệu chéo, một mối liên hệ thống kê giữa đào tạo và đổi mới chưa đủ để khẳng định quan hệ nhân quả.
generate female_emp_pct = 100*female_emp/emp_fulltime if emp_fulltime > 0 & !missing(female_emp, emp_fulltime)
summarize emp_fulltime female_emp female_emp_pct highschool_pct, detail

tab formal_training formal_training_d, missing

11. Biến tiền tệ
generate sales_bil = sales/1e9 if !missing(sales)
generate labor_cost_bil = labor_cost/1e9 if !missing(labor_cost)
generate rd_value_bil = rd_value/1e9 if !missing(rd_value)
label variable sales_bil “Doanh thu (tỷ đồng)”
label variable labor_cost_bil “Chi phí lao động (tỷ đồng)”
label variable rd_value_bil “Chi R&D (tỷ đồng)”
Các biến tiền tệ gốc được giữ nguyên; Bài 3 chỉ tạo thêm phiên bản theo tỷ đồng để kết quả mô tả và đồ thị dễ đọc. Chia cho 1e9 chỉ thay đổi đơn vị đo, không thay đổi thông tin kinh tế của biến.
summarize sales_bil labor_cost_bil rd_value_bil, detail

histogram sales_bil, frequency ///
title(“Phân phối doanh thu của doanh nghiệp”) ///
xtitle(“Doanh thu (tỷ đồng)”) ///
ytitle(“Tần số”)

histogram labor_cost_bil, frequency ///
title(“Phân phối chi phí lao động của doanh nghiệp”) ///
xtitle(“Chi phí lao động (tỷ đồng)”) ///
ytitle(“Tần số”)

12. Biến đổi sang dạng log
generate ln_sales = ln(sales) if sales > 0 & !missing(sales)
generate ln_emp = ln(emp_fulltime) if emp_fulltime > 0 & !missing(emp_fulltime)
generate ln_labor_cost = ln(labor_cost) if labor_cost > 0 & !missing(labor_cost)
generate ln_rd_value = ln(rd_value) if rd_value > 0 & !missing(rd_value)
Log tự nhiên thường hữu ích với các biến dương có phân phối lệch phải. Điều kiện > 0 là bắt buộc vì ln(0) và log của số âm không xác định trong cách sử dụng này. Việc log-transform không phải là “làm sạch” dữ liệu mà là tạo một dạng biến mới phục vụ mô tả và mô hình hóa.
summarize ln_sales ln_emp ln_labor_cost ln_rd_value, detail

histogram ln_sales, frequency ///
title(“Phân phối log doanh thu”) ///
xtitle(“ln(Doanh thu)”) ///
ytitle(“Tần số”)

So sánh histogram của sales_bil và ln_sales giúp sinh viên thấy trực quan tác động của phép biến đổi log lên một phân phối lệch phải. Không nên mặc định rằng log luôn tốt hơn; việc sử dụng dạng biến nào phụ thuộc mục tiêu và đặc tả mô hình.
13. Tăng trưởng: khám phá sơ bộ
generate sales_growth_2y = 100*(sales/sales_2y – 1) if sales > 0 & sales_2y > 0 & !missing(sales, sales_2y)
generate emp_growth_3y = 100*(emp_fulltime/emp_fulltime3y – 1) if emp_fulltime > 0 & emp_fulltime3y > 0 & !missing(emp_fulltime, emp_fulltime3y)
Hai biến trên đo thay đổi tương đối giữa các mốc được ghi nhận trong bảng hỏi. Điều kiện cả giá trị hiện tại và giá trị quá khứ đều dương tránh phép chia không hợp lệ và các trường hợp khó diễn giải. Đây mới là chỉ tiêu tăng trưởng mô tả sơ bộ; khi nghiên cứu tăng trưởng chính thức cần kiểm tra kỹ khoảng thời gian tham chiếu, phân phối, ngoại lệ và cách định nghĩa tốc độ tăng trưởng.
summarize sales_growth_2y emp_growth_3y, detail

14. Khám phá các biến cho mô hình đổi mới sáng tạo
tab product_innov_d, missing
tab process_innov_d, missing
tab any_innov, missing
tab innov_type, missing
Các lệnh này kiểm tra các biến phụ thuộc tiềm năng. Các biến product_innov_d, process_innov_d và any_innov có hai trạng thái nên phù hợp về mặt cấu trúc với binary logit. Biến innov_type có bốn trạng thái nên có thể được xem xét cho MNL. Việc “phù hợp về cấu trúc” chưa có nghĩa mô hình cuối cùng đã được quyết định; cần tiếp tục kiểm tra cỡ mẫu, nhóm tham chiếu, missing và đặc tả mô hình.


summarize firm_age ln_emp manager_exp highschool_pct direct_exportpct input_foreignpct female_emp_pct

tab firm_size, missing
tab foreign_owned, missing
tab state_owned, missing
tab exporter, missing
tab foreign_input, missing
tab female_manager_d, missing
tab formal_training_d, missing
tab foreign_tech_d, missing
tab quality_cert_d, missing
tab website_d, missing
tab bank_account_d, missing
tab credit_line_d, missing
tab power_outage_d, missing
tab internet_disrupt_d, missing

Nhóm lệnh này xem phân phối của các biến giải thích tiềm năng trước khi đưa vào mô hình. Với biến liên tục dùng summarize; với biến phân loại dùng tab, missing. Mục đích là phát hiện biến có quá nhiều missing, nhóm quá ít quan sát hoặc phân phối bất thường trước khi ước lượng.
tab firm_size any_innov, row
tab exporter any_innov, row
tab foreign_owned any_innov, row
tab female_manager_d any_innov, row
tab formal_training_d any_innov, row
tab foreign_tech_d any_innov, row
tab quality_cert_d any_innov, row
tab website_d any_innov, row
tab credit_line_d any_innov, row
tab firm_size innov_type, row
tab exporter innov_type, row
tab formal_training_d innov_type, row
Tùy chọn row hiển thị tỷ lệ theo hàng, giúp so sánh tỷ lệ đổi mới giữa các nhóm doanh nghiệp. Ví dụ, tab exporter any_innov, row cho biết trong nhóm không xuất khẩu và nhóm xuất khẩu, tỷ lệ doanh nghiệp có đổi mới là bao nhiêu. Đây là mô tả hai biến, không phải bằng chứng về tác động của xuất khẩu lên đổi mới.


mean ln_sales, over(any_innov)
mean ln_emp, over(any_innov)
mean firm_age, over(any_innov)
mean highschool_pct, over(any_innov)
pwcorr ln_sales ln_emp firm_age manager_exp highschool_pct direct_exportpct input_foreignpct female_emp_pct, obs sig
Lệnh mean, over() so sánh trung bình của các biến liên tục giữa doanh nghiệp có và không đổi mới. pwcorr trình bày tương quan cặp, số quan sát và mức ý nghĩa thống kê. Tương quan giúp nhận diện các biến có quan hệ tuyến tính mạnh với nhau trước khi mô hình hóa, nhưng không phải là kiểm định đầy đủ về đa cộng tuyến và càng không cho phép suy luận nhân quả.

15. Thống kê mô tả tổng hợp
summarize sales_bil emp_fulltime firm_age female_emp_pct ///
direct_exportpct input_foreignpct highschool_pct, sep(0)

tab firm_size
tab exporter
tab foreign_owned
tab female_owner_d
tab female_manager_d
tab product_innov_d
tab process_innov_d
tab any_innov
tab bank_account_d
tab loan_applied
tab formal_training_d
tab climate_damage_d

Phần này tập hợp lại một số biến cốt lõi để tạo bức tranh tổng quát về mẫu sau khi xây dựng biến. Đây cũng là bước hữu ích để kiểm tra lần cuối xem các biến mới có phân phối hợp lý hay không.
tab firm_size exporter, row nofreq
tab firm_size product_innov_d, row nofreq
tab firm_size bank_account_d, row nofreq
tab female_manager_d product_innov_d, row nofreq

Các bảng chéo minh họa cách chuyển từ mô tả từng biến sang khám phá mối liên hệ giữa hai biến. Khi đọc bảng, cần xác định rõ biến nằm ở hàng, biến nằm ở cột và mẫu số của tỷ lệ row.
16. Kiểm tra các biến mới
Trước hết, cần gán nhãn cho các biến mới:
label variable firm_size “Quy mô doanh nghiệp”
label variable firm_age “Tuổi doanh nghiệp (năm)”
label variable foreign_owned “Có sở hữu nước ngoài”
label variable state_owned “Có sở hữu nhà nước”
label variable female_owner_d “Có chủ sở hữu là nữ”
label variable female_manager_d “Có quản lý cấp cao là nữ”
label variable direct_exporter “Có xuất khẩu trực tiếp”
label variable exporter “Có hoạt động xuất khẩu”
label variable foreign_input “Có sử dụng đầu vào nước ngoài”
label variable product_innov_d “Có đổi mới sản phẩm”
label variable process_innov_d “Có đổi mới quy trình”
label variable any_innov “Có đổi mới sáng tạo”
label variable innov_type “Loại hình đổi mới sáng tạo”
label variable rd_spend_d “Có chi cho R&D”
label variable foreign_tech_d “Có sử dụng công nghệ nước ngoài”
label variable quality_cert_d “Có chứng nhận chất lượng”
label variable website_d “Có website”
label variable bank_account_d “Có tài khoản ngân hàng”
label variable overdraft_d “Có thấu chi”
label variable credit_line_d “Có hạn mức tín dụng”
label variable loan_applied “Có nộp đơn vay hoặc xin hạn mức tín dụng”
label variable power_outage_d “Có xảy ra mất điện”
label variable internet_disrupt_d “Có gián đoạn Internet”
label variable climate_damage_d “Có thiệt hại do khí hậu”
label variable formal_training_d “Có đào tạo chính thức cho lao động”
label variable female_emp_pct “Tỷ lệ lao động nữ (%)”
label variable sales_bil “Doanh thu (tỷ đồng)”
label variable labor_cost_bil “Chi phí lao động (tỷ đồng)”
label variable rd_value_bil “Chi R&D (tỷ đồng)”
label variable ln_sales “Log doanh thu”
label variable ln_emp “Log số lao động toàn thời gian”
label variable ln_labor_cost “Log chi phí lao động”
label variable ln_rd_value “Log chi R&D”
label variable sales_growth_2y “Tăng trưởng doanh thu 2 năm (%)”
label variable emp_growth_3y “Tăng trưởng lao động 3 năm (%)”
Xem mô tả các biến mới:
describe firm_size firm_age foreign_owned state_owned female_owner_d female_manager_d direct_exporter exporter foreign_input product_innov_d process_innov_d any_innov innov_type rd_spend_d foreign_tech_d quality_cert_d website_d bank_account_d overdraft_d credit_line_d loan_applied power_outage_d internet_disrupt_d climate_damage_d formal_training_d female_emp_pct sales_bil labor_cost_bil rd_value_bil ln_sales ln_emp ln_labor_cost ln_rd_value sales_growth_2y emp_growth_3y
Lệnh describe xác nhận các biến mới đã được tạo, kiểu lưu trữ, nhãn và tên biến. Đây là cách kiểm tra cấu trúc trước khi lưu dữ liệu phân tích.

*** Gắn nhãn cho các biến phân tích mới
label variable firm_size “Quy mô doanh nghiệp”
label variable firm_age “Tuổi doanh nghiệp (năm)”
label variable foreign_owned “Có sở hữu nước ngoài”
label variable state_owned “Có sở hữu nhà nước”
label variable female_owner_d “Có chủ sở hữu là nữ”
label variable female_manager_d “Có quản lý cấp cao là nữ”
label variable direct_exporter “Có xuất khẩu trực tiếp”
label variable exporter “Có hoạt động xuất khẩu”
label variable foreign_input “Có sử dụng đầu vào nước ngoài”
label variable product_innov_d “Có đổi mới sản phẩm”
label variable process_innov_d “Có đổi mới quy trình”
label variable any_innov “Có đổi mới sáng tạo”
label variable innov_type “Loại hình đổi mới sáng tạo”
label variable rd_spend_d “Có chi cho R&D”
label variable foreign_tech_d “Có sử dụng công nghệ nước ngoài”
label variable quality_cert_d “Có chứng nhận chất lượng”
label variable website_d “Có website”
label variable bank_account_d “Có tài khoản ngân hàng”
label variable overdraft_d “Có thấu chi”
label variable credit_line_d “Có hạn mức tín dụng”
label variable loan_applied “Có nộp đơn vay hoặc xin hạn mức tín dụng”
label variable power_outage_d “Có xảy ra mất điện”
label variable internet_disrupt_d “Có gián đoạn Internet”
label variable climate_damage_d “Có thiệt hại do khí hậu”
label variable formal_training_d “Có đào tạo chính thức cho lao động”
label variable female_emp_pct “Tỷ lệ lao động nữ (%)”
label variable sales_bil “Doanh thu (tỷ đồng)”
label variable labor_cost_bil “Chi phí lao động (tỷ đồng)”
label variable rd_value_bil “Chi R&D (tỷ đồng)”
label variable ln_sales “Log doanh thu”
label variable ln_emp “Log số lao động toàn thời gian”
label variable ln_labor_cost “Log chi phí lao động”
label variable ln_rd_value “Log chi R&D”
label variable sales_growth_2y “Tăng trưởng doanh thu 2 năm (%)”
label variable emp_growth_3y “Tăng trưởng lao động 3 năm (%)”

Lệnh misstable summarize cho biết mức độ missing của một số biến mới. Missing ở đây không nhất thiết là lỗi: biến log chỉ tồn tại với giá trị dương; tỷ lệ lao động nữ cần mẫu số hợp lệ; tăng trưởng cần dữ liệu ở cả hai mốc thời gian; chi R&D có thể chỉ áp dụng cho một nhóm doanh nghiệp. Vì vậy cần hiểu cách biến được xây dựng trước khi quyết định xử lý missing.
17. Lưu dữ liệu phục vụ phân tích
compress
save “wbes2023_analysis.dta”, replace
Lệnh compress tối ưu kiểu lưu trữ mà không thay đổi giá trị dữ liệu. Tệp wbes2023_analysis.dta là đầu ra của Bài 3 và giữ nguyên wbes2023_clean.dta của Bài 2. Từ đây, các bài phân tích tiếp theo có thể sử dụng trực tiếp những biến đã được chuẩn bị.
18. Chuẩn bị cho Bài 4: mô hình đổi mới sáng tạo
Bài 3 đã chuẩn bị hai hướng mô hình chính. Với binary logit, có thể lần lượt xem product_innov_d, process_innov_d hoặc any_innov là biến phụ thuộc. Với MNL, innov_type cho phép phân biệt không đổi mới, chỉ đổi mới sản phẩm, chỉ đổi mới quy trình và đổi mới cả hai. Bài 4 sẽ không đưa tất cả biến có sẵn vào mô hình một cách máy móc mà cần xác định câu hỏi nghiên cứu, cơ sở lý thuyết, nhóm biến kiểm soát, nhóm tham chiếu và mẫu phân tích trước.
Lời kết
Qua Bài 3, dữ liệu WBES Việt Nam 2023 đã được chuyển từ một bộ dữ liệu sạch sang một bộ dữ liệu sẵn sàng hơn cho phân tích. Người học không chỉ thực hành tạo biến mới mà còn phải hiểu cách mỗi biến được hình thành, điều kiện để biến có giá trị, ý nghĩa của missing và cách kiểm tra phân phối trước khi đưa biến vào mô hình. Đặc biệt, việc xây dựng product_innov_d, process_innov_d, any_innov và innov_type tạo cầu nối trực tiếp sang Bài 4, nơi chúng ta sẽ bắt đầu xây dựng các mô hình kinh tế lượng về đổi mới sáng tạo và lựa chọn giữa binary logit và MNL dựa trên cấu trúc dữ liệu thực tế.
