chủ đề phân tích và dự đoán dữ liệu trong lĩnh vực tài chính

47 2 0
chủ đề phân tích và dự đoán dữ liệu trong lĩnh vực tài chính

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

TRƯỜNG ĐẠI HỌC KINH TẾ - LUẬTKHOA HỆ THỐNG THÔNG TIN

Giảng viên: Lê Hoành Sử

Hồ Chí Minh, ngày 27 tháng 5 năm 2023

Trang 2

MỤC LỤC

A Data Description; Processing & Exploration Data Analysis4

2 Processing & Exploration Data Analysis 5 3 Technical analysis with Quantmod 9 4 Forecast with one basic technique (ARIMA) 12

2 Processing & Exploration Data Analysis 16

2 Processing & Exploration Data Analysis 23 3 Technical analysis with Quantmod 29 4 Forecast with one basic technique (ARIMA) 30

2 Processing & Exploration Data Analysis 32

C Đánh giá mức độ ảnh hưởng các biến phụ thuộc với Shap38

Trang 4

A.Data Description; Processing & Exploration DataAnalysis

A1 Nguyễn Phúc Thịnh 1 Data Description

Bộ dữ liệu gốc

Phía trên là 10 dòng đầu tiên của bộ dữ liệu Finance Advance.

Bộ dữ liệu gồm 14 cột với 930 bản ghi Trong đó bao gồm dữ liệu của nhiều mã chứng khoán khác nhau Trong bài viết này, ta chỉ chọn ra 1 mã đại diện để phân tích.

Mã may mắn được chọn ở đây sẽ là “TPB”!

Bộ dữ liệu của mã TPB

6 Dòng đầu tiên cảu bộ dữ liệu đã được chọn ra.

Nhưng bộ dữ liệu hiện có quá nhiều cột Ta vẫn sẽ chỉ chọn ra những cột điển hình góp phần quan trọng vào việc phân tích Những cột đó là "date", "time", "open", "high", "low", "close" và "nmVolume"

Nhưng trước khi chọn, ta cần kiểm tra việc trùng lặp giá trị trong cột "date" Vì Giá trị trong cột high/low mang ý nghĩa là giá cao nhất và thấp nhất trong ngày Do đó nếu có xảy ra việc trùng lặp, ta cần thực hiện việc so sánh và chọn lựa lại sau đó.

Trang 5

Sau khi kiểm tra, ta thấy không có bất cứ ngày nào xuất hiện quá 1 lần trên cột Cột "time" sẽ không cần thiết phải lấy ra vì biến has_duplicates = 0.

Cột "date" sẽ được sắp xếp lại theo thứ tự xa dần.

Cùng xem trước 5 dòng đầu tiên sau khi chọn lựa ra các cột cần thiết.

Bộ dữ liệu của mã TPB sau khi lọc ra

2 Processing & Exploration Data Analysis

Cùng nhìn 5 dòng đầu tiên để có cái nhìn khái quát về tập dữ liệu của chúng ta:

Bộ dữ liệu của chúng ta hiện khá sạch Nhưng để chắc chắn hơn, ta sẽ dùng lệnh summary để nhìn lại một lần nữa.

Trang 6

Trước mắt ta thấy bộ dữ liệu bao gồm 6 biến với 930 bản ghi.

Các biến open, high, low, close, nmVolume lần lượt là giá mở cửa, giá trần, giá sàn, giá đóng cửa, khối lượng giao dịch trong ngày của mã TPB.

Biến date hiện đang gặp một lỗi nhỏ về định dạng kiểu dữ liệu Ta cần format chúng lại về kiểu "date".

