CHƯƠNG 3: KẾT QUẢ ÁP DỤNG CÁC MÔ HÌNH DỰ BÁO KHÓ KHĂN TÀI CHÍNH CHO CÁC CÔNG TY NIÊM YẾT TRÊN THỊ TRƯỜNG CHỨNG KHOÁN VIỆT NAM
3.4.2. Xây dựng mô hình huấn luyện
Từ tập dữ liệu huấn luyện, một mô hình được thiết lập thông qua quá trình
“học” dữ liệu giúp dự báo tình trạng khó khăn tài chính từ những dữ liệu đầu vào
mới. Dưới sự hỗ trợ của phần mềm LIBSVM (A Library for Support Vector Machines) phiên bản 3.21, giải thuật SVM đi tìm một siêu phẳng (hyperplane) phân hoạch tối ưu cho phép chia các điểm này thành hai phần sao cho các điểm cùng một lớp nằm về một phía với siêu phẳng này. Nói cách khác, siêu phẳng này sẽ chia hai lớp, một lớp gồm các công ty khó khăn tài chính và một lớp bao gồm các công ty không gặp khó khăn tài chính.
Lời giải tìm siêu phẳng tối ưu được thực hiện bằng cách sử dụng một hàm nhân Kernel (kernel). Hàm nhân Kernel trong nghiên cứu này được đánh giá ở 4 dạng: Kernel tuyến tính, hàm Kernel bán kính (radial basis function -RBF), hàm Kernel đa thức, và Kernal sigma. Việc tìm một hàm nhân cho phép phân loại hai nhóm công ty được thực hiện thông qua ba bước chính: (1) định dạng dữ liệu phù hợp với mô hình, (2) điều chỉnh dữ liệu theo tỷ lệ (scale), (3) lựa chọn hàm nhân từ kết quả phân tích lưới (Grid search).
Mỗi quan sát ứng trong tập huấn luyện sẽ được dán nhãn là 0 ứng với công ty khó khăn tài chính và 1 đối với công ty không gặp khó khăn tài chính.
Mô hình 4 sử dụng các biến dự báo ban đầu giống như mô hình 1 gồm 22 biến.
Kết quả dự báo nếu sử dụng tất cả 22 biến này được gọi là kết quả dự báo của mô hình 4 gốc được thể hiện trên phụ lục 31. Tuy nhiên sau khi loại trừ các biến vi phạm giả định không có hiện tương đa cộng tuyến thì mô hình 4 năm thứ nhất trước dự báo còn lại 19 biến (bỏ các biến X1 - TSLĐ/Nợ NH, X3 - VLĐ/Tổng TS và X10 - LCTT ròng/Tổng TS), mô hình 4 năm thứ hai trước dự báo còn lại 20 biến ( loại bỏ các biến X2 - TS dễ chuyển đổi ra TM/ Nợ NH vàX5 -TSLĐ/Tổng CP), mô hình 4 năm thứ ba trước dự báo cũng gồm 20 biến (loại bỏ các biến X5-TSLĐ/Tổng CP và X12 - LCTT ròng/Vốn CSH). Tập huấn luyện bao gồm n vector tương ứng với n biến từ X1 đến Xn (n là số biến trong mô hình tại mỗi thời điểm dự báo).
Dữ liệu của mỗi công ty được biểu thị như một vector có n chiều. Hàm huấn luyện được xây dựng sẽ sử dụng các giá trị vector của một công ty để dán nhãn cho công ty đó là 0 hay 1, nói cách khác để dự báo công ty đó khó khăn tài chính hay không khó khăn tài chính.
Trước khi xây dựng hàm huấn luyện, dữ liệu sẽ được điều chỉnh theo tỷ lệ (scale) để tránh sự chênh lệch về giá trị quá mức mà có thể làm cho việc dự báo kém chính xác. Lệnh scale được tiến hành đối với tập huấn luyện năm thứ nhất trước dự báo (case 1) có dạng như sau:
C:\libsvm-3.21\windows svm-scale.exe -l 0 -u 1 -s range case1.train >
case1.train.scale
Lệnh này cũng được thực hiện tương tự với tập huấn luyện năm thứ hai trước dự báo (case 2) và năm thứ ba trước dự báo (case 3).
C:\libsvm-3.21\windows svm-scale.exe -l 0 -u 1 -s range case1.train >
case1.train.scale
C:\libsvm-3.21\windows svm-scale.exe -l 0 -u 1 -s range case1.train >
case1.train.scale
Khi quá trình điều chỉnh dữ liệu theo tỷ lệ kết thúc, tập dữ liệu huấn luyện sẽ không còn sự chênh lệch quá mức giữa các vector. Tập dữ liệu mới sẽ được dùng để lựa chọn hàm nhân phù hợp thông qua phân tích lưới tìm kiếm ở bước tiếp theo.
3.4.2.2. Kết quả phân tích lưới tìm kiếm
Trong quá trình lựa chọn hàm nhân Kernel phù hợp, trước hết phải tìm được tham số lỗi C. Với một giá trị C lớn, hai điểm gần siêu phẳng nhất bị ảnh huởng lớn hơn các điểm dữ liệu khác. Khi C giảm, những điểm chuyển động bên trong lề, và huớng của siêu phẳng được thay đổi, dẫn đến một biên lớn hơn cho dữ liệu. Theo Trần Trung Kiên, Bành Trí Thành, và Nguyễn Hoàng Tú Anh (2012), nếu C quá lớn thì sẽ ưu tiên vào phần độ lỗi huấn luyện, dẫn đến mô hình phức tạp. Còn nếu C quá nhỏ thì lại dẫn đến mô hình quá đơn giản, giảm độ chính xác dự đoán.
Cách phổ biến để tìm C là dùng kỹ thuật phân tích lưới tìm kiếm (Grid search) kết hợp với đánh giá chéo 10 lần (k-fold crossvalidation). Phân tích lưới tìm kiếm là phương pháp thử các tham số lỗi khác nhau và chọn ra bộ cho độ lỗi đánh giá chéo nhỏ nhất, trong đó, là tham số của hàm nhân, thường sử dụng với phương pháp tăng dần theo số mũ.
Như vậy, trong bước công việc này, trước hết, phương pháp phân tích lưới tìm kiếm sẽ thực hiện để lựa chọn được bộ tối ưu nhất bằng việc tối ưu hóa các tham số ứng với giá trị tối thiểu của biên để phân tách các điểm của hai lớp. Phân tích lưới tìm tiếm được áp dụng lần lượt cho từng dạng hàm Kernel (Kernel tuyến tính, hàm Kernel bán kính –RBF, hàm Kernel đa thức, và Kernal sigma) để tìm được bộ tham số cho từng hàm, trước khi lựa chọn dạng hàm huấn luyện tốt nhất. Trong nghiên cứu này, lưới tìm kiếm được sử dụng đối với dạng hàm Kernel bán kính –RBF.
Hình 3.1 đến hình 3.3 dưới đây trình bày kết quả phân tích lưới tìm kiếm cho mô hình tại thời điểm 1, 2, 3 năm trước dự báo. Các đường lưới trong mỗi hình có màu sắc khác nhau gắn với mỗi cặp tham số khác nhau. Bộ tham số được chọn là bộ tham số gắn với đường lưới trong cùng khi tỷ lệ (rate) là cao nhất.
Hình 3.1. Kết quả phân tích lưới cho mô hình SVM 1 năm trước dự báo Nguồn: kết quả phân tích trên LibSVM 3.21
Hình 3.2. Kết quả phân tích lưới cho mô hình SVM 2 năm trước dự báo Nguồn: kết quả phân tích trên LibSVM 3.21
Hình 3.3. Kết quả phân tích lưới cho mô hình SVM 3 năm trước dự báo Nguồn: kết quả phân tích trên LibSVM 3.21 Từ kết quả phân tích lưới trên các hình 3.1 đến 3.3, các bộ tham số cho hàm số của mô hình SVM tại ba thời điểm khác nhau trước dự báo lần lượt được lựa chọn. Sự lựa chọn này được thể hiện trong bảng 3.28.
Bảng 3.28. Kết quả phân tích lưới
C Tỷ lệ tối ưu hóa
1 năm trước dự báo 32 0,5 93,65%
2 năm trước dự báo 512 0,03125 81,74%
3 năm trước dự báo 8 0,03125 67,22%
Nguồn: kết quả phân tích trên LibSVM 3.21 3.4.2.3. Huấn luyện mô hình
Sau khi lựa chọn được hàm Kernel thích hợp, mô hình được huấn luyện bằng câu lệnh đối với dữ liệu năm thứ nhất trước dự báo (case 1) dữ liệu năm thứ hai và thứ ba trước dự báo (case 2 và case 3) như sau:
C:\libsvm-3.21\windows svm-train.exe case1.train.scale C:\libsvm-3.21\windows svm-train.exe case 2.train.scale C:\libsvm-3.21\windows svm-train.exe case 3.train.scale
Trong bước công việc thứ hai của quá trình sử dụng mô hình máy hỗ trợ vector SVM, mô hình huấn luyện tạo ra từ bước thứ nhất sẽ được sử dụng để dự báo cho các dữ liệu nghiên cứu mới. Từ quá trình “học” dữ liệu ở tập huấn luyện, mô hình huấn luyện có khả năng dự báo được quan sát mới đưa vào mô hình.
Khả năng dự báo của các mô hình trên được kiểm tra bởi các dữ liệu trong tập kiểm tra (testing data). Với một vector bất kỳ trong tệp kiểm tra, mô hình sẽ dự đoán công ty ứng với quan sát đó có khó khăn tài chính hay không. Kết quả dự báo sẽ được so sánh với thực tế để đánh giá được sự chính xác của mô hình. Kết quả dự báo được tập hợp trong bảng 3.29. Các lệnh sử dụng để kiểm tra mô hình đối với ba tập dữ liệu như sau:
C:\libsvm-3.21\window svm-predict.exe case1.test.scale case1.train.scale.model case1.scale.out.
C:\libsvm-3.21\window svm-predict.exe case2.test.scale case1.train.scale.model case2.scale.out.
C:\libsvm-3.21\window svm-predict.exe case3.test.scale case1.train.scale.model case3.scale.out.
Bảng 3.29. Kết quả dự báo của mô hình 4
Thời điểm Hàm
Độ chính xác C
1 năm trước dự báo 32 0,5 90,55%
2 năm trước dự báo 512 0,03125 80,15%
3 năm trước dự báo 8 0,03125 65%
Nguồn: kết quả phân tích trên LibSVM 3.21 Bảng 3.29 cho thấy rằng khả năng dự báo chính xác của mô hình thay đổi rõ rệt ở các thời điểm khác nhau. Mô hình dự báo tốt nhất là mô hình ở năm thứ nhất trước dự báo với độ chính xác là 90,55%, vượt trội so với mô hình ở hai năm còn lại. Phụ lục 32 cũng minh họa sự phân loại 20 công ty đầu tiên trong mẫu vào hai nhóm khó khăn tài chính và không khó khăn tài chính từ mô hình 4.
Bên cạnh việc tính toán độ chính xác trong phân loại và dự báo nói chung của các mô hình SVM, cũng có thể thống kê được tỷ lệ mắc sai lầm loại I và loại II của các mô hình này. Với sai lầm loại I là sai lầm mà một công ty gặp khó khăn tài chính bị xếp vào nhóm không gặp khó khăn tài chính còn sai lầm loại II là sai lầm khi một công ty không gặp khó khăn tài chính lại được xếp vào nhóm gặp khó khăn tài chính. Bảng 3.30 thống kê tỷ lệ mắc hai loại sai lầm này của mô hình SVM tại các thời điểm dự báo khác nhau.
Bảng 3.30. Thống kê tỷ lệ mắc sai lầm của mô hình SVM
Mô hình Sai lầm loại I (%) Sai lầm loại II (%)
1 năm trước dự báo 22,4% 0%
2 năm trước dự báo 16,4% 23,7%
3 năm trước dự báo 35,6% 34,4%
Nguồn: kết quả phân tích trên LibSVM 3.21 3.5. So sánh kết quả dự báo của các mô hình
Nhằm mục tiêu lựa chọn được mô hình dự báo khó khăn tài chính phù hợp nhất cho các công ty niêm yết trên thị trường chứng khoán Việt Nam, 4 mô hình dự báo khác nhau đã được xây dựng và kiểm định. Các mô hình đã được xây dựng bao gồm:
mô hình phân tích biệt số sử dụng các nhóm biến dự báo khác nhau (mô hình 1 và mô hình 2), mô hình Logit (mô hình 3) và mô hình máy hỗ trợ vector SVM (mô hình 4).
Như đã trình bày ở các phần trên, các mô hình này lần lượt được phân tích để đánh giá độ tin cậy bằng những tiêu chuẩn nhất định cũng như tính toán sự chính xác trong dự báo tình trạng khó khăn tài chính của các công ty niêm yết trên thị trường chứng khoán Việt Nam. Vì vậy, để tìm được mô hình dự báo khó khăn tài chính phù hợp cho các công ty niêm yết trên thị trường chứng khoán Việt Nam, các mô hình sẽ được so sánh dưới hai góc độ: khả năng dự báo và tỷ lệ mắc sai lầm của mô hình.
3.5.1. So sánh khả năng dự báo của các mô hình
Các mô hình xây dựng trong luận án sử dụng hệ thống các biến dự báo khác nhau nhưng đều có điểm chung là biến phụ thuộc mô tả tình trạng khó khăn tài chính được lựa chọn là khi chứng khoán công ty bị hủy niêm yết bắt buộc. Ngoài ra, các mô hình này đều được áp dụng trên cùng các quan sát thu thập từ các công ty niêm yết trên thị trường chứng khoán Việt Nam trong khoảng thời gian nghiên cứu.
Trong tất cả các mô hình, một hàm số dựa trên tập dữ liệu phân tích (mô hình 1,2,3) hay tập huấn luyện (mô hình SVM) được các phần mềm hỗ trợ xây dựng. Sự chính xác trong dự báo của hàm số đó sẽ được kiểm tra lại nhờ việc áp dụng hàm số đó đối với một tập dữ liệu mới (dữ liệu kiểm tra). Bảng 3.31 dưới đây trình bày kết quả so sánh độ chính xác trong dự báo khó khăn tài chính của tất cả 4 mô hình.
Bảng 3.31. So sánh kết quả dự báo của các mô hình
Thời điểm dự báo
Mô hình phân tích biệt số
Mô hình Logit
Mô hình SVM Mô hình 1
Mô hình 2 Altman
(1968)
Altman (1995)
1 năm trước dự báo 89,5% 82,40% 72,0% 87,20% 90,55%
2 năm trước dự báo 84,1% 70,8% 79,3% 76,20% 80,15%
3 năm trước dự báo* 64,2% 61,10% - 68,1% 65%
*: không có ý nghĩa Nguồn: Tổng hợp từ kết quả phân tích các mô hình
Bảng 3.31 cho thấy, các mô hình đều có khả năng dự báo khó khăn tài chính tương đối tốt (trên 50%). Tuy nhiên, mô hình Altman (1995) trong mô hình biệt số 2 không có độ tin cậy trong năm thứ 3 trước dự báo, mô hình Logit dù có khả năng dự báo tốt nhưng lại không đảm bảo sự phù hợp tổng quát (chỉ số -2LL khá cao) trong cả ba thời điểm dự báo.
Tại thời điểm một năm trước dự báo, các mô hình đều có khả năng dự báo rất khá cao. Mô hình biệt số thứ nhất và mô hình SVM đều có khả năng dự báo chính xác khoảng 90%. Tại thời điểm hai năm trước dự báo, trừ mô hình Altman (1995), độ chính xác của các mô hình đều giảm. Tuy nhiên, mô hình 1 vẫn có khả năng dự báo đúng hơn 84%. Tại thời điểm ba năm trước dự báo, mô hình Logit có khả năng dự báo cao nhất nhưng mô hình này lại không bảo đảm độ tin cậy cần thiết để có thể lựa chọn làm mô hình áp dụng rộng rãi. Trong khi đó, mô hình 1 và 4 cũng có khả năng dự báo xấp xỉ nhau, trên 64%.
So sánh trên đây cho thấy, mô hình biệt số thứ nhất và mô hình thứ 4 (mô hình SVM) đều có khả năng dự báo tốt tương tự nhau. Vì vậy, để có thêm căn cứ lựa chọn mô hình dự báo khó khăn tài chính cho các công ty niêm yết trên thị trường chứng khoán Việt Nam, cần thiết phải tiến hành thêm những so sánh về sai lầm loại I và sai lầm loại II giữa các mô hình trong phần tiếp theo.