BÀI THỰC HÀNH KIỂM TRA GIỮA KỲ MÔN QUẢN TRỊ RỦI RO TÀI CHÍNH

  1. Đọc dữ liệu từ link google sheet
#install.packages("googlesheets4")
library(googlesheets4)
gs4_deauth()
df <- read_sheet("https://docs.google.com/spreadsheets/d/10nZIVWn3i5djs0tRZbI--8nntNbfbGoNvYKX8yI7Eeo/edit?gid=1109581498#gid=1109581498", sheet = "hose3")
  1. Lấy dữ liệu mã cổ phiếu
df 
# A tibble: 3,335 × 241
   Date                  AAA   AAM   ABT   ACB   ACC   ACL   ADP   AGR   ANV
   <dttm>              <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
 1 2012-04-11 00:00:00  4582  9448 10913  3583  2760  5507   422  7418  1115
 2 2012-04-12 00:00:00  4560  9557 10972  3681  2851  5446   461  7418  1115
 3 2012-04-13 00:00:00  4476  9557 10972  3681  2851  5446   505  7339  1094
 4 2012-04-16 00:00:00  4624  9557 11300  3681  2967  5538   477  7655  1115
 5 2012-04-17 00:00:00  4624  9703 11420  3667  2993  5660   521  7971  1126
 6 2012-04-18 00:00:00  4560  9849 11330  3611  3110  5568   532  8208  1115
 7 2012-04-19 00:00:00  4348  9849 11390  3555  3226  5844   581  7813  1061
 8 2012-04-20 00:00:00  4370  9885 11420  3569  3071  6119   581  7497  1105
 9 2012-04-23 00:00:00  4370  9885 11420  3611  3006  6241   581  7339  1159
10 2012-04-24 00:00:00  4433  9995 11539  3611  3110  6241   526  7418  1207
# ℹ 3,325 more rows
# ℹ 231 more variables: APG <dbl>, ASM <dbl>, ASP <dbl>, BCE <dbl>, BIC <dbl>,
#   BMC <dbl>, BMI <dbl>, BMP <dbl>, BRC <dbl>, BSI <dbl>, BTP <dbl>,
#   BTT <dbl>, BVH <dbl>, C32 <dbl>, C47 <dbl>, CCI <dbl>, CCL <dbl>,
#   CDC <dbl>, CHP <dbl>, CIG <dbl>, CII <dbl>, CLC <dbl>, CLW <dbl>,
#   CMG <dbl>, CMV <dbl>, CMX <dbl>, CNG <dbl>, COM <dbl>, CSM <dbl>,
#   CTD <dbl>, CTG <dbl>, CTI <dbl>, CTS <dbl>, CVT <dbl>, D2D <dbl>, …
aam <- df[, c("Date", "AAM")]
aam
# A tibble: 3,335 × 2
   Date                  AAM
   <dttm>              <dbl>
 1 2012-04-11 00:00:00  9448
 2 2012-04-12 00:00:00  9557
 3 2012-04-13 00:00:00  9557
 4 2012-04-16 00:00:00  9557
 5 2012-04-17 00:00:00  9703
 6 2012-04-18 00:00:00  9849
 7 2012-04-19 00:00:00  9849
 8 2012-04-20 00:00:00  9885
 9 2012-04-23 00:00:00  9885
10 2012-04-24 00:00:00  9995
# ℹ 3,325 more rows
  1. Kiểm tra dữ liệu
str(aam) 
tibble [3,335 × 2] (S3: tbl_df/tbl/data.frame)
 $ Date: POSIXct[1:3335], format: "2012-04-11" "2012-04-12" ...
 $ AAM : num [1:3335] 9448 9557 9557 9557 9703 ...
head(aam)
# A tibble: 6 × 2
  Date                  AAM
  <dttm>              <dbl>
1 2012-04-11 00:00:00  9448
2 2012-04-12 00:00:00  9557
3 2012-04-13 00:00:00  9557
4 2012-04-16 00:00:00  9557
5 2012-04-17 00:00:00  9703
6 2012-04-18 00:00:00  9849
tail(aam)
# A tibble: 6 × 2
  Date                  AAM
  <dttm>              <dbl>
