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é