library(googlesheets4)
gs4_deauth()
df <- read_sheet("https://docs.google.com/spreadsheets/d/1qfALo1paROLI2iw_WO-jxOz_rpohInJxktRdQ7BwPcM/edit?usp=sharing")
## ✔ Reading from "TLG".
## ✔ Range 'TLG'.
df# xem toàn bộ dataframe
## # A tibble: 3,356 × 7
## Date Close Open High Low Volume `%`
## <dttm> <dbl> <dbl> <dbl> <dbl> <chr> <list>
## 1 2012-04-11 00:00:00 1980. 1968. 2097. 1968. 0.39K <dbl [1]>
## 2 2012-04-12 00:00:00 2027. 2003. 2027. 2003. 5.18K <chr [1]>
## 3 2012-04-13 00:00:00 2003. 2027. 2027. 2003. 16.21K <dbl [1]>
## 4 2012-04-16 00:00:00 2003. 2003. 2003. 1980. 1.12K <dbl [1]>
## 5 2012-04-17 00:00:00 2027. 2062 2062 2015. 1.07K <chr [1]>
## 6 2012-04-18 00:00:00 2027. 2027. 2027. 2027. 0.63K <dbl [1]>
## 7 2012-04-19 00:00:00 2038. 2038. 2038. 2038. 1.37K <chr [1]>
## 8 2012-04-20 00:00:00 2050. 2027. 2050. 2027. 0.15K <chr [1]>
## 9 2012-04-23 00:00:00 2003. 2062 2062 2003. 2.34K <dbl [1]>
## 10 2012-04-24 00:00:00 1991. 1991. 1991. 1991. 0.05K <dbl [1]>
## # ℹ 3,346 more rows
TLG <- df[, c("Date", "Close")]
TLG # xem dataframe TLG
## # A tibble: 3,356 × 2
## Date Close
## <dttm> <dbl>
## 1 2012-04-11 00:00:00 1980.
## 2 2012-04-12 00:00:00 2027.
## 3 2012-04-13 00:00:00 2003.
## 4 2012-04-16 00:00:00 2003.
## 5 2012-04-17 00:00:00 2027.
## 6 2012-04-18 00:00:00 2027.
## 7 2012-04-19 00:00:00 2038.
## 8 2012-04-20 00:00:00 2050.
## 9 2012-04-23 00:00:00 2003.
## 10 2012-04-24 00:00:00 1991.
## # ℹ 3,346 more rows
str(TLG)
## tibble [3,356 × 2] (S3: tbl_df/tbl/data.frame)
## $ Date : POSIXct[1:3356], format: "2012-04-11" "2012-04-12" ...
## $ Close: num [1:3356] 1980 2027 2003 2003 2027 ...
head(TLG)
## # A tibble: 6 × 2
## Date Close
## <dttm> <dbl>
## 1 2012-04-11 00:00:00 1980.
## 2 2012-04-12 00:00:00 2027.
## 3 2012-04-13 00:00:00 2003.
## 4 2012-04-16 00:00:00 2003.
## 5 2012-04-17 00:00:00 2027.
## 6 2012-04-18 00:00:00 2027.
tail(TLG)
## # A tibble: 6 × 2
## Date Close
## <dttm> <dbl>
## 1 2026-03-26 00:00:00 48550
## 2 2026-03-27 00:00:00 48850
## 3 2026-03-30 00:00:00 48200
## 4 2026-03-31 00:00:00 48500
## 5 2026-04-01 00:00:00 48650
## 6 2026-04-02 00:00:00 48050
summary(TLG)
## Date Close
## Min. :2012-04-11 00:00:00 Min. : 1980
## 1st Qu.:2015-12-15 18:00:00 1st Qu.:18486
## Median :2019-07-15 12:00:00 Median :30544
## Mean :2019-05-27 11:35:58 Mean :28115
## 3rd Qu.:2022-11-16 06:00:00 3rd Qu.:39077
## Max. :2026-04-02 00:00:00 Max. :61710
4.1. Thống kê mô tả dữ liệu giá chứng khoán
library(fBasics)
basicStats(TLG$Close)
## X..TLG.Close
## nobs 3.356000e+03
## NAs 0.000000e+00
## Minimum 1.979500e+03
## Maximum 6.170960e+04
## 1. Quartile 1.848597e+04
## 3. Quartile 3.907713e+04
## Mean 2.811496e+04
## Median 3.054380e+04
## Sum 9.435382e+07
## SE Mean 2.490089e+02
## LCL Mean 2.762674e+04
## UCL Mean 2.860319e+04
## Variance 2.080902e+08
## Stdev 1.442533e+04
## Skewness -2.656120e-01
## Kurtosis -8.361890e-01
4.2. Thống kê mô tả dữ liệu return của giá chứng khoán
return_TLG <- diff(log(TLG$Close)) # chuyển giá thành return
head(return_TLG) # xem 6 giá trị đầu
## [1] 0.023564567 -0.011712874 0.000000000 0.011712874 0.000000000
## [6] 0.005805389
tail(return_TLG)
## [1] -0.006160184 0.006160184 -0.013395357 0.006204777 0.003088011
## [6] -0.012409673
library(fBasics)
basicStats(return_TLG)
## return_TLG
## nobs 3355.000000
## NAs 0.000000
## Minimum -0.072572
## Maximum 0.067616
## 1. Quartile -0.009305
## 3. Quartile 0.010701
## Mean 0.000951
## Median 0.000000
## Sum 3.189398
## SE Mean 0.000401
## LCL Mean 0.000164
## UCL Mean 0.001737
## Variance 0.000540
## Stdev 0.023243
## Skewness 0.055974
## Kurtosis 1.574420
summary(return_TLG)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.0725717 -0.0093048 0.0000000 0.0009506 0.0107015 0.0676156
5.1. Vẽ đồ thị và hàm mật độ giá chứng khoán
ts.plot(TLG$Close)
plot(TLG)
plot(TLG, type = 'l') # hoặc gõ plot(vn$Date, vn$VNINDEX, type = "l")
d1 = density(TLG$Close)
plot(d1, type = "l")
5.2. Vẽ đồ thị và hàm mật độ return của giá chứng khoán
ts.plot(return_TLG)
plot(return_TLG)
plot(TLG$Date[-1], return_TLG, type = 'l')
hist(return_TLG)
d2 = density(return_TLG)
plot(d2, type = "l")