1 Tổng quan về bộ dữ liệu

library(xlsx)
khl <- read.xlsx('C:/Users/Dell/OneDrive/UFM/R/data2.xlsx', header = T, sheetIndex = 1)
str(khl)
## 'data.frame':    120 obs. of  8 variables:
##  $ TIME: Date, format: "2013-01-01" "2013-02-01" ...
##  $ FXR : num  27827 28218 28042 27152 26245 ...
##  $ M2  : num  3766292 3786543 3842421 3866254 3899158 ...
##  $ VNI : num  480 475 491 475 518 ...
##  $ GOLD: num  1663 1580 1596 1477 1386 ...
##  $ OIL : num  97.4 91.8 97.2 93.1 91.7 ...
##  $ CPI : num  135 137 137 137 137 ...
##  $ FDI : num  0.42 0.63 1.65 1.05 0.83 1.12 0.95 0.91 1.07 0.96 ...

Nguồn gốc: Bộ dữ liệu gồm một số yếu tố vĩ mô của nền kinh tế Việt Nam được tổng hợp từ các nguồn như Vietstock, Investing và IMF.

Gồm có 126 quan sát và 8 biến, cụ thể như sau:

  • TIME: Tháng và năm lấy dữ liệu, bắt đầu từ tháng 1-2013 đến tháng 6-2023

  • FXR: Dự trữ ngoại hối (ĐVT: Tỷ USD)

  • M2: Lượng cung tiền (ĐVT: Tỷ USD)

  • FDI: Tổng đầu tư trực tiếp từ nước ngoài (ĐVT: Tỷ USD)

  • VNI: Chỉ số giá chứng khoán VNINDEX (ĐVT: Điểm)

  • GOLD: Giá vàng (USD/ounce)

  • OIL: Giá dầu (USD/thùng)

  • CPI: Chỉ số giá tiêu dùng (%)

2 Phân tích dựa trên trực quan hóa dữ liệu

2.1 Biểu đồ phân phối mật độ CPI

khl %>% ggplot(aes(x = CPI)) + 
        geom_density(color = 'black', fill = 'pink')+ 
        xlim(120,200) + 
        ylim(0,0.04) +
        labs(title = 'Biểu đồ 1: Biểu đồ phân phối mật độ CPI', 
             x = 'Giá trị CPI', 
             y = 'Mật độ')

Từ biểu đồ 1, ta có thể nhận xét về phân phối mật độ giá trị CPI như sau:

  • Giá trị CPI phân phối không đều nhau

  • Mật độ cao nhất nằm ở mức CPI khoảng 145%

2.2 Biểu đồ phân phối mật độ dự trữ ngoại hối

khl %>% ggplot(aes(x = FXR)) + 
        geom_density(color = 'red', fill = 'skyblue')+ xlim(21000,120000) +
        labs(title = 'Biểu đồ 2: Biểu đồ phân phối mật độ FXR', 
             x = 'Giá trị FXR', 
             y = 'Mật độ')

Ta nhận xét biểu đồ 2 như sau:

  • Dữ trữ ngoại hối giữa các tháng phân phối không đều nhau

  • Có nhiều tháng có dự trữ ngoại hối nằm trong khoảng 35000-40000

  • Có ít tháng có dự trữ lớn hơn 100000

2.3 Biểu đồ phân phối mật độ cung tiền

khl %>% ggplot(aes(x = M2)) + 
        geom_density(color = 'red', fill = 'skyblue')+ xlim(3000000,17000000) +
        labs(title = 'Biểu đồ 3: Biểu đồ phân phối mật độ lượng cung tiền', 
             x = 'Lượng cung tiền', 
             y = 'Mật độ')

Biểu đồ 3 cho ta thấy được lượng cung tiền dường như phân bố theo giá trị của nó, giá trị thấp mật độ cao, giá trị cao mật độ thấp. Có nghĩa giá trị tỷ lệ nghịch với mật độ phân bố của nó.

2.4 Biểu đồ phân phối mật độ chỉ số giá chứng khoán VNINDEX

khl %>% ggplot(aes(x = VNI)) + 
        geom_density(color = 'red', fill = 'skyblue')+
        labs(title = 'Biểu đồ 4: Biểu đồ phân phối mật độ chỉ số giá chứng khoá', 
             x = 'VNINDEX', 
             y = 'Mật độ')

