# Họ và tên: Nguyễn Thị Mỹ Hạnh
# Lớp: 24NH1 - Mã số sinh viên: 2454020020
# Bài thực hành

# Nhập liệu
dulieu=file.choose()
dulieu=read.csv(dulieu,header=TRUE,check.names=FALSE)
save(dulieu,file="dulieu.rda")
attach(dulieu)
is.data.frame(dulieu)
## [1] TRUE
head(dulieu)
##   STT       Ngày     VNI    VN30   SP500
## 1   1  7/10/2026 1753.39 1894.20 7801.77
## 2   2  6/10/2026 1759.08 1898.82 7818.93
## 3   3  5/10/2026 1753.20 1894.46 7773.95
## 4   4  2/10/2026 1737.71 1875.99 7722.72
## 5   5  1/10/2026 1749.30 1890.57 7666.45
## 6   6 30/09/2026 1768.62 1906.81 7651.54
dim(dulieu)
## [1] 218   5
###CÂU A
names(dulieu)
## [1] "STT"   "Ngày"  "VNI"   "VN30"  "SP500"
str(dulieu)
## 'data.frame':    218 obs. of  5 variables:
##  $ STT  : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Ngày : chr  "7/10/2026" "6/10/2026" "5/10/2026" "2/10/2026" ...
##  $ VNI  : num  1753 1759 1753 1738 1749 ...
##  $ VN30 : num  1894 1899 1894 1876 1891 ...
##  $ SP500: num  7802 7819 7774 7723 7666 ...
summary(dulieu)
##       STT                Ngày          VNI            VN30          SP500     
##  Min.   :  1.00   Length   :218   Min.   :1581   Min.   :1741   Min.   :6344  
##  1st Qu.: 55.25   N.unique :218   1st Qu.:1729   1st Qu.:1899   1st Qu.:6846  
##  Median :109.50   N.blank  :  0   Median :1791   Median :1956   Median :7132  
##  Mean   :109.50   Min.nchar:  8   Mean   :1781   Mean   :1952   Mean   :7181  
##  3rd Qu.:163.75   Max.nchar: 10   3rd Qu.:1844   3rd Qu.:2009   3rd Qu.:7542  
##  Max.   :218.00                   Max.   :1928   Max.   :2097   Max.   :7819
# Nhận xét:
# Dữ liệu gồm 218 quan sát và 4 biến: Ngày, VNIDEX,VN30 và S&P 500.
# Ba biến VNIDEX,VN30 và S&P 500 là các biến định lượng.

###CÂU B
# MA HOA VNI
VNIMH = dulieu$VNI
VNIMH = replace(VNIMH, dulieu$VNI <= 1753.26, 1)
VNIMH = replace(VNIMH, dulieu$VNI > 1753.26 & dulieu$VNI <= 1823.65, 2)
VNIMH = replace(VNIMH, dulieu$VNI > 1823.65, 3)

VNIM = VNIMH
VNIM = replace(VNIM, VNIMH == 1, "<=1753.26")
VNIM = replace(VNIM, VNIMH == 2, ">1753.26 & <=1823.65")
VNIM = replace(VNIM, VNIMH == 3, ">1823.65")
VNI_DF = data.frame(dulieu$VNI, VNIMH, VNIM)

# MA HOA VN30
VN30MH = dulieu$VN30
VN30MH = replace(VN30MH, dulieu$VN30 <= 1922.99, 1)
VN30MH = replace(VN30MH, dulieu$VN30 > 1922.99 & dulieu$VN30 <= 1988.16, 2)
VN30MH = replace(VN30MH, dulieu$VN30 > 1988.16, 3)

VN30M = VN30MH
VN30M = replace(VN30M, VN30MH == 1, "<=1922.99")
VN30M = replace(VN30M, VN30MH == 2, ">1922.99 & <=1988.16")
VN30M = replace(VN30M, VN30MH == 3, ">1988.16")
VN30_DF = data.frame(dulieu$VN30, VN30MH, VN30M)

# MA HOA S&P 500
SP500MH = dulieu$SP500
SP500MH = replace(SP500MH, dulieu$SP500 <= 6901.35, 1)
SP500MH = replace(SP500MH, dulieu$SP500 > 6901.35 & dulieu$SP500 <= 7467.76, 2)
SP500MH = replace(SP500MH, dulieu$SP500 > 7467.76, 3)

SP500M = SP500MH
SP500M = replace(SP500M, SP500MH == 1, "<=6901.35")
SP500M = replace(SP500M, SP500MH == 2, ">6901.35 & <=7467.76")
SP500M = replace(SP500M, SP500MH == 3, ">7467.76")
SP500_DF = data.frame(dulieu$SP500, SP500MH, SP500M)


### CÂU C
library(psych)
abctb = data.frame(dulieu$VNI, dulieu$VN30, dulieu$SP500)
describe(abctb)
##              vars   n    mean     sd  median trimmed    mad     min     max
## dulieu.VNI      1 218 1780.99  79.50 1790.97 1784.17  88.67 1580.54 1927.94
## dulieu.VN30     2 218 1951.85  74.06 1955.72 1953.93  79.54 1741.05 2096.76
## dulieu.SP500    3 218 7181.03 395.26 7131.98 7185.96 497.49 6343.72 7818.93
##                range  skew kurtosis    se
## dulieu.VNI    347.40 -0.35    -0.70  5.38
## dulieu.VN30   355.71 -0.26    -0.49  5.02
## dulieu.SP500 1475.21 -0.02    -1.41 26.77
# Nhận xét:
# VN-INDEX có giá trị trung bình khoảng 1780.99 điểm.
# VN30 có giá trị trung bình khoảng 1951.85 điểm.
# S&P 500 có giá trị trung bình khoảng 7181.03 điểm.
# Ba chỉ số đều có số quan sát ở các nhóm tương đối đồng đều.