1 2026-05-15 00:00:00  7000
2 2026-05-18 00:00:00  6540
3 2026-05-19 00:00:00  6800
4 2026-05-20 00:00:00  6940
5 2026-05-21 00:00:00  6560
6 2026-05-22 00:00:00  6900
summary(aam)
      Date                          AAM       
 Min.   :2012-04-11 00:00:00   Min.   : 5071  
 1st Qu.:2015-09-16 12:00:00   1st Qu.: 6777  
 Median :2019-04-23 00:00:00   Median : 8290  
 Mean   :2019-05-03 01:14:16   Mean   : 8537  
 3rd Qu.:2022-12-27 12:00:00   3rd Qu.:10344  
 Max.   :2026-05-22 00:00:00   Max.   :16833  

4.1. Thống kê mô tả dữ liệu giá chứng khoán

summary(aam$AAM)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   5071    6777    8290    8537   10344   16833 
library(fBasics)
basicStats(aam$AAM) 
               X..aam.AAM
nobs         3.335000e+03
NAs          0.000000e+00
Minimum      5.071000e+03
Maximum      1.683300e+04
1. Quartile  6.777000e+03
3. Quartile  1.034400e+04
Mean         8.537354e+03
Median       8.290000e+03
Sum          2.847208e+07
SE Mean      3.511479e+01
LCL Mean     8.468505e+03
UCL Mean     8.606203e+03
Variance     4.112217e+06
Stdev        2.027860e+03
Skewness     3.861880e-01
Kurtosis    -7.317070e-01

4.2. Thống kê mô tả dữ liệu return của giá chứng khoán

return_aam <- diff(log(aam$AAM))
head(return_aam)
[1] 0.01147079 0.00000000 0.00000000 0.01516125 0.01493481 0.00000000
tail(return_aam)
[1] -0.01277519 -0.06797298  0.03898545  0.02037916 -0.05631117  0.05053081
basicStats(return_aam)
             return_aam
nobs        3334.000000
NAs            0.000000
Minimum       -0.072597
Maximum        0.223229
1. Quartile   -0.009885
3. Quartile    0.010922
Mean          -0.000094
Median         0.000000
Sum           -0.314282
SE Mean        0.000468
LCL Mean      -0.001012
UCL Mean       0.000824
Variance       0.000731
Stdev          0.027031
Skewness       0.102185
Kurtosis       1.936773

5.1. Vẽ đồ thị và hàm mật độ của gía chứng khoán

ts.plot(aam$AAM) 

plot (aam, type = "l")

hist(aam$AAM) 

d1 = density(aam$AAM)
plot(d1, type = "l")

5.2. Vẽ đồ thị và hàm mật độ return của gía chứng khoán

ts.plot(return_aam) 

plot(aam$Date[-1], return_aam, type = 'l')

hist(return_aam) 

d2 = density(return_aam)
plot(d2, type = "l")

  1. Kiểm tra tính dừng, kiểm tra phân phối chuẩn
library(tseries)
adf.test(aam$AAM)

    Augmented Dickey-Fuller Test

data:  aam$AAM
Dickey-Fuller = -1.7831, Lag order = 14, p-value = 0.6702
alternative hypothesis: stationary
adf.test(return_aam) 

    Augmented Dickey-Fuller Test

data:  return_aam
Dickey-Fuller = -16.94, Lag order = 14, p-value = 0.01
alternative hypothesis: stationary
kpss.test(return_aam) #H0: stationary

    KPSS Test for Level Stationarity

data:  return_aam
KPSS Level = 0.084872, Truncation lag parameter = 9, p-value = 0.1
normalTest(aam$AAM, method = c("jb")) #HO: normal distribution

Title:
 Jarque-Bera Normality Test

Test Results:
  STATISTIC:
    X-squared: 157.0932
  P VALUE:
    Asymptotic p Value: < 2.2e-16 