tpb$date <- as.Date(tpb$date) ```

Kiểm tra lại:

Hiện tại kiểu dữ liệu đã được định dạng lại theo đúng với từng thuộc tính.

Trang 7

Dựa vào những giá trị tại cột date, ta có thể biết rằng bộ dữ liệu được thu thập từ

Biểu đồ trên cho thấy các giá trị ngoại lai xuất hiện khá nhiều, ta có thể hiểu rằng sẽ có người giao dịch với lượng lớn cổ phiếu trong một phiên Nhưng vì đây là dữ liệu

Trang 8

chứng khoán và được ghi nhận liên tục theo từng ngày, do đó chúng có xuất hiện những giá trị ngoại lai (outliers) thì đó là điều đương nhiên Chúng ta sẽ không xóa bỏ chúng để việc phân tích về sau được chính xác nhất.

Đánh giá sự tương quan giữa biến “nmVolume” và “close”

Trên đây là biểu đồ phân phối khối lượng giao dịch dựa trên giá đóng cửa của chúng.

Nhìn sơ lược ta có thể thấy, điểm tập trung nhiều nhất nằm tại góc phần tư phía dưới bên trái của phân phối Và những giá trị Volume lớn bất thường khi giá trị Close dần tăng lên và ngược lại Đây có vẻ là một quy luật tự nhiên khi giao dịch chứng khoán: "Mua tại đầu gối và bán ra tại cổ!"

Ta cùng kiểm chứng bằng hệ số tương quan spearman

Trang 9

0.7237 là một con số khiến chúng ta vội kết luận rằng giữa biến Volume và Close có sự tương quan tăng.

3 Technical analysis with Quantmod3.1 Charting

Biểu đồ trên thể hiện giá đóng cửa và khối lượng giao dịch tương ứng trong quãng thời gian từ ngày 19/4/2018 đến ngày 21/12/2022.

Trang 10

3.2 Thêm các chỉ số kỹ thuậtSMA

Đường Simple Moving Average (SMA): là đường trung bình động đơn giản được tính bằng trung bình cộng các mức giá đóng cửa trong một khoảng thời gian giao dịch nhất định.

Ta đã tính được chỉ số SMA mỗi 20 ngày và xuất ra 5 giá trị cuối cùng của chúng.

Vẽ thêm đường SMA vào đồ thị:

Trang 11

Momentum indicator (MOM) là chỉ báo động lượng thường được dùng trong phân tích kỹ thuật Chỉ báo Momentum đo lường tốc độ thay đổi của giá chứng khoán trong một khoảng thời gian nhất định.

Ta sẽ tính toán động lượng 2 ngày dựa trên giá đóng cửa của TPB.

Trực quan chỉ số MOM lên biểu đồ

Trang 12

4 Forecast with one basic technique (ARIMA)4.1 Kiểm tra tính dừng

Ở phần này, ta sẽ chọn biến "close" để thực hiện dự báo với mô hình ARIMA.

Trước khi triển khai mô hình ARIMA, ta cần kiểm tra dữ liệu chuỗi thời gian có tính dừng hay không.

Đầu tiên, ta sẽ quan sát qua đồ thị phân phối giá đóng cửa theo dòng thời gian sau:

Nhìn vào đồ thị ta thấy, với cột y là những giá trị của biến close được phân phối tương ứng với cột x là chuỗi thời gian Dễ dàng nhìn thấy rằng chúng không phân phối quanh một giá trị nhất định mà chúng biến đổi thất thường Do đó ta chưa thể kết luận rằng dữ liệu của chúng ta có tính dừng.

Ta sẽ kiểm định tính dừng bằng phương pháp ADF test:

Trang 13

Kết quả kiểm định cho ra giá trị p-value = 0.622 (>0.05) Do đó, kết luận được đưa ra là: Dữ liệu hiện không có tính dừng.

Chuyển đổi dữ liệu chuỗi thời gian gốc về dữ liệu chuỗi thời gian có tính dừngbằng phương pháp sai phân:

Hiện tại, dữ liệu mới được lưu dưới tên bến differenced_series.

Sau khi chuyển đổi và thực hiện kiểm định tính dừng bằng kiểm định ADF, giá trị kiểm định p-value cho ra là 0.01 (<0.05) Do đó có thể nói dữ liệu của ta là một chuỗi dừng.

4.2 Lưạ chọn tham số ARIMA (p,d,q)

Để đơn giản hóa, ta sẽ chọn hàm auto.arima() trong R thuộc gói forecast được sử dụng để tự động chọn mô hình ARIMA tốt nhất cho dữ liệu

chuỗi thời gian.

Sau khi chạy xong hàm auto.arima, mô hình tốt nhất được đề xuất với bộ số (p,d,q) là (0,0,0).

Trang 14

4.3 Prediction

4.3.1 Dự báo ngoái tập dữ liệu

10 giá trị tương lai đã được dự đoán với độ chính xác 80% và 95% nhưng chúng đang ở dạng sai phân.

Hiện tác giá vẫn chưa tìm ra cách chuyển đổi về dạng ban đầu :((

4.3.2 Dự đoán trong tập dữ liệu

Trước khi tiến hành dự báo, ta sẽ chia tập dữ liệu thành train và test với tỉ lệ 80/20.

Sau khi chia bộ dữ liều thành 2 tập train và test, ta sẽ tiến hành thiết lập mô hình ARIMA để chuẩn bị cho việc dự báo.

Tiến hành dự báo:

Trang 15

Phía trên là kết quả dự báo.

Để xem xét những kết quả trên được dự báo chính xác hay không, ta cần kiểm định chúng qua những chỉ số như RMSE, MAE, MAPE.

Chỉ số RMSE là độ lệch chuẩn của các phần dư (sai số dự đoán) Trong trường hợp này, giá trị RMSE là 0.02133782

Chỉ số MAE (Mean Absolute Error) là trung bình giá trị tuyệt đối của sai số giữa giá trị thực tế và giá trị dự báo Trong trường hợp này, giá trị MAE là 0.01387308

Chỉ số MAPE (Mean Absolute Percentage Error) là trung bình giá trị tuyệt đối của tỷ lệ phần trăm sai số giữa giá trị thực tế và giá trị dự báo Trong trường hợp này, giá trị MAPE là 28.50554%.

Trang 16

Những giá trị càng nhỏ thì mô hình dự báo càng chính xác Vì vậy, trong trường hợp này, giá trị RMSE, MAE và MAPE đều khá thấp, cho thấy mô hình có khả năng dự báo tốt trên tập kiểm tra.

A2 Nguyễn Thành Luân 1 Data Description

Bộ dữ liệu được lấy tự bộ dữ liệu tài chính FinanceAdvanced.csv (2017 -2021)

Data này đã được thu thập từ nhiều công ty khác nhau và sẽ được phân tích để khám phá các xu hướng và mô hình trong thị trường chứng khoán Tập dữ liệu bao gồm thông tin về giá cổ phiếu, khối lượng giao dịch và các chỉ số tài chính khác trong một khoảng thời gian nhất định Dữ liệu này sẽ giúp chúng ta hiểu rõ hơn về biến động giá cả, tình hình giao dịch và sự biến đổi của thị trường.

Bằng cách áp dụng các phương pháp phân tích thống kê và mô hình hóa dữ liệu, chúng ta sẽ tìm hiểu về các yếu tố ảnh hưởng đến giá cổ phiếu và dự đoán xu hướng tương lai Mô hình hóa dữ liệu chứng khoán sẽ cung cấp thông tin quan trọng để đưa ra quyết định đầu tư thông minh và hiệu quả.

Và cụ thể ở đây là mã cố phiếu LPB

2 Processing & Exploration Data Analysis

+ Read data

Bộ dữ liệu Finance-Advanced

Trang 17

+ Process thành Table

- Trên là bảng dữ liệu gốc bao gồm rất nhiều mã chứng khoán khác nhau Ta sẽ tiến hành chọn ra 1 mã đại diện để phân tích Cụ thể ở đây là LPB.

Mã cổ phiếu LPB

- Lấy ra các features cần thiết cho việc phân tích

- Datatype của dữ liệu:

- Định dạng lại dữ liệu cho các features trên

Trang 18

+ EDA

- Statistics:

- Outlier:

Boxplot of Open/Close

Trang 19

Boxplot of Volume

Biểu đồ Trade Volume cho thấy các giá trị ngoại lai xuất hiện khá nhiều, ta có thể hiểu rằng sẽ có người giao dịch với lượng lớn cổ phiếu trong một phiên.Có thể do tình hình kinh tế lúc đó đang diễn biến mạnh mẽ dẫn đến sức mua và bán cổ phiếu lúc đó tăng vọt VÌ vậy, chúng ta sẽ không xóa bỏ chúng để việc phân tích về sau được chính xác nhất.

- Kiểm tra và loại bỏ giá trị NA

Sau khi kiểm tra, ta có thể thấy dữ liệu không mang bất kì giá trị Na hay giá trị bằng 0 nào, điều này rất tốt để khi dùng để phân tích.

- Visualization

Trang 20

Nhìn sơ lược ta có thể thấy, điểm tập trung nhiều nhất nằm tại góc phần tư phía dưới bên trái của phân phối Và những giá trị Volume lớn bất thường khi giá trị Close dần tăng lên và ngược lại

Biểu đồ giá chứng khoán LPB từ năm 2018 đến cuối năm 2021

Biểu đồ số lượng giao dịch chứng khoán LPB từ năm 2018 đến cuối năm 2021

Trang 21

Phân tích thay đổi giá hàng ngày của cổ phiếu LPB

Để tính số tiền bạn lãi hoặc lỗ mỗi ngày đối với một cổ phiếu, hãy lấy giá đóng cửa trừ đi giá mở cửa Sau đó, nhân kết quả với số cổ phần bạn sở hữu trong công ty

Percentage return

Trang 22

Giá cổ phiếu trung bình mỗi tháng

+Technical analysis with Quantmod

Giá cổ phiếu LPB từ 2017 đến 2021

Trang 23

Sau khi đã thêm các chỉ số kỹ thuật

Trang 24

Biểu đồ nến LPB

+ Arima Model

- Ở phần này, ta sẽ chọn biến "close" để thực hiện dự báo với mô hình ARIMA.

- Chọn chỉ số p d c phù hợp :

Trang 25

- Prediction

+ Dự báo ngoái tập dữ liệu

10 giá trị tương lai đã được dự đoán với độ chính xác 80% và 95% nhưng chúng đang ở dạng sai phân.

+ Dự đoán trong tập dữ liệu

Trước khi tiến hành dự báo, ta sẽ chia tập dữ liệu thành train và test với tỉ lệ 80/20.

Trang 26

- Sau khi chia bộ dữ liều thành 2 tập train và test, ta sẽ tiến hành thiết lập mô hình ARIMA để chuẩn bị cho việc dự báo.

- Tiến hành dự báo:

- Kiểm định chúng qua những chỉ số như RMSE, MAE, MAPE.

Những giá trị càng nhỏ thì mô hình dự báo càng chính xác Vì vậy, trong trường hợp này, giá trị RMSE, MAE và MAPE đều khá thấp, cho thấy mô hình có khả năng dự báo tốt trên tập kiểm tra.

Trang 27

A3 Phạm Công Nguyễn Khôi 1 Data Description

Tổng quan bộ dữ liệu gốc

Đây là tổng quan về 10 dòng đầu của bộ dữ liệu Finance Advance.

Đây là bộ dữ liệu về tài chính, cụ thể là về giá cổ phiếu Trong bài này, tôi chọn một mã cổ phiếu và ở đây tôi chọn mã “AGR” để có thể tiến hành dự báo và phân tích.

Để có thể tiện cho việc xử lý và phân, tôi chỉ ra những cột dữ liệu cần thiết, đó là những cột: "date", "time", "open", "high", "low", "close" và "nmVolume".

Tổng quan bộ dữ liệu cần để phân tích

2 Processing & Exploration Data Analysis

Cùng nhìn lại bộ dữ liệu bằng hàm “summary” để có thể kiểm tra lại đặc tính của tập dữ liệu.

Đầu tiên chúng ta sẽ kiểm tra các giá trị bằng Na hoặc bằng 0 trong bộ dữ liệu.

Trang 28

Sau khi kiểm tra, ta có thể thấy dữ liệu không mang bất kì giá trị Na hay giá trị bằng 0 nào, điều này rất tốt để khi dùng để phân tích.

Từ việc kiểm tra bằng hàm “summary” trước đó ta có thể thấy cột “date” mang định dạng “character” chúng ta cần chuyển về định dạng “date”.

Sau đó chúng ta cần sắp xếp lại thứ tự trong cột “date”.

Và đây là bộ dữ liệu sau khi tiến hành sắp xếp và làm sạch.

Tiếp theo chúng ta sẽ trực quan bộ dữ liệu qua biểu đồ box-plot để xem xét các giá trị của tập dữ liệu.

Trang 31

nhiều, ta có thể nhận định rằng sẽ có những người thực hiện giao dịch lớn trong một phiên Nhưng vì đây là dữ liệu chứng khoán được ghi nhận theo ngày, do đó việc xuất hiện những giá trị ngoại lai là điều dễ hiểu Nên việc loại bỏ các giá trị này là không cần thiết và nên được giữ lại để thuận tiện và tăng tính chính xác cho việc phân tích.

Để có cái nhìn tổng quan về từng biến trong tập dữ liệu, ta sẽ trực quan hóa dữ liệu thành biểu đồ để dễ dàng cho việc nhận định hơn.

Trang 34

3.1 Charting

Trang 35

4 Forecast with one basic technique (ARIMA)

Ở phần này, ta sẽ chọn biến "close" để thực hiện dự báo với mô hình ARIMA.

Trước khi triển khai mô hình ARIMA, ta cần kiểm tra dữ liệu chuỗi thời gian có tính dừng hay không.

Kết quả kiểm định cho ra giá trị p-value = 0.99 (>0.05) Do đó, kết luận được đưa ra là: Dữ liệu hiện không có tính dừng.

Tiếp theo chúng ta chia tập dữ liệu thành 2 phần thành tập train và test với tỉ lệ 80/20 Sau đó chúng ta tiến hành chạy mô hình dự báo bằng ARIMA.

Trang 36

Sau đó kiểm tra đánh giá lại mô hình.

Chỉ số RMSE là độ lệch chuẩn của các phần dư (sai số dự đoán) Trong trường hợp này, giá trị RMSE là 7.788744 %

Chỉ số MAE (Mean Absolute Error) là trung bình giá trị tuyệt đối của sai số giữa giá trị thực tế và giá trị dự báo Trong trường hợp này, giá trị MAE là 6.330752 %

Chỉ số MAPE (Mean Absolute Percentage Error) là trung bình giá trị tuyệt đối của tỷ lệ phần trăm sai số giữa giá trị thực tế và giá trị dự báo Trong trường hợp này, giá trị MAPE là 0.7081347 %

Những giá trị càng nhỏ thì mô hình dự báo càng chính xác Vì vậy, trong trường hợp này, giá trị RMSE, MAE và MAPE đều khá thấp, cho thấy mô hình có khả năng dự báo tốt trên tập kiểm tra.

A4 Lê Thành Tuân

1 Data Description

Bộ dữ liệu gốc

Trang 37

Phía trên là một phần trong bộ dữ liệu Finance Advance, một tập dữ liệu được thu thập từ nhiều công ty khác nhau liên quan đến thị trường chính khoán Tệp dữ liệu này sẽ giúp ta quan sát và tìm hiểu rõ hơn những yếu tố liên quan đến cổ phiếu như biến động, số lượng giao dịch,

Và tôi chọn sẽ là "SHB" để phân tích và để thuận lợi cho quá trình phân tích và xử lý, tôi sẽ tách ra những cột dữ liệu cần thiết, đó là: "date", "time", "open", "high", "low", "close" và "nmVolume".

Những cột dữ liệu quan trọng mà tôi đã lọc ra.

2 Processing & Exploration Data Analysis+ Đọc dữ liệu

+ Chuẩn bị dữ liệu

Trang 38

+ Lọc các cột dữ liệu

+ Định dạng lại dữ liệu của các cột

Trang 39

+ Sau đó ta được tệp dữ liệu:

+ Kiểm tra và loại bỏ giá trị NA:

Trang 40

+ Vẽ scatter plot thể hiện sự tương quan giữa 2 biến

+ sau đó sẽ xuất hiện biểu đồ giá

Trang 42

Sau khi thực hiện đánh giá mô hình qua các chỉ số, ta thu được kết quả sau:

Mô hình 1 (Nguyễn Phúc Thịnh):

RMSE: 0.02133782 MAE: 0.01387308 MAPE: 28.50554 %

Mô hình 2 (Nguyễn Thành Luân):

Mô hình 3 (Phạm Công Nguyễn Khôi):

Trang 43

C.Đánh giá mức độ ảnh hưởng các biến phụ thuộc vớiShap

Shap là một gói thực hiện một phiên bản mở rộng của phương pháp Kernel SHAP để xấp xỉ giá trị Shapley (Lundberg và Lee (2017)), trong đó xem xét sự phụ thuộc giữa các đặc trưng (Aas, Jullum và Løland (2019)) Ước lượng giá trị Shapley là một vấn đề quan trọng khi cố gắng giải thích các mô hình học máy phức tạp Trong các nghiên cứu hiện có về việc giải thích các dự đoán cá nhân, giá trị Shapley được coi là phương pháp giải thích không phụ thuộc vào mô hình duy nhất với nền tảng lý thuyết vững chắc (Lundberg và Lee (2017)) Kernel SHAP là một xấp xỉ tính toán hiệu quả về mặt tính toán cho giá trị Shapley trong không gian đa chiều, nhưng nó giả định các đặc trưng độc lập Aas, Jullum và Løland (2019) mở rộng phương pháp Kernel SHAP để xử lý các đặc trưng phụ thuộc, từ đó đưa ra xấp xỉ chính xác hơn đối với giá trị Shapley thực sự Xem bài báo (Aas, Jullum và Løland (2019)) để biết thêm chi tiết.

Phương thức Kernel SHAP

Giả sử có một mô hình dự đoán f(x) cho giá trị đáp ứng y với các đặc trưng x ∈ RM, được huấn luyện trên một tập dữ liệu huấn luyện, và chúng ta muốn giải thích các dự đoán cho các tập dữ liệu mới Điều này có thể được thực hiện bằng cách sử dụng các ý tưởng từ lý thuyết trò chơi hợp tác, cho phép một dự đoán duy nhất đóng vai trò là trò chơi đang diễn ra và các đặc trưng đóng vai trò là người chơi Đặt N là tập hợp tất cả M người chơi và S ⊆ N là một tập con gồm |S| người chơi, hàm "đóng góp" v(S) mô tả tổng kỳ vọng của tổng số thanh toán mà các thành viên trong S có thể đạt được thông qua sự hợp tác Giá trị Shapley (Shapley (1953)) là một cách để phân phối tổng lợi ích cho các người chơi, giả sử rằng tất cả họ đều hợp tác Số tiền mà người chơi i nhận được là

Đó là trung bình có trọng số trên tất cả các tập con S của người chơi mà không chứa người chơi i Lundberg và Lee (2017) xác định hàm đóng góp cho một tập con S cụ thể của các đặc trưng này xS là v(S) = E[f(x) | xS], kỳ vọng đầu ra của mô hình dự đoán có điều kiện trên giá trị đặc trưng của tập con đó Lundberg và Lee (2017) đặt tên cho loại giá trị Shapley này là giá trị SHAP (SHapley Additive exPlanation) Vì các kỳ vọng có điều kiện có thể được viết dưới dạng

Ngày đăng: 26/04/2024, 20:10

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan