Hướng dẫn viết câu lệnh Stata trong DO file để xử lý các trường hợp bài phức tạp

Thực hiện các câu lệnh Stata phức tạp, ví dụ tính trung bình doanh thu từng ngành, hoặc tổng doanh thu từng ngành, hoặc tính phần dư của các mô hình hồi quy theo từng mã chứng khoán… chưa bao giờ là điều đơn giản, vì điều này liên quan kĩ thuật lập trình.

Hôm nay nhóm MBA Hỗ Trợ Stata giới thiệu đến các bạn ví dụ để tạo và thực thi câu lệnh Stata trong môi trường Stata để thực hiện các phân tích thống kê và xử lý dữ liệu phức tạp

Ví dụ về tình huống cần viết câu lệnh Stata vòng lặp

Ví dụ sau ta có số liệu tài chính của các công ty niêm yết trên thị trường.

Phương trình hồi quy như sau:

ROA= b0 + b1*ROA_t_1+residual

Và đề bài đặt ra là: ta cần tìm giá trị b1 và residual ứng với từng mã chứng khoán, thì ta làm như thế nào. Ở đây một mã có 5 năm, nên mỗi phương trình như vậy chỉ có 5 biến quan sát.

Viết câu lệnh Stata vòng lặp để xử lý các trường hợp bài phức tạp

Sau đây là câu lệnh:

xtset MaCK_num Nam
gen ROA_t_1=l.ROA
xtset, clear
 gen phandu=.
 gen beta_ROA_t_1=.

levelsof MaCK_num, local(level)
foreach i of local level {
    display `i'
    regress ROA ROA_t_1  if MaCK_num==`i'
    predict res, residuals
    replace phandu=res if MaCK_num==`i'
    drop res
    display _b[ ROA_t_1 ]
    replace beta_ROA_t_1=_b[ ROA_t_1 ] if MaCK_num==`i'
    }

Các câu lệnh ở trên đã thực hiện vòng lặp theo từng mã chứng khoán , và thực hiện hồi quy. Sau đó lưu phần dư và hệ số beta vào các cột số liệu, kết quả chạy ra được như sau:

Cột phandu và beta_ROA_t_1 chính là 2 cột kết quả ta cần tính.

Ngoài ra có thể áp dụng thêm cách lệnh khác như:

bysort Nganh Nam : egen Doanhthu_nganh=mean (DoanhThuThuan)  để tính trung bình doanh thu từng ngành theo từng năm

egen Std_CFO=sd (CFO), by (MaCK_num)  để tính độ lệch chuẩn của từng mã chứng khoán

Trên đây là ví dụ một số câu lệnh Stata phức tạp. Khi làm bài bạn có cần viết câu lệnh Stata để xử lý tính toán thì cứ liên hệ nhóm nhé

Comments