library(webshot2)
## Warning: package 'webshot2' was built under R version 4.3.1
library(tidyquant)
## Warning: package 'tidyquant' was built under R version 4.3.1
## Loading required package: lubridate
## Warning: package 'lubridate' was built under R version 4.3.1
##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
## Loading required package: PerformanceAnalytics
## Warning: package 'PerformanceAnalytics' was built under R version 4.3.1
## Loading required package: xts
## Warning: package 'xts' was built under R version 4.3.1
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.3.1
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## Attaching package: 'PerformanceAnalytics'
## The following object is masked from 'package:graphics':
##
## legend
## Loading required package: quantmod
## Warning: package 'quantmod' was built under R version 4.3.1
## Loading required package: TTR
## Warning: package 'TTR' was built under R version 4.3.1
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(quantmod)
library(zoo)
Hiện nay, có đến hơn 70 công ty chứng khoán đang hoạt động trên thị trường Việt Nam, trong đó FPTS là một trong top mười công ty chứng khoán hoạt động tốt nhất, tuy nhiên công ty cổ phần chứng khoán FPT chỉ đang đứng ở vị trí thứ 7 dù là một trong những công ty có chất lượng tư vấn và sản phẩm dịch vụ tốt nhất trong lĩnh vực. Lý do khiến cho FPTS được đánh giá đứng sau so với các công ty chứng khoán khác trong khu vực, một phần là lịch sử chưa lâu đời và danh tiếng chưa bằng so với các công ty chứng khoán khác, bên cạnh đó thì FPTS vẫn đang chú trọng đến vấn đề dịch vụ hỗ trợ chăm sóc cho khách hàng hơn khiến cho doanh thu và lợi nhuận vẫn chưa thể vươn lên. Giá cổ phiếu FTS đã trải qua nhiều biến động, được ghi nhận ở mức giá cao nhất là 74.600 đồng vào ngày 25/11/2021, từ tháng 5/2021 giá FTS liên tục tăng cho đến tháng 11/2021 tuy nhiên chỉ duy trì đến cuối tháng 4/2022. Từ đầu tháng 5/2022 giá có xu hướng giảm liên tục tính đến ngày 14/10/2022 giá còn 30.000 đồng. Và hiện tại mức giá đóng cửa cổ phiếu FTS là 29.100 tính đến ngày 16/6/2023.
Thị trường chứng khoán (TTCK) Việt Nam ra đời với sự hình thành của Trung tâm Giao dịch Chứng khoán (TTGDCK) TP Hồ Chí Minh vào ngày 20/7/2000 và sau đó là TTGDCK Hà Nội vào ngày 8/3/2005. Phiên giao dịch đầu tiên của thị trường chứng khoán Việt Nam ra đời vào ngày 28/07/2000, khá trễ so với các nước trong khu vực với hai mã chứng khoán SAM và REE. Cơ chế hoạt động thời điểm bấy giờ là hoàn toàn thủ công, các nhà đầu tư phải trực tiếp đến sàn xem diễn biến thị trường, các hoạt động đặt lệnh, sửa lệnh, hủy lệnh… Tất cả phải thông qua nhân viên môi giới đặt lệnh và ghi phiếu lệnh. Thị trường chứng khoán Việt Nam phát triển với không ít thăng trầm, số lượng các công ty chứng khoán cũng ngày một nhiều lên theo sự phát triển của thị trường, sự cạnh tranh giữa các công ty trở nên gay gắt hơn đòi hỏi mỗi công ty phải liên tục đổi mới sản phẩm dịch vụ của mình.
Ngày nay, nhu cầu của con người về chứng khoán ngày càng nhiều hơn, số lượng doanh nghiệp và nhà đầu tư tham gia thị trường chứng khoán ngày một tăng lên. Đồng thời với sự phát triển vượt bậc về khoa học kĩ thuật, sản phẩm dịch vụ trực tuyến càng gần hơn với nhà đầu tư, nó trở nên hữu dụng, được các nhà đầu tư rất quan tâm và hầu hết các công ty chứng khoán đều có những sản phẩm dịch vụ trực tuyến kèm theo. Công ty cổ phần chứng khoán FPT cũng không ngoại lệ mà còn là công ty liên kết với Tập đoàn công nghệ FPT – tập đoàn được xem là lớn nhất trong lĩnh vực công nghệ hiện nay, sở hữu rất nhiều sản phẩm dịch vụ môi giới trực tuyến có chất lượng cao, yếu tố nhân sự có kiến thức chuyên môn tốt, khả năng tư vấn hiệu quả. Tuy nhiên, riêng chỉ con người thôi là chưa đủ, công ty nên tập trung nâng cao và phát triển điểm mạnh nhất của mình là công nghệ để có thể vươn mình lên trở thành một trong những công ty có vị thế cao hơn trong lĩnh vực của mình.
Nhưng thật khó khăn cho nhà đầu tư khi đưa ra các quyết định của mình như nên lựa chọn cổ phiếu nào? Hay mua và bán ở mức giá nào?… Vì họ luôn trong tâm thế muốn đầu tư để sinh lời, tuy nhiên với mức sinh lời càng cao thì mức độ rủi ro lại càng tăng. Và đó là lí do khiến việc dự báo giá của cổ phiếu luôn được đặt lên hàng đầu bên cạnh phân tích cơ sở và phân tích kỹ thuật về cổ phiếu. Có lẽ vì thế, tôi đã quyết định áp dụng những kiến thức được học trong chuyên ngành Tài chính Định lượng để thực hiện đề tài “Mô phỏng giá cổ phiếu FTS”. Việc nghiên cứu này sẽ giúp các nhà đầu tư trong mảng cổ phiếu tài chính sẽ có những đánh giá, nhận định, hiểu biết rõ ràng hơn và đưa ra các quyết định đúng đắn hơn khi tham gia vào cổ phiếu FTS.
Bên cạnh đó, đôi khi chúng ta chọn đề tài dựa trên sự quan tâm và niềm đam mê của mỗi cá nhân. Điều này giúp cho việc thực hiện đề tài trở nên thú vị và đầy hứng thú. Việc nghiên cứu về một chủ đề mà bạn yêu thích sẽ giúp bạn có thêm động lực để hoàn thành công việc hơn. Với tình hình thị trường trước bối cảnh đại dịch COVID-19, hầu hết các nền kinh tế đều bị ảnh hưởng nặng nề. Tuy nhiên, thị trường chứng khoán vẫn tiếp tục phát triển và đạt được những bước tiến đáng kể. Việc nghiên cứu về chứng khoán có thể giúp tôi hiểu rõ hơn về tình hình thị trường và cơ hội đầu tư. Ngoài ra, việc theo dõi sát sao các biến động của thị trường nói chung và giá cổ phiếu FTS nói riêng cũng giúp tôi có được cái nhìn tổng quan hơn về kinh tế toàn cầu. Chứng khoán là một trong những công cụ quan trọng để thu hút vốn đầu tư và phát triển nền kinh tế kinh tế. Vì vậy việc nghiên cứu về chứng khoán có thể giúp tôi hiểu rõ hơn về vai trò của nó trong nền kinh tế và cách thức hoạt động của thị trường chứng khoán. Ngoài ra, việc phân tích các chỉ số tài chính của các công ty niêm yết cũng giúp tôi có được cái nhìn sâu sắc hơn về hoạt động kinh doanh của các doanh nghiệp.
Nhằm tìm hiểu về đề tài “ Mô phỏng giá cổ phiếu công ty cổ phần chứng khoán FPT” từ đó, rút ra những bài học về sự tác động cụ thể là chỉ số VNI, BJI, giá dầu, giá vàng, tỷ giá và lãi suất qua đêm cũng như xét tính hiệu quả của mô hình đồng thời hiểu rõ hơn về hoạt động, sản phẩm của công ty cổ phần chứng khoán FPT.
Tôi đã thu thập số liệu dựa trên dữ liệu lịch sử của FTS trên investing trong thời gian từ ngày 4/8/2017 đến 4/8/2023 để làm biến phụ thuộc. Cùng 6 biến độc lập khác gồm: Chỉ số VN-Index, chỉ số DJI, lãi suất, giá vàng, giá dầu Brent, tỷ giá hối đoái.
Thu thập thông tin, thống kê và tổng hợp số liệu: Tổng hợp, xây dựng mô hình gồm mô hình hồi quy đa tuyến tính và mô hình Monte Carlo, phân tích, đánh giá.
Chương 1: Tổng quan về công ty cổ phần chứng khoán FPT.
Chương 2: TỔNG QUAN VỀ CƠ SỞ LÍ THUYẾT
Chương 3: PHƯƠNG PHÁP VÀ KẾT QUẢ NGHIÊN CỨU
Chương 4: Kết luận và đánh giá mô hình sau khi thực nghiệm.
Công ty cổ phần chứng khoán FPT – thành viên của tập đoàn FPT - được cấp phép thành lập và hoạt động theo Giấy phép của Ủy ban Chứng khoán Nhà nước cấp ngày 13/07/2007, không lâu sau đỉnh điểm của thị trường chứng khoán Việt Nam, sau đó là sự lao dốc của thị trường và chạm đáy vào tháng 3/2009. Tuy hình thành muộn hơn các doanh nghiệp cùng ngành nhưng với chiến lược phát triển bền vững cùng tác phong chuyên nghiệp công ty FPTS đã đứng vững và vượt qua nhiều công ty khác trên thị trường.
Tính đến thời điểm điểm hiện tại công ty đã trải qua 16 năm xây dựng và phát triển, FPTS đã liên tục gặt hái được rất nhiều thành công, đạt được sự tin tưởng của khách hàng, khẳng định vị trí là công ty chứng khoán hàng đầu tại Việt Nam.
FPTS đã đạt được nhiều thành tích đáng kể trong hoạt động kinh doanh của mình. Điển hình như:
• Trở thành Công ty chứng khoán tiêu biểu 2019 - 2020 được HNX và VSD bình chọn.
• Luôn lọt vào Top 10 Công ty chứng khoán có tổng khối lượng hoạt động giao dịch cao nhất tại HOSE và HNX.
• Giải thưởng “Công ty chứng khoán khiến nhà đầu tư hài lòng nhất” năm 2020 được Hiệp hội Kinh doanh Chứng khoán Việt Nam phối hợp Tập đoàn Dữ liệu Quốc tế IDG bình chọn.
• Trở thành Công ty chứng khoán tiêu biểu 2018 - 2019 được HOSE, HNX và VSD bình chọn.
• Trở thành Công ty Chứng khoán tiêu biểu giai đoạn 2017 - 2018 được HNX và HOSE bình chọn.
• Công ty Chứng khoán tiêu biểu năm 2017 được HNX bình chọn.
• Được UBCK Nhà nước tặng giấy chứng nhận vì “Đã có nhiều cống hiến đối với quá trình hoạt động của UBCKNN thời kỳ 1996 - 2016”.
• Trở thành Công ty Chứng khoán thành viên xuất sắc nhiệm kỳ 2015 - 2016 được HNX vinh danh.
• Đại diện HOSE trân trọng gởi Lời tri ân để biểu dương và ghi nhận sự nỗ lực của Công ty qua từng quãng thời gian hình thành và tăng trưởng của Sở.
• Bằng khen của Bộ trưởng Bộ Tài chính do đã có nhiều công lao góp phần vào sự tăng trưởng chung của HOSE nhiệm kỳ 2010 - 2015.
• Đón nhận giấy khen của UBCK Nhà nước do đã có nỗ lực vượt bậc trong công tác nâng cao năng lực quản lý và bảo đảm thực hiện những yêu cầu về công khai tài chính và minh bạch hoá khi gia nhập thị trường chứng khoán.
• Trở thành Công ty Niêm yết xuất sắc năm 2013 được HNX trao tặng.
• Cùng với nhiều phần thưởng, giấy khen cao quý của các cơ quan, đơn vị và cá nhân khác.
Phương châm hoạt động của FPTS là luôn nỗ lực hết mình để mang đến cho khách hàng những sản phẩm và dịch vụ chất lượng cao nhất. Để đạt được mục tiêu này, công ty không ngừng xây dựng và phát triển các đội ngũ cán bộ chuyên nghiệp, đồng thời tận dụng mọi thế mạnh của công nghệ để cung cấp các giải pháp tài chính toàn diện và hiệu quả cho khách hàng.
Tầm nhìn của FPTS là trở thành một trong những định chế tài chính hàng đầu trong khu vực, với sự phát triển bền vững và uy tín cao trong lĩnh vực chứng khoán và tài chính. Công ty luôn hướng đến việc cung cấp các giải pháp tài chính toàn diện và hiệu quả cho khách hàng, đồng thời không ngừng nâng cao chất lượng dịch vụ và sản phẩm để đáp ứng nhu cầu ngày càng cao của thị trường.
Để đạt được mục tiêu này, FPTS không ngừng đầu tư vào việc nghiên cứu và phát triển các sản phẩm và dịch vụ mới, đồng thời tập trung vào việc nâng cao chất lượng dịch vụ khách hàng và xây dựng mối quan hệ bền vững với khách hàng. Công ty cũng luôn chú trọng đến việc tuân thủ các quy định pháp luật và đạo đức kinh doanh, để đảm bảo hoạt động kinh doanh minh bạch và trách nhiệm.
Hướng dẫn, tư vấn khách hàng đặt lệnh mua-bán chứng khoán tại quầy, qua hệ thống giao dịch online trên điện thoại. Nhận lệnh, kiểm tra lệnh và nhập lệnh giao dịch mua bán chứng khoán của khách hàng vào hệ thống của HSX và HNX.
Phát triển khách hàng mới trong và ngoài nước, duy trì chăm sóc tốt với khách hàng hiện tại, quản lý danh mục đầu tư cho khách hàng. Tư vấn, phân tích và cung cấp cho khách hàng những thông tin cần thiết để đầu tư hiệu quả nhất. Thường xuyên cập nhật các quy định, chính sách, thông tin kinh tế, tài chính, chứng khoán và các nhu cầu của khách hàng.
Công ty thực hiện các giao dịch mua, bán chứng khoán cho chính công ty, được thực hiện thông qua cơ chế giao dịch trên SGDCK, giao dịch thoả thuận và OTC… Lượng vốn hoạt động phân bổ cho hoạt động tự doanh tại FPTS chỉ dưới 20% vốn chủ sở hữu đảm bảo không ảnh hưởng đến hoạt động toàn công ty.
Công ty hạn chế thực hiện hoạt động tự doanh chứng khoán với mục đích tránh mâu thuẩn xung đột lợi ích với khách hàng. Công ty chủ yếu phát triển nghiệp vụ mua chứng khoán lô lẻ trên thị trường.
Tư vấn khách hàng về thủ tục mở tài khoản, cách thức giao dịch, đầu tư chứng khoán niêm yết tại Sở giao dịch Chứng khoán Hà Nội, Sở giao dịch TP.HCM, đầu tư chứng khoán OTC…
Hướng dẫn khách hàng nạp tiền, rút tiền, chuyển tiền… Cung cấp các thông tin về cổ tức, thực hiện quyền, các báo cáo phân tích, đưa ra các nhận định và khuyến nghị đầu tư cho khách hàng.
Thường xuyên mở các lớp đào tạo chứng khoán về phân tích cơ bản, phân tích kỹ thuật cho nhà đầu tư.
Thực hiện lưu ký chứng khoán của khách hàng và bảo quản chứng khoán cho khách hàng tại trung tâm lưu ký chứng khoán, tách biệt tài sản cho từng khách hàng. Thực hiện thanh toán bù trừ với trung tâm lưu ký khi khách hàng thực hiện mua bán chứng khoán.
Giúp khách hàng thực hiện các quyền đối với chứng khoán như: quyền bỏ phiếu; quyền nhận lãi, vốn gốc trái phiếu; quyền nhận cổ phiếu thưởng, cổ tức bằng cổ phiếu, cổ tức bằng tiền; quyền mua cổ phiếu phát hành thêm; quyền chuyển đổi trái phiếu chuyển đổi…
Thực hiện phân tích đánh giá khả năng phát hành, đăng ký phát hành, thăm dò thị trường, tổ chức chào báo chứng khoán cho nhà phát hành. Thực hiện các cam kết với tổ chức phát hành về việc nhận mua một phần hay toàn bộ chứng khoán của tổ chức phát hành để bán lại hoặc mua số chứng khoán còn lại chưa được phân phối hết của tổ chức phát hành hoặc hỗ trợ tổ chức phát hành phân phối chứng khoán ra công chúng.
Mô phỏng ngẫu nhiên là một phương pháp dùng để mô tả hoặc dự đoán các hiện tượng có tính ngẫu nhiên, bằng cách sử dụng các số giả ngẫu nhiên để tạo ra các lần chạy khác nhau của mô hình. Một trong những kỹ thuật mô phỏng ngẫu nhiên phổ biến là phương pháp Monte Carlo, được dùng để giải quyết các bài toán phức tạp như tính toán xác suất, tích phân, giải phương trình, tối ưu hóa,… Mô phỏng ngẫu nhiên có nhiều ứng dụng trong các lĩnh vực như kinh tế, kỹ thuật, khoa học máy tính, thống kê, vật lý, hóa học, sinh học, y học,…
Bước1: Xác định vấn đề cần mô phỏng và lập kế hoạch nghiên cứu. Đây là bước quyết định đầu tiên để đánh giá, cân nhắc nên hay không nên sử dụng phương pháp mô phỏng.
Bước 2: Chọn dữ liệu và xác định mô hình. Việc chon dữ liệu và xác định mô hình là bước quan thứ hai trong mô phỏng. Nếu dữ liệu không đầy đủ hoặc không trung thực và mô hình không phù hợp thì chắc chắn việc mô phỏng sẽ không có hiệu quả.
Bước 3: Kiểm tra hiệu lực của mô hình. Dựa vào các phương pháp thống kê, có thể kiểm tra sơ bộ tính hiệu lực của mô hình vừa chọn. Nếu tính hiệu lực của mô hình không có hoặc rất yếu, chúng ta phải quay lại bước chọn dữ liệu và chọn mô hình.
Bước 4: Xây dựng thuật toán phù hợp và viết chương trình. Bước này giúp chúng ta chuyển đổitừ mô hình toán học sang mô hình mô phỏng có thể kiểm nghiệm với sự giúp đỡ của máy tính.
Bước 5:Chạy chương trình. Chạy chương trình mô phỏng với sự giúp đỡ của máy tính trên chương trình được viết.
Bước 6: Kiểm tra. Có thể thay đổi dữ liệu để kiểm tra tính phù hợp của mô hình mô phỏng. Nếu không phù hợp thì phải qua lại bước 3.
Ưu điểm:
Mô phỏng cho phép điều khiển và hiệu chỉnh các thí nghiệm, sao cho mô hình thích hợp nhất với hệ thống cần nghiên cứu.
Mô phỏng cho phép rút ngắn thời gian trong giai đoạn nghiên cứu hệ thống thực. Với sự giúp đỡ của máy tính điện tử, việc tiết kiệm thời gian nghiên cứu một hệ thống thực là khả thi.
Mô phỏng cho phép thực hiện nhiều phân tích hiệu quả các dữ liệu lớn và phức tạp.
Mô phỏng không phá hỏng hệ thống thực khi nghiên cứu nó.
Mô phỏng đảm bảo an toàn cho người nghiên cứu hệ thống thực (mô phỏng vụ nổ hạt nhân, mô phỏng các cơn sóng thần, mô phỏng sự hoạt động của núi lửa, …).
Nhược điểm:
Mô phỏng một hệ thống phức tạp cần tới một mô hình toán học phức tạp và máy tính hỗ trợ. Điều này không phải lúc nào cũng có trong công tác thực địa.
Việc chạy một chương trình máy tính có thể chiếm nhiều thời gian, nếu thuật toán viết ra chưa tối ưu.
Nghiệm mô phỏng chỉ là nghiệm xấp xỉ với nghiệm giải tích nên có khả năng xuất hiện sai số đáng kể.
Mô hình tĩnh (Static Model). Mô hình tĩnh là mô hình mà yếu tố thời gian không ảnh hưởng tới sự vận hành của mô hình.
Mô hình động (Dynamic Model). Mô hình động là mô hình mô tả sự vận hành của một hệ thống dưới ảnh hưởng của thời gian.
Mô hình tất định (Deterministic Model). Mô hình tất định là mô hình mô phỏng không có bất kỳ thành phần ngẫu nhiên nào, các biến của mô hình là biến tất định (Certainty). Các mô hình kinh tế như mô hình cân bằng cung và cầu hay mô hình vào-ra Liontief (Input–Output Model) trong kinh tế vi mô là các mô hình tất định.
Mô hình ngẫu nhiên (Stochastic Model/Random Model). Nếu mô hình mô phỏng có chứa ít nhất một thành phần ngẫu nhiên, thì nó gọi là mô hình ngẫu nhiên. Các biến biểu diễn mô hình tuân theo các phân phối xác suất. Mô hình vận hành theo những quy luật ngẫu nhiên,thường được nghiên cứu bởi các quy luật xác suất và các quá trình ngẫu nhiên. Mô hình hàng đợi (Queue Model), mô hình kho bãi (Storage Model), mô hình rủi ro bảo hiểm (Insurance RiskModel) là các ví dụ về mô hình ngẫu nhiên.
Phương pháp Monte Carlo có thể coi như một phương pháp mô hình hoá các biến ngẫu nhiên nhằm tính các đặc trưng phân bố của chúng. Năm 1978 A. Hall đưa ra phương pháp thực nghiệm để tính số π trong bài toán “chiếc kim Buffon”. Tiếp đến năm 1934 I. G. Petrowsky cũng có quan điểm tương tự khi giải bài toán “người say rượu” với kết quả tính gần đúng nghiệm của bài toán Dirichlet ứng với phương trình Laplace. Mặc dù vậy phải đến năm 1944, khi nghiên cứu giải quyết bài toán tính tích phân nhiều chiều trong nghiên cứu chế tạo bom nguyên tử, John Von Newmann đã sử dụng phương pháp sau này mang tên “phương pháp Monte Carlo” trên máy tính điện tử. Từ đó phương pháp Monte Carlo chính thức ra đời và có nhiều ứng dụng trong rất nhiều lĩnh vực khác nhau như giải tích số, quy hoạch và điều kiển tối ưu, vật lý hạt nhân, hoá học, sinh học, tin học và kỹ thuật.
Mục đích của phương pháp Monte Carlo là ước lượng giá trị trung bình \(µ = E(X)\) của một biến ngẫu nhiên \(X\).
Giả sử chúng ta có thể mô phỏng để sinh biến ngẫu nhiên \(X\). Nếu việc mô phỏng đó được lặp lại n lần độc lập, ta sẽ có n biến ngẫu nhiên độc lập, cùng phân phối$ X_1, X_2, · · · , X_n$ sinh từ biến ngẫu nhiên \(X\). Để ước lượng \(µ = E(X)\), sử dụng ước lượng thử lặp (hay còn gọi là ước lượng thử thống kê) sau:
\(µ = \frac{1}{n}\sum_{1}^{n} X_i\)
Luật yếu các số lớn (Weak Law of Large Numbers) khẳng định: Nếu \(E|X| < +∞\) thì \(µ_n→ µ\).
Nghĩa là µn là một ước lượng vững cho \(µ\). Do đó nếu chúng ta tiến hành số \(n\) lần lặp lại các mô phỏng biến ngẫu nhiên \(X\) khá lớn thì \(µ_n\) sẽ rất gần \(µ\). Như vậy luật yếu số lớn là cơ sở toán học cho phương pháp Monte Carlo.
Việc đánh giá sai số và tốc độ hội tụ của phương pháp Monte Carlo dựa trên cơ sở của định lý giới hạn trung tâm (Central Limit Theorem). Định lý giới hạn trung tâm cho dãy các đại lượng ngẫu nhiên độc lập cùng phân phối khẳng định: Nếu \(Var(X) = σ^2 < ∞\) thì
\(\frac{(µn − µ)}{σ \sqrt{n}} → Z ∼ N (0, 1)\) khi n → ∞
Như vậy sai số của ước lượng thử thống kê trong phương pháp Monte Carlo có dạng \(o(n^{−1/2})\).
Một hướng phát triển khác của phương pháp Monte Carlo là phương pháp xích Markov Monte Carlo (MCMC) được Metropolis đưa ra năm 1953, sử dụng các mô phỏng \(X_1, X_2, · · · , X_n\) của một xích Markov để xấp xỉ kỳ vọng \(µ = E(f(X_i))\) bằng trung bình mẫu \(µn = \frac{1} {n} \sum_{i=1}^{n} f(X_i)\). Nói cách khác,phương pháp xích Markov Monte Carlo tương tự phương pháp Monte Carlo với sự thay thế dãy các biến ngẫu nhiên độc lập cùng phân phối trong phương pháp Monte Carlo bằng xích Markov trong phương pháp Markov Monte Carlo.
Hồi quy bội đa tuyến tính là một kỹ thuật thống kê dùng để xác định mối quan hệ toán học giữa nhiều biến ngẫu nhiên. Nói cách khác, hồi quy bội đa tuyến tính khảo sát cách mà nhiều biến độc lập liên quan đến một biến phụ thuộc.
Hồi quy bội đa tuyến tính dùng công thức sau để ước lượng biến phụ thuộc:
\[y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + ... + \beta_n x_n + \epsilon\] Trong đó, \(y\) là biến phụ thuộc, \(x_1, x_2, ..., x_n\) là các biến độc lập, \(\beta_0, \beta_1, \beta_2, ..., \beta_n\) là các hệ số hồi quy, và \(\epsilon\) là sai số ngẫu nhiên.
Giả sử: giá cổ phiếu ban đầu là 100 VNĐ với lợi suất trung bình là 5% và độ lệch chuẩn là 0.2. Tiến hành mô phỏng ngẫu nhiên 1000 giá trị của một cổ phiếu theo phân phối chuẩn, với công thức tính như sau:
\(S_t = S_0 e^{(r - \frac{\sigma^2}{2})t + \sigma W_t}\)
set.seed(123)
# Giá cổ phiếu ban đầu
S0 <- 100
# Lợi suất trung bình
mu <- 0.05
# Độ lệch chuẩn
sigma <- 0.2
# Thời gian đến hết hạn
T <- 1
# Số lượng giá trị cần mô phỏng
N <- 1000
# Tạo số ngẫu nhiên theo phân phối chuẩn
Z <- rnorm(N)
# Tính giá cổ phiếu
S <- S0 * exp((mu - 0.5 * sigma^2) * T + sigma * sqrt(T) * Z)
plot(S, type = "l", main = "Mô phỏng giá cổ phiếu theo phân phối chuẩn", xlab = "Thời gian", ylab = "Giá cổ phiếu")
hist(S, main = "phân phối chuẩn", xlab = "S", col="pink")
Dựa vào biểu đồ histogram, ta thấy giá dao động nhiều nhất ở mức giá +- 100, và thấp nhất ở khoảng +-50 và +-200.
summary(S)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 58.75 90.88 103.24 105.44 117.69 197.03
Từ kết quả trên, ta xác định được như sau: Giá cổ phiếu thấp nhất ở mức 58.75 với trung bình là 105.44 và giá cao nhất là 197.03
Giả sử tôi muốn mô phỏng tung đồng xu 100 lần với xác suất ra mặt ngửa là 50%.
set.seed(123)
rbinom(100, 1, 0.5)
## [1] 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1
## [38] 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 1 1 0
## [75] 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 1
Kết quả sẽ là một vector có 100 phần tử, mỗi phần tử là 0 hoặc 1, tương ứng với mặt sấp hoặc mặt ngửa
set.seed(123)
X <-table(rbinom(100, 1, 0.5))
X
##
## 0 1
## 53 47
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.1
barplot(table(X), col="pink")
Vậy xác xuất thu được mặt sấp là 47 và mặt ngửa là 53
Tôi muốn mô phỏng 100 lần quan sát số lượng xe hơi đi ngang qua trong một giờ, với giả sử rằng trung bình có 20 xe hơi sẽ đi ngang qua trong một giờ.
set.seed(123)
C <-rpois(100, 20)
table(C)
## C
## 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29
## 2 1 6 6 5 9 11 10 8 9 8 5 4 7 4 3 2
hist(C, main="Phân phối Poisson", xlab ="C", col="pink")
summary(C)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 12.00 17.00 19.50 19.86 22.25 29.00
Số lượng xe đi qua nhiều nhất trong 1 giờ là 29 chiếc và ít nhất là 12 chiếc với trung bình là 19.86
Giả sử tôi muốn mô phỏng số ngẫu nhiên được phát sinh bởi máy tính, nếu giả sử rằng số ngẫu nhiên có thể, tôi muốn mô phỏng 100 số ngẫu nhiên trong khoảng từ 0 đến 1, bạn có thể viết:
set.seed(123)
u <- runif(n=100,min = 0,max = 1)
hist(u, main = "phân phối đều", xlab = "u",col="pink")
summary(u)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0006248 0.2454707 0.4663707 0.4985590 0.7554713 0.9942698
Xác suất khả năng máy tính phát sinh cao nhất là 99.42% và thấp nhất là 0.06% với trung bình 0.498559
Tôi muốn mô phỏng 100 lần quan sát thời gian giữa hai cuộc gọi đến trung tâm dịch vụ khách hàng, nếu giả sử rằng tỷ lệ của phân phối mũ là 0.2, tức là trung bình có 0.2 cuộc gọi đến trong một đơn vị thời gian.
set.seed(123)
i <- rexp(n=100,rate=0.2)
hist(i, main = "phân phối mũ", xlab = "i", col="pink")
summary(i)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.023 1.570 4.239 5.229 7.344 36.055
Số lần hai cuộc gọi đều gọi đến nhiều nhất là 36.055, thấp nhất là 0.023 với trung bình là 5.229
setwd("C:/Users/Ngoc Loi/Downloads")
s <- read.csv("C:/Users/Ngoc Loi/Downloads/CT2.csv")
library(DT)
## Warning: package 'DT' was built under R version 4.3.1
s %>% DT::datatable(s)
Giải thích bộ dữ liệu:
Bộ dữ liệu bao gồm 7 biến độc lập từ ngày 4/8/2017 đến ngày 4/8/2023 gồm 1500 quan sát, với ý nghĩa như sau:
FTS: Giá đóng cửa của cổ phiếu công ty cổ phần chứng khoán FPT.
VNI: Chỉ số VN - Index là chỉ số chứng khoán đầu tiên và chính thức của Sở Giao dịch chứng khoán TP HCM (HSX). Chỉ số VN-Index được tính theo phương pháp bình quân vốn hóa thị trường của tất cả các cổ phiếu niêm yết trên HSX. Chỉ số VN-Index phản ánh diễn biến giá cả chung của toàn bộ cổ phiếu trên thị trường chứng khoán Việt Nam.
DJI: Chỉ số DJI là chỉ số trung bình công nghiệp Dow Jones, là một chỉ số chứng khoán để theo dõi 30 công ty đại chúng vốn hóa lớn đang giao dịch trên sàn giao dịch New York và NASDAQ. Chỉ số DJI được tạo ra bởi Charles Dow và Edward Jones vào năm 1896. Chỉ số DJI được tính theo phương pháp trọng số giá, bằng cách lấy tổng thị giá của 30 cổ phiếu chia cho một số gọi là số chia. Chỉ số DJI được sử dụng để đo lường sức khỏe tài chính của nền kinh tế Mỹ.
BRENT: Giá dầu Brent là giá tham chiếu cho dầu thô ngọt nhẹ, đóng vai trò chính trong việc kiểm chuẩn giá dầu trên toàn thế giới. Giá dầu Brent được ảnh hưởng bởi nhu cầu và cung cấp của thị trường dầu lưu vực Đại Tây Dương. Giá dầu Brent được giao dịch trên các sàn tương lai và quyền chọn.
Gold: Giá vàng là giá thị trường của kim loại quý vàng, được biểu thị bằng đơn vị tiền tệ hoặc trọng lượng vàng. Giá vàng có thể thay đổi theo nhu cầu, cung cấp, tỷ giá hối đoái, lạm phát và các yếu tố kinh tế khác.
FX: Tỷ giá đồng USD/VND là tỷ lệ quy đổi giữa đồng Việt Nam và đô la Mỹ, được biểu thị bằng số đồng Việt Nam cần trao đổi để nhận được một đô la Mỹ. Tỷ giá đồng USD/VND có thể thay đổi theo nhu cầu, cung cấp, lạm phát, chính sách tiền tệ và các yếu tố kinh tế khác
IOR: Lãi suất qua đêm là lãi suất mà các ngân hàng cho nhau vay tiền vào cuối ngày trên thị trường qua đêm, để đảm bảo duy trì các yêu cầu dự trữ bắt buộc. Lãi suất qua đêm đóng vai trò quan trọng trong chính sách tiền tệ của một quốc gia, và thường được ảnh hưởng bởi nhiều yếu tố kinh tế, tiền tệ và tài chính.
summary(s)
## date FTS VNI DJI
## Length:1500 Min. : 5245 Min. : 659.2 Min. :18592
## Class :character 1st Qu.: 7491 1st Qu.: 946.5 1st Qu.:25475
## Mode :character Median : 9188 Median :1014.0 Median :28298
## Mean :16083 Mean :1070.1 Mean :29144
## 3rd Qu.:24685 3rd Qu.:1188.6 3rd Qu.:33533
## Max. :51874 Max. :1528.6 Max. :36800
## BRENT GOLD FX IOR
## Min. : 19.33 Min. :1184 Min. :22625 Min. : 1.890
## 1st Qu.: 61.31 1st Qu.:1333 1st Qu.:22950 1st Qu.: 4.400
## Median : 70.03 Median :1732 Median :23195 Median : 6.400
## Mean : 70.55 Mean :1635 Mean :23182 Mean : 7.292
## 3rd Qu.: 80.17 3rd Qu.:1843 3rd Qu.:23331 3rd Qu.:10.643
## Max. :127.98 Max. :2069 Max. :24871 Max. :13.720
sd(s$FTS)
## [1] 11849.3
sd(s$VNI)
## [1] 192.1791
sd(s$DJI)
## [1] 4246.366
sd(s$BRENT)
## [1] 18.78878
sd(s$GOLD)
## [1] 259.861
sd(s$FX)
## [1] 368.7204
sd(s$IOR)
## [1] 3.893275
Từ kết quả trên, ta xác định được như sau:
Biến FTS có giá trị trung bình là 16083, trung vị là 9188 và giá trị từ nhỏ nhất là 5245 đến lớn nhất là 51874, với độ lệch chuẩn là 11849.3
Biến VNI có giá trị trung bình là 1070.1, trung vị là 1014.0 và giá trị từ nhỏ nhất là 659.2 đến lớn nhất là 1528.6, với độ lệch chuẩn là 192.1791
Biến DJI có giá trị trung bình là 29144, trung vị là 28298 và giá trị từ nhỏ nhất là 18592 đến lớn nhất là 36800, với độ lệch chuẩn là 4246.366
Biến BRENT có giá trị trung bình là 70.55, trung vị là 70.03 và giá trị từ nhỏ nhất là 19.33 đến lớn nhất là 127.98, với độ lệch chuẩn là 18.78878
Biến GOLD có giá trị trung bình là 1635, trung vị là 1732 và giá trị từ nhỏ nhất là 1184 đến lớn nhất là 2069, với độ lệch chuẩn là 259.861.
Biến FX có giá trị trung bình là 23182, trung vị là 23195 và giá trị từ nhỏ nhất là 22625 đến lớn nhất là 24871, với độ lệch chuẩn là 368.7204
Biến IOR có giá trị trung bình là 7.292, trung vị là 6.400 và giá trị từ nhỏ nhất là 1.890 đến lớn nhất là 13.720, với độ lệch chuẩn là 3.893275
# Kiểm định phân phối chuẩn
hist(s$FTS, col="pink")
Đặt giả thuyết:
\(H_0\): biến FTS có phân phối chuẩn
\(H_1\): biến FTS không có phân phối chuẩn
shapiro.test(s$FTS)
##
## Shapiro-Wilk normality test
##
## data: s$FTS
## W = 0.79525, p-value < 2.2e-16
Vì p-value <0,05 nên ta đủ cơ sở bác bỏ \(H_0\), vì vậy biến FTS không có phân phối chuẩn
#Kiểm định phân phối mũ
ks.test(s$FTS, y=pexp)
## Warning in ks.test.default(s$FTS, y = pexp): ties should not be present for the
## Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$FTS
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến FTS có phân phối mũ
\(H_1\): biến FTS không có phân phối mũ
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến FTS không có phân phối mũ.
# Kiểm định phân phối đều
ks.test(s$FTS, y = 'punif')
## Warning in ks.test.default(s$FTS, y = "punif"): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$FTS
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến FTS có phân phối đều
\(H_1\): biến FTS không có phân phối đều
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến FTS không có phân phối đều.
## Kiểm định phân phối loga chuẩn
ks.test(s$FTS, y = "plnorm")
## Warning in ks.test.default(s$FTS, y = "plnorm"): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$FTS
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
Đặt giả thiết:
\(H_0\): biến FTS có phân phối loga chuẩn
\(H_1\): biến FTS không có phân phối loga chuẩn
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến FTS không có phân phối loga chuẩn.
# Kiểm định phân phối chuẩn
hist(s$VNI, col="pink")
Đặt giả thuyết:
\(H_0\): biến VNI có phân phối chuẩn
\(H_1\): biến VNI không có phân phối chuẩn
shapiro.test(s$VNI)
##
## Shapiro-Wilk normality test
##
## data: s$VNI
## W = 0.94187, p-value < 2.2e-16
Vì p-value <0,05 nên ta đủ cơ sở bác bỏ \(H_0\), vì vậy biến FTS không có phân phối chuẩn
#Kiểm định phân phối mũ
ks.test(s$VNI, y=pexp)
## Warning in ks.test.default(s$VNI, y = pexp): ties should not be present for the
## Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$VNI
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến VNI có phân phối mũ
\(H_1\): biến VNI không có phân phối mũ
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến VNI không có phân phối mũ.
# Kiểm định phân phối đều
ks.test(s$VNI, y = 'punif')
## Warning in ks.test.default(s$VNI, y = "punif"): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$VNI
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến VNI có phân phối đều
\(H_1\): biến VNI không có phân phối đều
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến VNI không có phân phối đều.
## Kiểm định phân phối loga chuẩn
ks.test(s$VNI, y = "plnorm")
## Warning in ks.test.default(s$VNI, y = "plnorm"): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$VNI
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
Đặt giả thiết:
\(H_0\): biến VNI có phân phối loga chuẩn
\(H_1\): biến VNI không có phân phối loga chuẩn
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến FTS không có phân phối loga chuẩn.
# Kiểm định phân phối chuẩn
hist(s$DJI, col="pink")
Đặt giả thuyết:
\(H_0\): biến DJI có phân phối chuẩn
\(H_1\): biến DJI không có phân phối chuẩn
shapiro.test(s$DJI)
##
## Shapiro-Wilk normality test
##
## data: s$DJI
## W = 0.9279, p-value < 2.2e-16
Vì p-value <0,05 nên ta đủ cơ sở bác bỏ \(H_0\), vì vậy biến DJI không có phân phối chuẩn
#Kiểm định phân phối mũ
ks.test(s$DJI, y=pexp)
## Warning in ks.test.default(s$DJI, y = pexp): ties should not be present for the
## Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$DJI
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến DJI có phân phối mũ
\(H_1\): biến DJI không có phân phối mũ
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến DJI không có phân phối mũ.
# Kiểm định phân phối đều
ks.test(s$DJI, y = 'punif')
## Warning in ks.test.default(s$DJI, y = "punif"): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$DJI
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến DJI có phân phối đều
\(H_1\): biến DJI không có phân phối đều
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến DJI không có phân phối đều.
## Kiểm định phân phối loga chuẩn
ks.test(s$DJI, y = "plnorm")
## Warning in ks.test.default(s$DJI, y = "plnorm"): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$DJI
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
Đặt giả thiết:
\(H_0\): biến DJI có phân phối loga chuẩn
\(H_1\): biến DJI không có phân phối loga chuẩn
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến DJI không có phân phối loga chuẩn.
# Kiểm định phân phối chuẩn
hist(s$BRENT, col="pink")
Đặt giả thuyết:
\(H_0\): biến BRENT có phân phối chuẩn
\(H_1\): biến BRENTFTS không có phân phối chuẩn
shapiro.test(s$BRENT)
##
## Shapiro-Wilk normality test
##
## data: s$BRENT
## W = 0.98189, p-value = 8.383e-13
Vì p-value <0,05 nên ta đủ cơ sở bác bỏ \(H_0\), vì vậy biến BRENT không có phân phối chuẩn
#Kiểm định phân phối mũ
ks.test(s$BRENT, y=pexp)
## Warning in ks.test.default(s$BRENT, y = pexp): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$BRENT
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến BRENT có phân phối mũ
\(H_1\): biến BRENT không có phân phối mũ
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến BRENT không có phân phối mũ.
# Kiểm định phân phối đều
ks.test(s$BRENT, y = 'punif')
## Warning in ks.test.default(s$BRENT, y = "punif"): ties should not be present
## for the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$BRENT
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến BRENT có phân phối đều
\(H_1\): biến BRENT không có phân phối đều
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến BRENT không có phân phối đều.
## Kiểm định phân phối loga chuẩn
ks.test(s$BRENT, y = "plnorm")
## Warning in ks.test.default(s$BRENT, y = "plnorm"): ties should not be present
## for the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$BRENT
## D = 0.99847, p-value < 2.2e-16
## alternative hypothesis: two-sided
Đặt giả thiết:
\(H_0\): biến BRENT có phân phối loga chuẩn
\(H_1\): biến BRENT không có phân phối loga chuẩn
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến BRENT không có phân phối loga chuẩn.
# Kiểm định phân phối chuẩn
hist(s$GOLD, col="pink")
Đặt giả thuyết:
\(H_0\): biến GOLD có phân phối chuẩn
\(H_1\): biến GOLD không có phân phối chuẩn
shapiro.test(s$GOLD)
##
## Shapiro-Wilk normality test
##
## data: s$GOLD
## W = 0.89685, p-value < 2.2e-16
Vì p-value <0,05 nên ta đủ cơ sở bác bỏ \(H_0\), vì vậy biến GOLD không có phân phối chuẩn
#Kiểm định phân phối mũ
ks.test(s$GOLD, y=pexp)
## Warning in ks.test.default(s$GOLD, y = pexp): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$GOLD
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến GOLD có phân phối mũ
\(H_1\): biến GOLD không có phân phối mũ
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến GOLD không có phân phối mũ.
# Kiểm định phân phối đều
ks.test(s$GOLD, y = 'punif')
## Warning in ks.test.default(s$GOLD, y = "punif"): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$GOLD
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến GOLD có phân phối đều
\(H_1\): biến GOLD không có phân phối đều
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến GOLD không có phân phối
## Kiểm định phân phối loga chuẩn
ks.test(s$GOLD, y = "plnorm")
## Warning in ks.test.default(s$GOLD, y = "plnorm"): ties should not be present
## for the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$GOLD
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
Đặt giả thiết:
\(H_0\): biến GOLD có phân phối loga chuẩn
\(H_1\): biến GOLD không có phân phối loga chuẩn
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến GOLD không có phân phối loga chuẩn.
# Kiểm định phân phối chuẩn
hist(s$GOLD, col="pink")
Đặt giả thuyết:
\(H_0\): biến GOLD có phân phối chuẩn
\(H_1\): biến GOLD không có phân phối chuẩn
shapiro.test(s$GOLD)
##
## Shapiro-Wilk normality test
##
## data: s$GOLD
## W = 0.89685, p-value < 2.2e-16
Vì p-value <0,05 nên ta đủ cơ sở bác bỏ \(H_0\), vì vậy biến GOLD không có phân phối chuẩn
#Kiểm định phân phối mũ
ks.test(s$GOLD, y=pexp)
## Warning in ks.test.default(s$GOLD, y = pexp): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$GOLD
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến GOLD có phân phối mũ
\(H_1\): biến GOLD không có phân phối mũ
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến GOLDFTS không có phân phối mũ.
# Kiểm định phân phối đều
ks.test(s$GOLD, y = 'punif')
## Warning in ks.test.default(s$GOLD, y = "punif"): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$GOLD
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến GOLD có phân phối đều
\(H_1\): biến GOLD không có phân phối đều
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến GOLD không có phân phối đều.
## Kiểm định phân phối loga chuẩn
ks.test(s$GOLD, y = "plnorm")
## Warning in ks.test.default(s$GOLD, y = "plnorm"): ties should not be present
## for the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$GOLD
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
Đặt giả thiết:
\(H_0\): biến GOLD có phân phối loga chuẩn
\(H_1\): biến GOLD không có phân phối loga chuẩn
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến GOLD không có phân phối loga chuẩn.
# Kiểm định phân phối chuẩn
hist(s$FX, col="pink")
Đặt giả thuyết:
\(H_0\): biến FX có phân phối chuẩn
\(H_1\): biến FX không có phân phối chuẩn
shapiro.test(s$FX)
##
## Shapiro-Wilk normality test
##
## data: s$FX
## W = 0.85297, p-value < 2.2e-16
Vì p-value <0,05 nên ta đủ cơ sở bác bỏ \(H_0\), vì vậy biến FX không có phân phối chuẩn
#Kiểm định phân phối mũ
ks.test(s$FX, y=pexp)
## Warning in ks.test.default(s$FX, y = pexp): ties should not be present for the
## Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$FX
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến FX có phân phối mũ
\(H_1\): biến FX không có phân phối mũ
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến FX không có phân phối mũ.
# Kiểm định phân phối đều
ks.test(s$FX, y = 'punif')
## Warning in ks.test.default(s$FX, y = "punif"): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$FX
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến FX có phân phối đều
\(H_1\): biến FX không có phân phối đều
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến FX không có phân phối đều.
## Kiểm định phân phối loga chuẩn
ks.test(s$FX, y = "plnorm")
## Warning in ks.test.default(s$FX, y = "plnorm"): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$FX
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
Đặt giả thiết:
\(H_0\): biến FX có phân phối loga chuẩn
\(H_1\): biến FX không có phân phối loga chuẩn
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến FX không có phân phối loga chuẩn.
# Kiểm định phân phối chuẩn
hist(s$IOR, col="pink")
Đặt giả thuyết:
\(H_0\): biến IOR có phân phối chuẩn
\(H_1\): biến IOR không có phân phối chuẩn
shapiro.test(s$IOR)
##
## Shapiro-Wilk normality test
##
## data: s$IOR
## W = 0.88611, p-value < 2.2e-16
Vì p-value <0,05 nên ta đủ cơ sở bác bỏ \(H_0\), vì vậy biến IOR không có phân phối chuẩn
#Kiểm định phân phối mũ
ks.test(s$IOR, y='pexp')
## Warning in ks.test.default(s$IOR, y = "pexp"): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$IOR
## D = 0.84893, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến IOR có phân phối mũ
\(H_1\): biến IOR không có phân phối mũ
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến IOR không có phân phối mũ.
# Kiểm định phân phối đều
ks.test(s$IOR, y = 'punif')
## Warning in ks.test.default(s$IOR, y = "punif"): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$IOR
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
\(H_0\): biến IOR có phân phối đều
\(H_1\): biến IOR không có phân phối đều
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến IOR không có phân phối đều.
## Kiểm định phân phối loga chuẩn
ks.test(s$IOR, y = "plnorm")
## Warning in ks.test.default(s$IOR, y = "plnorm"): ties should not be present for
## the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: s$IOR
## D = 0.7378, p-value < 2.2e-16
## alternative hypothesis: two-sided
Đặt giả thiết:
\(H_0\): biến IOR có phân phối loga chuẩn
\(H_1\): biến IOR không có phân phối loga chuẩn
Vì p_value < 0,05 nên ta đủ cơ sở bác bỏ H0, vì vậy biến IOR không có phân phối loga chuẩn.
Để mô phỏng các yếu tố tác động đến giá cổ phiếu FTS, mô hình hồi quy được xây dựng như sau:
\(FTS=β0+β1VNI+β2BJI+β3BRENT+β4GOLD+β5FX+β6IOR\)
Trong đó:
Biến phụ thuộc: giá cổ phiếu FTS
Biến độc lập gồm VNI, BJI, BRENT, GOLD, FX và IOR.
model <- lm(s$FTS ~ s$VNI + s$DJI +s$BRENT +s$GOLD+s$FX+s$IOR)
summary(model)
##
## Call:
## lm(formula = s$FTS ~ s$VNI + s$DJI + s$BRENT + s$GOLD + s$FX +
## s$IOR)
##
## Residuals:
## Min 1Q Median 3Q Max
## -11862 -2858 106 2380 17364
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.276e+04 1.080e+04 -1.181 0.237757
## s$VNI 4.859e+01 1.764e+00 27.548 < 2e-16 ***
## s$DJI 4.320e-02 8.353e-02 0.517 0.605085
## s$BRENT -1.751e+02 1.466e+01 -11.946 < 2e-16 ***
## s$GOLD 8.998e+00 8.221e-01 10.945 < 2e-16 ***
## s$FX -1.588e+00 4.686e-01 -3.388 0.000722 ***
## s$IOR 1.375e+03 5.561e+01 24.732 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4607 on 1493 degrees of freedom
## Multiple R-squared: 0.8494, Adjusted R-squared: 0.8488
## F-statistic: 1404 on 6 and 1493 DF, p-value: < 2.2e-16
Với mô hình hồi quy của biến phụ thuộc FTS với 6 biến độc lập gồm VNI, BJI, BRENT, GOLD, FX và IOR lần thứ nhất, cho ta thấy rằng có 5 biến có ý nghĩa thống kê ở mức ý nghĩa 5% ngoại trừ biến BJI là không có ý nghĩa .Tôi tiến hành hồi quy mô hình lần thứ 2 như sau:
model1 <- lm(s$FTS ~ s$VNI +s$BRENT +s$GOLD+s$FX+s$IOR)
summary(model1)
##
## Call:
## lm(formula = s$FTS ~ s$VNI + s$BRENT + s$GOLD + s$FX + s$IOR)
##
## Residuals:
## Min 1Q Median 3Q Max
## -11838 -2844 128 2397 17437
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -15032.294 9860.929 -1.524 0.127613
## s$VNI 49.251 1.222 40.315 < 2e-16 ***
## s$BRENT -175.394 14.645 -11.976 < 2e-16 ***
## s$GOLD 9.285 0.606 15.321 < 2e-16 ***
## s$FX -1.486 0.425 -3.496 0.000486 ***
## s$IOR 1377.524 55.416 24.858 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4606 on 1494 degrees of freedom
## Multiple R-squared: 0.8494, Adjusted R-squared: 0.8489
## F-statistic: 1686 on 5 and 1494 DF, p-value: < 2.2e-16
Với mô hình hồi quy của biến phụ thuộc FTS health với 5 biến độc lập còn lại, cho ta thấy rằng có 5 biến đều có ý nghĩa thống kê ở mức ý nghĩa 5%. Tôi thu được mô hình sau:
\(FTS=49.251VNI-175.394BRENT+9.285GOLD -1.486FX+1377.524IOR\)
Giải thích ý nghĩa
Mô hình hồi quy này cho biết mối quan hệ giữa FTS (biến phụ thuộc) và các biến độc lập là VNI, BRENT, GOLD, FX và IOR. Các số sau dấu cộng là các hệ số ước lượng của các biến độc lập. Mô hình này có thể được giải thích như sau:
Khi VNI tăng 1 đơn vị, thì FTS tăng 49.251 đơn vị, giữ nguyên các biến khác.
Khi BRENT tăng 1 đơn vị, thì FTS giảm 175.394 đơn vị, giữ nguyên các biến khác.
Khi GOLD tăng 1 đơn vị, thì FTS tăng 9.285 đơn vị, giữ nguyên các biến khác.
Khi FX tăng 1 đơn vị, thì FTS giảm 1.486 đơn vị, giữ nguyên các biến khác.
Khi IOR tăng 1 đơn vị, thì FTS tăng 1377.524 đơn vị, giữ nguyên các biến khác.
\[ P_t = P_0 \times \prod_{i=1}^t (1 + r_i) \] Trong đó:
\(P_t\) là giá cổ phiếu vào ngày thứ \(t\).
\(P_0\) là giá khởi điểm của cổ phiếu.
\(r_i\) là lợi nhuận ngẫu nhiên vào ngày thứ \(i\), được tạo ra bằng hàm rnorm với giá trị trung bình và độ lệch chuẩn của lợi nhuận hàng ngày.
Giả sử mô hình theo phân phối chuẩn
set.seed(123)
## Số ngày
n <- 100
## Tạo dữ liệu giả cho các biến độc lập dựa trên thống kê mô tả
VNI <- rnorm(n, mean = 1070.1, sd = 192.1791)
BRENT <- rnorm(n, mean = 70.55, sd = 18.78878)
GOLD <- rnorm(n, mean = 1635, sd = 259.861)
FX <- rnorm(n, mean = 23182, sd = 368.7204)
IOR <- rnorm(n, mean = 7.292, sd = 3.893275)
#Mô phỏng biến VNI theo phân phối chuẩn
plot(VNI, type = 'l', col = 'blue',
ylab = "chỉ số VNI",
xlab = "ngày")
#Mô phỏng biến BRENT theo phân phối chuẩn
plot(BRENT, type = 'l', col = 'blue',
ylab = "giá dầu BRENT",
xlab = "ngày")
#Mô phỏng biến GOLD theo phân phối chuẩn
plot(GOLD, type = 'l', col = 'blue',
ylab = "chỉ số giá vàng",
xlab = "ngày")
#Mô phỏng biến FX theo phân phối chuẩn
plot(FX, type = 'l', col = 'blue',
ylab = "Tỷ giá",
xlab = "ngày")
#Mô phỏng biến IOR theo phân phối chuẩn
plot(IOR, type = 'l', col = 'blue',
ylab = "Lãi suất",
xlab = "ngày")
set.seed(123)
FTS <- 49.251 * VNI - 175.394 * BRENT + 9.285 * GOLD - 1.486 * FX + 1377.524 * IOR
summary(FTS)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 10295 27529 33957 33195 38632 55796
Giá cổ phiếu FTS dựa trên mô hình 1 có phân phối phối có giá trị nhỏ nhất là 10.295đ và lớn nhất là 55.796đ
#Mô phỏng giá FTS
plot(FTS, type = 'l', col = 'blue',
ylab = "Giá cổ phiếu FTS",
xlab = "ngày")
Kết quả dự báo FTS theo phân phối chuẩn dựa trên mô hình 1
FTS
## [1] 33445.79 25393.14 43143.32 34652.18 38303.39 37305.81 35381.17 27135.48
## [9] 26274.87 23832.38 46803.49 34118.75 47655.13 30763.91 19713.74 36509.84
## [17] 33965.79 15856.90 39510.93 23429.71 28640.85 34525.86 27101.17 33220.32
## [25] 14670.42 14645.09 49451.84 30284.00 33667.83 33039.99 33521.39 29288.88
## [33] 41965.52 32803.09 44160.12 26065.06 45291.47 35021.10 10294.92 37061.22
## [41] 13318.16 30704.79 30544.01 52780.75 43954.68 28663.51 34166.06 26192.50
## [49] 19491.34 27052.98 37117.59 33651.67 31345.15 51373.76 38628.78 31716.93
## [57] 22929.45 36806.57 31373.34 27694.67 34762.57 26402.23 34850.38 11265.82
## [65] 21560.13 43335.34 36696.44 38730.03 37074.71 55796.39 38478.02 10752.82
## [73] 35548.71 12277.66 27660.49 44484.72 38438.12 16881.18 34425.76 31122.16
## [81] 30733.01 33947.92 36709.82 40645.89 33645.82 38642.13 43020.10 36447.36
## [89] 33972.26 41798.51 42410.00 48623.23 42273.86 21329.81 48768.66 10897.15
## [97] 55734.20 46897.74 33584.19 31469.80
par(mfrow=c(1,3))
hist(FTS, col="blue")
boxplot(FTS, col="blue")
plot(density(FTS), col="blue")
Giải thích ý nghĩa:
Biểu đồ thứ nhất là một biểu đồ cột của giá cổ phiếu. Biểu đồ này cho thấy phân bố tần suất của các giá trị khác nhau trong biến prices (giá FTS). Từ kết quả trên, tôi thu được giá trị phổ biến nhất là khoảng 30000 - 33000.
Biểu đồ thứ hai là một biểu đồ hộp của giá cổ phiếu. Biểu đồ này cho thấy phân bố phân vị của các giá trị trong biến prices(giá FTS). Từ kết quả trên, tôi thu được giá trị trung vị là khoảng 33000
Biểu đồ thứ ba là một đồ thị mật độ của biến FTS, với một khoảng giá trị rộng hơn (từ 0 đến 50000). Bạn có thể nhìn thấy rằng biến FTS có phân bố đơn đỉnh, với 2 đỉnh ở khoảng 20000 và 40000. Đồ thị này cũng cho biết độ rộng băng thông (bandwidth) là 2969.
Giả sử tôi là người đầu tư cổ phiếu FTS vào ngày 4/8/2023 (là ngày cuối cùng của data) có trị giá là 33.200
Vì vậy tôi nhận định là nếu thấp hơn 33.200 là phiên giảm giá và trên 33.200 là tăng giá
Với khẩu vị cutloss là 15% khi giá dưới 28.220, khoảng giá giảm vừa là từ 28.220đ đến 33.200đ và giá cổ phiếu tăng nhiều khi trên 50%(49.800), giá cổ phiếu tăng vừa là khoảng 33.200 đến 49.800đ.
giamgiavua1 <- FTS[FTS > 28220 & FTS < 33200]
cutloss1 <- FTS[FTS < 28220]
tanggiavua1 <- FTS[FTS> 33200 & FTS < 49800]
tangnhieu1 <- FTS[FTS > 49800]
table(cut(FTS,breaks = 4))
##
## (1.02e+04,2.17e+04] (2.17e+04,3.3e+04] (3.3e+04,4.44e+04] (4.44e+04,5.58e+04]
## 14 28 46 12
PPC <- table(cut(FTS,4, labels=c('giamgiavua','cutloss','tanggiavua','tangnhieu')))
PPC
##
## giamgiavua cutloss tanggiavua tangnhieu
## 14 28 46 12
Vậy tôi dự báo trong 100 phiên tới theo mô hình 1 khi giả sử các biến độc lập theo phân phối chuẩn, khả năng sẽ có 42 phiên giảm giá và 58 phiên tăng giá, trong đó có 14 phiên giảm vừa, 28 phiên cutloss, 46 phiên tăng vừa và 12 tăng nhiều. Vì vậy trong 100 phiến tới, sẽ có 28% khả năng tôi sẽ cắt lổ và 72% tôi có thể đầu tư để đạt lợi nhuận và trong khả năng gồng lỗ của tôi.
library(ggplot2)
PPC <- c(giamgiavua = 14, cutloss = 28, tanggiavua = 46, tangnhieu = 12)
labels <- c("Giảm giá vừa", "cutloss", "Tăng giá vừa", "Tăng nhiều")
colors <- c("blue", "red", "green", "yellow")
barplot(PPC, names.arg = labels, col = colors)
Giả sử mô hình có phân phối đều
set.seed(123)
## Số ngày
n <- 100
## Tạo dữ liệu giả cho các biến độc lập dựa trên thống kê mô tả
VNI1 <- runif(n,min = 659.2,max = 1528.6)
BRENT1 <- runif(n,min = 19.33,max = 127.98)
GOLD1 <- runif(n,min = 1184,max = 2069)
FX1 <- runif(n,min = 22625,max = 24871)
IOR1 <- runif(n,min = 1.890,max = 13.720)
#Mô phỏng biến VNI theo phân phối đều
plot(VNI1, type = 'l', col = 'blue',
ylab = "chỉ số VNI",
xlab = "ngày")
#Mô phỏng biến BRENT theo phân phối đều
plot(BRENT1, type = 'l', col = 'blue',
ylab = "giá dầu BRENT",
xlab = "ngày")
#Mô phỏng biến GOLD theo phân phối đều
plot(GOLD1, type = 'l', col = 'blue',
ylab = "chỉ số giá vàng",
xlab = "ngày")
#Mô phỏng biến FX theo phân phối đều
plot(FX1, type = 'l', col = 'blue',
ylab = "Tỷ giá",
xlab = "ngày")
#Mô phỏng biến IOR theo phân phối đều
plot(IOR1, type = 'l', col = 'blue',
ylab = "Lãi suất",
xlab = "ngày")
set.seed(123)
FTS1 <- 49.251 * VNI1 - 175.394 * BRENT1 + 9.285 * GOLD1 - 1.486 * FX1 + 1377.524 * IOR1
summary(FTS1)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 481.1 20694.4 31945.2 30861.7 42573.7 57039.7
#Mô phỏng giá FTS
plot(FTS1, type = 'l', col = 'blue',
ylab = "chỉ số VNI",
xlab = "ngày")
Giá của cổ phiếu FTS dựa trên mô hình 1 có phân phối đều cho ta thu được
giá trị nhỏ nhất là 481.1đ và giá trị lớn nhất là 57.039đ với trung bình
là 30.861
Kết quả dự báo FTS theo phân phối đều dựa trên mô hình 1
FTS1
## [1] 25344.0588 46574.0412 34347.1348 39862.0909 47768.5578 6993.9157
## [7] 28221.1851 39349.6209 30259.1661 36666.5944 40024.8059 36802.1044
## [13] 39810.6265 28982.7356 3433.2220 51078.7764 24715.5656 481.1053
## [19] 25297.4547 47360.9737 43188.0820 50031.1028 45825.1394 55974.3590
## [25] 44696.9315 33975.3071 34936.9692 43571.1341 25952.8172 20728.7166
## [31] 57039.6822 42450.7373 33164.5385 43004.7252 5096.2494 28540.2008
## [37] 26927.9401 15966.5710 4731.9652 16560.5989 16947.5346 33558.0451
## [43] 38147.0430 28490.2014 14579.4179 26855.6822 26861.6720 36608.8775
## [49] 28777.2383 46695.1837 5059.1670 22799.3372 42942.7343 12177.5437
## [55] 37098.3901 28130.6299 15992.2988 51281.1186 44221.4666 27310.5339
## [61] 50970.4412 20079.9616 23215.4451 23133.2141 49723.8605 24620.3378
## [67] 35497.8595 53682.9506 38616.2447 38547.5673 36632.8248 44794.9942
## [73] 27668.7822 7000.2721 32012.2374 16768.4015 33842.7437 28336.9453
## [79] 10568.1047 16300.8862 11268.2890 43554.5611 20467.9099 48240.4484
## [85] 16011.3138 20591.3566 48172.3859 48498.9972 36729.5881 17763.8648
## [91] 24439.8157 31878.2250 10638.7033 41404.3813 12170.8966 30290.0058
## [97] 46088.2315 1818.3664 37740.5599 36117.0145
par(mfrow=c(1,3))
hist(FTS1, col="blue")
boxplot(FTS1, col="blue")
plot(density(FTS1), col="blue")
Giải thích ý nghĩa:
Đồ thị cột (histogram) cho biết tần suất xuất hiện của các giá trị trong biến FTS1. Tôi có thể nhìn thấy rằng phần lớn các giá trị nằm trong khoảng từ 0 đến 50000, và có một số giá trị rất lớn (hơn 50000) nhưng rất ít. Hầu hết được phân bố nhiều nhất tại 30000-40000.
Đồ thị hộp (boxplot) cho biết các thông số mô tả của biến FTS1, trung vị ở khoảng 30000.
Đồ thị mật độ (density plot) cho biết hình dạng của phân bố của biến FTS1, một đỉnh ở khoảng 40000. Đồ thị này cũng cho biết độ rộng băng thông (bandwidth =4972).
Giá cổ phiếu FTS cuối cùng là ngày 4/8/2023 có trị giá là 33.200
Vì vậy tôi nhận định là nếu thấp hơn 33.200 là phiên giảm giá và trên 33.200 là tăng giá
Với khẩu vị cutloss là 15% khi giá dưới 28.220, khoảng giá giảm vừa là từ 28.220đ đến 33.200đ và giá cổ phiếu tăng nhiều khi trên 50%(49.800), giá cổ phiếu tăng vừa là khoảng 33.200 đến 49.800đ.
giamgiavua <- FTS1[FTS1 > 28220 & FTS1 < 33200]
cutloss <- FTS1[FTS1 < 28220]
tanggiavua <- FTS1[FTS1> 33200 & FTS1 < 49800]
tangnhieu <- FTS1[FTS1 > 49800]
table(cut(FTS1,breaks = 4))
##
## (425,1.46e+04] (1.46e+04,2.88e+04] (2.88e+04,4.29e+04] (4.29e+04,5.71e+04]
## 14 31 30 25
table(cut(FTS1,4, labels=c('giamgiavua','cutloss','tanggiavua','tangnhieu')))
##
## giamgiavua cutloss tanggiavua tangnhieu
## 14 31 30 25
Vậy tôi dự báo trong 100 phiến tới theo mô hình 1 khi các biến độc lập theo phân phối đều, khả năng sẽ có 45 phiên giảm giá và 55 phiên tăng giá, trong đó có 14 phiên giảm vừa, 31 phiên cutloss, 30 phiên tăng vừa và 25 tăng nhiều. Vì vậy trong 100 phiến tới, sẽ có 31% khả năng tôi sẽ cắt lổ và 69% tôi có thể đầu tư để đạt lợi nhuận (trong đó khả năng tăng nhiều 25) và trong khả năng gồng lỗ của tôi.
PPD <- c(giamgiavua = 14, cutloss = 31, tanggiavua = 30, tangnhieu = 25)
barplot(PPD, names.arg = labels, col = colors)
set.seed(123)
date <- as.Date(s$date)
FTS_xts <- xts(s$FTS, start = min(date), end = max(date), order.by = date, frequency = 1)
#Tính lợi nhuận hàng ngày
daily_returns <- dailyReturn(FTS_xts)
# Tính giá trị trung bình của lợi nhuận hàng ngày
daily_mean <- mean(daily_returns)
# Tính độ lệch chuẩn của lợi nhuận hàng ngày
daily_std_dev <- sd(daily_returns)
# Xác định số ngày cần mô phỏng
no_of_days <- 100
# Xác định giá khởi điểm của quá trình mô phỏng
starting_price <- last(s$FTS)[[1]]
# Tạo cơ sở số lượng các mẫu ngẫu nhiên sẽ được tạo
set.seed(101)
# Tính giá trị lợi nhuận dựa trên các giá trị ngẫu nhiên
returns <- 1+rnorm(no_of_days, mean=daily_mean, sd=daily_std_dev)
# Tính giá cổ phiếu thông qua tích lũy của giá khởi điểm và lợi nhuận
prices <- cumprod(c(starting_price, returns))
# Vẽ biểu đồ thể hiện mô phỏng của giá cổ phiếu trong tương lai
plot(prices, type='l', ylab="Giá cổ phiếu", xlab="Số ngày", main = "Mô phỏng giá của mã cổ phiếu FTS")
par(mfrow=c(1,3))
hist(prices, col="blue")
boxplot(prices, col="blue")
plot(density(prices), col="blue")
Giải thích ý nghĩa:
Biểu đồ thứ nhất là một biểu đồ cột của giá cổ phiếu. Biểu đồ này cho thấy phân bố tần suất của các giá trị khác nhau trong biến prices (giá FTS). Từ kết quả trên, tôi thu được giá trị phổ biến nhất là khoảng 32000 - 35000.
Biểu đồ thứ hai là một biểu đồ hộp của giá cổ phiếu. Biểu đồ này cho thấy phân bố phân vị của các giá trị trong biến prices(giá FTS). Từ kết quả trên, tôi thu được giá trị trung vị là khoảng 31000, và có một số giá trị ngoại lệ cao hơn hoặc thấp hơn.
Biểu đồ thứ ba là một biểu đồ mật độ của giá cổ phiếu. Biểu đồ này cho thấy phân bố xác suất của các giá trị trong biến prices(giá FTS). Từ kết quả trên, tôi thu được điểm cao nhất là khoảng 0.00013, và có một số điểm thấp hơn.
Kết quả dự báo giá FTS theo mô hình 2:
prices
## [1] 32300.00 32045.94 32611.60 32024.58 32275.36 32618.49 33783.11 34444.52
## [9] 34387.00 35358.12 35185.56 35780.06 35011.39 36519.54 35022.18 34837.60
## [17] 34697.85 33897.09 34009.05 33255.88 31328.70 31229.95 31922.78 31725.51
## [25] 30427.38 31134.14 29908.62 30362.37 30305.86 30765.79 31260.30 32123.07
## [33] 32435.08 33436.66 31476.86 32615.25 31981.33 32188.69 33100.83 31546.74
## [41] 32008.30 32508.22 33276.33 31087.93 30722.88 29785.74 30182.13 30729.34
## [49] 30148.40 29942.74 28700.20 27787.35 27610.40 28118.17 27022.38 27653.68
## [57] 26853.69 27025.77 27956.04 28953.99 28640.61 28470.43 27349.11 26883.50
## [65] 27014.45 27389.40 27741.10 27231.40 27392.87 27390.95 27375.37 28619.90
## [73] 30012.50 31065.93 31045.75 29455.29 28614.94 28912.27 27885.44 28042.23
## [81] 28045.70 29599.52 30602.79 30197.33 29768.72 28321.51 28754.22 28804.85
## [89] 29978.96 30657.59 32089.33 33376.27 33396.60 33099.98 32460.69 32778.68
## [97] 32078.60 31715.52 33023.88 33554.04 32814.14
Giả sử tôi là người đầu tư cổ phiếu FTS vào ngày 4/8/2023 có trị giá là 33.200
Vì vậy tôi nhận định là nếu thấp hơn 33.200 là phiên giảm giá và trên 33.200 là tăng giá
Với khẩu vị cutloss là 15% khi giá dưới 28.220, khoảng giá giảm vừa là từ 28.220đ đến 33.200đ và giá cổ phiếu tăng nhiều khi trên 50%(49.800), giá cổ phiếu tăng vừa là khoảng 33.200 đến 49.800đ.
giamgiavua2 <- prices[prices > 28220 & prices < 33200]
cutloss2 <- prices[prices < 28220]
tanggiavua2 <- prices[prices> 33200 & prices < 49800]
tangnhieu2 <- prices[prices > 49800]
table(cut(prices,breaks = 4))
##
## (2.68e+04,2.93e+04] (2.93e+04,3.17e+04] (3.17e+04,3.41e+04] (3.41e+04,3.65e+04]
## 30 28 33 10
table(cut(prices,4, labels=c('giamgiavua','cutloss','tanggiavua','tangnhieu')))
##
## giamgiavua cutloss tanggiavua tangnhieu
## 30 28 33 10
Vậy tôi dự báo trong 100 phiến tới theo mô hình 2, khả năng sẽ có 58 phiên giảm giá và 43 phiên tăng giá, trong đó có 30 phiên giảm vừa, 28 phiên cutloss, 33 phiên tăng vừa và 10 tăng nhiều.
Mohinhhai <- c(giamgiavua = 30, cutloss = 28, tanggiavua = 33, tangnhieu = 11)
barplot(Mohinhhai, names.arg = labels, col = colors)
Trong bài tiểu luận này, tôi đã mô phỏng giá cổ phiếu FTS theo hai mô hình khác nhau là mô hình hồi quy đa tuyến tính và Monte Carlo. Mô hình hồi quy dựa trên biến phụ thuộc là FTS với các biến độc lập là VNI, BRENT, GOLD, FX và IOR. Mô hình Monte Carlo dựa trên phương sai và độ lệch chuẩn của giá cổ phiếu trong quá khứ. Kết quả cho thấy mô hình Monte Carlo có độ chính xác cao hơn mô hình hồi quy trong trường hợp cụ thể của tôi, vì các biến độc lập trong mô hình hồi quy có thể bị thay đổi bởi tác động xung quanh còn mô hình Monte Carlo có thể bắt được những biến động ngẫu nhiên và không đều của giá cổ phiếu, trong khi mô hình hồi quy chỉ phản ánh được xu hướng trung bình của các biến độc lập. Tuy nhiên, mô hình Monte Carlo cũng có nhược điểm là tốn nhiều thời gian về việc tìm hiểu, trong khi mô hình hồi quy có ưu điểm là đơn giản và nhanh chóng. Do đó, tùy vào mục tiêu và điều kiện của từng nghiên cứu, người ta có thể lựa chọn mô hình phù hợp để mô phỏng giá cổ phiếu. Tuy nhiên, không có một mô hình nào có thể dự đoán chính xác giá cổ phiếu trong tương lai, vì giá cổ phiếu phụ thuộc vào nhiều yếu tố khác nhau, như cung và cầu, tin tức, sự kiện, tâm lý nhà đầu tư,… Mô phỏng giá cổ phiếu chỉ là một công cụ hỗ trợ, không phải là một công thức bí mật. Nhà đầu tư nên sử dụng mô phỏng giá cổ phiếu kết hợp với các phương pháp phân tích khác, như phân tích kỹ thuật, phân tích cơ bản, phân tích mô hình giá,… để có được cái nhìn toàn diện về thị trường và cổ phiếu mình quan tâm.