require(tidyverse)
## Loading required package: tidyverse
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.0     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.1     ✔ tibble    3.1.8
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(ggplot2)
library(readxl)
## Warning: package 'readxl' was built under R version 4.2.3
library(plm)
## 
## Attaching package: 'plm'
## 
## The following objects are masked from 'package:dplyr':
## 
##     between, lag, lead
library(lmtest)
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.2.3
## 
## Attaching package: 'zoo'
## 
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
setwd("C:/MPNN2")
data <- read_excel("data.xlsx",3)
## New names:
## • `` -> `...1`
data <- data[,2:8]
data

1 Bài tập về nhà tuần 6

Câu 5: Chạy mô hình với các phân phối khác nhau của các biến đầu vào.

Sau khi kiểm định phân phối cho các biến độc lập thì kết quả cho thấy các biến độc lập đều không tuân theo phân phối nào. Vì thế tác giả sẽ sử dụng chuyển động Brown để mô phỏng lại các biến độc lập theo công thức sau:

\[S_t=S_0exp((μ−σ^{2}/2)t+σW_t\]

Trong đó

\(S_0\): Giá gốc ban đầu

μ: Giá trị trung bình của tỷ giá sinh lời kỳ vọng

σ: Độ biến động của tỷ giá sinh lời kỳ vọng

  • Tính tỷ suất sinh lời cho các biến
r_exr <- diff(log(data$EXR))
r_vni <- diff(log(data$VNI))
r_hnx <- diff(log(data$HNX))
r_sp500 <- diff(log(data$SP500))
r_xau <- diff(log(data$XAU))
r_wti <- diff(log(data$WTI))

1.1 Mô phỏng các biến độc lập

  • Biến EXR
set.seed(123)

gbm.f = function(n,S0,mu,sigma){
  t = 1
  t.s = seq(0,t,length = n)
  dt = t/n
  Bt = sqrt(t)*cumsum(rnorm((n),0,1))
  St = S0*exp((mu-sigma^2/2)*t.s + sigma*Bt)
  St # Kết quả của GBM
}
n <- 10000
S0 <- data$EXR[1] #dữ liệu gốc
mu <- (1/(n*(1/n)))*sum(r_exr) #tính lợi nhuận kỳ vọng giá
sigma <- sqrt((sum((r_exr-mu)^2))*(1/(n-1)*(1/n))) #tính độ biến động giá
EXR <- gbm.f(n,S0,mu,sigma)
plot(EXR, type = 'l', col = 'green', main = "Tỷ giá hối đoái", ylab = "EXR", xlab = "Ngày")

  • Biến VNI
set.seed(123)

gbm.f = function(n,S0,mu,sigma){
  t = 1
  t.s = seq(0,t,length = n)
  dt = t/n
  Bt = sqrt(t)*cumsum(rnorm((n),0,1))
  St = S0*exp((mu-sigma^2/2)*t.s + sigma*Bt)
  St # Kết quả của GBM
}
n <- 10000
S0 <- data$VNI[1] #dữ liệu gốc
mu <- (1/(n*(1/n)))*sum(r_vni) #tính lợi nhuận kỳ vọng giá
sigma <- sqrt((sum((r_vni-mu)^2))*(1/(n-1)*(1/n))) #tính độ biến động giá
VNI <- gbm.f(n,S0,mu,sigma)
plot(VNI, type = 'l', col = 'green', main = "Chỉ số VN-Index", ylab = "VNI", xlab = "Ngày")

  • Biến HNX
set.seed(123)

gbm.f = function(n,S0,mu,sigma){
  t = 1
  t.s = seq(0,t,length = n)
  dt = t/n
  Bt = sqrt(t)*cumsum(rnorm((n),0,1))
  St = S0*exp((mu-sigma^2/2)*t.s + sigma*Bt)
  St # Kết quả của GBM
}
n <- 10000
S0 <- data$HNX[1] #dữ liệu gốc
mu <- (1/(n*(1/n)))*sum(r_hnx) #tính lợi nhuận kỳ vọng giá
sigma <- sqrt((sum((r_hnx-mu)^2))*(1/(n-1)*(1/n))) #tính độ biến động giá
HNX <- gbm.f(n,S0,mu,sigma)
plot(HNX, type = 'l', col = 'green', main = "Chỉ số HNX-Index", ylab = "HNX", xlab = "Ngày")

  • Biến SP500
set.seed(123)

gbm.f = function(n,S0,mu,sigma){
  t = 1
  t.s = seq(0,t,length = n)
  dt = t/n
  Bt = sqrt(t)*cumsum(rnorm((n),0,1))
  St = S0*exp((mu-sigma^2/2)*t.s + sigma*Bt)
  St # Kết quả của GBM
}
n <- 10000
S0 <- data$SP500[1] #dữ liệu gốc
mu <- (1/(n*(1/n)))*sum(r_sp500) #tính lợi nhuận kỳ vọng giá
sigma <- sqrt((sum((r_sp500-mu)^2))*(1/(n-1)*(1/n))) #tính độ biến động giá
SP500 <- gbm.f(n,S0,mu,sigma)
plot(SP500, type = 'l', col = 'green', main = "Chỉ số SP500-Index", ylab = "SP500", xlab = "Ngày")

  • Biến XAU
set.seed(123)

gbm.f = function(n,S0,mu,sigma){
  t = 1
  t.s = seq(0,t,length = n)
  dt = t/n
  Bt = sqrt(t)*cumsum(rnorm((n),0,1))
  St = S0*exp((mu-sigma^2/2)*t.s + sigma*Bt)
  St # Kết quả của GBM
}
n <- 10000
S0 <- data$XAU[1] #dữ liệu gốc
mu <- (1/(n*(1/n)))*sum(r_xau) #tính lợi nhuận kỳ vọng giá
sigma <- sqrt((sum((r_xau-mu)^2))*(1/(n-1)*(1/n))) #tính độ biến động giá
XAU <- gbm.f(n,S0,mu,sigma)
plot(XAU, type = 'l', col = 'green', main = "Tỷ giá vàng", ylab = "XAU", xlab = "Ngày")

  • Biến WTI
set.seed(123)

gbm.f = function(n,S0,mu,sigma){
  t = 1
  t.s = seq(0,t,length = n)
  dt = t/n
  Bt = sqrt(t)*cumsum(rnorm((n),0,1))
  St = S0*exp((mu-sigma^2/2)*t.s + sigma*Bt)
  St # Kết quả của GBM
}
n <- 10000
S0 <- data$WTI[1] #dữ liệu gốc
mu <- (1/(n*(1/n)))*sum(r_wti) #tính lợi nhuận kỳ vọng giá
sigma <- sqrt((sum((r_wti-mu)^2))*(1/(n-1)*(1/n))) #tính độ biến động giá
WTI <- gbm.f(n,S0,mu,sigma)
plot(WTI, type = 'l', col = 'green', main = "TỶ giá dầu", ylab = "WTI", xlab = "Ngày")

1.2 Mô phỏng mô hình

Mô hình đã được xây dựng:

\[CTG= -4,305e^{+04} + 2,320e^{+00}EXR - 5,602e^{+01}HNX +4,974e^{+01}VNI - 1,151e^{+00}SP500 - 1,094e^{+01}XAU - 1,855e^{+01}WTI\]

# Mô phỏng mô hình
CTG <- -4.305e+04 + 2.320e+00*EXR +4.974e+01*VNI - 5.602e+01*HNX - 1.151e+00*SP500 - 1.094e+01*XAU - 1.855e+01*WTI
plot(CTG, type = 'l', col = 'pink', main = "Giá cổ phiếu CTG", ylab = "CTG", xlab = "Ngày")

summary(CTG)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   29509   30704   31566   31487   32369   32892
# Đặt quy ước nếu giá cổ phiếu CTG được xem là cao nếu lớn hơn hoặc bằng 31487 và giá cổ phiếu CTG được xem là thấp nếu nhỏ hơn 31487
CTGthap <- CTG[CTG < 31487]
CTGcao <- CTG[CTG >= 31487]
table(cut(CTG,breaks=2))
## 
## (2.95e+04,3.12e+04] (3.12e+04,3.29e+04] 
##                3852                6148
table(cut(CTG,2,labels = c('thap','cao')))
## 
## thap  cao 
## 3852 6148
length(CTGthap)/length(CTG)
## [1] 0.4632

Từ kết quả trên ta thấy xác xuất giá cổ phiếu CTG thấp hơn 31487VND là 46,32%, hay nói cách khác trong 10000 ngày nữa thì xác suất để giá của giá cổ phiếu CTG dưới 31487VND là 46,32%.

length(CTGcao)/length(CTG)
## [1] 0.5368

Từ kết quả trên ta thấy xác xuất giá cổ phiếu CTG cao hơn hoặc bằng 31487VND là 53,68%, hay nói cách khác trong 10000 ngày nữa thì xác suất để giá của giá cổ phiếu CTG cao hơn hoặc bằng 31487VND là 53,68%.

2 Bài tập về nhà tuần 5

Câu 4: Xây dựng mô hình cho đối tượng cần mô phỏng và giải thích mô hình.

  • Dữ liệu nghiên cứu

Dữ liệu nghiên cứu được thu thập tại trang web Investing.com bao gồm: tỷ giá hối đoái, chỉ số VNI, giá dầu, giá vàng, giá đóng cửa của cổ phiếu của ngân hàng Vietcombank và ngân hàng Vietinbank trong giai đoạn từ 01/2017 đến 08/2023 để xem xét sự tác động của các yếu tố đến giá cổ phiếu ngân hàng VietinBank.

  • Mô hình đề xuất

\[CTG= β_0 + β_1VNI + β_2EXR + β_3HNX + β_4SP500 + β_5XAU + β_6WTI\]

Trong đó

CTG: Giá đóng cửa của cổ phiếu ngân hàng TMCP VietinBank

HNX: Chỉ số phản ánh biến động giá cổ phiếu được niêm yết trên sàn Hà Nội

EXR: Tỷ giá đồng đola Mỹ so với đồng Việt Nam

VNI: Chỉ số phản ánh biến động giá cổ phiếu được niêm yết trên sàn TPHCM

SP500: Chỉ số chứng khoán được dựa trên vốn hóa của 500 công ty đại chúng lớn nhất nước Mỹ

XAU: Tỷ giá vàng (XAU/USD)

WTI: Tỷ giá dầu (WTI/USD)

2.1 Chạy mô hình đề xuất

mh1 <- lm(data$CTG ~ data$EXR + data$HNX+ data$VNI + data$SP500 + data$XAU + data$WTI)
summary(mh1)
## 
## Call:
## lm(formula = data$CTG ~ data$EXR + data$HNX + data$VNI + data$SP500 + 
##     data$XAU + data$WTI)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5060.4 -1631.2   -21.7  1457.3  6426.6 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -4.305e+04  8.565e+03  -5.026 6.51e-07 ***
## data$EXR     2.320e+00  2.884e-01   8.044 4.24e-15 ***
## data$HNX    -5.602e+01  3.941e+00 -14.214  < 2e-16 ***
## data$VNI     4.974e+01  2.217e+00  22.434  < 2e-16 ***
## data$SP500  -1.151e+00  5.720e-01  -2.013   0.0445 *  
## data$XAU    -1.094e+01  1.383e+00  -7.915 1.10e-14 ***
## data$WTI    -1.855e+01  4.043e+00  -4.589 5.37e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2095 on 638 degrees of freedom
## Multiple R-squared:  0.7005, Adjusted R-squared:  0.6977 
## F-statistic: 248.7 on 6 and 638 DF,  p-value: < 2.2e-16

Từ kết quả trên ta có mô hình sau:

\[CTG= -4,305e^{+04} + 2,320e^{+00}EXR - 5,602e^{+01}HNX +4,974e^{+01} - 1,151e^{+00}SP500 - 1,094e^{+01}XAU - 1,855e^{+01}WTI\]

Thông qua kết quả hồi quy cho thấy có 5 biến có ý nghĩa thống kê với mức ý nghĩa 5% là biến EXR, VNI, SP500, XAU và WTI có tác động đến giá cổ phiếu của VietinBank - CTG. Trong điều kiện các yếu tố khác không đổi:

Biến EXR có mối tương quan cùng chiều với giá cổ phiếu Vietinbank cho thấy khi tỷ giá hối đoái tăng 1 thì giá cổ phiếu CTG tăng 1.977e+01

Biến VNI có mối tương quan cùng chiều với giá cổ phiếu Vietinbank cho thấy khi chỉ số VN-Index tăng 1 điểm thì giá cổ phiếu CTG tăng 1.672e+00

Biến SP500 có mối tương quan cùng chiều với giá cổ phiếu Vietinbank cho thấy khi chỉ số SP500 tăng 1 điểm thì giá cổ phiếu CTG tăng 1.264e+00

Biến XAU có mối tương quan cùng chiều với giá cổ phiếu Vietinbank cho thấy khi tỷ giá vàng tăng 1 USD thì giá cổ phiếu CTG tăng 6.480e+00

Biến WTI có mối tương quan cùng chiều với giá cổ phiếu Vietinbank cho thấy khi tỷ giá dầu tăng 1 USD thì giá cổ phiếu CTG tăng 6.480e+00

Ngoài ra, biến HNX không có ý nghĩa thống kê tại mức 5%, nghĩa là chỉ số HNX không có ảnh hưởng đến giá cổ phiếu CTG

3 Bài tập về nhà tuần 4

Câu 3: Xác định phân phối cho các biến (ngẫu nhiên) đầu vào, giải thích.

3.1 Biến EXR

  • Thống kê mô tả
summary(data$EXR)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   22625   22933   23078   23214   23400   24871
sd(data$EXR)
## [1] 477.7447

Biến EXR có giá trị trung bình là 23214 tức là giá đóng cửa trung bình của tỷ giá hối đoái là 23214VND/USD và giá trị trung vị là 23078. Biến này đạt giá trị thấp nhất là 22625VND/USD và đạt cao nhất là 24871VND/USD. Với độ lệch chuẩn là 477,7447

  • Đồ thị Histogram
hist(data$EXR)

  • Đồ thị QQ-plot
qqnorm(data$EXR)
qqline(data$EXR)

  • Kiểm định phân phối chuẩn thông qua kiểm định Shapiro-Wilk Test

Cặp giả thuyết - đối thuyết

\(H_0\): Biến EXR tuân theo phân phối chuẩn

\(H_1\): Biến EXR không tuân theo phân phối chuẩn

shapiro.test(data$EXR)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$EXR
## W = 0.81748, p-value < 2.2e-16

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến EXR không tuân theo phân phối chuẩn.

  • Kiểm định phân phối thông qua kiểm định Kolmogorov - Smirnov

Phân phối loga chuẩn

Cặp giả thuyết - đối thuyết

\(H_0\): Biến EXR tuân theo phân phối loga chuẩn

\(H_1\): Biến EXR không tuân theo phân phối loga chuẩn

ks.test(data$EXR, y = 'plnorm')
## Warning in ks.test.default(data$EXR, y = "plnorm"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$EXR
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến EXR không tuân theo phân phối loga chuẩn.

Phân phối mũ

Cặp giả thuyết - đối thuyết

\(H_0\): Biến EXR tuân theo phân phối mũ

\(H_1\): Biến EXR không tuân theo phân phối mũ

ks.test(data$EXR, y = 'pexp')
## Warning in ks.test.default(data$EXR, y = "pexp"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$EXR
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến EXR không tuân theo phân phối mũ.

Phân phối đều

Cặp giả thuyết - đối thuyết

\(H_0\): Biến EXR tuân theo phân phối đều

\(H_1\): Biến EXR không tuân theo phân phối đều

ks.test(data$EXR, y = 'punif')
## Warning in ks.test.default(data$EXR, y = "punif"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$EXR
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến EXR không tuân theo phân phối đều.

3.2 Biến VNI

  • Thống kê mô tả
summary(data$VNI)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   911.9  1088.3  1230.3  1238.2  1359.9  1528.6
sd(data$VNI)
## [1] 158.3755

Biến VNI có giá trị trung bình là 1238,2 tức là giá trị trung bình của chỉ số VNindex là 1238,2 điểm và giá trị trung vị là 1230,3. Biến này đạt giá trị thấp nhất là 911,9 điểm và đạt cao nhất là 1528,6 điểm. Với độ lệch chuẩn là 158,3755

  • Đồ thị Histogram
hist(data$VNI)

  • Đồ thị QQ-plot
qqnorm(data$VNI)
qqline(data$VNI)

  • Kiểm định phân phối chuẩn thông qua kiểm định Shapiro-Wilk Test

Cặp giả thuyết - đối thuyết

\(H_0\): Biến VNI tuân theo phân phối chuẩn

\(H_1\): Biến VNI không tuân theo phân phối chuẩn

shapiro.test(data$VNI)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$VNI
## W = 0.95319, p-value = 1.921e-13

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến VNI không tuân theo phân phối chuẩn.

  • Kiểm định phân phối thông qua kiểm định Kolmogorov - Smirnov

Phân phối loga chuẩn

Cặp giả thuyết - đối thuyết

\(H_0\): Biến VNI tuân theo phân phối loga chuẩn

\(H_1\): Biến VNI không tuân theo phân phối loga chuẩn

ks.test(data$VNI, y = 'plnorm')
## Warning in ks.test.default(data$VNI, y = "plnorm"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$VNI
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến VNI không tuân theo phân phối loga chuẩn.

Phân phối mũ

Cặp giả thuyết - đối thuyết

\(H_0\): Biến VNI tuân theo phân phối mũ

\(H_1\): Biến VNI không tuân theo phân phối mũ

ks.test(data$VNI, y = 'pexp')
## Warning in ks.test.default(data$VNI, y = "pexp"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$VNI
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến VNI không tuân theo phân phối mũ.

Phân phối đều

Cặp giả thuyết - đối thuyết

\(H_0\): Biến VNI tuân theo phân phối đều

\(H_1\): Biến VNI không tuân theo phân phối đều

ks.test(data$VNI, y = 'punif')
## Warning in ks.test.default(data$VNI, y = "punif"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$VNI
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến VNI không tuân theo phân phối đều.

3.3 Biến HNX

  • Thống kê mô tả
summary(data$HNX)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   175.8   221.3   284.6   298.1   346.5   493.8
sd(data$HNX)
## [1] 84.05601

Biến HNX có giá trị trung bình là 298,1 tức là giá trị trung bình của chỉ số HNX là 298,1 điểm và giá trị trung vị là 284,6 . Biến này đạt giá trị thấp nhất là 175,8 điểm và đạt cao nhất là 493,8 điểm. Với độ lệch chuẩn là 84,05601

  • Đồ thị Histogram
hist(data$HNX)

  • Đồ thị QQ-plot
qqnorm(data$HNX)
qqline(data$HNX)

  • Kiểm định phân phối chuẩn thông qua kiểm định Shapiro-Wilk Test

Cặp giả thuyết - đối thuyết

\(H_0\): Biến HNX tuân theo phân phối chuẩn

\(H_1\): Biến HNX không tuân theo phân phối chuẩn

shapiro.test(data$HNX)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$HNX
## W = 0.89842, p-value < 2.2e-16

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến HNX không tuân theo phân phối chuẩn.

  • Kiểm định phân phối thông qua kiểm định Kolmogorov - Smirnov

Phân phối loga chuẩn

Cặp giả thuyết - đối thuyết

\(H_0\): Biến HNX tuân theo phân phối loga chuẩn

\(H_1\): Biến HNX không tuân theo phân phối loga chuẩn

ks.test(data$HNX, y = 'plnorm')
## Warning in ks.test.default(data$HNX, y = "plnorm"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$HNX
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến HNX không tuân theo phân phối loga chuẩn.

Phân phối mũ

Cặp giả thuyết - đối thuyết

\(H_0\): Biến HNX tuân theo phân phối mũ

\(H_1\): Biến HNX không tuân theo phân phối mũ

ks.test(data$HNX, y = 'pexp')
## Warning in ks.test.default(data$HNX, y = "pexp"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$HNX
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến HNX không tuân theo phân phối mũ.

Phân phối đều

Cặp giả thuyết - đối thuyết

\(H_0\): Biến HNX tuân theo phân phối đều

\(H_1\): Biến HNX không tuân theo phân phối đều

ks.test(data$HNX, y = 'punif')
## Warning in ks.test.default(data$HNX, y = "punif"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$HNX
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến HNX không tuân theo phân phối đều.

3.4 Biến SP500

  • Thống kê mô tả
summary(data$SP500)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    3577    3929    4137    4157    4385    4797
sd(data$SP500)
## [1] 286.7793

Biến SP500 có giá trị trung bình là 4157 tức là giá trị trung bình của chỉ số S&P500 là 4157 điểm và giá trị trung vị là 4137. Biến này đạt giá trị thấp nhất là 3577 điểm và đạt cao nhất là 4797 điểm. Với độ lệch chuẩn là 286,7793

  • Đồ thị Histogram
hist(data$SP500)

  • Đồ thị QQ-plot
qqnorm(data$SP500)
qqline(data$SP500)

  • Kiểm định phân phối chuẩn thông qua kiểm định Shapiro-Wilk Test

Cặp giả thuyết - đối thuyết

\(H_0\): Biến SP500 tuân theo phân phối chuẩn

\(H_1\): Biến SP500 không tuân theo phân phối chuẩn

shapiro.test(data$SP500)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$SP500
## W = 0.97759, p-value = 2.253e-08

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến SP500 không tuân theo phân phối chuẩn.

  • Kiểm định phân phối thông qua kiểm định Kolmogorov - Smirnov

Phân phối loga chuẩn

Cặp giả thuyết - đối thuyết

\(H_0\): Biến SP500 tuân theo phân phối loga chuẩn

\(H_1\): Biến SP500 không tuân theo phân phối loga chuẩn

ks.test(data$SP500, y = 'plnorm')
## Warning in ks.test.default(data$SP500, y = "plnorm"): ties should not be
## present for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$SP500
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến SP500 không tuân theo phân phối loga chuẩn.

Phân phối mũ

Cặp giả thuyết - đối thuyết

\(H_0\): Biến SP500 tuân theo phân phối mũ

\(H_1\): Biến SP500 không tuân theo phân phối mũ

ks.test(data$SP500, y = 'pexp')
## Warning in ks.test.default(data$SP500, y = "pexp"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$SP500
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến SP500 không tuân theo phân phối mũ.

Phân phối đều

Cặp giả thuyết - đối thuyết

\(H_0\): Biến SP500 tuân theo phân phối đều

\(H_1\): Biến SP500 không tuân theo phân phối đều

ks.test(data$SP500, y = 'punif')
## Warning in ks.test.default(data$SP500, y = "punif"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$SP500
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến SP500 không tuân theo phân phối đều.

3.5 Biến XAU

  • Thống kê mô tả
summary(data$XAU)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1622    1770    1812    1816    1870    2052
sd(data$XAU)
## [1] 76.01253

Biến XAU có giá trị trung bình là 1816 tức là giá trị trung bình của tỷ giá vàng là 1816USD và giá trị trung vị là 1812. Biến này đạt giá trị thấp nhất là 1622USD và đạt cao nhất là 2052USD. Với độ lệch chuẩn là 76,01253

  • Đồ thị Histogram
hist(data$XAU)

  • Đồ thị QQ-plot
qqnorm(data$XAU)
qqline(data$XAU)

  • Kiểm định phân phối chuẩn thông qua kiểm định Shapiro-Wilk Test

Cặp giả thuyết - đối thuyết

\(H_0\): Biến XAU tuân theo phân phối chuẩn

\(H_1\): Biến XAU không tuân theo phân phối chuẩn

shapiro.test(data$XAU)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$XAU
## W = 0.99478, p-value = 0.02698

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến XAU không tuân theo phân phối chuẩn.

  • Kiểm định phân phối thông qua kiểm định Kolmogorov - Smirnov

Phân phối loga chuẩn

Cặp giả thuyết - đối thuyết

\(H_0\): Biến XAU tuân theo phân phối loga chuẩn

\(H_1\): Biến XAU không tuân theo phân phối loga chuẩn

ks.test(data$XAU, y = 'plnorm')
## Warning in ks.test.default(data$XAU, y = "plnorm"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$XAU
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến XAU không tuân theo phân phối loga chuẩn.

Phân phối mũ

Cặp giả thuyết - đối thuyết

\(H_0\): Biến XAU tuân theo phân phối mũ

\(H_1\): Biến XAU không tuân theo phân phối mũ

ks.test(data$XAU, y = 'pexp')
## Warning in ks.test.default(data$XAU, y = "pexp"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$XAU
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến XAU không tuân theo phân phối mũ.

Phân phối đều

Cặp giả thuyết - đối thuyết

\(H_0\): Biến XAU tuân theo phân phối đều

\(H_1\): Biến XAU không tuân theo phân phối đều

ks.test(data$XAU, y = 'punif')
## Warning in ks.test.default(data$XAU, y = "punif"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$XAU
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến XAU không tuân theo phân phối đều.

3.6 Biến WTI

  • Thống kê mô tả
summary(data$WTI)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    8.27   41.07   65.44   61.10   78.53  128.26
sd(data$WTI)
## [1] 27.39851

Biến EXR có giá trị trung bình là 61,10 tức là giá trị trung bình của giá dầu là 61,10USD và giá trị trung vị là 65,44. Biến này đạt giá trị thấp nhất là 8.27USD và đạt cao nhất là 128,26USD. Với độ lệch chuẩn là 27,39851

  • Đồ thị Histogram
hist(data$WTI)

  • Đồ thị QQ-plot
qqnorm(data$WTI)
qqline(data$WTI)

  • Kiểm định phân phối chuẩn thông qua kiểm định Shapiro-Wilk Test

Cặp giả thuyết - đối thuyết

\(H_0\): Biến WTI tuân theo phân phối chuẩn

\(H_1\): Biến WTI không tuân theo phân phối chuẩn

shapiro.test(data$WTI)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$WTI
## W = 0.97093, p-value = 5.208e-10

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến WTI không tuân theo phân phối chuẩn.

  • Kiểm định phân phối thông qua kiểm định Kolmogorov - Smirnov

Phân phối loga chuẩn

Cặp giả thuyết - đối thuyết

\(H_0\): Biến WTI tuân theo phân phối loga chuẩn

\(H_1\): Biến WTI không tuân theo phân phối loga chuẩn

ks.test(data$WTI, y = 'plnorm')
## Warning in ks.test.default(data$WTI, y = "plnorm"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$WTI
## D = 0.98268, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến WTI không tuân theo phân phối loga chuẩn.

Phân phối mũ

Cặp giả thuyết - đối thuyết

\(H_0\): Biến WTI tuân theo phân phối mũ

\(H_1\): Biến WTI không tuân theo phân phối mũ

ks.test(data$WTI, y = 'pexp')
## Warning in ks.test.default(data$WTI, y = "pexp"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$WTI
## D = 0.99974, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến WTI không tuân theo phân phối mũ.

Phân phối đều

Cặp giả thuyết - đối thuyết

\(H_0\): Biến WTI tuân theo phân phối đều

\(H_1\): Biến WTI không tuân theo phân phối đều

ks.test(data$WTI, y = 'punif')
## Warning in ks.test.default(data$WTI, y = "punif"): ties should not be present
## for the Kolmogorov-Smirnov test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  data$WTI
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided

Kết quả kiểm định cho thấy p-value < 0,05 nên ta không thừa nhận giả thuyết \(H_0\), tại mức ý nghĩa 5% thì biến WTI không tuân theo phân phối đều.

4 Bài tập về nhà tuần 2-3

Câu 2: Chọn và giải thích về đối tượng (vấn đề) cần mô phỏng (có ít nhất 6 biến ngẫu nhiên đầu vào)

4.1 Đề tài

Mô phỏng các yếu tố ảnh hưởng đến giá cổ phiếu của ngân hàng TMCP Công thương Việt Nam - Vietinbank

4.2 Chọn và giải thích đối tượng

  • Biến đầu ra

CTG: Giá đóng cửa của cổ phiếu ngân hàng TMCP VietinBank

  • Biến đầu vào

HNX: Chỉ số phản ánh biến động giá cổ phiếu được niêm yết trên sàn Hà Nội

EXR: Tỷ giá đồng đola Mỹ so với đồng Việt Nam

VNI: Chỉ số phản ánh biến động giá cổ phiếu được niêm yết trên sàn TPHCM

SP500: Chỉ số chứng khoán được dựa trên vốn hóa của 500 công ty đại chúng lớn nhất nước Mỹ

XAU: Giá vàng (XAU/USD)

WTI: Giá dầu (WTI/USD)

4.3 Mô hình nghiên cứu

  • Dữ liệu nghiên cứu

Dữ liệu nghiên cứu được thu thập tại trang web Investing.com bao gồm: tỷ giá hối đoái, chỉ số VNI, giá dầu, giá vàng, giá đóng cửa của cổ phiếu của ngân hàng Vietcombank và ngân hàng Vietinbank trong giai đoạn từ 01/2021 đến 08/2023 để xem xét sự tác động của các yếu tố đến giá cổ phiếu ngân hàng VietinBank.

  • Mô hình đề xuất

\[CTG= β_0 + β_1EXR + β_2VNI + β_3HNX + β_4SP500 + β_5XAU + β_6WTI\]

Trong đó

  • \(β_0\): Hằng số của mô hình

  • \(β_1 ... β_6\): Hệ số hồi quy của các biến độc lập

Trong mô hình này sẽ phân tích sự tác động của các yếu tố đến tỷ giá hối đoái

  • Biến phụ thuộc: Giá cổ phiếu ngân hàng Vietinbank (CTG)

  • Biến độc lập: TỶ giá hối đoái (EXR), Chỉ số VN-index (VNI), chỉ số HNX-index (HNX) chỉ số S&P500-index (S&P500), giá dầu (WTI), giá vàng (XAU)

5 Bài tập về nhà tuần 1

Câu 1: Mô phỏng ít nhất 5 biến ngẫu nhiên (có phân phối xác suất khác nhau), mô phỏng, vẽ đồ thị, tính toán các đặc trưng đo lường và giải thích ý nghĩa.

5.1 Mô phỏng các biến ngẫu nhiên

5.1.1 Biến HNX

Mô phỏng ngẫu nhiên biến HNX có phân phối đều với n = 10000

hnx <- runif(10000,500,1000)
hnx <- round(hnx, digits=0)
hist(hnx)

5.1.2 Biến EXR

Mô phỏng ngẫu nhiên biến EXR có phân phối Poisson với n=10000

exr <- rpois (10000,23100)
hist(exr)

5.1.3 Biến VNI

Mô phỏng ngẫu nhiên biến VNI có phân phối chuẩn với kỳ vọng = 1042,6 và độ lệch chuẩn = 10 với n = 10000

summary(data$VNI)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   911.9  1088.3  1230.3  1238.2  1359.9  1528.6
sd(data$VNI)
## [1] 158.3755
vni <- rnorm(10000, mean=1042.6, sd = 10)
vni <- round(vni, digits=0)
hist(vni)

vni <- as.data.frame(vni)
ggplot(vni, aes(vni)) + 
  geom_density(color = 'red')

5.1.4 Biến S&P500

Mô phỏng ngẫu nhiên biến S&P500 có phân phối mũ với xác suất là 50%:

sp500 <- rexp(10000,0.5)
sp500 <- round (sp500,digits=0)
hist(sp500)

5.1.5 Biến XAU

Mô phỏng biến XAU có phân phối nhị thức với n = 10000 và xác suất là 50%

xau <- rbinom(10000,1000,0.5)
table(xau)
## xau
## 441 442 444 446 447 448 449 450 451 452 454 455 456 457 458 459 460 461 462 463 
##   1   1   3   1   2   1   4   2   3   1   3   4   3   5  15   6  12  26   9  17 
## 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 
##  21  16  27  32  29  38  50  52  59  62  70  85  87  66 104 117 108 113 127 154 
## 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 
## 148 173 146 185 185 194 197 182 199 215 230 227 247 252 230 264 245 259 217 231 
## 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 
## 228 251 254 239 225 225 189 222 205 175 172 175 158 131 147 124 117  90 110  96 
## 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 
##  70  65  85  61  47  42  42  38  33  32  33  19  18  21  13  12  15  15  10   7 
## 544 545 546 547 548 549 550 551 552 554 556 557 
##   3   3   6   1   1   4   1   1   3   2   1   1
hist(xau)

5.1.6 Biến WTI

Mô phỏng ngẫu nhiên biến WTI có phân phối mũ với xác suất là 5%:

wti <- rexp(10000,0.05)
wti <- round (wti,digits=0)
hist(wti)

5.2 Các đặc trưng đo lường

Với 6 biến ngẫu nhiên gồm HNX,EXR,VNI,S&P500,XAU,WTI có những đặc trưng đo lường như sau:

library(fBasics)
tong <- data.frame(hnx,exr,vni,sp500,xau,wti)
basicStats(tong)