normalTest(return_aam, method = c("jb")) #HO: normal distribution

Title:
 Jarque-Bera Normality Test

Test Results:
  STATISTIC:
    X-squared: 528.492
  P VALUE:
    Asymptotic p Value: < 2.2e-16 
  1. Kiểm tra tự tương quan
acf(return_aam)

pacf(return_aam)

Box.test(return_aam, lag = 11) #HO: no autocorrelation

    Box-Pierce test

data:  return_aam
X-squared = 284.91, df = 11, p-value < 2.2e-16
Box.test(return_aam, lag = 11, type = c("Ljung-Box")) #HO: no autocorrelation

    Box-Ljung test

data:  return_aam
X-squared = 285.2, df = 11, p-value < 2.2e-16
  1. Ước lượng mô hình ARIMA
#8.1. Xây dựng mô hình AR
pacf(return_aam)

m1 <- ar(return_aam, method = c("mle"))
m1

Call:
ar(x = return_aam, method = c("mle"))

Coefficients:
      1        2        3        4        5        6        7        8  
-0.3315  -0.1683  -0.1394  -0.0706  -0.0876  -0.0569  -0.0267  -0.0317  
      9       10       11  
-0.0350  -0.0099  -0.0432  

Order selected 11  sigma^2 estimated as  0.0006507
m1$aic
          0           1           2           3           4           5 
363.1148802  99.0604430  56.0131185  19.2587985  16.8473304   4.6264195 
          6           7           8           9          10          11 
  0.7130748   2.0616758   3.1357534   2.2922380   4.2284495   0.0000000 
         12 
  0.4683523 
#Ước lượng AR(p)
m21 <- arima(return_aam, order = c(1, 0, 0))
m21

Call:
arima(x = return_aam, order = c(1, 0, 0))

Coefficients:
          ar1  intercept
      -0.2771     -1e-04
s.e.   0.0167      4e-04

sigma^2 estimated as 0.0006744:  log likelihood = 7441.12,  aic = -14876.25
m22 <- arima(return_aam, order = c(11, 0, 0))
m22

Call:
arima(x = return_aam, order = c(11, 0, 0))

Coefficients:
          ar1      ar2      ar3      ar4      ar5      ar6      ar7      ar8
      -0.3316  -0.1684  -0.1395  -0.0707  -0.0877  -0.0570  -0.0269  -0.0318
s.e.   0.0173   0.0182   0.0185   0.0186   0.0187   0.0187   0.0187   0.0186
          ar9     ar10     ar11  intercept
      -0.0351  -0.0100  -0.0433     -1e-04
s.e.   0.0185   0.0182   0.0173      2e-04

sigma^2 estimated as 0.0006507:  log likelihood = 7500.68,  aic = -14975.37
AIC(m21, m22)
    df       AIC
m21  3 -14876.25
m22 13 -14975.37
#Hàm tính p-value
coeftest <- function(model){
          coef <- model$coef
          se <- sqrt(diag(model$var.coef))
          t <- coef / se
          p <- 2 * (1 - pnorm(abs(t)))
          data.frame(coef, se, t, p)
        }

coeftest(m21)
                   coef           se          t         p
ar1       -2.770640e-01 0.0166521452 -16.638338 0.0000000
intercept -9.487537e-05 0.0003526283  -0.269052 0.7878896
coeftest(m22)
                   coef           se           t            p
ar1       -0.3315621902 0.0173109166 -19.1533584 0.000000e+00
ar2       -0.1683605652 0.0182398909  -9.2303494 0.000000e+00
ar3       -0.1395001939 0.0184600271  -7.5568792 4.130030e-14
ar4       -0.0707000848 0.0186096848  -3.7991017 1.452215e-04
ar5       -0.0876831151 0.0186598820  -4.6990177 2.614158e-06
ar6       -0.0570490427 0.0186971268  -3.0512198 2.279137e-03
ar7       -0.0268789158 0.0186602098  -1.4404402 1.497429e-01
ar8       -0.0317691302 0.0186233482  -1.7058764 8.803109e-02
ar9       -0.0350872192 0.0184692158  -1.8997677 5.746361e-02
ar10      -0.0100473018 0.0182482994  -0.5505884 5.819159e-01
ar11      -0.0432564578 0.0173244486  -2.4968447 1.253038e-02
intercept -0.0001003741 0.0002214767  -0.4532038 6.504020e-01
#Kiểm định phần dư
plot(m21$residuals, type ="l")

