ND <- read.csv("D:/MPNN/Nasdaq.csv")
str(ND)
## 'data.frame': 1055 obs. of 6 variables:
## $ ND100: num 6913 6892 6949 7062 6795 ...
## $ FS100: num 7005 7039 6980 7062 7023 ...
## $ DOLLA: num 96.2 96.2 96.7 96.4 96.3 ...
## $ BIT : num 4265 4296 4040 3898 3958 ...
## $ WTI : num 50.3 51.5 50.9 53 53.2 ...
## $ GOLD : num 1224 1230 1226 1240 1247 ...
link file word: https://docs.google.com/document/d/1Z_gk9QcrWzWBEB9pTso4e1XyTSmHWZbB/edit?usp=sharing&ouid=112984052592042481194&rtpof=true&sd=true
Để mô phỏng các biến đầu vào, tác giả sử dụng hàm ‘sample’ để tạo ra một mẫu ngẫu nhiên từ chuỗi dữ liệu gốc với kích thước mẫu là 10000 quan sát.
set.seed(123)
# Tạo bảng tần suất
FS <- table(cut(ND$FS100, 40, include.lowest = TRUE))
a1 <- runif(1, 4.99e+03,5.07e+03)
a2 <- runif(1, 5.07e+03,5.14e+03)
a3 <- runif(1, 5.14e+03,5.22e+03)
a4 <- runif(1, 5.22e+03,5.3e+03)
a5 <- runif(1, 5.3e+03,5.37e+03)
a6 <- runif(1, 5.37e+03,5.45e+03)
a7 <- runif(1, 5.45e+03,5.52e+03)
a8 <- runif(1, 5.52e+03,5.6e+03)
a9 <- runif(1, 5.6e+03,5.67e+03)
a10 <- runif(1, 5.67e+03,5.75e+03)
a11 <- runif(1, 5.75e+03,5.82e+03)
a12 <- runif(1, 5.82e+03,5.9e+03)
a13 <- runif(1, 5.9e+03,5.97e+03)
a14 <- runif(1, 5.97e+03,6.05e+03)
a15 <- runif(1, 6.05e+03,6.13e+03)
a16 <- runif(1, 6.13e+03,6.2e+03)
a17 <- runif(1, 6.2e+03,6.28e+03)
a18 <- runif(1, 6.28e+03,6.35e+03)
a19 <- runif(1, 6.35e+03,6.43e+03)
a20 <- runif(1, 6.43e+03,6.5e+03)
a21 <- runif(1, 6.5e+03,6.58e+03)
a22 <- runif(1, 6.58e+03,6.65e+03)
a23 <- runif(1, 6.65e+03,6.73e+03)
a24 <- runif(1, 6.73e+03,6.81e+03)
a25 <- runif(1, 6.81e+03,6.88e+03)
a26 <- runif(1, 6.88e+03,6.96e+03)
a27 <- runif(1, 6.96e+03,7.03e+03)
a28 <- runif(1, 7.03e+03,7.11e+03)
a29 <- runif(1, 7.11e+03,7.18e+03)
a30 <- runif(1, 7.18e+03,7.26e+03)
a31 <- runif(1, 7.26e+03,7.33e+03)
a32 <- runif(1, 7.33e+03,7.41e+03)
a33 <- runif(1, 7.41e+03,7.48e+03)
a34 <- runif(1, 7.48e+03,7.56e+03)
a35 <- runif(1, 7.56e+03,7.64e+03)
a36 <- runif(1, 7.64e+03,7.71e+03)
a37 <- runif(1, 7.71e+03,7.79e+03)
a38 <- runif(1, 7.79e+03,7.86e+03)
a39 <- runif(1, 7.86e+03,7.94e+03)
a40 <- runif(1, 7.94e+03,8.02e+03)
FTSE <- c(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a40)
# Mô phỏng dữ liệu mới dựa trên bảng tần suất
FS100 <- sample(as.numeric(FTSE), size = 10000, replace = TRUE, prob = prop.table(FTSE))
hist(FS100)
set.seed(123)
# Tạo bảng tần suất
BC <- table(cut(ND$BIT, 40, include.lowest = TRUE))
b1 <- runif(1, 3.18e+03,4.85e+03)
b2 <- runif(1, 4.85e+03,6.46e+03)
b3 <- runif(1, 6.46e+03,8.07e+03)
b4 <- runif(1, 8.07e+03,9.68e+03)
b5 <- runif(1, 9.68e+03,1.13e+04)
b6 <- runif(1, 1.13e+04,1.29e+04)
b7 <- runif(1, 1.29e+04,1.45e+04)
b8 <- runif(1, 1.45e+04,1.61e+04)
b9 <- runif(1, 1.61e+04,1.77e+04)
b10 <- runif(1, 1.77e+04,1.93e+04)
b11 <- runif(1, 1.93e+04,2.09e+04)
b12 <- runif(1, 2.09e+04,2.25e+04)
b13 <- runif(1, 2.25e+04,2.41e+04)
b14 <- runif(1, 2.41e+04,2.57e+04)
b15 <- runif(1, 2.57e+04,2.74e+04)
b16 <- runif(1, 2.74e+04,2.9e+04)
b17 <- runif(1, 2.9e+04,3.06e+04)
b18 <- runif(1, 3.06e+04,3.22e+04)
b19 <- runif(1, 3.22e+04,3.38e+04)
b20 <- runif(1, 3.38e+04,3.54e+04)
b21 <- runif(1, 3.54e+04,3.7e+04)
b22 <- runif(1, 3.7e+04,3.86e+04)
b23 <- runif(1, 3.86e+04,4.02e+04)
b24 <- runif(1, 4.02e+04,4.18e+04)
b25 <- runif(1, 4.18e+04,4.34e+04)
b26 <- runif(1, 4.34e+04,4.5e+04)
b27 <- runif(1, 4.5e+04,4.66e+04)
b28 <- runif(1, 4.66e+04,4.82e+04)
b29 <- runif(1, 4.82e+04,4.99e+04)
b30 <- runif(1, 4.99e+04,5.15e+04)
b31 <- runif(1, 5.15e+04,5.31e+04)
b32 <- runif(1, 5.31e+04,5.47e+04)
b33 <- runif(1, 5.47e+04,5.63e+04)
b34 <- runif(1, 5.63e+04,5.79e+04)
b35 <- runif(1, 5.79e+04,5.95e+04)
b36 <- runif(1, 5.95e+04,6.11e+04)
b37 <- runif(1, 6.11e+04,6.27e+04)
b38 <- runif(1, 6.27e+04,6.43e+04)
b39 <- runif(1, 6.43e+04,6.59e+04)
b40 <- runif(1, 6.59e+04,6.76e+04)
BT <- c(b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26,b27,b28,b29,b30,b31,b32,b33,b34,b35,b36,b37,b38,b39,b40)
# Mô phỏng dữ liệu mới dựa trên bảng tần suất
BIT <- sample(as.numeric(BT), size = 10000, replace = TRUE, prob = prop.table(BT))
hist(BIT)
set.seed(123)
# Tạo bảng tần suất
VANG <- table(cut(ND$GOLD, 40, include.lowest = TRUE))
e1 <- runif(1, 1.22e+03,1.24e+03)
e2 <- runif(1, 1.24e+03,1.27e+03)
e3 <- runif(1, 1.27e+03,1.29e+03)
e4 <- runif(1, 1.29e+03,1.31e+03)
e5 <- runif(1, 1.31e+03,1.33e+03)
e6 <- runif(1, 1.33e+03,1.35e+03)
e7 <- runif(1, 1.35e+03,1.37e+03)
e8 <- runif(1, 1.37e+03,1.39e+03)
e9 <- runif(1, 1.39e+03,1.41e+03)
e10 <- runif(1, 1.41e+03,1.44e+03)
e11 <- runif(1, 1.44e+03,1.46e+03)
e12 <- runif(1, 1.46e+03,1.48e+03)
e13 <- runif(1, 1.48e+03,1.5e+03)
e14 <- runif(1, 1.5e+03,1.52e+03)
e15 <- runif(1, 1.52e+03,1.54e+03)
e16 <- runif(1, 1.54e+03,1.56e+03)
e17 <- runif(1, 1.56e+03,1.58e+03)
e18 <- runif(1, 1.58e+03,1.6e+03)
e19 <- runif(1, 1.6e+03,1.63e+03)
e20 <- runif(1, 1.63e+03,1.65e+03)
e21 <- runif(1, 1.65e+03,1.67e+03)
e22 <- runif(1, 1.67e+03,1.69e+03)
e23 <- runif(1, 1.69e+03,1.71e+03)
e24 <- runif(1, 1.71e+03,1.73e+03)
e25 <- runif(1, 1.73e+03,1.75e+03)
e26 <- runif(1, 1.75e+03,1.77e+03)
e27 <- runif(1, 1.77e+03,1.79e+03)
e28 <- runif(1, 1.79e+03,1.82e+03)
e29 <- runif(1, 1.82e+03,1.84e+03)
e30 <- runif(1, 1.84e+03,1.86e+03)
e31 <- runif(1, 1.86e+03,1.88e+03)
e32 <- runif(1, 1.88e+03,1.9e+03)
e33 <- runif(1, 1.9e+03,1.92e+03)
e34 <- runif(1, 1.92e+03,1.94e+03)
e35 <- runif(1, 1.94e+03,1.96e+03)
e36 <- runif(1, 1.96e+03,1.98e+03)
e37 <- runif(1, 1.98e+03,2.01e+03)
e38 <- runif(1, 2.01e+03,2.03e+03)
e39 <- runif(1, 2.03e+03,2.05e+03)
e40 <- runif(1, 2.05e+03,2.07e+03)
V <- c(e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15,e16,e17,e18,e19,e20,e21,e22,e23,e24,e25,e26,e27,e28,e29,e30,e31,e32,e33,e34,e35,e36,e37,e38,e39,e40)
# Mô phỏng dữ liệu mới dựa trên bảng tần suất
GOLD <- sample(as.numeric(V), size = 10000, replace = TRUE, prob = prop.table(V))
hist(GOLD)
set.seed(123)
# Tạo bảng tần suất
DT <- table(cut(ND$WTI, 40, include.lowest = TRUE))
f1 <- runif(1, 9.9,12.9)
f2 <- runif(1, 12.9,15.7)
f3 <- runif(1, 15.7,18.5)
f4 <- runif(1, 18.5,21.4)
f5 <- runif(1, 21.4,24.2)
f6 <- runif(1, 24.2,27.1)
f7 <- runif(1, 27.1,29.9)
f8 <- runif(1, 29.9,32.7)
f9 <- runif(1, 32.7,35.6)
f10 <- runif(1, 35.6,38.4)
f11 <- runif(1, 38.4,41.3)
f12 <- runif(1, 41.3,44.1)
f13 <- runif(1, 44.1,47)
f14 <- runif(1, 47,49.8)
f15 <- runif(1, 49.8,52.6)
f16 <- runif(1, 52.6,55.5)
f17 <- runif(1, 55.5,58.3)
f18 <- runif(1, 58.3,61.2)
f19 <- runif(1, 61.2,64)
f20 <- runif(1, 64,66.9)
f21 <- runif(1, 66.9,69.7)
f22 <- runif(1, 69.7,72.5)
f23 <- runif(1, 72.5,75.4)
f24 <- runif(1, 75.4,78.2)
f25 <- runif(1, 78.2,81.1)
f26 <- runif(1, 81.1,83.9)
f27 <- runif(1, 83.9,86.8)
f28 <- runif(1, 86.8,89.6)
f29 <- runif(1, 89.6,92.4)
f30 <- runif(1, 92.4,95.3)
f31 <- runif(1, 95.3,98.1)
f32 <- runif(1, 98.1,101)
f33 <- runif(1, 101,104)
f34 <- runif(1, 104,107)
f35 <- runif(1, 107,109)
f36 <- runif(1, 109,112)
f37 <- runif(1, 112,115)
f38 <- runif(1, 115,118)
f39 <- runif(1, 118,121)
f40 <- runif(1, 121,124)
DAU <- c(f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,f40)
# Mô phỏng dữ liệu mới dựa trên bảng tần suất
WTI <- sample(as.numeric(DAU), size = 10000, replace = TRUE, prob = prop.table(DAU))
hist(WTI)
Giả sử ta sẽ mô phỏng chỉ số Nasdaq 100 trong 10000 phiên giao dịch mới. Ta có mô hình mô phỏng ND100 với các hệ số hồi quy như sau:
\[ND100= (-3.923e+03) + (2.500e-01)FS100 + (9.694e-02)BIT + (6.308e+00)GOLD + (7.160e+00)WTI\]
ND100 <- (-3.923e+03) + (2.500e-01)*FS100 + (9.694e-02)*BIT + (6.308e+00)*GOLD + (7.160e+00)*WTI
hist(ND100)
summary(ND100)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5494 10855 13737 13365 16284 18325
Dựa vào kết quả thống kê mô tả của dữ liệu mô phỏng chỉ số Nasdaq 100 với 10000 quan sát ta thấy chỉ số Nasdaq 100 được mô phỏng dao động từ 5494 điểm đến 18325 điểm, giá trung bình là 13365 điểm.
Tác giả đưa ra một chuỗi quy tắc để phân loại các quan sát được mô phỏng dựa trên giá trị của chúng. Cụ thể, nếu giá trị của một quan sát nhỏ hơn 10000 điểm thì sẽ được gán vào hạng “thấp”, các quan sát có giá trị từ 10000 điểm đến 15000 điểm sẽ được xem xét ở hạng “vừa”, các quan sát có giá trị lớn hơn 15000 điểm sẽ được phân loại vào hạng “cao”.
ND100 <- (-3.923e+03) + (2.500e-01)*FS100 + (9.694e-02)*BIT + (6.308e+00)*GOLD + (7.160e+00)*WTI
NDthap <- ND100[ND100 <= 10000]
length(NDthap) #ND100 thấp
## [1] 1984
NDvua <- ND100[ND100 > 10000 & ND100 < 16000]
length(NDvua) #ND100 vừa
## [1] 5026
NDcao <- ND100[ND100 >= 15000]
length(NDcao) #ND100 cao
## [1] 3805
Dựa trên kết quả của mô phỏng với 10000 quan sát, ta thấy rằng có tổng cộng 1984 quan sát thuộc hạng “thấp” về chỉ số Nasdaq 100, 5026 quan sát thuộc hạng “vừa”, và 3805 quan sát thuộc hạng “cao”.
Xét ở thời điểm hiện tại (ngày 03/07/2023) thì chỉ số Nasdaq 100 có giá trị là 15208.69 điểm. Giả sử ta đầu tư vào chỉ số Nasdaq 100, nếu chỉ số Nasdaq 100 tăng lên hơn 10% (16729.56 điểm) thì được tính là lời, giảm hơn 10% (13687.82 điểm) thì tính là lỗ và nằm trong biên độ giao động ±10% (từ 13687.82 điểm đến 16729.56 điểm) thì được tính là hoà vốn.
Đầu tư lỗ
DTlo <- ND100[ND100 < 13687.82]
length(DTlo)
## [1] 4815
Đầu tư hòa vốn
DThoa <- ND100[ND100 >= 13687.82 & ND100 <= 16729.56]
length(DThoa)
## [1] 3078
Đầu tư lời
DTloi <- ND100[ND100 > 16729.56]
length(DTloi)
## [1] 2107
dt1<- data.frame(Category = c("lỗ", "hòa vốn", "lời"), Value = c(0.4815,0.3078,0.2107))
library('ggplot2')
ggplot(dt1, aes(x = Category, y = Value)) +
geom_bar(stat = "identity") +
labs(x = "Categories", y = "Values", title = "Đồ thị phân tích khả năng đầu tư lời/lỗ của chỉ số Nasdaq 100")
Dựa vào kết quả đã cung cấp, ta có thể thấy rằng tỷ lệ đầu tư dẫn đến lỗ là 48.15%, tỷ lệ đầu tư dẫn đến hoà vốn là 30.78%, và tỷ lệ đầu tư dẫn đến lời là 21.07%. Tuy nhiên, trong thực tế khi xem xét sự lợi/lỗ trong quá trình đầu tư trong một khoảng thời gian, ta thường coi các giá trị hoà vốn như là mất mát (do sự giảm giá). Vì vậy, ta có thể kết hợp kết quả của đầu tư dẫn đến lỗ và đầu tư dẫn đến hoà vốn lại với nhau. Kết quả cuối cùng cho việc đầu tư vào giá trị Nasdaq 100 sẽ là 78.93% lỗ và 21.07% lời. Sự chênh lệch rõ ràng giữa rủi ro và tiềm năng lợi nhuận được thể hiện trong con số này.
Để mô phỏng các yếu tố tác động đến giá Bitcoin, mô hình hồi quy được xây dựng như sau:
\[ND100=\beta_{0}+\beta_{1}FS100+\beta_{2}DOLLA+\beta_{3}BIT+\beta_{4}GOLD+\beta_{5}WTI\]
Trong đó:
Biến phụ thuộc: ND100: Chỉ số Nasdaq 100 (điểm)
Biến độc lập:
FS100: Chỉ số FTSE 100 (điểm)
DOLLA: Chỉ số đô la (điểm)
BIT: giá Bitcoin (USD)
GOLD: giá vàng (USD)
WTI: giá dầu thô (USD)
model <- lm(ND$ND100 ~ ND$FS100 + ND$DOLLA + ND$BIT + ND$GOLD + ND$WTI, data=ND)
summary(model)
##
## Call:
## lm(formula = ND$ND100 ~ ND$FS100 + ND$DOLLA + ND$BIT + ND$GOLD +
## ND$WTI, data = ND)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2009.41 -599.44 -3.66 528.36 2147.45
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.338e+03 7.851e+02 -4.252 2.31e-05 ***
## ND$FS100 2.519e-01 6.777e-02 3.717 0.000212 ***
## ND$DOLLA -7.332e+00 7.224e+00 -1.015 0.310360
## ND$BIT 9.529e-02 2.586e-03 36.856 < 2e-16 ***
## ND$GOLD 6.349e+00 1.611e-01 39.401 < 2e-16 ***
## ND$WTI 8.481e+00 2.394e+00 3.543 0.000413 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 841.6 on 1049 degrees of freedom
## Multiple R-squared: 0.911, Adjusted R-squared: 0.9106
## F-statistic: 2148 on 5 and 1049 DF, p-value: < 2.2e-16
Từ kết quả hồi quy, ta thấy các biến độc lập FS100, BIT, GOLD và WTI có ý nghĩa thống kê ở mức ý nghĩa 5%, nghĩa là các biến độc lập này có tác động đến biến phụ thuộc ND100. Biến độc lập DOLLA không có ý nghĩa thống kê ở mức ý nghĩa 5%
model1 <- lm(ND$ND100 ~ ND$FS100 + ND$BIT + ND$GOLD + ND$WTI, data=ND)
summary(model1)
##
## Call:
## lm(formula = ND$ND100 ~ ND$FS100 + ND$BIT + ND$GOLD + ND$WTI,
## data = ND)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2004.80 -603.41 6.03 535.91 2136.32
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.923e+03 5.337e+02 -7.351 3.96e-13 ***
## ND$FS100 2.500e-01 6.774e-02 3.690 0.000236 ***
## ND$BIT 9.694e-02 2.014e-03 48.128 < 2e-16 ***
## ND$GOLD 6.308e+00 1.560e-01 40.444 < 2e-16 ***
## ND$WTI 7.160e+00 2.009e+00 3.564 0.000382 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 841.6 on 1050 degrees of freedom
## Multiple R-squared: 0.9109, Adjusted R-squared: 0.9106
## F-statistic: 2685 on 4 and 1050 DF, p-value: < 2.2e-16
Từ kết quả hồi quy, ta thấy các biến độc lập FS100, BIT, GOLD và WTI có ý nghĩa thống kê ở mức ý nghĩa 5%, nghĩa là các biến độc lập này có tác động đến biến phụ thuộc ND100. Kết quả nghiên cứu có phương trình như sau:
\[ND100= (-3.923e+03) + (2.500e-01)FS100 + (9.694e-02)BIT + (6.308e+00)GOLD + (7.160e+00)WTI\]
Ý nghĩa:
\(\beta_{0}\) = - 3.923e+03 là hệ số tự do, khi các yếu tố độc lập bằng 0 thì chỉ số Nasdaq 100 có giá trị bằng - 3.923e+03 điểm.
\(\beta_{1}\) = 2.500e-01, khi các yếu tố khác không đổi, chỉ số FTSE 100 tăng lên 1 điểm thì chỉ số Nasdaq 100 tăng 2.500e-01 điểm.
\(\beta_{1}\) = 9.694e-02, khi các yếu tố khác không đổi, giá Bitcoin tăng lên USD điểm thì chỉ số Nasdaq 100 tăng 9.694e-02 điểm.
\(\beta_{1}\) = 6.308e+00, khi các yếu tố khác không đổi, giá vàng tăng lên 1 USD thì chỉ số Nasdaq 100 tăng 6.308e+00 điểm.
\(\beta_{1}\) = 7.160e+00, khi các yếu tố khác không đổi, giá dầu thô tăng lên 1 USD thì chỉ số Nasdaq 100 tăng 7.160e+00 điểm.
Kiểm định mô hình
Từ kết quả trên, ta thấy giá trị Multiple R-squared (\(R^2\)) = 0.9109 cho biết mức độ phù hợp của mô hình là 91.09%.
Thống kê F-statistic có p-value < 0.05 nên có thể kết luận hàm hồi quy mẫu phù hợp hay có ít nhất một biến độc lập có tác động đến biến phụ thuộc.
Đồ thị phân phối chỉ số FS100
hist(ND$FS100, main="Đồ thị phân phối của chỉ số FS100", col = "pink")
Kiểm định phân phối chuẩn
Giả thuyết:
\(H_{0}\): Biến FS100 tuân theo phân phối chuẩn
\(H_{1}\): Biến FS100 không tuân theo phân phối chuẩn
shapiro.test(ND$FS100)
##
## Shapiro-Wilk normality test
##
## data: ND$FS100
## W = 0.91028, p-value < 2.2e-16
Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số FS100 không có phân phối chuẩn.
Kiểm định phân phối t
Giả thuyết:
\(H_{0}\): Biến FS100 tuân theo phân phối t
\(H_{1}\): Biến FS100 không tuân theo phân phối t
t.test(ND$FS100)
##
## One Sample t-test
##
## data: ND$FS100
## t = 401.81, df = 1054, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 7014.609 7083.456
## sample estimates:
## mean of x
## 7049.033
Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số FS100 không có phân phối t.
Kiểm định phân phối Lognomal
Giả thuyết:
\(H_{0}\): Biến FS100 tuân theo phân phối Lognormal
\(H_{1}\): Biến FS100 không tuân theo phân phối Lognormal
ks.test(ND$FS100, "plnorm", meanlog = mean(log(ND$FS100)), sdlog = sd(log(ND$FS100)))
## Warning in ks.test.default(ND$FS100, "plnorm", meanlog = mean(log(ND$FS100)), :
## ties should not be present for the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: ND$FS100
## D = 0.16871, p-value < 2.2e-16
## alternative hypothesis: two-sided
Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số FS100 không có phân phối Lognormal.
Đồ thị phân phối chỉ số đô la
hist(ND$DOLLA, main="Đồ thị phân phối của chỉ số đô la", col = "pink")
Kiểm định phân phối chuẩn
Giả thuyết:
\(H_{0}\): Biến DOLLA tuân theo phân phối chuẩn
\(H_{1}\): Biến DOLLA không tuân theo phân phối chuẩn
shapiro.test(ND$DOLLA)
##
## Shapiro-Wilk normality test
##
## data: ND$DOLLA
## W = 0.94453, p-value < 2.2e-16
Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số DOLLA không có phân phối chuẩn.
Kiểm định phân phối t
Giả thuyết:
\(H_{0}\): Biến DOLLA tuân theo phân phối t
\(H_{1}\): Biến DOLLA không tuân theo phân phối t
t.test(ND$DOLLA)
##
## One Sample t-test
##
## data: ND$DOLLA
## t = 607.68, df = 1054, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 97.40570 98.03679
## sample estimates:
## mean of x
## 97.72124
Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số DOLLA không có phân phối t.
Kiểm định phân phối Lognomal
Giả thuyết:
\(H_{0}\): Biến DOLLA tuân theo phân phối Lognormal
\(H_{1}\): Biến DOLLA không tuân theo phân phối Lognormal
ks.test(ND$DOLLA, "plnorm", meanlog = mean(log(ND$DOLLA)), sdlog = sd(log(ND$DOLLA)))
## Warning in ks.test.default(ND$DOLLA, "plnorm", meanlog = mean(log(ND$DOLLA)), :
## ties should not be present for the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: ND$DOLLA
## D = 0.11889, p-value = 2.236e-13
## alternative hypothesis: two-sided
Vì p_value = 2.236e-13 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là chỉ số DOLLA không có phân phối Lognormal.
Đồ thị phân phối giá Bitcoin
hist(ND$BIT, main="Đồ thị phân phối của giá Bitcoin", col = "pink")
Kiểm định phân phối chuẩn
Giả thuyết:
\(H_{0}\): Biến BIT tuân theo phân phối chuẩn
\(H_{1}\): Biến BIT không tuân theo phân phối chuẩn
shapiro.test(ND$BIT)
##
## Shapiro-Wilk normality test
##
## data: ND$BIT
## W = 0.90113, p-value < 2.2e-16
Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá Bitcoin không có phân phối chuẩn.
Kiểm định phân phối Lognomal
Giả thuyết:
\(H_{0}\): Biến BIT tuân theo phân phối Lognormal
\(H_{1}\): Biến BIT không tuân theo phân phối Lognormal
ks.test(ND$BIT, "plnorm", meanlog = mean(log(ND$BIT)), sdlog = sd(log(ND$BIT)))
## Warning in ks.test.default(ND$BIT, "plnorm", meanlog = mean(log(ND$BIT)), :
## ties should not be present for the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: ND$BIT
## D = 0.084891, p-value = 4.981e-07
## alternative hypothesis: two-sided
Vì p_value = 4.981e-07 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá Bitcoin không có phân phối Lognormal.
Kiểm định phân phối t
Giả thuyết:
\(H_{0}\): Biến BIT tuân theo phân phối t
\(H_{1}\): Biến BIT không tuân theo phân phối t
t.test(ND$BIT)
##
## One Sample t-test
##
## data: ND$BIT
## t = 45.473, df = 1054, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 22362.41 24379.36
## sample estimates:
## mean of x
## 23370.88
Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá Bitcoin không có phân phối t.
Đồ thị phân phối giá vàng
hist(ND$GOLD, main="Đồ thị phân phối của giá vàng", col = "pink")
Kiểm định phân phối chuẩn
Giả thuyết:
\(H_{0}\): Biến GOLD tuân theo phân phối chuẩn
\(H_{1}\): Biến GOLD không tuân theo phân phối chuẩn
shapiro.test(ND$GOLD)
##
## Shapiro-Wilk normality test
##
## data: ND$GOLD
## W = 0.90723, p-value < 2.2e-16
Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá vàng không có phân phối chuẩn.
Kiểm định phân phối Lognomal
Giả thuyết:
\(H_{0}\): Biến GOLD tuân theo phân phối Lognormal
\(H_{1}\): Biến GOLD không tuân theo phân phối Lognormal
ks.test(ND$GOLD, "plnorm", meanlog = mean(log(ND$GOLD)), sdlog = sd(log(ND$GOLD)))
## Warning in ks.test.default(ND$GOLD, "plnorm", meanlog = mean(log(ND$GOLD)), :
## ties should not be present for the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: ND$GOLD
## D = 0.18043, p-value < 2.2e-16
## alternative hypothesis: two-sided
Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá vàng không có phân phối Lognormal.
Kiểm định phân phối t
Giả thuyết:
\(H_{0}\): Biến GOLD tuân theo phân phối t
\(H_{1}\): Biến GOLD không tuân theo phân phối t
t.test(ND$GOLD)
##
## One Sample t-test
##
## data: ND$GOLD
## t = 263.62, df = 1054, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 1700.999 1726.511
## sample estimates:
## mean of x
## 1713.755
Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá vàng không có phân phối t.
Đồ thị phân phối giá dầu thô
hist(ND$WTI, main="Đồ thị phân phối của giá dầu", col = "pink")
Kiểm định phân phối chuẩn
Giả 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(ND$WTI)
##
## Shapiro-Wilk normality test
##
## data: ND$WTI
## W = 0.98818, p-value = 1.632e-07
Vì p_value = 1.632e-07 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá dầu thô không có phân phối chuẩn.
Kiểm định phân phối Lognomal
Giả thuyết:
\(H_{0}\): Biến WTI tuân theo phân phối Lognormal
\(H_{1}\): Biến WTI không tuân theo phân phối Lognormal
ks.test(ND$WTI, "plnorm", meanlog = mean(log(ND$WTI)), sdlog = sd(log(ND$WTI)))
## Warning in ks.test.default(ND$WTI, "plnorm", meanlog = mean(log(ND$WTI)), :
## ties should not be present for the Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: ND$WTI
## D = 0.087137, p-value = 2.204e-07
## alternative hypothesis: two-sided
Vì p_value = 2.204e-07 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá dầu thô không có phân phối Lognormal.
Kiểm định phân phối t
Giả thuyết:
\(H_{0}\): Biến WTI tuân theo phân phối t
\(H_{1}\): Biến WTI không tuân theo phân phối t
t.test(ND$WTI)
##
## One Sample t-test
##
## data: ND$WTI
## t = 102.16, df = 1054, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 64.21591 66.73109
## sample estimates:
## mean of x
## 65.4735
Vì p_value = 2.2e-16 < 0.05 nên ta bác bỏ giả thuyết \(H_{0}\). Nghĩa là giá dầu thô không có phân phối t.
Mô phỏng chỉ số Nasdaq 100 trong khoảng 10000 phiên giao dịch
FS100: là chỉ số FTSE 100 (Financial Times Stock Exchange 100) là một chỉ số thị trường chứng khoán của Anh được ra mắt vào năm 1984. FTSE 100 đại diện cho 100 công ty có vốn hóa lớn nhất niêm yết trên London Stock Exchange (LSE). Chỉ số này được sử dụng để đo lường sự biến động và hiệu suất của thị trường chứng khoán Anh.
DOLLA: là chỉ số đô la Hoa Kỳ thường được gọi là “US Dollar Index” (chỉ số đô la Mỹ). Đây là một chỉ số thể hiện giá trị của đô la Mỹ so với một loạt các đơn vị tiền tệ khác. Chỉ số này thường được sử dụng để đo lường sức mạnh hoặc yếu đi của đô la Mỹ trên thị trường thế giới.
BIT: Giá Bitcoin được tính bằng USD.
WTI: Giá dầu thô được tính bằng USD
GOLD: Giá vàng được tính bằng USD.
ND100: là chỉ số Nasdaq 100
Dữ liệu nghiên cứu được thu nhập trên trang web investing.com trong giai đoạn từ ngày 28/11/2018 đến ngày 30/07/2023 gồm 1055 quan sát, được sử dụng để phục vụ nghiên cứu.
summary(ND)
## ND100 FS100 DOLLA BIT
## Min. : 5899 Min. :4994 Min. : 89.39 Min. : 3248
## 1st Qu.: 8453 1st Qu.:6803 1st Qu.: 93.67 1st Qu.: 9270
## Median :11830 Median :7191 Median : 96.72 Median :19380
## Mean :11383 Mean :7049 Mean : 97.72 Mean :23371
## 3rd Qu.:13609 3rd Qu.:7452 3rd Qu.:101.26 3rd Qu.:36704
## Max. :16573 Max. :8013 Max. :114.05 Max. :67528
## WTI GOLD
## Min. : 10.01 Min. :1224
## 1st Qu.: 52.62 1st Qu.:1561
## Median : 63.08 Median :1780
## Mean : 65.47 Mean :1714
## 3rd Qu.: 78.62 3rd Qu.:1862
## Max. :123.70 Max. :2069
sd(ND$FS100) #Độ lệch chuẩn biến FS100
## [1] 569.8106
sd(ND$DOLLA) #Độ lệch chuẩn biến DOLLA
## [1] 5.223261
sd(ND$BIT) #Độ lệch chuẩn biến BIT
## [1] 16693.43
sd(ND$WTI) #Độ lệch chuẩn biến WTI
## [1] 20.81699
sd(ND$GOLD) #Độ lệch chuẩn biến GOLD
## [1] 211.1542
Thông qua kế quả ta thấy:
Chỉ số NASDAQ 100 (ND100) có giá trị trung bình là 11383 điểm, giá trị nhỏ nhất là 5899 điểm và giá trị lớn nhất là 16573 điểm.
Chỉ số FTSE 100 (FS100) có giá trị trung bình là 7049 điểm, giá trị nhỏ nhất là 4994 điểm và giá trị lớn nhất là 8013 điểm. Độ lệch chuẩn là 569.8106 điểm
Chỉ số đô la Hoa Kỳ (DOLLA) có giá trị trung bình là 97.72 điểm, giá trị nhỏ nhất là 89.39 điểm và giá trị lớn nhất là 114.05 điểm. Độ lệch chuẩn là 5.223261 điểm
Giá Bitcoin (BIT) có giá trị trung bình là 23371 USD, giá trị nhỏ nhất là 3248 USD và giá trị lớn nhất là 67528 USD. Độ lệch chuẩn là 16693.43 USD
Giá dầu thô (WTI) có giá trị trung bình là 65.47 USD, giá trị nhỏ nhất là 10.01 USD và giá trị lớn nhất là 123.70 USD. Độ lệch chuẩn là 20.81699 USD
Giá vàng (GOLD) có giá trị trung bình là 1714 USD, giá trị nhỏ nhất là 1224 USD và giá trị lớn nhất là 2069 USD. Độ lệch chuẩn là 211.1542 USD