1. Trang chủ
  2. » Giáo Dục - Đào Tạo

CHỦ ĐỀ PHÂN TÍCH VÀ DỰ ĐOÁN DỮ LIỆU TRONG LĨNH VỰC TÀI CHÍNH

47 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Phân Tích Và Dự Đoán Dữ Liệu Trong Lĩnh Vực Tài Chính
Tác giả Nguyễn Phúc Thịnh, Nguyễn Thành Luân, Phạm Công Nguyễn Khôi, Lê Thành Tuân
Người hướng dẫn Lê Hoành Sử
Trường học Trường Đại Học Kinh Tế - Luật
Chuyên ngành Phân Tích Dữ Liệu Với R
Thể loại Bài Tập Cuối Kì
Năm xuất bản 2023
Thành phố Hồ Chí Minh
Định dạng
Số trang 47
Dung lượng 2,75 MB

Nội dung

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.. Dự báo ngoái tập dữ liệu 10

Trang 1

TRƯỜNG ĐẠI HỌC KINH TẾ - LUẬT

KHOA 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 Analysis 4

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 Shap 38

Trang 4

A Data Description; Processing & Exploration Data Analysis

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ântí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ểnhì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ạisau đó

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ệnhsummary để 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únglại về kiểu "date"

```{r}

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ừ19/4/2018 đến 31/12/2021.

Bên cạnh đó, bộ dữ liệu của chúng ta cũng khá sạch khi không có bất kì giá trị NAsnào

Tiếp theo, ta sẽ trực quan bộ dữ liệu qua biểu đồ box-plot để xem xét các giá trị ngoạilai

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ệnnhữ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ướibê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ầntă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 Quantmod

3.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ãngthờ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ật

SMA

Đường Simple Moving Average (SMA): là đường trung bình động đơn giản được tínhbằ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ântích kỹ thuật Chỉ báo Momentum đo lường tốc độ thay đổi của giá chứng khoán trongmộ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ínhdừ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ốiquanh 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ậnrằ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 ralà: 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ừng bằ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ỗidừ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ìnhARIMA để 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 địnhchú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ợpnà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ợpnà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

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 xuhướ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 VolumeBiểu đồ Trade Volume cho thấy các giá trị ngoại lai xuất hiện khá nhiều, ta có thể hiểurằ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ìnhkinh 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ăngvọ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ácnhấ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 0nà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ướibê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ầntă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ửatrừ đ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ợpnà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 0nà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 địnhdạ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ộtphiên Nhưng vì đây là dữ liệu chứng khoán được ghi nhận theo ngày, do đó việc xuấthiệ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ôngcầ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ệuthà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ínhdừ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 ralà: 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ợpnà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ợpnà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 thuthậ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ới Shap

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ữacá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êncứ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ươngphá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ữngchắc (Lundberg và Lee (2017)) Kernel SHAP là một xấp xỉ tính toán hiệu quả về mặttính toán cho giá trị Shapley trong không gian đa chiều, nhưng nó giả định các đặctrư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 đượcthông qua sự hợp tác Giá trị Shapley (Shapley (1953)) là một cách để phân phối tổnglợ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 inhậ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ứangườ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) đặttê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, 16:19

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w