Từ biểu đồ trên, ta nhận xét như sau:

  • Chỉ số VNINDEX biến động liên tục nên dường như mỗi giá trị có mật độ rất thấp.

  • Mật độ cao nhất là khoảng 0.0014 nằm ở khoảng giá trị từ 550 - 600

2.5 Biểu đồ phân phối mật độ giá vàng

khl %>% ggplot(aes(x = GOLD)) + 
        geom_density(color = 'red', fill = 'skyblue')+
        labs(title = 'Biểu đồ 5: Biểu đồ phân phối mật độ giá vàng', 
             x = 'Giá vàng', 
             y = 'Mật độ')

Cũng như chỉ số giá chứng khoán, giá vàng biến động liên tục và dường như giá trị không trùng lặp nhau. Mật độ cao nhất là mức 0.002 rơi vào khoảng giá trị xung quanh 1250 USD/ounce.

2.6 Biểu đồ phân phối mật độ giá dầu

khl %>% ggplot(aes(x = OIL)) + 
        geom_density(color = 'red', fill = 'skyblue')+
        labs(title = 'Biểu đồ 6: Biểu đồ phân phối mật độ giá dầu', 
             x = 'Giá dầu', 
             y = 'Mật độ')

Giá dầu phân bố rộng ở nhiều mức giá và biến động liên tục, mật độ cao nhất nằm ở mức 0.018 ở mức giá 50 USD/thùng

2.7 Biểu đồ phân phối mật độ đầu tư trực tiếp từ nước ngoài

khl %>% ggplot(aes(x = FDI)) + 
        geom_density(color = 'red', fill = 'skyblue')+
        labs(title = 'Biểu đồ 6: Biểu đồ phân phối mật độ FDI', 
             x = 'FDI', 
             y = 'Mật độ')

Nhìn chung, mật độ phân bố FDI dày hơn so với mật độ của các yếu tố trước. Mật độ cao nhất nằm khoảng ở mức 0.7 rơi vào giá trị khoảng 1.5 tỷ USD. Và có xuất hiện giá trị trên 3 tỷ USD.

2.8 Biến động FDI theo năm

khl1 <- khl %>% group_by(year = year(TIME)) %>% summarise(fdi_year = sum(FDI), gold_year = mean(GOLD))

khl1 %>% ggplot(aes(x = factor(year), y = fdi_year))+
          geom_col(fill = 'midnightblue')+
          geom_text(aes(label = fdi_year), vjust = 2, color = 'skyblue') +
          labs(title = 'Biểu đồ 8: Biến động FDI theo năm', 
               x = 'Năm', 
               y = 'FDI')

Biểu đồ 8 cho ta biết được tổng đầu tư trực tiếp nước ngoài được tăng dần theo từng năm, năm 2023 thấp là bởi dữ liệu lúc này chỉ được thống kê đến tháng 6 năm 2023.

2.9 Lượng tăng giảm FDI

a <- length(khl1$year)

b <- vector()
c <- vector()

for(i in 1:(a-1)) {
  b[i]= (khl1$fdi_year[i+1]/khl1$fdi_year[i] -1)
  c[i]= (khl1$fdi_year[i+1]-khl1$fdi_year[i]) }
khl2 <- data.frame(year2 = khl1$year[2:a],b,c)

khl2 %>% ggplot(aes(x = factor(year2), y = c)) +
          geom_col(fill= '#669933') +
          geom_text(aes(label = round(c,2)), vjust = 0.1, color ='black') +
          labs(title = 'Biểu đồ 9: Lượng tăng giảm FDI qua các năm', 
               x ='Năm',
               y = 'Lượng tăng giảm')

Từ biểu đồ 9, ta có thể thấy lượng tăng giảm FDI giữa các năm không đều nhau, mức tăng cao nhất là ở năm 2016 tăng 2.85 tỷ USD so với năm 2015. Có 2 năm mức FDI giảm đó là 2020 với mức FDI thấp hơn 2019 0.4 tỷ USD và năm 2021 giảm 0.01 tỷ USD.