qqplot(m21$residuals, return_aam)

Box.test(m21$residuals, lag = 11)

    Box-Pierce test

data:  m21$residuals
X-squared = 90.948, df = 11, p-value = 1.088e-14
#8.2. Xây dựng mô hình MA
acf(return_aam)

m3 <- arima(return_aam, order = c(11, 0, 1))
m3

Call:
arima(x = return_aam, order = c(11, 0, 1))

Coefficients:
          ar1      ar2     ar3      ar4      ar5      ar6      ar7      ar8
      -0.7950  -0.3221  -0.217  -0.1349  -0.1200  -0.0968  -0.0517  -0.0430
s.e.   0.2056   0.0713   0.041   0.0364   0.0271   0.0288   0.0255   0.0235
          ar9     ar10     ar11     ma1  intercept
      -0.0473  -0.0235  -0.0429  0.4646     -1e-04
s.e.   0.0232   0.0225   0.0185  0.2052      2e-04

sigma^2 estimated as 0.0006503:  log likelihood = 7501.84,  aic = -14975.68
coeftest(m3)
                   coef           se         t            p
ar1       -7.950103e-01 0.2055543623 -3.867640 1.098936e-04
ar2       -3.221168e-01 0.0712886156 -4.518488 6.228281e-06
ar3       -2.169852e-01 0.0409974026 -5.292658 1.205510e-07
ar4       -1.348623e-01 0.0364414438 -3.700794 2.149259e-04
ar5       -1.200214e-01 0.0270817676 -4.431816 9.344283e-06
ar6       -9.675361e-02 0.0288018411 -3.359286 7.814424e-04
ar7       -5.172037e-02 0.0254882940 -2.029181 4.243981e-02
ar8       -4.303857e-02 0.0234647253 -1.834182 6.662700e-02
ar9       -4.726798e-02 0.0232094312 -2.036585 4.169166e-02
ar10      -2.349887e-02 0.0224579115 -1.046352 2.953987e-01
ar11      -4.287324e-02 0.0185175329 -2.315278 2.059773e-02
ma1        4.646327e-01 0.2052020239  2.264269 2.355754e-02
intercept -9.996816e-05 0.0002242741 -0.445741 6.557843e-01
#Kiểm định phần dư
plot(m3$residuals, type = "l")

qqplot(m3$residuals, return_aam)

Box.test(m3$residuals, lag = 11)

    Box-Pierce test

data:  m3$residuals
X-squared = 0.27133, df = 11, p-value = 1

9.1 Kiểm định hiệu ứng ARCH

library(fGarch)
m4 <- garchFit(~ arma(11,1) + garch(1,0), data = return_aam, trace = FALSE)
summary(m4)

Title:
 GARCH Modelling 

Call:
 garchFit(formula = ~arma(11, 1) + garch(1, 0), data = return_aam, 
    trace = FALSE) 

Mean and Variance Equation:
 data ~ arma(11, 1) + garch(1, 0)
<environment: 0x000001d83fd1e740>
 [data = return_aam]

Conditional Distribution:
 norm 

Coefficient(s):
         mu          ar1          ar2          ar3          ar4          ar5  
-0.00094266  -0.66343509  -0.33282227  -0.24429582  -0.14230690  -0.12624712  
        ar6          ar7          ar8          ar9         ar10         ar11  
-0.09505246  -0.05470614  -0.05451523  -0.06093050  -0.03246696  -0.05297283  
        ma1        omega       alpha1  
 0.28690524   0.00050352   0.21763123  

Std. Errors:
 based on Hessian 

Error Analysis:
         Estimate  Std. Error  t value Pr(>|t|)    
