Phương pháp tối ưu hóa phi tuyến
CẤU TRÚC CHUỖI BÀI HỌC
- Nền tảng lý thuyết – Phương pháp Newton-RaphsonNắm vững thuật toán tối ưu hóa nền tảng, từ công thức toán học đến ví dụ minh họa chi tiết với mô hình Poisson.
- Tối ưu hóa trong Stata – Lệnh ml và Phương pháp lfThành thạo cách sử dụng lệnh
mlđể tự lập trình các mô hình ước lượng phổ biến như Poisson, Negative Binomial và NLS. - Các phương pháp Gradient và Gỡ lỗi Chương trìnhTrang bị kỹ năng đọc hiểu quá trình tối ưu hóa, xử lý lỗi và lựa chọn các kỹ thuật tối ưu hóa thay thế trong Stata.
- Lập trình Nâng cao với Mata và GMMKhám phá sức mạnh của Mata để giải quyết các bài toán phức tạp như ước lượng GMM cho mô hình có biến nội sinh.
- Hướng dẫn thực hành tổng hợpÁp dụng toàn bộ kiến thức đã học để triển khai một mô hình kinh tế lượng phi tuyến từ A đến Z trên bộ dữ liệu thực tế.
- Tổng kết và lựa chọn phương phápHệ thống hóa kiến thức, cung cấp một khung sườn giúp bạn lựa chọn công cụ tối ưu hóa phù hợp cho từng bài toán nghiên cứu.
MỤC TIÊU HỌC TẬP
Sau khi hoàn thành chuỗi bài học này, bạn sẽ có khả năng:
- Giải thích được cơ chế hoạt động của các thuật toán tối ưu hóa lặp phổ biến trong kinh tế lượng.
- Vận dụng thành thạo lệnh
mltrong Stata để lập trình và ước lượng các mô hình phi tuyến. - Lập trình các hàm tối ưu hóa cơ bản bằng ngôn ngữ ma trận Mata.
- Phân tích và diễn giải kết quả từ các mô hình ước lượng tùy chỉnh, bao gồm cả việc xử lý các lỗi thường gặp.
- Tự tin tiếp cận và triển khai các phương pháp ước lượng kinh tế lượng hiện đại không có sẵn trong Stata.
TÀI LIỆU THAM KHẢO
- Cameron, A. C., & Trivedi, P. K. (2005). Microeconometrics: Methods and applications. Cambridge university press.
- Gould, W., Pitblado, J., & Poi, B. (2010). Maximum likelihood estimation with Stata. Stata Press.
- Greene, W. H. (2018). Econometric analysis. Pearson Education.
- Wooldridge, J. M. (2010). Econometric analysis of cross section and panel data. MIT press.
PHỤ LỤC: Dữ liệu mô phỏng cho series
Để đảm bảo tất cả các bạn có thể thực hành theo các ví dụ trong chuỗi bài học, chúng ta sẽ sử dụng một bộ dữ liệu mô phỏng dựa trên “Medical Expenditure Panel Survey”. Dưới đây là đoạn code Stata để tạo và lưu lại bộ dữ liệu này. Vui lòng chạy đoạn code này một lần và lưu file meps_docvis_sim.dta vào thư mục làm việc của bạn.
Stata
* ==================================================
* MỤC ĐÍCH: Tạo dữ liệu mô phỏng cho chuỗi bài học
* Tên file: meps_docvis_sim.dta
* Số quan sát: 4,412
* ==================================================
* Xóa dữ liệu cũ và thiết lập số quan sát
clear
set obs 4412
set seed 12345
* --- Tạo các biến độc lập ---
* Biến giả cho bảo hiểm tư nhân (private)
* Giả sử 70% có bảo hiểm tư nhân
gen private = rbinomial(1, 0.7)
label define private_lbl 0 "Không có" 1 "Có"
label values private private_lbl
* Biến giả cho tình trạng bệnh mãn tính (chronic)
* Giả sử 30% có bệnh mãn tính
gen chronic = rbinomial(1, 0.3)
label define chronic_lbl 0 "Không" 1 "Có"
label values chronic chronic_lbl
* Biến giả cho giới tính (female)
* Giả sử 50% là nữ
gen female = rbinomial(1, 0.5)
label define female_lbl 0 "Nam" 1 "Nữ"
label values female female_lbl
* Biến thu nhập (income)
* Giả sử thu nhập (đơn vị: nghìn USD) tuân theo phân phối log-normal
gen income = rlnorm(3.5, 0.5) * 10
* Biến tuổi (age)
* Giả sử tuổi từ 25 đến 64
gen age = 25 + floor(runiform() * 40)
* --- Tạo biến phụ thuộc: số lần đi khám bác sĩ (docvis) ---
* Tạo thành phần tuyến tính (linear component)
* Các hệ số được chọn để tạo ra dữ liệu hợp lý
scalar beta_cons = -0.23
scalar beta_private = 0.80
scalar beta_chronic = 1.09
scalar beta_female = 0.49
scalar beta_income = 0.0036
mat b = (beta_cons, beta_private, beta_chronic, beta_female, beta_income)
* Tạo giá trị trung bình có điều kiện (lambda) cho mô hình Poisson
gen lambda = exp(beta_cons + beta_private*private + beta_chronic*chronic + beta_female*female + beta_income*income)
* Tạo biến phụ thuộc docvis từ phân phối Poisson
gen docvis = rpoisson(lambda)
* --- Hoàn thiện và lưu dữ liệu ---
* Gán nhãn cho các biến
label variable docvis "Số lần đi khám bác sĩ"
label variable private "Có bảo hiểm tư nhân"
label variable chronic "Có bệnh mãn tính"
label variable female "Giới tính nữ"
label variable income "Thu nhập (nghìn USD/năm)"
label variable age "Tuổi"
* Giữ lại các biến cần thiết
keep docvis private chronic female income age
* Lưu file dữ liệu
save "meps_docvis_sim.dta", replace
* Mô tả dữ liệu để kiểm tra
describe
summarize
📚 Bài tiếp theo: Nền tảng lý thuyết - Phương pháp Newton-Raphson
💡 Lưu ý: Hãy đảm bảo bạn đã chạy code tạo dữ liệu ở trên và sẵn sàng bắt đầu hành trình khám phá các thuật toán tối ưu hóa.