2.10 Tốc độ thay đổi FDI qua các năm

khl2 %>% ggplot(aes(x = factor(year2), y = b)) +
          geom_col(fill= '#CCCCFF') +
          geom_text(aes(label = round(b,2)), vjust = 0.1, color ='#FF0000') +
          labs(title = 'Biểu đồ 10: Tốc độ thay đổi FDI qua các năm', 
               x ='Năm',
               y = 'Tốc độ thay đổi')

Biểu đồ tốc độ thay đổi cho biết tốc độ thay đổi FDI qua các năm, tốc độ thay đổi cao nhất là ở năm 2015 với mức thay đổi đạt 24% so với năm 2014 và thấp nhất là ở năm 2020 với mức giảm 2% so với 2019

2.11 Biến động giá vàng qua các năm

khl1 %>% ggplot(aes(x = factor(year), y = gold_year))+
          geom_col(fill = 'midnightblue')+
          geom_text(aes(label = round(gold_year,1)), vjust = 2, color = 'skyblue') +
          labs(title = 'Biểu đồ 11: Biến động giá vàng theo năm', 
               x = 'Năm', 
               y = 'Giá vàng')

  • Giá vàng biến động không đều qua các năm

-Giá vàng đạt ngưỡng cao nhất vào năm 2022 với mức giá vàng trung bình là 1795.3

-Giá vàng thấp nhất là vào năm 215 voiwsm ức giá trung bình là 1152.9

2.12 Lượng tăng giảm giá vàng qua các năm

m <- vector()
n <- vector()

for(i in 1:(a-1)) {
  m[i]= (khl1$gold_year[i+1]/khl1$gold_year[i] -1)
  n[i]= (khl1$gold_year[i+1]-khl1$gold_year[i]) }
gold <- data.frame(year_gold = khl1$year[2:a],m,n)

gold %>% ggplot(aes(x = factor(year_gold), y = n)) +
          geom_col(fill= '#FF33FF') +
          geom_text(aes(label = round(n,2)), vjust = 0.1, color ='#00EE00') +
          labs(title = 'Biểu đồ 12: Lượng tăng giảm giá vàng qua các năm', 
               x ='Năm',
               y = 'Lượng tăng giảm')

Giá vàng qua các năm có lượng tăng giảm không đều nhau, chỉ có 2 năm mức giá vàng giảm đó là năm 2014 và 2015. Năm giá vàng tăng cao nhất là năm 2020 với lượng tăng là 374.31 USD/ounce so với 2019

2.13 Tốc độ thay đổi giá vàng qua các năm

gold %>% ggplot(aes(x = factor(year_gold), y = m)) +
          geom_col(fill= '#00EEEE') +
          geom_text(aes(label = round(m,2)), vjust = 0.1, color ='#FF0000') +
          labs(title = 'Biểu đồ 13: Tốc độ thay đổi giá vàng qua các năm', 
               x ='Năm',
               y = 'Tốc độ thay đổi')

Tốc độ thay đổi của giá vàng nhìn chung khá chậm, tuy nhiên có năm 2020 bùng nổ với tốc độ tăng 27% so với 2019

2.14 Phân tích mối quan hệ giữa giá vàng và giá dầu

khl$gold.coded <- case_when(khl$GOLD < 1400 ~ 'Thấp', khl$GOLD >= 1400 & khl$GOLD < 1700 ~ 'Trung Bình', khl$GOLD >= 1700 ~ 'Cao')

khl3 <- khl %>% group_by(gold.coded) %>% summarise(oil.avg = mean(OIL))

khl3 %>% ggplot(aes(x = gold.coded, y = oil.avg))+
        geom_col(fill = '#FF9999')+
        geom_text(aes(label = round(oil.avg,2)), vjust = 2, color = '#79CDCD') +
        labs(title = 'Biểu đồ 14: Mối quan hệ giữa giá vàng và giá dầu', 
             x ='Giá vàng',
             y = 'Giá dầu trung bình')

Ta có thể thấy ở mức giá vàng cao thì giá dầu trung bình cũng cao nhất, tuy nhiên ở mức giá vàng thấp thì có giá dầu lại cao hơn những tháng có giá vàng trung bình. Vậy nên ta chưa thể kết luận được mối quan hệ giữa giá vàng và giá dầu.