mu     -0.0009427   0.0005461   -1.726 0.084305 .  
ar1    -0.6634351   0.3019484   -2.197 0.028008 *  
ar2    -0.3328223   0.1156115   -2.879 0.003992 ** 
ar3    -0.2442958   0.0702150   -3.479 0.000503 ***
ar4    -0.1423069   0.0572637   -2.485 0.012951 *  
ar5    -0.1262471   0.0335164   -3.767 0.000165 ***
ar6    -0.0950525   0.0354769   -2.679 0.007378 ** 
ar7    -0.0547061   0.0281166   -1.946 0.051692 .  
ar8    -0.0545152   0.0230765   -2.362 0.018159 *  
ar9    -0.0609305   0.0229362   -2.657 0.007895 ** 
ar10   -0.0324670   0.0227902   -1.425 0.154273    
ar11   -0.0529728   0.0171132   -3.095 0.001965 ** 
ma1     0.2869052   0.3029734    0.947 0.343657    
omega   0.0005035   0.0000157   32.074  < 2e-16 ***
alpha1  0.2176312   0.0245118    8.879  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Log Likelihood:
 7604.333    normalized:  2.280844 

Description:
 Tue Jun  9 15:21:22 2026 by user: Admin 



Standardised Residuals Tests:
                                   Statistic      p-Value
 Jarque-Bera Test   R    Chi^2  2033.9944209 0.000000e+00
 Shapiro-Wilk Test  R    W         0.9618696 0.000000e+00
 Ljung-Box Test     R    Q(10)     1.6809913 9.982522e-01
 Ljung-Box Test     R    Q(15)     6.1461535 9.771867e-01
 Ljung-Box Test     R    Q(20)    14.5132309 8.035506e-01
 Ljung-Box Test     R^2  Q(10)    48.9632592 4.136879e-07
 Ljung-Box Test     R^2  Q(15)    64.1971552 4.722088e-08
 Ljung-Box Test     R^2  Q(20)    72.2185017 7.877967e-08
 LM Arch Test       R    TR^2     43.2211166 2.071356e-05

Information Criterion Statistics:
      AIC       BIC       SIC      HQIC 
-4.552689 -4.525191 -4.552729 -4.542851 

9.2. Ước lượng ARIMA + GARCH

m5 <-garchFit(~ arma(11,1) + garch(1,1), data = return_aam, trace = FALSE)
summary(m5)

Title:
 GARCH Modelling 

Call:
 garchFit(formula = ~arma(11, 1) + garch(1, 1), data = return_aam, 
    trace = FALSE) 

Mean and Variance Equation:
 data ~ arma(11, 1) + garch(1, 1)
<environment: 0x000001d86dba24d8>
 [data = return_aam]

Conditional Distribution:
 norm 

Coefficient(s):
         mu          ar1          ar2          ar3          ar4          ar5  
-9.4266e-04  -6.8756e-01  -3.3526e-01  -2.4738e-01  -1.3839e-01  -1.1663e-01  
        ar6          ar7          ar8          ar9         ar10         ar11  
-9.6621e-02  -5.5958e-02  -6.0997e-02  -4.7682e-02  -2.5363e-02  -4.6628e-02  
        ma1        omega       alpha1        beta1  
 3.1014e-01   3.1254e-05   9.9453e-02   8.5531e-01  

Std. Errors:
 based on Hessian 

Error Analysis:
         Estimate  Std. Error  t value Pr(>|t|)    