### CÂU D
# VNI
pie(table(VNIMH), col=c("darkseagreen","forestgreen","lightgreen"), main="DO THI CHI SO VN INDEX")

VNIM.freq <- table(VNIMH)
VNIM.freq
## VNIMH
##  1  2  3 
## 73 72 73
barplot(VNIM.freq, xlab="Diem", ylab="So ngay", main="Bieu do cot cua chi so VN INDEX", col=c("magenta","hotpink","lightpink"))

plot(dulieu$STT, dulieu$VNI, type="o", xlab="ngay thu", ylab="diem VNI", pch=19, main="Diem cua VNI tu ngay 1 den ngay 218", col="darkgreen")

# VN30
pie(table(VN30MH), col=c("darkseagreen","forestgreen","lightgreen"), main="DO THI CHI SO VN30")

VN30M.freq <- table(VN30MH)
VN30M.freq
## VN30MH
##  1  2  3 
## 73 72 73
barplot(VN30M.freq, xlab="Diem", ylab="So ngay", main="Bieu do cot cua chi so VN30", col=c("magenta","hotpink","lightpink"))

plot(dulieu$STT, dulieu$VN30, type="o", xlab="ngay thu", ylab="diem VN30", pch=19, main="Diem cua VN30 tu ngay 1 den ngay 218", col="darkgreen")

# SP500
pie(table(SP500MH), col=c("darkseagreen","forestgreen","lightgreen"), main="DO THI CHI SO SP500")

SP500M.freq <- table(SP500MH)
SP500M.freq
## SP500MH
##  1  2  3 
## 73 72 73
barplot(SP500M.freq, xlab="Diem", ylab="So ngay", main="Bieu do cot cua chi so SP500", col=c("magenta","hotpink","lightpink"))

plot(dulieu$STT, dulieu$SP500, type="o", xlab="ngay thu", ylab="diem SP500", pch=19, main="Diem cua SP500 tu ngay 1 den ngay 218", col="darkgreen")

# Nhận xét:
# Biểu đồ cột và biểu đồ tròn thể hiện sự phân bố của các chỉ số theo 3 nhóm Thấp, Trung bình và Cao tương đối cân bằng.
# Biểu đồ đường thể hiện sự biến động của các chỉ sỐ VN-Index, VN30 và S&P 500 liên tục theo thời gian từ ngày 1 đến ngày 218.


### CÂU E
library(psych)
vars = cbind(dulieu$VNI, dulieu$VN30, dulieu$SP500)
pairs.panels(vars)

library(Hmisc)
## 
## Attaching package: 'Hmisc'
## The following object is masked from 'package:psych':
## 
##     describe
## The following objects are masked from 'package:base':
## 
##     format.pval, units
result = rcorr(as.matrix(vars),type="pearson")
result$r
##           [,1]      [,2]      [,3]
## [1,] 1.0000000 0.8918374 0.4413539
## [2,] 0.8918374 1.0000000 0.1667167
## [3,] 0.4413539 0.1667167 1.0000000
result$P
##              [,1]       [,2]         [,3]
## [1,]           NA 0.00000000 8.308909e-12
## [2,] 0.000000e+00         NA 1.371414e-02
## [3,] 8.308909e-12 0.01371414           NA
### Nhận xét
# VNI và VN30 có mối tương quan thuận rất mạnh với hệ số tương quan r = 0.89.
# VNI và SP500 có mối tương quan thuận ở mức trung bình với hệ số tương quan r = 0.44.
# VN30 và SP500 có mối tương quan thuận yếu với hệ số tương quan r = 0.17.
# Các mối tương quan giữa VNI VN30 và VNI SP500 đều có ý nghĩa thống kê với p-value < 0.05.


### Câu G
mreg=lm(dulieu$VNI ~ dulieu$VN30 + dulieu$SP500)
summary(mreg)
## 
## Call:
## lm(formula = dulieu$VNI ~ dulieu$VN30 + dulieu$SP500)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -57.322 -14.153   3.623  15.982  58.722 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -4.172e+02  5.523e+01  -7.553  1.2e-12 ***
## dulieu$VN30   9.034e-01  2.534e-02  35.647  < 2e-16 ***
## dulieu$SP500  6.055e-02  4.749e-03  12.750  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 27.26 on 215 degrees of freedom
## Multiple R-squared:  0.8835, Adjusted R-squared:  0.8824 
## F-statistic: 815.1 on 2 and 215 DF,  p-value: < 2.2e-16
library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:psych':
## 
##     logit
vif(mreg)
##  dulieu$VN30 dulieu$SP500 
##     1.028589     1.028589
require(lmtest)
## Loading required package: lmtest
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
dwtest(mreg)
## 
##  Durbin-Watson test
## 
## data:  mreg
## DW = 0.0925, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
op=par(mfrow=c(2,2))
plot(mreg)

# Nhận xét:
# Các giá trị VIF khoảng 1.028 và nhỏ hơn 10 nên chưa có hiện tượng đa cộng tuyến.
# Kiểm định Durbin-Watson cho kết quả p-value nhỏ hơn 0.05, cho thấy phần dư có hiện tượng tự tương quan.
# Bốn biểu đồ chẩn đoán được sử dụng để đánh giá các giả định của mô hình hồi quy.