2.15 Phân tích mối quan hệ giữa giá vàng và chỉ số VNINDEX

khl4 <- khl %>% group_by(gold.coded) %>% summarise(vni.avg = mean(VNI))

khl4 %>% ggplot(aes(x = gold.coded, y = vni.avg))+
        geom_col(fill = '#79CDCD')+
        geom_text(aes(label = round(vni.avg,2)), vjust = 2, color = '#FF9999') +
        labs(title = 'Biểu đồ 15: Mối quan hệ giữa giá vàng và chỉ số VNINDEX', 
             x ='Giá vàng',
             y = 'Trung bình VNINDEX')

Ta thấy dường như chỉ số VNINDEX có tỷ lệ thuận với giá vàng, ở những tháng có giá vàng cao thì chỉ số VNINDEX cũng cao và ngược lại.

2.16 Phân tích mối quan hệ giữa giá vàng với chỉ số CPI

khl5 <- khl %>% group_by(gold.coded) %>% summarise(cpi.avg = mean(CPI))

khl5 %>% ggplot(aes(x = gold.coded, y = cpi.avg))+
        geom_col(fill = '#79CDCD')+
        geom_text(aes(label = round(cpi.avg,2)), vjust = 2, color = '#FF9999') +
        labs(title = 'Biểu đồ 16: Mối quan hệ giữa giá vàng và chỉ số CPI', 
             x ='Giá vàng',
             y = 'Trung bình CPI')

Giá vàng dường như tỷ lệ thuận với chỉ số CPI

2.17

khl$m2.coded <- case_when(khl$M2 < 5000000 ~ 'Thấp',khl$M2 >= 5000000 & khl$M2<10000000 ~ 'Trung bình', khl$M2 > 10000000 & khl$M2 < 13000000 ~ 'Cao',khl$M2 > 13000000 ~ 'Rất cao')


khl6 <- khl %>% group_by(m2.coded) %>% summarise(fdi_avg = mean(FDI))
khl6 %>% ggplot(aes(x = m2.coded, y = fdi_avg))+
          geom_col() +
          geom_text(aes(label = round(fdi_avg,2)),vjust = 2, color = 'blue') +
          labs(title = 'Biểu đồ 17: Mối quan hệ giữa lượng cung tiền và FDI', 
               x ='Lượng cung tiền',
               y = 'Trung bình FDI')

Lượng cung tiền tỷ lệ thuận với FDI

2.18 Xem xét mối quan hệ giữa giá vàng với lượng cung tiền

khl %>% ggplot(aes(x = m2.coded, fill = gold.coded)) +
        geom_bar() +
        labs(title = 'Biểu đồ 18: Mối quan hệ giữa giá vàng và lượng cung tiền', 
             x = 'Lượng cung tiền')

Ta có thể thấy ở mức cung tiền thấp và trung bình thì số quan sát có mức giá vàng thấp là chủ yếu, tương tự ở mức cung tiền cao và rất cao thì có giá vàng cao.

2.19 Đếm số quan sát của giá vàng được mã hóa

khl %>% group_by(gold.coded) %>% summarise(n_gold = n()) %>%
        ggplot(aes(x = '', y = n_gold, fill = gold.coded))+
        geom_col() + 
        coord_polar('y')+ 
        labs(title = 'Biểu đồ 19: Số lượng quan sát theo các mức giá vàng',
             x= '', 
             y = '')

Vậy ta có thể thấy trong bộ dữ liệu này, mức giá vàng thấp chiếm đa số, sau đó là đến giá vàng cao và thấp nhất là mức giá vàng trung bình.

2.20 Đếm số quan sát của lượng cung tiền được mã hóa

khl %>% group_by(m2.coded) %>% summarise(n_m2 = n()) %>%
        ggplot(aes(x = '', y = n_m2, fill = m2.coded))+
        geom_col() + 
        coord_polar('y')+ 
        labs(title = 'Biểu đồ 20: Số lượng quan sát theo các lượng cung tiền khác nhau', 
             x= '', 
             y = '')

Ta thấy, mức cung tiền trung bình chiếm đa số và thấp nhất là mức cung tiền rất cao