mu     -9.427e-04   5.170e-04   -1.823 0.068229 .  
ar1    -6.876e-01   2.798e-01   -2.457 0.014008 *  
ar2    -3.353e-01   1.080e-01   -3.105 0.001901 ** 
ar3    -2.474e-01   6.464e-02   -3.827 0.000130 ***
ar4    -1.384e-01   5.491e-02   -2.520 0.011721 *  
ar5    -1.166e-01   3.290e-02   -3.545 0.000392 ***
ar6    -9.662e-02   3.407e-02   -2.836 0.004564 ** 
ar7    -5.596e-02   2.970e-02   -1.884 0.059539 .  
ar8    -6.100e-02   2.479e-02   -2.460 0.013876 *  
ar9    -4.768e-02   2.504e-02   -1.904 0.056900 .  
ar10   -2.536e-02   2.212e-02   -1.147 0.251569    
ar11   -4.663e-02   1.777e-02   -2.624 0.008696 ** 
ma1     3.101e-01   2.804e-01    1.106 0.268666    
omega   3.125e-05   7.704e-06    4.057 4.97e-05 ***
alpha1  9.945e-02   1.296e-02    7.673 1.69e-14 ***
beta1   8.553e-01   2.214e-02   38.638  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Log Likelihood:
 7694.381    normalized:  2.307853 

Description:
 Tue Jun  9 15:21:34 2026 by user: Admin 



Standardised Residuals Tests:
                                   Statistic   p-Value
 Jarque-Bera Test   R    Chi^2  4817.4924919 0.0000000
 Shapiro-Wilk Test  R    W         0.9590632 0.0000000
 Ljung-Box Test     R    Q(10)     2.5690396 0.9898310
 Ljung-Box Test     R    Q(15)     5.4374908 0.9877295
 Ljung-Box Test     R    Q(20)    12.4460955 0.8998667
 Ljung-Box Test     R^2  Q(10)     6.8779567 0.7369142
 Ljung-Box Test     R^2  Q(15)     7.4142013 0.9451210
 Ljung-Box Test     R^2  Q(20)     8.3102769 0.9896078
 LM Arch Test       R    TR^2      7.1166619 0.8498087

Information Criterion Statistics:
      AIC       BIC       SIC      HQIC 
-4.606107 -4.576776 -4.606153 -4.595613 
  1. Tính và dự báo VaR
#Chạy hàm loss để tính VaR
nreturn_aam <- -return_aam

#10.1. Ước tính VaR theo RISK METRICS 
#Cách 1: Tính thủ công
library(rugarch)
spec1 <- ugarchspec(mean.model = list(armaOrder=c(1,0)),
                    variance.model = list(model="iGARCH", garchOrder=c(1,1)))
m6 <- ugarchfit(spec=spec1,data = nreturn_aam)
Box.test(residuals(m6, standardize=TRUE), lag=11, type="Ljung") 

    Box-Ljung test

data:  residuals(m6, standardize = TRUE)
X-squared = 79.884, df = 11, p-value = 1.554e-12
ugarchforecast(m6, n.ahead = 1)

*------------------------------------*
*       GARCH Model Forecast         *
*------------------------------------*
Model: iGARCH
Horizon: 1
Roll Steps: 0
Out of Sample: 0

0-roll forecast [T0=1979-02-17]:
     Series   Sigma
T+1 0.01549 0.03481
# Tính VaR (Phương pháp của JP Morgan xem mean = 0): 
VaR1 <- 0 + qnorm(0.95) * 0.03481

# Cách 2: Tính từ RMeasure.R
setwd("D:/HUB_2025-2026_HK2_Đợt 2/QUẢN TRỊ RRTC")
source("RMeasure.R")
VaR2 <- RMeasure(0, 0.03481)

 Risk Measures for selected probabilities: 
      prob        VaR         ES
[1,] 0.950 0.05725735 0.07180303
[2,] 0.990 0.08098017 0.09277611
[3,] 0.999 0.10757099 0.11720841
#10.2. Ước tính VaR theo ECONOMICTRICS
m7 <- garchFit(~ arma(11,1) + garch(1,1), data = nreturn_aam, trace=F)
summary(m7)

Title:
 GARCH Modelling 

Call:
 garchFit(formula = ~arma(11, 1) + garch(1, 1), data = nreturn_aam, 
    trace = F) 

Mean and Variance Equation:
 data ~ arma(11, 1) + garch(1, 1)
<environment: 0x000001d86fd7d040>
 [data = nreturn_aam]

Conditional Distribution:
 norm 

Coefficient(s):
         mu          ar1          ar2          ar3          ar4          ar5  
 9.4266e-04  -6.8755e-01  -3.3525e-01  -2.4738e-01  -1.3839e-01  -1.1663e-01  
        ar6          ar7          ar8          ar9         ar10         ar11  
-9.6622e-02  -5.5959e-02  -6.0997e-02  -4.7682e-02  -2.5364e-02  -4.6631e-02  
        ma1        omega       alpha1        beta1  
 3.1013e-01   3.1254e-05   9.9453e-02   8.5531e-01  

Std. Errors:
 based on Hessian 

Error Analysis:
         Estimate  Std. Error  t value Pr(>|t|)    
mu      9.427e-04   5.169e-04    1.824 0.068227 .  
ar1    -6.875e-01   2.798e-01   -2.457 0.014008 *  
ar2    -3.352e-01   1.080e-01   -3.105 0.001901 ** 
ar3    -2.474e-01   6.464e-02   -3.827 0.000130 ***
ar4    -1.384e-01   5.491e-02   -2.520 0.011721 *  
ar5    -1.166e-01   3.290e-02   -3.545 0.000392 ***
ar6    -9.662e-02   3.407e-02   -2.836 0.004564 ** 
ar7    -5.596e-02   2.970e-02   -1.884 0.059536 .  
ar8    -6.100e-02   2.479e-02   -2.460 0.013876 *  
ar9    -4.768e-02   2.504e-02   -1.904 0.056898 .  
ar10   -2.536e-02   2.212e-02   -1.147 0.251549    
ar11   -4.663e-02   1.777e-02   -2.624 0.008692 ** 
ma1     3.101e-01   2.804e-01    1.106 0.268676    
omega   3.125e-05   7.704e-06    4.057 4.97e-05 ***
alpha1  9.945e-02   1.296e-02    7.672 1.69e-14 ***
beta1   8.553e-01   2.214e-02   38.638  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Log Likelihood:
 7694.381    normalized:  2.307853 

Description:
 Tue Jun  9 15:22:04 2026 by user: Admin 



Standardised Residuals Tests:
                                   Statistic   p-Value
 Jarque-Bera Test   R    Chi^2  4817.4564144 0.0000000
 Shapiro-Wilk Test  R    W         0.9590632 0.0000000
 Ljung-Box Test     R    Q(10)     2.5688546 0.9898339
 Ljung-Box Test     R    Q(15)     5.4372947 0.9877318
 Ljung-Box Test     R    Q(20)    12.4459189 0.8998735
 Ljung-Box Test     R^2  Q(10)     6.8780171 0.7369085
 Ljung-Box Test     R^2  Q(15)     7.4142567 0.9451192
 Ljung-Box Test     R^2  Q(20)     8.3103313 0.9896074
 LM Arch Test       R    TR^2      7.1167099 0.8498054

Information Criterion Statistics:
      AIC       BIC       SIC      HQIC 
-4.606107 -4.576776 -4.606153 -4.595613 
predict(m7, 1)
  meanForecast  meanError standardDeviation
1  0.008793538 0.03174545        0.03174545
VaR3 <-  0.008793538 + + qnorm(0.95)*0.03174545
  
# 10.3. Ước lượng QUANTILE ESTIMATION
VaR4 <- quantile(nreturn_aam, 0.95)

# 10.4. Ước lượng MONTE CARLO SIMULATION
mean_aam <- mean(nreturn_aam)
sd_aam <- sd(nreturn_aam)
# Tiến hành mô phỏng Monte Carlo
set.seed(42)
sim1 <- rnorm(10000, mean = mean_aam, sd = sd_aam)
ts.plot(sim1)

VaR5 <- quantile(sim1, 0.95)
  1. VaR theo số tiền
VaR1_100 = VaR1*100000
VaR1_100
[1] 5725.735
VaR3_100 = VaR3*100000
VaR3_100
[1] 6101.016
VaR4_100 = VaR4*100000
VaR4_100
     95% 
5046.541 
VaR5_100 = VaR1*100000
VaR1_100
[1] 5725.735