Professional Documents
Culture Documents
Mục tiêu của chương này là hướng dẫn các thực hành cho mô hình hồi quy hai biến số (còn gọi là hồi
quy đơn với ngụ ý rằng chỉ có một biến độc lập trong mô hình), kiểm định giả thuyết về các hệ số hồi
quy, ước lượng khoảng, ước lượng điểm, cũng như kiểm tra một số giả thuyết cơ bản về phần dư.
Trong chương này chúng ta sẽ thực hành với file dữ liệu có tên ch2_health.wf1 được cung cấp bởi
khoa Toán thuộc ĐH Kinh Tế Quốc Dân. File dữ liệu này gồm các thông tin về chi cho hệ thống chăm
sóc y tế (biến HEALTH), dân số (biến POP) và thu nhập từ các thuế và phí (biến INCOME) từ 50 bang
và khu vực hành chính Washington DC của Hoa Kì. Mục tiêu nghiên cứu là đánh giá xem chi cho hệ
thống y tế có liên hệ thế nào với nguồn thu nhập của các bang.
setwd("D:/KTLR")
library(hexView)
dung <- readEViews("ch2_health.wf1", as.data.frame = TRUE)
summary(dung)
library(tidyverse)
dung %>% summary()
with(dung, quantile(dung$INCOME))
Điều nà y có nghĩa là có (25%)⨉51 = 13 bang có INCOME bé hơn 35800. Chú ý rằ ng giá trị ứ ng vớ i
50% là 87300 chính là trung vị (Median) – giá trị mà chú ng ta đã thấ y ở phầ n trướ c.
Kết quả trên cũ ng có thể thu đượ c theo mộ t cá ch khá c vớ i toá n tử pipe (khô ng hiển thị kết quả ):
Chú ý rằ ng khi đã sử dụ ng toá n tử pipe thì dấu chấm (.) trong câ u lệnh trên có nghĩa là chú ng ta
đang “á m chỉ” đến data frame có tên dung.
Nếu chú ng ta quan tâ m đến cá c chi tiết thố ng kê chi tiết hơn cho bộ số liệu chú ng ta có thể sử dụ ng
gó i pastecs (xem lạ i chương 3):
options(scipen = 100)
options(digits = 8)
library(pastecs)
stat.desc(dung)
Chú ng ta có thể, chẳ ng hạ n, tìm ra quã ng đá ng tin 95% củ a HEALTH nằ m trong khoả ng từ 19929 –
6216 đến 19929 + 6216. Cò n giá trị coef.var = 1.109 chính là thương số củ a std.dev chia cho mean.
Giá trị CI.mean.0.95 là quã ng đá ng tin 95% cho cá c biến số (CI là viết tắ t củ a chữ Confidence
Interval
– quã ng đá ng tin).
cor(dung)
Hệ số tương quan giữ a POP và INCOME gầ n bằ ng 1 (lớ n hơn 0.8) nên nếu cả hai biến nà y xuấ t hiện
vớ i tư cá ch là biến độ c lậ p trong phương trình hồ i quy thì mô hình có thể mắ c lỗ i đa cộ ng tuyến ở
mứ c độ nghiên trọ ng. Chú ng ta sẽ xem xét vấ n đề nà y ở chương 7.
4.2 Thực hiện hồi quy và một số kiểm định thường gặp
Mụ c nà y chú ng ta xem xét việc thự c hiện hồ i quy đơn cũ ng như thự c hiện cá c kiểm định thườ ng gặ p
vớ i R.
4.2.1 Hồi quy đơn, khoảng tin cậy cho các hệ số và bảng ANOVA
Chú ng ta xét mô hình hồ i quy hai biến số sau:
1QMedian3QMax
## -10396.27 -1272.71-361.281087.989019.47
##
## Coefficients:
##EstimateStd. Error t value Pr(>|t|) ## (Intercept) 1263.6871121 555.4167236 2.2752
0.0273 *
## INCOME 0.1294835 0.0025135 51.5143<2e-16 ***
## ---
## Signif. codes: ##
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Vớ i toá n tử pipe thì toà n bộ kết quả nà y có thể đượ c thự c hiện ngắ n gọ n như sau:
options(digits = 10)
summary(hoiquy)
## Call:
## lm(formula = HEALTH ~ INCOME, data = dung)
172
##
## Residuals:
## Min 1Q Median 3Q Max
## -10396.2691 -1272.7115 -361.2774 1087.9789 9019.4712
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1263.687112078 555.416723600 2.27521 0.027305 *
## INCOME 0.129483522 0.002513543 51.51434 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3006.205 on 49 degrees of freedom
## Multiple R-squared: 0.9818702, Adjusted R-squared: 0.9815002
## F-statistic: 2653.727 on 1 and 49 DF, p-value: < 2.2204e-16
Lú c nà y, thố ng kê F đượ c lấ y tớ i 3 chữ số sau dấ u phẩ y. Rõ rà ng, nếu că n cứ theo cá c tiêu chuẩ n
truyền thố ng thì mô hình hồ i quy củ a chú ng ta là tố t thể hiện ở : (1) tấ t cả cá c hệ số hồ i quy có ý
nghĩa thố ng kê ở mứ c 5%, (2) R2 rấ t cao, và (3) thố ng kê F có giá trị lớ n.
Chú ng ta cũ ng có thể biểu diễn đườ ng hồ i quy (Regression Line) vớ i khoả ng tin cậ y 95%:
library(ggplot2)
ggplot(dung, aes(INCOME, HEALTH)) + geom_point() + geom_smooth(method = "lm")
Phầ n trên chú ng ta đã quen thuộ c vớ i hà m summary(). Chẳ ng hạ n để tính khoả ng tin cậ y 95% cho
cá c hệ số hồ i quy:
confint(hoiquy)
## 2.5 % 97.5 %
## (Intercept) 147.5354180444 2379.8388061115
## INCOME 0.1244323678 0.1345346762
173
## 5 % 95 %
## (Intercept) 332.5027083524 2194.8715158035
## INCOME 0.1252694389 0.1336976051
Mộ t trong nhữ ng thô ng tin quan trọ ng khi thự c hiện hồ i quy là phâ n tích bả ng ANOVA:
anova(hoiquy)
4.2.2 Thực hiện một số kiểm định thường gặp cho mô hình hồi quy
Dướ i đâ y trình bà y mộ t số kiểm định thườ ng gặ p cho mô hình hồ i quy. Cá c kiểm định nà y có thể
phâ n thà nh hai nhó m. Nhó m thứ nhấ t là cá c kiểm định nhằ m đá nh giá mô t số giả thuyết củ a mô
hình hồ i quy tuyến tính cổ điển, chẳ ng hạ n, kiểm định tính phâ n phố i chuẩ n củ a phầ n dư. Nhó m thứ
hai là cá c kiểm định liên quan đến hệ số hồ i quy củ a mô hình.
4.2.2.1 Kiểm định Wald về một giá trị cụ thể của một hệ số hồi quy
Giả sử chú ng ta tin rằ ng số hồ i quy β2 = 0.15. Chú ng ta có thể kiểm định giả thuyết nà y vớ i gó i AER
như sau:
library(AER)
hoiquy <- lm(data = dung, HEALTH ~ INCOME)# Chạy lại mô hình hồi quy
linearHypothesis(hoiquy, "INCOME = 0.15")
Cộ t giá trị Pr(>F) = 10.79⨉10-11 là rấ t bé nên ta bá c bỏ giả thiết β2 = 0.15. bạ n có thể thự c hiện kiểm
định nà y bằ ng gõ linear.hypothesis(hoiquy,"INCOME=0.15"). Tấ t nhiên kết quả là khô ng thay
đổ i.
4.2.2.2 Kiểm định Wald đồng thời cho nhiều hệ số hồi quy
Nếu chú ng ta tin rằ ng β1 = 1300 và β2 = 0.15 chú ng ta có thể thự c hiện kiểm định Wald như sau:
## Linear hypothesis testc("(Intercept) = 1300", "INCOME = 0.13"))
linearHypothesis(hoiquy,
##
## Hypothesis:
## (Intercept) = 1300
## INCOME = 0.13
##
## Model 1: restricted model
## Model 2: HEALTH ~ INCOME
##
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 51 443833425
## 2 49 442826151 2 1007274.4 0.05573 0.94586
Cộ t giá trị Pr(>F) = 0.94 > 5% nên chú ng ta có bằ ng chứ ng thố ng kê cho rằ ng β1 = 1300 và β2 = 0.15.
Ở đâ y cá c bạ n cầ n chú ý rằ ng mặ c dù chú ng ta bắ c bỏ giả thuyết β2 = 0.15 (mụ c 4.5) nhưng chú ng ta
lạ i chấ p nhậ n giả thuyết rằ ng β1 = 1300 và β2 = 0.15.
Kiểm định Wald về sự rà ng buộ c củ a cá c hệ số hồ i quy á p dụ ng cho cặ p giả thuyết H0: mβ2 + nβ3 = p;
H1: mβ2 + nβ3 # p. Kiểm định nà y á p dụ ng cho hồ i quy bộ i và ta sẽ xét trong chương 5.
HEALTH = β1 + β2INCOME. + ui
Y = β1 + β2X + ui
175
Trong đó X0 là mộ t giá trị cụ thể na o đo . Vì Ŷ 0 là mộ t ướ c lượ ng nên nó có thể khác giá trị thự c và
tuâ n theo mộ t phân phố i nà o đó . Khoa họ c thố ng kê đã chỉ ra rằ ng Ŷ 0 tuâ n theo phâ n phố i chuẩ n vớ i
phương sai như sau:
1
var(𝑌̂0 ) = 𝜎 2 [ ( 𝑋0 − 𝑋̅ ) 2
+ 2 ] (𝑎)
𝑛 ∑ 𝑥𝑖
Hay:
𝑌̂0 − (𝛽1 + 𝛽2 𝑋0 )
𝑡= (𝑐)
𝑠𝑒(𝑌̂ ) 0
1263.6871121 + 0.1294835*20000
## [1] 3853.357553
Con số 3853.687nà y gâ y ra nhiều nhầ m lẫ n trong diễn giả i ý nghĩa củ a nó . Thự c vậ y, nhiều bạ n hiểu
mộ t cá ch sai trá i rằ ng khi income củ a Carlifornia bằ ng 20000 thì chi cho y tế củ a bang nà y là
3853.687. Nguyên nhâ n là chi cho y tế củ a bang California là mộ t biến ngẫ u nhiên và ta khô ng biết
chính xá c biến ngẫ u nhiên nà y là bao nhiêu mà chỉ biết nó nằ m trong mộ t khoả ng giá trị nà o đó mà
thô i. Giá trị 3853.687 ở trên đượ c gọ i là ước lượng điểm (Point Prediction, tên gọ i khá c là ước
lượng trung bình – Mean Prediction). Sử dụ ng cá c cô ng thứ c từ (a) đến (e) chú ng ta có thể tính
ướ c lượ ng khoả ng tin cậ y 95% cho ướ c lượ ng củ a Ŷ 0 khi X0 = 20000. Tuy nhiên tính toá n thủ cô ng
như vậ y rấ t lâ u. R cho phép ta tính con số ướ c lượ ng điểm 3853.687 cù ng vớ i khoả ng tin cậ y 95%
mộ t cá ch nhanh chó ng chỉ vớ i mộ t dò ng lệnh:
Nếu bạ n muố n dự bá o mộ t chuỗ i cá c ướ c lượ ng ứ ng vớ i mứ c thu nhậ p từ 12000 cho đến 100000
nhưng cá c mứ c thu nhậ p cá ch nhau 1000. Tứ c là quan sá t đầ u tiên ứ ng vớ i INCOME = 12000, quan
sá t thứ hai ứ ng vớ i INCOME = 13000 cho đến quan sá t cuố i cù ng ứ ng vớ i INCOME = 100000 thì
chú ng ta là m như sau (lấ y 10 kết quả đầ u tiên) :
177
Tuy nhiên nếu chú ng ta quan tâ m đến cá c ước lượng cá nhân (Individual Prediction) củ a Y0 (Y0 chứ
khô ng phả i la` Ŷ 0 ) tương ứ ng vớ i X0 thì giá trị ướ c lượ ng Y0 có phương sai tính theo cô ng thứ c sau:
1 (𝑋0 − 𝑋̅ )2
2 = 𝜎2 [1 +
var(𝑌0 − 𝑌̂0 ) = 𝐸[𝑌0 −
𝑛+ ] (𝑓)
𝑌̂0 ] ∑ 𝑥𝑖2
Giá trị fit (ướ c lượ ng) thì khô ng thay đổ i và vẫ n là 3853.357553 nhưng có thể thấ y khoả ng tin cậ y
trở nên rộ ng hơn.
4.3 Một số tiêu chí thường sử dụng để đánh giá chất lượng mô hình
Khi thự c hiện cá c phâ n tích cũ ng như nghiên cứ u, chú ng ta có thể phả i đưa ra quyết định lự a chọ n
mô hình nà o là phù hợ p. Hoặ c chú ng ta cũ ng cầ n phả i đá nh giá phẩ m chấ t, độ phù hợ p củ a mô hình
chẳ ng hạ n. Để là m điều nà y, trướ c hết chú ng ta phả i quyết định cầ n phả i sử dụ ng nhữ ng tiêu chí gì
để đá nh giá mộ t mô hình là tố t hơn nhữ ng mô hình khá c cũ ng như chấ t lượ ng củ a mộ t mô hình cụ
thể. Ví dụ , để lự a chọ n mộ t mô hình trong số cá c mô hình cạ nh tranh nhau chú ng ta phả i dự a và o
mộ t loạ t cá c yếu tố cũ ng như tiêu chí khá c nhau. Trong mụ c nà y, chú ng ta xem xét mộ t số tiêu chí
thố ng kê thườ ng sử dụ ng để đá nh giá và so sá nh cá c mô hình.
178
Vớ i hồ i quy đơn (là mô hình chỉ có 1 biến độ c lậ p) như ở mô hình a thì R2 = [cor(Y,X)]2 hay là bình
phương tương quan giữ a X và Y. Vớ i hồ i quy đa biến (mô hình có nhiều hơn 1 biến độ c lậ p) thì R 2 =
[cor(Y,Ŷ )]2 trong đo ,Ŷ la` gia trị dự bá o củ a củ a Y thu đượ c từ mô hình.
Trong tình huố ng mà hai mô hình khô ng có biến phụ thuộ c như nhau như mô hình a và mô hình b
thì để đá nh giá và so sá nh chú ng ta có thể so sa nh cor(Y,Ŷ a) va` cor(Y,Ŷ b) vớ i Ŷ a va` Ŷ b lầ n lượ t là cá c
giá trị ướ c lượ ng thu đượ c củ a Y từ mô hình a và b. Giá trị tương quan mà cà ng cao thì có nghĩa là
ướ c lượ ng củ a Y thu đượ c cà ng gầ n vớ i giá trị thự c củ a nó , và do đó mô hình nà o có giá trị tương
quan nà y cao hơn thì sẽ là mô hình tố t hơn.
Mộ t giá trị MSE (hoặ c RMSE) cà ng bé thì có nghĩa là nhữ ng giá trị ướ c lượ ng củ a Y sẽ cà ng sá t vớ i giá
trị thự c và do đó , mộ t mô hình có MSE (RMSE) bé hơn sẽ là mộ t mô hình tố t hơn.
Ngoà i ra mộ t số tiêu chí thuộ c nhó m nà y là MD, MAD, MPE và MAPE cũ ng có thể đượ c sử dụ ng để
đá nh giá mô hình.
4.5.3 Các tiêu chuẩn thông tin AIC, SIC, và Cp của Mallow
Đâ y là nhó m tiêu chí thườ ng đượ c sử dụ ng thay thế cho R2 trong nhiều tình huố ng và nó hạ n chế
đượ c cá c nhượ c điểm củ a tiêu chí R2.
Vớ i cá c kí hiệu cá c bạ n đã quen thuộ c, tiêu chuẩ n thô ng tin Akaike (AIC) đượ c tình theo cô ng thứ c:
∑ 𝑢̂ 2 RSS
2𝑘/𝑛 𝑖 2𝑘/𝑛
AIC = 𝑒 = 𝑒
𝑛 n
179
AIC(hoiquy)
Tương tự , tiêu chuẩ n thô ng tin Schwarz (SIC) cũ ng đượ c sử dụ ng để so sá nh và đá nh giá cá c mô hình
cạ nh tranh. SIC đượ c tính theo cô ng thứ c sau:
∑ 𝑢̂ 2
RSS
𝑘/𝑛 𝑘/𝑛
SIC = 𝑛 =𝑛
𝑛 n
Hiện tạ i, trong R chưa có sẵ n hà m tính SIC nhưng cá c bạ n có thể trự c tiếp SIC trong R theo cô ng thứ c
nà y.
4.5.4 Tỉ lệ sai sót huấn luyện, sai sót kiểm định và hiện tượng quá khớp
Nhữ ng gì cá c bạ n sắ p đọ c chắ c chắ n là mộ t thử thá ch. Khô ng phả i vì nhữ ng gì đượ c trình bà y ở đâ y
là quá khó so vớ i tư duy củ a cá c bạ n mà vì mộ t lí do khá c rấ t đặ c trưng củ a hầ u hết chú ng ta: chưa
quen vớ i suy nghĩ mộ t cá ch thố ng kê (Thinking Statistically) – điều mà hầ u hết cá c giá o trình thố ng
kê cũ ng như kinh tế lượ ng bằ ng tiếng Việt khô ng đề cậ p.
Thô ng thườ ng việc so sá nh chấ t lượ ng giữ a hai mô hình hình cạ nh tranh nhau hoặ c đá nh giá chấ t
lượ ng củ a mộ t mô hình chú ng ta thườ ng dự a và o, chẳ ng hạ n, tiêu chí R 2 hoặ c MSE. Nếu chọ n MSE để
đá nh giá thì mô hình nà o có MSE bé hơn sẽ là mô hình tố t hơn. Trong tình huố ng đặ c biệt, nếu MSE
= 0 (tương đương vớ i R2 =1) thì có nghĩa là chú ng ta có mộ t mô hình hoà n hả o vớ i ngụ ý rằ ng cá c
biến số giả i thích 100% biến độ ng củ a biến phụ thuộ c. Tương tự , khi đá nh giá mộ t mô hình chú ng ta
thườ ng că n cứ và o R2 – chỉ số nà y cà ng cao cà ng tố t. Hoặ c chú ng ta ta că n cứ và o MSE – chỉ số nà y
cà ng thấ p cà ng tố t. Phả i chă ng, chẳ ng hạ n, chỉ căn cứ vào MSE để đánh giá (hay so sá nh) chấ t
lượ ng củ a cá c mô hình là đủ ?
180
Câ u trả lờ i là khô ng. Để đá nh giá chấ t lượ ng củ a mộ t mô hình, theo James et al. (2013), chúng ta
cần căn cứ vào đồng thời cả hai tiêu chí: (1) sai số huấn luyện – training test error, và (2) sai
số kiểm định – testing test error. Để là m rõ hai khá i niệm nà y chú ng ta trở lạ i vớ i bộ số liệu ở mụ c
CPS1988 đã sử dụ ng ở chương 3 nhằ m ướ c lượ ng mô hình sau:
Tuy nhiên thay vì ướ c lượ ng mô hình 2 vớ i tấ t cả 28155 quan sá t chú ng ta chỉ ướ c lượ ng mô hình
nà y vớ i 16.000 quan sá t mà thô i. Rõ rà ng là có đến K= 28155!/[16000!⨉(28155-16000)!] cá ch lấ y
ra 16000 quan sá t từ 28155 quan sá t và do vậ y chú ng ta cũ ng có chừ ng đó cặ p giá trị ướ c lượ ng củ a
β1 và β2 cũ ng như MSE. Dướ i đâ y là 2 bộ số liệu rú t ra từ K bộ số liệu có 16000 quan sá t và do vậ y có
2 bộ ướ c lượ ng β1 và β2 cũ ng như MSE:
data(CPS1988, package = "AER")
dim(CPS1988)
## [1] 28155 7
head(CPS1988)
set.seed(2611)
p <- 16000 / 28155
id1 <- sample(nrow(CPS1988), round(p*nrow(CPS1988)))
data1 <- CPS1988[id1, ] # Lấy bộ số liệu thứ nhất gồm 16000 quan sát.
data11 <- CPS1988[-id1, ] # Bộ số liệu còn lại sau khi loại ra tất cả các
quan sát đã có ở data1.
id2 <- sample(nrow(CPS1988), round(p*nrow(CPS1988)))
data2 <- CPS1988[id2, ] # Lấy bộ số liệu thứ hai gồm 16000 quan sát.
data22 <- CPS1988[-id2, ] # Lấy phần số liệu còn lại sau khi loại ra tất cả c
ác quan sát đã có ở data2.
head(data1)
head(data2)
##
## =============================================================
## Dependent variable:
## ----------------------------
## wage
## (1) (2)
##
## education 48.268*** 46.491***
## (1.150) (1.246)
##
## Constant -24.752 -1.028
## (15.432) (16.696)
##
##
## Observations 16,000 16,000
## R2 0.099 0.080
## Adjusted R2 0.099 0.080
## Residual Std. Error (df = 15998) 421.488 455.417
## F Statistic (df = 1; 15998) 1,760.477*** 1,393.024***
## =============================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
library(Metrics)
MSE1 <- mse(data1$wage, predict(ols1, data1))
MSE2 <- mse(data2$wage, predict(ols2, data2))
print(paste(MSE1, MSE2))
182
Ở đâ y cá c bạ n có thể thấ y MSE1 thu đượ c từ bộ dữ liệu data1 bé hơn MSE2 thu đượ c từ data2. Phả i
chă ng cá c ướ c lượ ng từ data1 sẽ là đạ i diện hợ p lí hơn so vớ i cá c ướ c lượ ng từ data2 để mô tả mố i
quan hệ thự c giữ a wage và education?.
Câ u trả lờ i là chưa chắ c. MSE1 và MSE2 mà chú ng ta thu đượ c ở trên chính là tỉ lệ sai sót huấn
luyện (training error rate). Nguyên nhâ n là ta thu đượ c cá c ướ c lượ ng OLS từ data1 và data2 rồ i ta
sử dụ ng chính hai mô hình thu đượ c dự a trên hai bộ số liệu nà y để ướ c lượ ng wage thuộ c chính
data1 và data2. Ở đâ y, bộ dữ liệu đượ c sử dụ ng để xâ y dự ng mô hình là data1 và data2 nên trong
nghiên cứ u thố ng kê và kinh tế lượ ng, chú ng có mộ t tên gọ i cụ thể hơn thể hiện bả n chấ t và và i trò
củ a bộ số liệu: dữ liệu huấn luyện (training data, hoặ c training set).
Tương tự khá i niệm tỉ lệ sai só t huấ n luyện, tỉ lệ sai sót kiểm định (testing error rate) đượ c tính
toá n dự a trên data11 và data22 – là hai bộ dữ liệu cò n lạ i sau khi chú ng ta lấ y ra data1 và data2 –
nhằ m đá nh giá mô hình. Hai bộ dữ liệu data11 và data22 có tên gọ i là dữ liệu kiểm định (testing
data, hay testing set). Tên gọ i nà y có ngụ ý rằ ng, chẳ ng hạ n, ols1 được xây dựng dựa trên bộ số
liệu data1 và sau đó bộ dữ liệu kiểm định tương ứng của data1 là data11 được sử dụng để
đánh giá lại mô hình. Chú ng ta có thể tính toá n tỉ lệ sai só t kiểm định ứ ng vớ i hai bộ số liệu:
Như vậ y, mặ c dù tỉ lệ sai só t huấ n luyện ứ ng vớ i data1 là thấ p hơn tỉ lệ sai só t huấ n luyện ứ ng vớ i
data2 nhưng tỉ lệ sai só t kiểm định ứ ng vớ i data1 lạ i cao hơn tỉ lệ sai só t tỉ lệ sai só t kiểm định ứ ng
vớ i data2.
Cá c khá i niệm về tỉ lệ sai só t kiểm định và tỉ lệ sai só t huấ n luyện là nền tả ng củ a mộ t khá i niệm rấ t
quan trọ ng trong nghiên cứ u thố ng kê nó i chung và kinh tế lượ ng nó i riêng, nhấ t là bà i toá n dự bá o:
hiện tượng quá khớp (overfitting). Hiện tượ ng quá khớ p đượ c hiểu là mộ t mô hình rấ t phù hợ p
vớ i bộ dữ liệu huấ n luyện (MSE thấ p và R2 cao chẳ ng hạ n) nhưng lạ i khô ng phù hợ p vớ i bộ dữ liệu
kiểm định (MSE cao và R2 thấ p). Khi mộ t mô hình xẩ y ra hiện tượ ng quá khớ p thì mặ c dù nó có thể
dự bá o rấ t tố t trên mộ t tậ p quan sá t nhưng nó lạ i thấ t bạ i trong việc dự bá o khi chú ng ta sử dụ ng bộ
dữ liệu khá c. Nó i cá ch khá c, một mô hình quá khớp không có giá trị phổ quát vì nó chỉ phù hợp
(fitting) với một bộ dữ liệu cụ thể nào đó nhưng lại không phù hợp với những bộ dữ liệu khác
và do vậy, mô hình không có nhiều ý nghĩa trong bài toán dự báo cũng như mô tả.
Ngượ c lạ i vớ i hiện tượ ng quá khớ p là underfitting, theo đó , khả nă ng dự bá o (hay khớ p) vớ i số liệu
củ a mô hình ở bộ số liệu huấ n luyện là thấ p hơn so vớ i khả nă ng dự bá o (hay khớ p) củ a mô hình ở
bộ số liệu kiểm định.
Mộ t mô hình tố t là mộ t mô hình có cả hai thứ : tỉ lệ sai só t huấ n luyện và tỉ lệ sai só t kiểm định đều
thấ p. Thô ng thườ ng khi đá nh giá mô hình (hoặ c so sá nh cá c mô hình) thì chú ng ta cầ n phả i lưu tâ m
đồng thời cả hai yếu tố nà y.
183
Nhữ ng khá i niệm cá c bạ n vừ a nghiên cứ u ở trên là nền tả ng cho mộ t nhá nh củ a khoa họ c thố ng kê
gọ i là cá c phương pháp tái chọn mẫu (Resampling Methods) đượ c trình bà y ở mụ c sau.
Cuố i cù ng để giú p cá c bạ n hiểu rõ hơn về hai loạ i tỉ lệ sai só t, dướ i đâ y là R code dướ i đâ y thự c hiện
hồ i quy OLS cho mô hình 2 vớ i bộ dữ liệu huấ n luyện là 16000 quan sá t và bộ dữ liệu kiểm định là
28155 – 16000 quan sá t cò n lạ i. Sau khi thự c hiện OLS xong tính MSEtraining (tỉ lệ sai só t huấ n
luyện) và MSEtesting (tỉ lệ sai só t kiểm định). Quá trình nà y lặ p đi lặ p lạ i 1000 lầ n và do đó có 1000
cặ p giá trị củ a MSEtesting và MSEtraining đượ c lưu lạ i ở data frame tên trangyeu. Cuố i cù ng chú ng
ta so sá nh mean (trung bình) củ a cá c giá trị MSE nà y:
## MSEtraining MSEtesting
## Min. 149297 Min. 145566
## 1st Qu.:177345 1st Qu.:173207
## Median :188070 Median :185580
## Mean 187115 Mean 186834
## 3rd Qu.:197456 3rd Qu.:199717
## Max. 218484 Max. 236670
Kết quả chỉ ra rằ ng MSEtesting (tỉ lệ sai só t kiểm định) có trung bình là 186834 thấ p hơn
MSEtraining (tỉ lệ sai só t huấ n luyện) có trung bình 187115 khi cho mô hình chạ y vớ i 1000 bộ dữ
liệu khá c nhau nên có có thể thấ y mô hình (2) có dấ u hiệu củ a hiện tượ ng underfitting (mộ t hiện
tượ ng ngượ c lạ i overfitting).
4.4 Đánh giá chất lượng của mô hình bằng các phương pháp tái chọn mẫu
Cá c phương phá p tá i chọ n mẫ u (Resampling Methods) là mộ t cá ch tiếp cậ n đầ y sứ c mạ nh và tin cậ y
để đá nh giá chấ t lượ ng củ a mộ t mô hình thố ng kê nó i chung cũ ng như cá c mô hình kinh tế lượ ng
(James et al., 2013). Trướ c đâ y, trong mộ t thờ i gian khá dà i, do sứ c mạ nh tính toá n củ a má y tính cò n
hạ n chế nên cá c phương phá p tá i chọ n mẫ u dù rấ t hoà n thiện về lý thuyết nhưng trong thự c tế ít
đượ c sử dụ ng. Tuy nhiên, nhữ ng hạ n chế nà y khô ng cò n là trở ngạ i lớ n khi mà sứ c mạ nh tính toá n
củ a má y tính ngà y cà ng mạ nh và nhanh như hiện nay.
Mụ c nà y cũ ng giớ i thiệu phương phá p bootstrap thay thế cho sử dụ ng hồ i quy tuyến tính OLS vố n
phụ thuộ c nhiều và o cá c giả định chặ t chẽ và do vậ y cá c kết quả ướ c lượ ng thu đượ c từ OLS là rấ t
nhậ y vớ i nhữ ng giả định nà y. Vì lý do nà y, cá c ướ c lượ ng thu đượ c từ phương phá p bootstrap sẽ là
tin cậ y hơn.
Để minh họ a cho phương phá p tiếp cậ n nà y, chú ng ta nghiên cứ u tình huố ng sau. Giả sử chú ng ta có
mộ t số tiền cố định và đầ u tư số tiền nà y và o hai cổ phiếu A và B vớ i lợ i tứ c lầ n lượ t là X và Y. Chú ý
rằ ng X và Y là nhữ ng biến nghẫ u nhiên. Nếu gọ i α là tỉ trọ ng đầ u tư và o cổ phiếu A thì (1- α) sẽ là tỉ
trọ ng đầ u tư và o cổ phiếu B. Như vậ y rủ i ro củ a danh mụ c đầ u tư nà y đượ c đo bằ ng:
Var(𝛼𝑋 + (1 − 𝛼)𝑌)
Chú ng ta đã biết rằ ng nhằ m tố i thiểu hó a rủ i ro, tỉ trọ ng đầ u tư và o cổ phiếu A phả i thỏ a mã n:
𝜎2 − 𝜎𝑋𝑌
𝛼 = 𝜎2 +𝑌𝜎2 − 2𝜎
𝑋𝑌
𝑋 𝑌
Trong đó :
Vấ n đề ở đâ u là trong thự c tế chú ng ta khô ng biết ba đạ i lượ ng trên, do vậ y chú ng ta buộ c phả i ướ c
lượ ng cá c giá trị nà y để tính giá trị ướ c lượ ng củ a α la` α̂ . Điều nà y đượ c tiến hà nh như sau. Chú ng
ta lấy 100 cặ p quan sát củ a X và Y để tì nh α̂ 1. Lặ p lại quá trình này 1000 lần và như vậy chú ng ta có
1000 giá trị củ a α̂ . Lú c nà y trung bình củ a α̂ đượ c tính như sau:
1,000
1
𝛼̅ = ∑ 𝛼̂𝑟
1,000 𝑟=1
1 1,000
√ 1,000 − 1
∑ (𝛼̂𝑟 − 𝛼̅ )2
𝑟=1
Nhữ ng bướ c mô tả như trên trong thự c tế chú ng ta khó có thể á p dụ ng đượ c trong thự c tế vì khó có
thể lấ y ra 1000 mẫ u khác nhau gồ m 100 cặ p giá trị X, Y từ mẫ u nguyên thủ y ban đầ u.
186
Tuy nhiên chú ng ta có thể sử dụ ng phương phá p Bootstrap để thự c hiện điều nà y bằ ng cá ch tá i lấy
mẫu có hoàn lại. Nghĩa là cá c quan sá t có thể đượ c lấ y mộ t cá ch trù ng lặ p. Thủ tụ c nà y đượ c mô tả
chi tiết ngay sau đâ y.
Khi đó độ lệch chuẩ n củ a α từ phương phá p Bootstrap đượ c tính theo cô ng thứ c tổ ng quá t sau:
𝐵
1
SE𝐵 (𝛼̂ ) = √ ∑(𝛼̂𝑟 − 𝛼̅ )2
𝐵−1
𝑟=1
# Tạo hàm có tên alpha để tính tỉ trọng đầu tư vào tài sản A.
alpha <- function(data, index){
X = data$X[index]
187
Y = data$Y[index]
return((var(Y) - cov(X,Y)) / (var(X) + var(Y) - 2*cov(X,Y)))
}
## X Y
## 1 -0.8952509 -0.2349235
## 2 -1.5624543 -0.8851760
## 3 -0.4170899 0.2718880
## 4 1.0443557 -0.7341975
## 5 -0.3155684 0.8419834
## 6 -1.7371238 -2.0371910
tail(Portfolio)
## X Y
## 95 2.2608577 0.6732248
## 96 0.4790909 1.4547745
## 97 -0.5350200 -0.3991748
## 98 -0.7731293 -0.9571748
## 99 0.4036343 1.3960382
## 100 -0.5884964 -0.4972851
alpha(Portfolio)
## [1] 0.5758321
## [1] 0.5220407
Tấ t nhiên kết quả củ a bạ n sẽ khô ng phả i lf 0.5220407 như trên vì tính chấ t ngẫ u nhiên củ a mẫ u
đượ c chọ n. Và mỗ i lầ n thự c hiện thì sẽ ra mộ t kết quả khá c. Chú ng ta có thể lặ p lạ i quá trình nà y
1000 lầ n, và do vậ y có 1000 giá trị ướ c lượ ng củ a α. Chú ng ta ghi lạ i 1000 giá trị nà y và tính mean
cũ ng như độ
188
lệch chuẩ n. Tuy nhiên R có gó i boot có thể tự độ ng là m việc nà y mộ t cá ch nhanh chó ng. Để tá i tạ o kết
quả , chú ng ta sử dụ ng hà m set.seet() như sau:
library(boot)
set.seed(2611) # Để đảm bảo kết quả là trùng lặp.
trang <- boot(Portfolio, alpha, R = 1000)
trang
##
## ORDINARY NONPARAMETRIC BOOTSTRAP
##
##
## Call:
## boot(data = Portfolio, statistic = alpha, R = 1000)
##
##
## Bootstrap Statistics :
## original bias std. error
## t1* 0.5758321 0.002269671 0.09310941
Chú ng ta thấ y giá trị ứ ng vớ i cộ t original chính là ướ c lượ ng củ a alpha ứ ng vớ i mẫ u gố c. Mộ t kết quả
mà ta đã có từ trướ c. Kết quả chỉ ra rằ ng sai số chuẩ n ướ c lượ ng cho ướ c lượ ng củ a alpha là
0.09310941. Chú ng ta có thể tính trung bình, tính lạ i giá trị củ a sai số chuẩ n nà y:
head(trang$t) # Xem 6 quan sát đầu trong số 1000 ước lượng của alpha.
## [,1]
## [1,] 0.5081016
## [2,] 0.3961208
## [3,] 0.5432477
## [4,] 0.7088269
## [5,] 0.4465900
## [6,] 0.6602969
## [,1]
## [995,] 0.5278409
## [996,] 0.5216640
## [997,] 0.7314720
## [998,] 0.5328849
## [999,] 0.6543257
## [1000,] 0.5533597
## [1] 0.09310941
mean(trang$t) # Trung bình các ước lượng ứng với 1000 mẫu Bootstrap.
## [1] 0.5781017
par(mfrow = c(1, 1)) # Đặt chế độ hiển thị mặc định của R
Hoà n toà n tương tự chú ng ta có thể sử dụ ng phương phá p Bootstrap để đá nh giá chấ t lượ ng cũ ng
như cá c khía cạ nh khá c cho kết quả hồ i quy thu đượ c ở mụ c 4.2. Trướ c hết chú ng ta viết hà m có tên
boot.hesohoiquy để hiển thị cá c hệ số hồ i quy:
## (Intercept) INCOME
## 1263.6871121 0.1294835
Kết quả trên là trù ng khớ p vớ i kết quả thu đượ c ở mụ c 4.2 khi chú ng ta thự c hiện hồ i quy. Dướ i đâ y
là cá c câ u lệnh thự c hiện bootstrap cho hai mẫ u. Chú ý rằ ng nhữ ng ướ c lượ ng thu đượ c tương ứ ng
là khá c nhau:
set.seed(123)
boot.hesohoiquy(dung, sample(51, 51, replace = T))
## (Intercept) INCOME
##65.794685 0.139344
## (Intercept) INCOME
## 1720.8031663 0.1258176
Chú ng ta có thể lặ p lạ i quá trình nà y 1000 lầ n để nghiên cứ u sự ổ n định củ a mô hình hồ i quy thu
đượ c ở mụ c 4.2:
##
## ORDINARY NONPARAMETRIC BOOTSTRAP
##
##
## Call:
## boot(data = dung, statistic = boot.hesohoiquy, R = 1000)
##
##
## Bootstrap Statistics :
## original bias std. error
## t1* 1263.6871121 -2.136956e+02 7.374884e+02
## t2* 0.1294835 1.849314e-03 6.860844e-03
Chú ng ta có thể hiểu rõ hơn nhữ ng kết quả trên như sau:
## [,1] [,2]
## [1,] 1122.742 0.1311281
## [2,] 1433.357 0.1234588
## [3,] 1407.709 0.1262977
## [4,] 1565.651 0.1269054
## [5,] 1789.845 0.1278887
## [6,] 924.016 0.1332488
tail(love)
## [,1] [,2]
## [995,] 1305.4825 0.1295534
## [996,] -250.2552 0.1447241
## [997,] 1906.9541 0.1247074
## [998,] 1892.8701 0.1269881
## [999,] 1153.3988 0.1288668
## [1000,] 734.9050 0.1325789
summary(love)
191
## V1 V2
## Min. :-850.5 Min. :0.1179
## 1st Qu.: 412.1 1st Qu.:0.1259
## Median :1199.1 Median :0.1300
## Mean :1050.0 Mean :0.1313
## 3rd Qu.:1612.8 3rd Qu.:0.1370
## Max. :2852.6 Max. :0.1490
So sá nh, chẳ ng hạ n sai số chuẩ n củ a cá c ướ c lượ ng từ phương phá p Bootstrap vớ i hồ i quy ở mụ c 4.2:
Hệ số chặ n và hệ số gó c thu đượ c từ phương phá p bootstrap lầ n lượ t là 1050 và 0.1313. Nhữ ng kết
quả nà y là khá sá t vớ i nhữ ng kết quả khi sử dụ ng OLS. Tuy nhiên độ lệch chuẩ n ứ ng vớ i cá c ướ c
lượ ng có sai khá c đá ng kể hơn. Phả i chă ng cá c ướ c lượ ng thu đượ c từ phương phá p bootstrap là có
vấ n đề? Sự thự c thì ngượ c lạ i. Thậ t vậ y, cá c ướ c lượ ng cho sai số chuẩ n ứ ng vớ i cá c hệ số hồ i quy
OLS phụ thuộ c và o phương sai σ2 nhưng giá trị nà y là khô ng bao giờ biết và do vậ y buộ c phả i ướ c
lượ ng giá trị nà y bằ ng sử dụ ng RSS. Ngoà i ra, OLS giả định rằ ng cá c giá trị củ a INCOME là cố định và
do đó nhữ ng sai lệch (variation) đượ c “nhó m” và o sai số ngẫ u nhiên. Cá c ướ c lượ ng thu đượ c từ
bootstrap không dựa vào các giả định này vào do vậy nó đưa ra những ước lượng hợp lí hơn
(James et al., 2013; Chernick, 2008) so vớ i cá c ướ c lượ ng thu đượ c từ OLS như chú ng ta đã là m ở
mụ c 4.2.
MSE1 = (y - ŷ 1)2
Rõ rà ng, bộ dữ liệu gồ m n-1 phầ n tử đượ c sử dụ ng để dự ng mô hình OLS chính là dữ liệu huấ n luyện
và phầ n tử duy nhấ t đượ c trừ ra (x 1, y1) đó ng vai trò là bộ dữ liệu kiểm định. Như vậ y, MSE 1 sẽ là sai
số kiểm định và sẽ đượ c sử dụ ng để đá nh giá mô hình ứ ng vớ i bộ dữ liệu huấ n luyện gồ m n-1 phầ n
tử nà y.
192
Chú ng ta sẽ lặ p lạ i quá trình bằ ng trên bằ ng cá ch giữ lạ i phầ n tử (x2, y2), chạ y mô hình OLS cho n-1
quan sá t cò n lạ i và tính MSE1 theo cô ng thứ c MSE2 = (y - ŷ 2)2. Do bộ dữ liệu ban đầ u có n phầ n tử nên
quá trình nà y đượ c lặ p lạ i n lầ n và trung bình củ a cá c MSE, kí hiệu là CV (n) đượ c tính theo cô ng thứ c
dướ i đâ y sẽ là tiêu chí đá nh giá sai só t kiểm định toà n cụ c củ a mô hình:
𝑛
1
CV(𝑛) = ∑ MSE𝑖
𝑛𝑖=1
Chú ng ta sẽ sử dụ ng bộ số liệu ở mụ c 4.2 để thự c hà nh LOOCV. Dướ i đâ y là R code thự c hiện mộ t
vò ng lặ p 51 lầ n cho bộ dữ liệu vì rằ ng chú ng ta có 51 quan sá t. Chú ý rằ ng, nếu bộ dữ liệu có 1 triệu
quan sá t, thì chú ng ta hoà n toà n có thể chạ y mộ t vò ng lặ p 1 triệu lầ n. Tuy nhiên, thự c tế khô ng nhấ t
thiết phả i là m thế vì để đá nh giá chấ t lượ ng và độ ổ n định củ a mô hình ta chỉ cầ n mộ t vò ng lặ p đủ
lớ n, chẳ ng hạ n, 10000 lầ n là đủ .
cacMSE <- c()
for (i in 1:51){
testing <- dung[i,]
training <- dung[-i,]
ols <- lm(HEALTH ~ INCOME, data = training)
mse <- mse(testing$HEALTH, predict(ols, testing))
cacMSE <- c(cacMSE, mse)
}
mean(cacMSE)
## [1] 14388750
Chú ng ta có thể thấ y trong số 51 giá trị MSE, chỉ có 4 giá trị MSE là khá c biệt so vớ i nhó m cò n lạ i.
Nghĩa là kết quả dự bá o củ a mô hình cũ ng khá ổ n định. Tính ổ n định củ a mô hình cũ ng là mộ t tiêu
chí quan trọ ng cầ n đá nh giá nhấ t là vớ i mụ c đích dự bá o. Trong tình huố ng củ a chú ng ta, hầ u hết
cá c
193
MSE đều có giá trị khá sá t nhau, ngoạ i trừ có 4 tình huố ng cá c MSE mà chú ng ta thấ y trên graph, đặ c
biệt là đố i vớ i phầ n tử thứ 5. Vớ i mụ c đích dự bá o, chú ng ta sẽ tự tin hơn khi sử dụ ng mộ t mô hình
mà tạ o ra cá c kết quả dự bá o là ổ n định, khô ng sai khá c quá nhiều so vớ i nhau trên cá c mẫ u dữ liệu
khá c nhau. Do vậ y, sử dụ ng LOOCV cũ ng như cá c thủ tụ c tá i chọ n mẫ u khá c để đá nh giá mô hình là
cầ n thiết.
Theo cá ch tiếp cậ n nà y, bộ dữ liệu ban đầ u sẽ đượ c chia thà nh ba phầ n (gọ i là 3 folds). Phầ n thứ
nhấ t đượ c giữ lạ i và đó ng vai trò là dữ liệu kiểm định (Testing Data 1), hai phầ n cò n lạ i là dữ liệu
huấ n luyện (Training Data 1). Mô hình sẽ đượ c xâ y dự ng trên bộ dữ liệu huấ n luyện nà y. Sau đó , bộ
dữ liệu kiểm định tương ứ ng vớ i nó (là Testing Data 1) sẽ đượ c sử dụ ng để đá nh giá lạ i mô hình că n
cứ và o mộ t tiêu chí nà o đó , chẳ ng hạ n, là MSE. Vớ i kiểm tra chéo 3 lớ p thì quá trình nà y lặ p lạ i 3 lầ n
và chú ng ta sẽ có 3 giá trị MSE tương ứ ng. Sai só t kiểm định toà n cụ c củ a mô hình trong tình huố ng
nà y đượ c tính theo cô ng thứ c:
3
1
CV(3) = ∑ MSE𝑖
3𝑖=1
Dễ dà ng thấ y rằ ng LOOCV là trườ ng hợ p đặ c biệt củ a kiểm định chéo k lớ p khi mà k = n. Tuy nhiên
trong thự c tế chú ng ta thườ ng sử dụ ng kiểm định chéo k lớ p vớ i mộ t trong hai giá trị tố i ưu là k= 5
hoặ c k = 10. Có ít nhấ t hai lý do để lự a chọ n k như vậ y. Thứ nhấ t là cá i giá phả i trả khi thự c hiện tính
toá n nếu chú ng ta chọ n k = n nếu số quan sá t là rấ t lớ n vì chú ng ta sẽ phả i chạ y mô hình n lầ n, mỗ i
lầ n cho n-1 quan sá t cò n lạ i. Thứ hai, và cũ ng là quan trọ ng nhấ t, theo Molinaro (2005) và Kim
(2009), đó là sự đá nh đổ i Bias – Variance (Bias-Variance Trade-off). Lí do thứ hai sẽ đượ c giả i thích
chi tiết ở mụ c sau.
## [1] 14948088
Chú ng ta có thể viết mộ t vò ng lặ p for loop cho ngắ n gọ n chứ khô ng nên là m dà i dò ng như trên:
## [1] 14948088
Tấ t nhiên trong thự c tế, để kiểm định chấ t lượ ng cũ ng như tính ổ n định củ a mô hình, quá trình nà y
có thể đượ c lặ p lạ i hà ng tră m, thậ m chí hà ng ngà n lầ n. Tấ t nhiên chú ng ta khô ng thể thự c hiện thủ
cô ng như trên. R có mộ t gó i hỗ trợ cho việc thự c hiện kiểm tra chéo k lớ p mộ t cá ch tự độ ng rấ t
thuậ n tiện là caret. Chú ng ta sẽ thự c hà nh vớ i gó i caret ở mụ c 4.6.3.
Tuy nhiên, tính khô ng chệch chưa phả n á nh toà n bộ câ u chuyện. Vì chú ng ta cò n quan tâ m đến sự ổ n
định (hay Variance) củ a cá c ướ c lượ ng. Dễ dà ng thấ y rằ ng LOOCV có mứ c độ ổ n định kém hơn kiểm
195
định chéo. Nguyên nhâ n là khi chú ng ta thự c hiện LOOCV, cá c mô hình đượ c dự ng trên bộ dữ liệu là
gần như không thay đổi so vớ i nhau (chỉ khá c duy nhấ t mộ t quan sá t) do đó cá c ướ c lượ ng (kết
quả ) thu đượ c là tương quan dương cao vớ i nhau. Nhưng chú ng ta thự c hiện kiểm tra chéo k lớ p
thì nhữ ng ướ c lượ ng (kết quả ) thu đượ c từ k mô hình sẽ ít tương quan vớ i nhau hơn do bộ dữ liệu
huấ n luyện là khá c biệt hơn. Điều nà y dẫ n đến, chẳ ng hạ n, cá c MSE thu đượ c từ LOOCV có xu hướ ng
biến độ ng hơn so vớ i sử dụ ng kiểm tra chéo k lớ p. Nếu chú ng ta chọ n MSE là tiêu chí đá nh giá chấ t
lương củ a mô hình thì giá trị kì vọ ng củ a MSE có thể đượ c phâ n thà nh ba bộ phậ n sau:
Ở đâ y bộ phậ n thứ nhấ t σ2 đượ c gọ i là nhiễu không thể loại trừ (irreducible noise) vớ i ý nghĩa
rằ ng chú ng ta khô ng thể loạ i bỏ nhiễu nà y dù sử dụ ng mô hình nà o đi chă ng nữ a. Bộ phậ n thứ hai
phả n á nh mứ c độ chính xá c về mố i quan hệ giữ a biến độ c lậ p và biến phụ thuộ c. Bộ phậ n cuố i cù ng
phả n á nh mứ c độ sai lệch củ a mô hình ứ ng vớ i cá c bộ dữ liệu khá c nhau. Rõ rà ng, để nâ ng cao chấ t
lượ ng củ a mô hình chú ng ta sẽ tìm kiếm mộ t mô hình, mộ t phương phá p mà tố i thiểu hóa cả hai bộ
phận của MSE của phương trình trên.
4.6.3 Giới thiệu về các phương pháp tái chọn mẫu bằng gói caret
Như đã thấ y, việc thự c hiện tra chéo LOOCV hay k lớ p theo cá ch thứ c thủ cô ng là nhà m chá n và mấ t
thờ i gian gõ lệnh. R có rấ t nhiều gó i cho phép thự c hiện nhữ ng cô ng việc nà y mộ t cá c tự độ ng. Mộ t
trong nhữ ng gó i rấ t mạ nh là caret củ a Kuhn (2013) . Gó i nà y khô ng chỉ đượ c sử dụ ng cho hầ u hết
cá c phâ n tích kinh tế lượ ng thườ ng thấ y mà cò n sử dụ ng cho Machine Learning (thự c tế gó i nà y
đượ c Kuhn thiết kế vớ i mụ c đích xâ y dự ng cá c mô hình Machine Learning).
library(AER)
data(CPS1988)
dung <- CPS1988 %>% slice(1:10)
ols1 <- dung %>% lm(wage ~ education, data = .) ols1 %>% summary()
##
## Call:
## lm(formula = wage ~ education, data = .) ##
## Residuals:
##Min1Q Median
3QMax
## -449.05 -246.57 -21.75 54.60 957.97
##
196
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) ##-107.57
education ##
608.80 -0.177 0.864
56.67 52.53 1.079 0.312
library(caret)
set.seed(1709)
ctrl <- trainControl(method = "repeatedcv", number = 2, repeats = 1) ols2 <- dung %>%
train(wage ~ education, method = "lm", trControl = ctrl, data = .) ols2 %>% summary()
##
## Call:
## lm(formula = .outcome ~ ., data = dat) ##
## Residuals:
##Min1Q Median
3QMax
## -449.05 -246.57 -21.75 54.60
957.97
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) ##-107.57 608.80 -0.177
education ## 0.864
56.67 52.53 1.079 0.312
Có thể thấ y cá c hệ số hồ i quy (cũ ng như tấ t cả cá c kết quả khá c) thu đượ c từ hai cá ch thứ c thự c hiện
OLS là như nhau.
Dướ i đâ y là mộ t số giả i thích về sử dụ ng gó i caret cho thự c hiện OLS. Trướ c khi thự c hiện OLS chú ng
ta đã ngầ m chỉ thị cho caret thự c hiện OLS đồng thời vớ i kiểm tra chéo 2 lớ p vớ i hà m
trainControl() và đượ c giả i thích ngay sau đâ y:
ols2
197
## Linear Regression
##
## 10 samples
## 1 predictor ##
## No pre-processing
## Resampling: Cross-Validated (2 fold, repeated 1 times) ## Summary of sample sizes: 6,
## Resampling results: ##
## RMSE Rsquared
## ##449.4058 0.09213921
Phầ n thứ nhấ t (gọ i là training1) gồ m 6 quan sá t sẽ đượ c sử dụ ng để chạ y mộ t mô hình OLS con thứ
nhấ t (gọ i là tom) và mứ c độ phù hợ p củ a mô hình nà y đượ c đá nh giá thô ng qua RMSE và R2 vớ i
phầ n dữ liệu cò n lạ i là 4 quan sá t (gọ i là testing 1). Tiếp tụ c, phầ n dữ liệu con thứ hai gồ m 4 quan sá t
(gọ i là training2) sẽ đượ c sử dụ ng để chạ y mộ t mô hình OLS con thứ hai (gọ i là ca) và mô hình thu
đượ c sẽ tiếp tụ c đượ c đá nh giá thô ng qua RMSE và R2 vớ i phầ n dữ liệu cò n lạ i là 6 quan sá t (gọ i là
testing2).
Vì k = 2 nên cá c bạ n có thể thấ y rằ ng training1 chính là testing2 và training2 chính là testing1 (chú ý
rằ ng điều nà y chỉ đú ng khi k =2 mà thô i). Như vậ y sẽ có hai giá trị RMSE, hai giá trị R 2 tương ứ ng vớ i
hai mô hình con nà y. Cầ n nhắ c lạ i rằ ng cá c cặ p RMSE và R2 nà y chính là sai só t kiểm định. Con số R2
= 0.092139 và RMSE = 449.4058 mà chú ng ta thấ y là trung bình củ a hai cặ p giá trị R2 và RMSE.
Vì phầ n dữ liệu thứ nhấ t (6 quan sá t) đượ c lấ y ra từ 10 quan sá t ban đầ u nên cơ bả n chú ng ta sẽ có
tổ hợ p chậ p 6 củ a 10 cá ch lấ y khá c nhau và do đó kết quả thu đượ c ở trên nó chỉ là mộ t tình huố ng
cá biệt. Nếu khô ng có lệnh gieo hạ t set.seed(1709) thì kết củ a củ a bạ n sẽ khá c vì tính chấ t ngẫ u
nhiên củ a việc chọ n mẫ u.
Từ phâ n tích trên chú ng ta cũ ng có thể thấ y ngay rằ ng, chẳ ng hạ n, tổ ng củ a hai bộ dữ liệu testing1
và training1 phả i trù ng hợ p vớ i bộ dữ liệu tên dung có 10 quan sá t ban đầ u. Có thể kiếm tra lạ i nhậ n
định nà y bằ ng mộ t số lệnh sau (khô ng hiển thị kết quả ):
total <- rbind(training1, testing1)
summary(total)
summary(dung)
198
Chú ng ta trở lạ i vớ i cá c kết quả R2 = 0.092139 và RMSE = 449.4058 và phâ n tích kĩ hơn nhữ ng con
số nà y đến từ đâ u và bằ ng cá ch nà o:
ols2$results
ols2$resample
## RMSERsquaredResample
## 1 598.4231 0.18156100 Fold1.Rep1
## 2 300.3885 0.00271741 Fold2.Rep1
Kết quả trên nghĩa là RMSE và R2 củ a mô hình con thứ nhấ t lầ n lượ t là 598.4231 và 0.181561, cò n
đố i vớ i mô hình con thứ hai sẽ là 300.3885 và 0.00271741. Chú ng ta có thể kiểm tra lạ i để thấ y rằ ng
trung bình củ a cá c RMSE và R2 chính là 449.4058 và 0.09213921:
(598.4231 + 300.3885) / 2
## [1] 449.4058
(0.18156100 + 0.00271741) / 2
## [1] 0.09213921
Chú ng ta cũ ng có thể tính toá n thủ cô ng, ví dụ , là R2 cho mô hình con thứ nhấ t như sau:
d1 <- ols2$control$index$Fold1.Rep1
training1 <- dung[d1,] # Mẫu huấn luyện thứ nhất.
testing1 <- dung[-d1,] # Mẫu kiểm định thứ nhất.
tom <- training1 %>% lm(wage ~ education, data = .)
dubao1 <- predict(tom, testing1)
Rsquared1 <- cor(dubao1, testing1$wage)^2
Rsquared1
## [1] 0.181561
Tính toá n trự c tiếp R2 cho mô hình con thứ 2 theo cá ch hoà n toà n tương tự (dù cá ch là m hơi khá c):
d2 <- ols2$control$index$Fold2.Rep1
training2 <- dung[d2,]
testing2 <- dplyr::setdiff(dung, training2)
ca <- training2 %>% lm(wage ~ education, data = .)
dubao2 <- predict(ca, testing2)
Rsquared2 <- cor(dubao2, testing2$wage)^2
Rsquared2
## [1] 0.00271741
Đến đâ y cá c bạ n có thể tò mò rằ ng tạ i sao chú ng ta lạ i dù ng nhữ ng lệnh kiểu như ols2$results hay
d2 <- ols2$control$index$Fold2.Rep1. Đâ y chính là cá ch thứ c để khai thá c thô ng tin từ đố i tượ ng
có tên là ols2. Nó là mộ t list, tạ m hiểu như sau: ols2 bao gồ m nhiều “đố i tượ ng con” đượ c hiển thị
sau dấ u $ bằ ng câ u lệnh sau (hiển thị mộ t phầ n kết quả trong mộ t danh sá ch rấ t dà i) :
199
str(ols2)
## List of 23
## $ method : chr "lm"
## ##
$ ## ## ## ## :List of 13
modelInfo
..$ label : chr "Linear Regression"
..$ library : NULL
..$ loop : NULL
..$ type : chr "Regression"
..$ parameters:'data.frame': 1 obs. of 3 variables:
Quan sá t thì cá c bạ n có suy đoá n rằ ng nếu gõ lệnh ols2$modelInfo$type sẽ cho ra chữ “Regression”.
Trong thự c tế, chú ng ta thườ ng thự c hiện kiểm tra chéo 5 hoặ c 10 lớ p vớ i số lầ n lậ p lạ i đủ nhiều để
chú ng ta có thể đá nh giá chính xá c hơn mô hình. Sử dụ ng toà n bộ cá c quan sá t củ a bộ dữ liệu
CPS1988 chú ng ta có thể đá nh giá nhiều khía cạ ch về chấ t lượ ng củ a mô hình OLS chứ khô ng chỉ că n
cứ và o, chẳ ng hạ n, R2 khô ng thô i. Dướ i đâ y chú ng ta thự c hiện OLS đồ ng thờ i vớ i thự c hiện đá nh giá
mô hình vớ i kiểm tra 10 lớ p, lặ p lạ i 10 lầ n. Nghĩa là chú ng ta thự c hiện tấ t cả 10*10 + 1 bằ ng 101 mô
hình tấ t cả . Cụ thể có 100 mô hình con và mộ t mô hình chính sử dụ ng toà n bộ cá c quan sá t. Do số
quan sá t là rấ t lớ n nên chú ng ta nên biết thêm cầ n bao nhiêu thờ i gian để chạ y cá c mô hình:
Chú ng ta có thể trích xuấ t ra data frame và đặ t tên là k chứ a cá c thô ng tin về RMSE , R2 củ a 100 mô
hình con:
k <- all$resample
summary(k)
Cá c giá trị trung bình lầ n lượ t là 429.4 và 0.09498. Nhữ ng giá trị trung bình nà y có thể thấ y bằ ng hai
cá ch khá c nhau:
all$results # Cách 1.
200
all # Cách 2.
## Linear Regression ##
## 28155 samples
##1 predictor ##
## No pre-processing
## Resampling: Cross-Validated (10 fold, repeated 10 times)
## Summary of sample sizes: 25339, 25340, 25339, 25339, 25339, 25340, ... ## Resampling
##
## RMSE Rsquared
## ##429.4022 0.09497748
## [1] 25339.5
k %>%
select(-Resample) %>%
gather(Metric, Value) %>%
ggplot(aes(Value)) +
geom_density(color = "red", fill = "red", alpha = 0.3) +
geom_histogram(aes(y = ..density..), color = "blue", fill = "blue", alpha = 0.3
) +
facet_wrap(~ Metric, scales = "free")
Có thể thấ y rằ ng mộ t tỉ lệ lớ n cá c mô hình con có RMSE thấ p (tin tố t) vì Histogram (Density) bị méo
về phía dương. Tấ t nhiên chú ng ta cò n đá nh giá mứ c độ ổ n định củ a mô hình nà y că n cứ và o độ méo
nữ a. Mộ t mô hình tố t, ngoà i RMSE thấ p thì cầ n tiêu chí ổ n định. Nghĩa là phâ n phố i củ a cá c RMSE
cà ng tiến về phâ n phố i chuẩ n cà ng tố t. Nếu nhìn và o Boxplot thì tiêu chí nà y có nghĩa là median Q2
gầ n như nằ m chính giữ a củ a hộ p. Tấ t nhiên trong tình huố ng củ a chú ng ta thì khô ng phả i vậ y.
4.5 Dữ liệu thiếu và xử lý dữ liệu thiếu trong phân tích kinh tế lượng
Trong cá c giá o trình thố ng kê – kinh tế lượ ng tiêu chuẩ n, chú ng ta chỉ gặ p duy nhấ t mộ t trườ ng hợ p
sau: khô ng có quan sá t nà o thiếu. Tuy nhiên, trong thự c tế, dữ liệu thiếu mớ i là trườ ng hợ p chú ng
gặ p thườ ng xuyên hơn. Giả sử rằ ng biến luong và thunhapkhac (ở mụ c 2.1 củ a chương 2) thiếu ở
cá c quan sá t thứ hai và cuố i cù ng. Lú c đó trong R chú ng ta sẽ nhậ p dữ liệu thiếu bằ ng kí tự NA (viết
tắ t củ a Not Available) như sau:
luong <- c(20, NA, 28, 24, 32, 36, 32, 34, 24, 22, 28, 30)
thunhapkhac <- c(16, 10, 2, 0, 18, 10, 16, 24, 28, 20, 8, NA)
head(trangxinh)
## 5 32 18 36.0
## 6 36 10 31.4
mean(luong)
## [1] NA
mean(luong, na.rm = T)
## [1] 28.18182
Nghĩa là lự a chọ n na.rm = T chỉ thị cho R loạ i bấ t kì quan sá t thiếu nà o nếu có trướ c khi tính trung
bình. Điều nà y cũ ng có nghĩa là con số 28.18182 ở trên là trung bình củ a 11 quan sá t chứ khô ng
phả i 12.
Cá c xử lý thô ng thườ ng là nếu tỉ lệ số liệu thiếu khô ng quá lớ n, chú ng ta sẽ bỏ đi nhữ ng quan sá t
thiếu. Dướ i đâ y là câ u lệnh bỏ quan sá t thiếu (là 2) từ trangxinh và tạ o ra data frame mớ i vớ i tên gọ i
là dung:
head(dung)
dim(trangxinh)
## [1] 12 3
dim(dung)
## [1] 10 3
Cá ch xử lý số liệu như trên là khô ng phù hợ p và khô ng chuyên nghiệp ngay cả trong tình huố ng dữ
liệu thiếu là khô ng nhiều. Dướ i đâ y là mộ t ví dụ trự c quan. Giả sử chú ng ta khả o sá t thô ng tin về 5
biến số a, b, c, d, và e thể hiện trạ ng thá i sứ c khỏ e củ a 5 bệnh nhâ n và dữ liệu thiếu (tô mà u và ng) lạ i
xuấ t hiện trên mộ t đườ ng chéo theo kiểu như sau:
203
Lú c nà y, nếu xử lý số liệu thiếu theo cá ch thứ c trên thì bạ n sẽ khô ng cò n dữ liệu nà o để thự c hiện
phâ n tích nữ a.
Ví dụ trên chỉ ra rằ ng chú ng ta cầ n mộ t chiến lượ c xử lý số liệu thiếu khoa họ c hơn. Ví dụ , chú ng ta
có thể thay số điểm số liệu trố ng bằ ng trung bình củ a biến số . Gó i mice củ a R có thể thự c hiện cá ch
thứ c chèn số liệu thiếu (Data Imputation) theo mộ t phương phá p tương tự vớ i mô tả ở trên vớ i tên
là khớp trung bình dự báo (predictive mean matching - PMM).
Để mình họ a, chú ng ta lấ y bộ số liệu pima.csv bao gồ m 768 quan sá t ứ ng vớ i 768 bệnh nhâ n. Vì mộ t
lý do nà o đó , thô ng tin về hà m lượ ng insulin trong má u củ a bệnh nhâ n thứ nhấ t chẳ ng hạ n là khô ng
có . Bộ số liệu củ a chú ng ta sẽ là bộ số liệu thiếu như chú ng ta có thể thấ y dướ i đâ y:
setwd("D:/KTLR")
dung <- read.csv("pima.csv")
head(dung)
Trướ c hết, chú ng ta có thể điều tra “mậ t độ ” củ a dữ liệu thiếu bằ ng cả phương phá p hình ả nh và số
vớ i sự trợ giú p củ a gó i VIM như sau:
library(VIM)
trangyeu<- aggr(dung, col=c('navyblue','yellow'),
numbers = TRUE, sortVars = TRUE, labels = names(dung),
cex.axis = .7, gap = 3, ylab = c("Du Lieu Thieu","Pattern"))
204
##
## Variables sorted by number of missings:
## Variable Count
## insulin 0.486979167
## triceps 0.295572917
## diastolic 0.045572917
## bmi 0.014322917
## glucose 0.006510417
## X 0.000000000
## pregnant 0.000000000
## diabetes 0.000000000
## age 0.000000000
## test 0.000000000
Dướ i đâ y là câ u lệnh cho phép chú ng ta chèn dữ liệu thiếu theo phương phá p PMM bằ ng gó i mice:
library(mice)
apple <- mice(dung, m=2, method = "pmm", seed = 100)
##
## iter imp variable
## 1 1 glucose diastolic triceps insulin bmi
## 1 2 glucose diastolic triceps insulin bmi
## 2 1 glucose diastolic triceps insulin bmi
Câ u lệnh trên có nghĩa là chú ng ta tạ o ra hai bộ số liệu khá c nhau (m=2) từ bộ số liệu trố ng nguyên
bản bằng phương phá p predictive mean matching (method = “pmm”). Chú ng ta có thể xem qua,
chẳ ng hạ n, hai trong số ba bộ dữ liệu nà y:
Chú ng ta cũ ng có thể thự c hiện hai mô hình hồ i quy ứ ng vớ i hai bộ số liệu nà y và so sá nh chú ng cá c
kết quả tương ứ ng vớ i nhau vớ i sự hỗ trợ củ a gó i stargazer:
## <- lm(diabetes ~ bmi, data = data1) ols2 <- lm(diabetes ~ bmi, data = data2) library(
ols1
## So sánh OLS1 ols2,
stargazer(ols1, và OLS2
title = "So sánh OLS1 và OLS2", type = "text")
## ===========================================================
## Dependent variable:
## ----------------------------
## diabetes
## (1) (2)
##
## bmi 0.007*** 0.008***
## (0.002) (0.002)
##
## Constant 0.239*** 0.228***
## (0.057) (0.056)
##
##
## Observations 768 768
## R2 0.022 0.025
## Adjusted R2 0.021 0.024
## Residual Std. Error (df = 766) 0.328 0.327
## F Statistic (df = 1; 766) 17.631*** 19.581***
## ===========================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
Chú ng ta có thể thấ y rằ ng cá c ướ c lượ ng thu đượ c có khá c biệt nhỏ . Hai kết quả hồ i quy ứ ng vớ i hai
bộ số liệu khá c nhau nà y có thể thu đượ c theo mộ t cá ch thứ c khá c (khô ng hiển thị kết quả ) :
Rõ rà ng, chú ng ta cầ n mộ t kết quả tổ ng hợ p. Chú ng ta có thể sử dụ ng hà m pool() để thu đượ c kết quả
tổ ng hợ p nà y:
bmi
## 0.03074234 0.03424035
Ở đâ y kết quả cuố i cù ng củ a đượ c hiển thị ở dò ng Pooled coefficients. Chú ng ta có thể thấ y rằ ng hệ
số chặ n có giá trị là 0.23334487. Con số nà y chính bằ ng trung bình cộ ng cá c hệ số chặ n thu đượ c từ
thự c hiện hồ i quy hai bộ dữ liệu con:
(0.238760 + 0.227929) / 2
## [1] 0.2333445
Trên đâ y chú ng ta vừ a nghiên cứ u việc xử lý số liệu thiếu theo mộ t cá ch thứ c đơn giả n nhấ t. Trong
thự c tế, để xử lý số liệu thiếu ngườ i ta thườ ng phả i tìm hiểu kĩ nguyên nhâ n tạ i sao số liệu bị thiếu,
cũ ng như cá c đặ c điểm thố ng kê củ a biến số bị thiếu để từ đó đưa ra phương phá p chèn số liệu thiếu
mộ t cá ch phù hợ p. Rõ rà ng chú ng ta khô ng thể điền số 0 và o biến insulin cho bệnh nhâ n thứ nhấ t vì
khô ng có cơ thể số ng nà o có hà m lượ ng insulin là 0 đượ c. Chú ng ta cũ ng nên, và trong nhiều trườ ng
hợ p là khô ng thể loạ i chú ng ra khỏ i mẫ u. Điền giá trị trố ng nà y bằ ng bao nhiêu hiện là mộ t thá ch
thứ c củ a khoa họ c thố ng kê về cả khía cạ nh lý thuyết cũ ng như thự c hà nh.
Chương này chúng ta sẽ nghiên cứu các những trường hợp mở rộng của hồi quy hai biến số. Những
mô hình được nghiên cứu là hồi quy qua gốc tọa độ (regression through the origin), các mô hình
logarit và (log-linear model ) bán logarit (semilog models) và một số mô hình khác. Bên cạnh đó
chúng ta cũng nghiên cứu hồi quy chuẩn hóa (reggression on standardized variables), sự thay đổi
đơn vị đo của biến số (units of measurement) cũng như dạng hàm (functional form) của mô hình
tuyến tính.
𝑌𝑖 = 𝛽2𝑋𝑖 + 𝑢𝑖 (1)
Mộ t ví dụ điển hình củ a hồ i quy qua gố c tọ a độ là mô hình định giá tà i sả n vố n CAPM (Capital Asset
Pricing Model) phổ biến trong nghiên cứ u tà i chính:
Nếu thị trườ ng tà i chính là vậ n hà nh hiệu quả thì ngườ i ta nó i rằ ng phần bù rủi ro kì vọng củ a
chứ ng khoá n (expected risk premium) đo bằ ng (ERi - rf ) sẽ bằ ng tích củ a hệ số beta nhâ n vớ i phầ n
bù rủ i ro thị trườ ng (ERm - rf ) và đượ c gọ i là lợ i nhuậ n thị trườ ng. Đườ ng thẳ ng biểu diễn mố i quan
hệ nà y đượ c gọ i là đường thị trường chứng khoán (security market line):
209
Vớ i cá c nghiên cứ u thự c chứ ng trong tà i chính, mô hình (2) thườ ng đượ c biểu diễn ở hai dạ ng sau:
Mô hình (4) cò n có tên gọ i là mô hình thị trường (Market Model). Nếu CAPM là đú ng thì αi đượ c kì
vọ ng là bằ ng 0.
(∑ 𝑋𝑖𝑌𝑖)2
raw 𝑟2 =
∑ 𝑋𝑖2 ∑ 𝑌𝑖2
Mặ c dù r2 tính theo cô ng thứ c nà y thỏ a mã n 0 ≤ r 2 ≤ 1 nhưng chú ng ta cũ ng khô ng thể so sá nh mộ t
cá ch trự c tiếp r2 nà y vớ i R2 đượ c. Khi thự c hiện hồ i quy qua gố c tọ a độ , hầ u hết phầ n mềm (bao gồ m
R) sẽ bá o cá o r2 nà y.
Bở i vì nhữ ng đặ c điểm cá biệt nà y củ a mô hình chú ng ta cầ n đặ c biệt chú ý và thậ n trọ ng khi sử
dụ ng mô hình hồ i quy khô ng có hệ số chặ n. Trừ khi chú ng ta có kì vọng tiên nghiệm (priori
expectation) rấ t mạ nh rằ ng hệ số chặ n là bằ ng khô ng, chú ng ta nên đá nh giá mô hình CAPM theo mô
hình (4) chứ khô ng phả i (3) và thự c hiện cá c kiểm định cầ n thiết để chỉ ra rằ ng hệ số chặ n là khô ng
có ý nghĩa thố ng kê – tứ c là có thể bỏ hệ số chặ n bằ ng 0 về mặ t thố ng kê (statistically equal to zero).
Chú ng ta xét bộ số liệu table6_1.xls trong đó biến X là phầ n bù rủ i ro kì vọ ng (thể hiện lợ i tứ c trộ i
hơn so vớ i thị trườ ng) củ a Afuture cò n Y là phầ n bù rủ i ro thị trườ ng (hay lợ i nhuậ n thị trườ ng) từ
nă m 1971 đến 1980:
setwd("D:/KTLR") library(gdata)
dung <- read.xls("table6_1.xls") head(dung)
## year Y X
## 1 1971 67.5 19.5
## 2 1972 19.2 8.5
## 3 1973 -35.2 -29.3
## 4 1974 -42.0 -26.5
## 5 1975 63.7 61.9
## 6 1976 19.3 45.5
Nếu chú ng ta có kì vọ ng tiên nghiệm mạ nh rằ ng hệ số chặ n ở (4) là khô ng tồ n tạ i thì chú ng ta có thể
thự c hiện hồ i quy qua gố c tọ a độ :
210
##
## Call:
## lm(formula = Y ~ 0 + X, data = dung)
##
## Residuals:
## Min 1Q Median 3Q Max
## -30.291 -6.007 -0.720 4.484 46.247
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## X 1.0899 0.1916 5.69 0.000298 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 19.54 on 9 degrees of freedom
## Multiple R-squared: 0.7825, Adjusted R-squared: 0.7583
## F-statistic: 32.38 on 1 and 9 DF, p-value: 0.0002981
Có thể thấ y hệ số beta β = 1.089 là lớ n hơn 1, hay cổ phiếu củ a Afuture là nă ng độ ng. Trong tà i chính
kết quả nà y đượ c diễn giả i như sau: khi lợ i nhuậ n thị trườ ng tă ng 1% thì lợ i nhuậ n củ a Afuture sẽ
tă ng 1.089%.
Nếu chú ng ta khô ng có bằ ng chứ ng tiên nghiệm trướ c rằ ng hệ số chặ n bằ ng khô ng, chú ng ta nên sử
dụ ng (4) – tứ c là sử dụ ng mô hình thị trườ ng để đá nh giá mố i liên hệ giữ a lợ i nhuậ n củ a Afuture và
lợ i nhuậ n thị trườ ng:
##
## Call:
## lm(formula = Y ~ X, data = dung)
##
## Residuals:
## Min 1Q Median 3Q Max
## -30.623 -7.166 -1.237 3.585 45.373
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.2797 7.6886 0.166 0.87194
## X 1.0691 0.2383 4.486 0.00204 **
## ---
211
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 20.69 on 8 degrees of freedom
## Multiple R-squared: 0.7155, Adjusted R-squared: 0.68
## F-statistic: 20.12 on 1 and 8 DF, p-value: 0.00204
Do p-value củ a hệ số chặ n là 0.872 > 5% nên chú ng ta chưa có bằ ng chứ ng thố ng kê để bắ c bỏ giả
thiết rằ ng hệ số chặ n bằ ng 0. Cầ n lưu ý là chú ng ta khô ng thể so sá nh R 2 = 71.55% ở đâ y vớ i r2 =
78.25% ở trên vớ i nhau đượ c.
Đá nh giá sự phụ thuô c củ a GPD theo GDP theo nhữ ng đơn vị đo khá c nhau ta có :
##
## Call:
## lm(formula = GPDIBL ~ GDPB, data = trang) ##
## Residuals:
##Min1Q Median
3QMax
## -68.84 -31.82 -4.01 32.47 85.86
212
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1026.4980 257.5874 -3.99 0.004 **
## GDPB 0.3016 0.0399 7.56 0.000066 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 54.5 on 8 degrees of freedom
## Multiple R-squared: 0.877, Adjusted R-squared: 0.862
## F-statistic: 57.1 on 1 and 8 DF, p-value: 0.0000656
##
## Call:
## lm(formula = GPDIM ~ GDPM, data = trang)
##
## Residuals:
## Min 1Q Median 3Q Max
## -68843 -31816 -4008 32471 85856
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1026497.9900 257587.4037 -3.99 0.004 **
## GDPM 0.3016 0.0399 7.56 0.000066 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 54500 on 8 degrees of freedom
## Multiple R-squared: 0.877, Adjusted R-squared: 0.862
## F-statistic: 57.1 on 1 and 8 DF, p-value: 0.0000656
Rõ rà ng vớ i cá c đơn vị đo khá c nhau (cù ng là tỉ hoặ c cù ng là triệu) thì cá c kết quả ướ c lượ ng là
khô ng có gì thay đổ i. Cụ thể, khi GDP tă ng 1 (tỉ hoặ c triệu) thì GPD tă ng 0.3016 (tỉ hoặ c triệu).
Nghĩa là , ý nghĩa và bả n chấ t kinh tế về mố i liên hệ giữ a cá c biến số là khô ng thay đổ i. Và điều nà y
cò n đú ng trong nhữ ng trườ ng hợ p chú ng ta sử dụ ng đơn vị đo theo mộ t kiểu khá c như có thể thấ y
dướ i đâ y (khô ng hiển thị kết quả ):
𝑌𝑖 − 𝑌̅
𝑌𝑖∗ =
𝑆𝑌
𝑋𝑖 − 𝑋̅
𝑋𝑖∗ =
𝑆𝑋
Ở đâ y biến đượ c chuẩ n hó a có kí hiệu * ở trên đầ u. Cô ng thứ c nà y có nghĩa là để chuẩ n hó a, ví dụ ,
vớ i biến Y thì chú ng ta lấ y cá c quan sá t củ a Y trừ đo trung bình củ a nó đượ c bao nhiêu chia cho độ
lệch chuẩ n củ a Y (kí hiệu SY).
Trong R, vớ i bộ số liệu đượ c sử dụ ng ở mụ c 5.2, thự c hiện hồ i quy chuẩ n hó a đượ c thự c hiện như
sau:
##
## Call:
## lm(formula = scale(GPDIBL) ~ scale(GDPB), data = trang) ##
## Residuals:
##Min1Q Median
3QMax
## -0.4696 -0.2170 -0.0273 0.2215 0.5857
##
## Coefficients:
##Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.96e-16 1.18e-01 0.00 1
## scale(GDPB) 9.37e-01 ##1.24e-01
--- 7.56 0.000066 ***
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.372 on 8 degrees of freedom
## Multiple R-squared: 0.877, Adjusted R-squared: 0.862 ## F-statistic: 57.1 on 1 and 8
Điểm đá ng chú ý mà chú ng ta có thể thấ y ở đâ y là khi thự c hiện hồ i quy chuẩ n hó a có hệ số chặ n, thì
hệ số chặ n luôn bằ ng 0 và p-value củ a nó luôn bằ ng 1. Nghĩa là hồ i quy chuẩ n hó a, dù ta tuyên bố rõ
rà ng có sự xuấ t hiện củ a hệ số chặ n thì kết quả luô n tương đương vớ i hồ i quy qua gố c tọ a độ như
chú ng ta có thể thấ y dướ i đâ y:
##
## Call:
## lm(formula = scale(GPDIBL) ~ 0 + scale(GDPB), data = trang) ##
## Residuals:
##Min1Q Median
3QMax
## -0.4696 -0.2170 -0.0273 0.2215 0.5857
##
## Coefficients:
##Estimate Std. Error t value Pr(>|t|)
## scale(GDPB)0.937 0.117 8.02 0.000022 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.35 on 9 degrees of freedom ## Multiple R-squared: 0.877,
## F-statistic: 64.3 on 1 and 9 DF, p-value: 0.0000218
Q = aLαKβ
Trong đó ψ = ln(a).
Trong kinh tế lượ ng, hà m sả n xuấ t Cobb – Douglas sẽ đượ c viết ở dạ ng:
Nếu α + β = 1 thì chú ng ta có hàm sản xuất có lợi tức không đổi theo quy mô. Nếu tổ ng nà y lớ n
hơn 1 thì chú ng ta có hàm sản xuất có lợi tức giảm dần theo quy mô (và ngượ c lạ i) và thườ ng
đượ c đá nh giá qua cá c mô hình kinh tế lượ ng thự c nghiệm.
215
Đặ c điểm đá ng chú ý củ a (5) là cá c hệ số ướ c lượ ng có thể thể coi như là nhữ ng hệ số co giãn
(elasticities). Cụ thể, α là hệ số co giã n củ a sả n lượ ng theo lao độ ng cò n β là hệ số co giã n củ a sả n
lượ ng theo vố n khi tấ t cả cá yếu tố khá c khô ng đổ i.
Để minh họ a ú ng ta xét dữ liệu có tên Table2_1.xls gồ m cá c thô ng tin về sả n lượ ng (output), lao
độ ng (labor) và vố n (capital) củ a 50 bang và khu vự c hà nh chính đặ c biệt Washington DC trong nă m
2005 và thự c hiện ướ c lượ ng mô hình (5):
##
## Call:
## lm(formula = log(output) ~ log(labor) + log(capital), data = dung) ##
## Residuals:
##Min1Q Median
3QMax
## -0.4564 -0.1211 -0.0532 0.0452 1.2158
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.8876 0.3962 9.81 0.00000000000047 ***
## log(labor) 0.4683 0.0989 4.73 0.00001980879662 ***
## log(capital) 0.5213 0.0969 5.38 0.00000218315931 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.267 on 48 degrees of freedom
## Multiple R-squared: 0.964, Adjusted R-squared: 0.963
## F-statistic: 646 on 2 and 48 DF, p-value: <2e-16
Kết quả nà y chỉ ra rằ ng R2 = 96.4% - mộ t con số cao bấ t thườ ng đố i vớ i dữ liệu chéo. Cá c kết quả
khá c cò n lạ i đượ c diễn giả i như sau:
Mô hình (6) gọ i là mô hình bị giớ i hạ n (Restricted Model) cò n (5) gọ i là mô hình khô ng bị giớ i hạ n
(Unrestricted Model). Chú ng ta thự c hiện ướ c lượ ng mô hình (6):
216
Mô hình nà y có nghĩa là nếu tỉ số vố n chia cho lao độ ng tă ng 1% thì sả n lượ ng tă ng 0.5238%. Chú ý
rằ ng R2 = 37.9% khô ng thể so sá nh đượ c vớ i R2 = 96.4% ở mô hình (5).
Để đá nh giá xem α + β có bằ ng 1 hay khô ng chú ng ta sử dụ ng kiểm định F đượ c tính theo cô ng thứ c
sau:
(𝑅𝑆𝑆𝑅 − 𝑅𝑆𝑆𝑈𝑅)/𝑚
𝐹= ~𝐹𝑚,(𝑛−𝑘) (7)
𝑅𝑆𝑆𝑈𝑅 /(𝑛 − 𝑘)
Trong đó RSSR và RSSUR lầ n lượ t là tổ ng bình phương phầ n dư (RSS) củ a mô hình giớ i hạ n và khô ng
bị giớ i hạ n, m là số biến độ c lậ p mà mô hình bị giớ i hạ n ít hơn mô hình giớ i hạ n, k là số lượ ng biến
có ở mô hình khô ng giớ i hạ n (tính cả biến phụ thuộ c) cò n n là số quan sá t.
Thố ng kê F tính theo cô ng thứ c (7) sẽ tuâ n theo quy luậ t χ2 vớ i số bậ t tự do lầ n lượ t là m và n – k.
Nếu F tính theo cô ng thứ c (7) mà lớ n hơn giá trị tớ i hạ n ở ngưỡ ng đượ c chọ n trướ c thì chú ng ta bắ c
bỏ giả thiết α + β = 1. Dướ i đâ y chú ng ta sẽ thự c hiện kiểm định F đã mô tả :
Chú ng ta có thể thự c hiện kiểm định α + β = 1 theo cá ch khá c sử dụ ng lệnh linearHypothesis() củ a
gó i AER:
library(AER)
linearHypothesis(logatt, "log(labor) + log(capital) = 1") # Cách 1
Do p-value = 0.709 > 5% nên chú ng ta chưa có bằ ng chứ ng thố ng kê bắ c bỏ giả thiết α + β = 1. Chú ng
ta sẽ nghiên cứ u kĩ hơn kiểm định sự rà ng buộ c giữ a cá c hệ số hồ i quy trong chương sau.
Trong đó r là tố c độ tă ng trưở ng, t là thờ i gian (trong 48 nă m) từ nă m 1960 đến 2007. Lấ y ln hai vế
củ a (8) ta có :
##
## Call:
## lm(formula = log(rgdp) ~ time, data = dung) ##
## Residuals:
##Min1Q
Median3QMax
## -0.09088 -0.01843 0.00526 0.02307 0.05946
##
218
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.875662 0.009759807.0<2e-16 ***
## time 0.031490 0.00034790.8<2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.0333 on 46 degrees of freedom ## Multiple R-squared: 0.99
## F-statistic: 8.25e+03 on 1 and 46 DF, p-value: <2e-16
library(ggplot2)
ggplot(dung, aes(time, log(rgdp))) + geom_line() + geom_point(col = "red")
Mộ t vấ n đề là vai trò củ a chọ n trụ c thờ i gian t. Như ta thấ y bộ số liệu gố c chọ n time = 1 ứ ng vớ i nă m
1960, time = 48 ứ ng vớ i 2007:
View(dung)
Tuy nhiên chú ng ta có thể chọ n lạ i cá c biểu diễn thờ i gian như sau mà khô ng ả nh hưở ng đến kết quả
ướ c ướ c lượ ng: chọ n biến mớ i T từ 1960 đến 2007:
219
##
## Call:
## lm(formula = log(rgdp) ~ T, data = dung) ##
## Residuals:
##Min1Q
Median3QMax
## -0.090879 -0.018426 0.005258 0.023067 0.059459
##
## Coefficients:
##Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.381e+01 6.878e-01 -78.24<2e-16 ***
## T 3.149e-02 3.467e-0490.82<2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.03328 on 46 degrees of freedom
## Multiple R-squared: 0.9945, Adjusted R-squared: 0.9943 ## F-statistic: 8248 on 1 and
Ngoạ i trừ hệ số chặ n, tấ t cả cá c kết quả khá c là khô ng khá c nhau. Nguyên nhâ n là , chẳ ng hạ n, ướ c
lượ ng rgdp cho nă m 1960 ứ ng vớ i hai kiểu biến khá c nhau lầ n lượ t sẽ là :
Tuy nhiên kết quả củ a ướ c lượ ng rgdp (và tấ t cả cá c kết quả khá c) vẫ n khô ng đổ i. Thự c vậ y, chú ng
ta có thể tính rgdp ướ c lượ ng cho cả hai tình huố ng và thấ y chú ng chính là mộ t:
exp(predict(ahi, dung))
220
## 1 2 3 4 5 6 7
## 2716.642 2803.549 2893.236 2985.793 3081.310 3179.883 3281.609
exp(predict(loveyou, dung))
## 1 2 3 4 5 6 7
## 2716.642 2803.549 2893.236 2985.793 3081.310 3179.883 3281.609
Tấ t nhiên kế quả chẳ ng có thay đổ i nếu chú ng ta thay T bằ ng dã y số từ -1 đến -48. Việc tạ o biến thờ i
gian là tù y ý nhưng chú ng ta nên chọ n sao cho thuậ n tiện vớ i cá c phâ n tích và diễn giả i nếu cầ n.
Chẳ ng hạ n bài tập 3.9 (chương 2) cuố n giá o trình kinh tế lượ ng củ a tá c giả Nguyễn Thành Cả và
Nguyễn Thị Ngọc Miên từ UEH có yêu cầ u sinh viên đặ t biến t bắ t đầ u từ 0 cho bộ số liệu gdp.xls sẽ
gâ y khó sinh viên và là m méo mó mô hình vì khi thự c hiện mô hình có ln(t) thì giá trị ln0 sẽ khô ng
xá c định. Và như vậ y khi thự c hiện trong Eviews hay Stata thì cá c phầ n mềm nà y mặ c định bỏ đi mộ t
quan sá t.
Trong đó T là biến biểu diễn quý theo trình tự thờ i gian. Như đã phâ n tích ở mụ c trên, chú ng ta
khô ng nên chọ n T bắ t đầ u từ 0 mà nên lấ y T từ 1 trở đi (vì sau nà y cò n có mô hình sử dụ ng biến lnT
nữ a) và thự c hiện ướ c lượ ng (10) trong R:
dung$T = 1:52
summary(lm(R_GDP ~ T, data = dung))
##
## Call:
## lm(formula = R_GDP ~ T, data = dung)
##
221
## Residuals:
## Min 1Q Median 3Q Max
## -36616 -4533 3220 9444 31939
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 57915.5 4496.7 12.88 <2e-16 ***
## T 1888.5 147.7 12.79 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 15980 on 50 degrees of freedom
## Multiple R-squared: 0.7659, Adjusted R-squared: 0.7612
## F-statistic: 163.6 on 1 and 50 DF, p-value: < 2.2e-16
Kết quả nà y chỉ ra rằ ng cứ mộ t nă m GDP củ a Việt Nam sẽ tă ng mộ t lượ ng tuyệt đố i là 1888.5 (khô ng
rõ đơn vị là gì vì hai tá c giả nà y khô ng nó i). Chú ng ta cũ ng có thể đá nh giá hình ả nh về tă ng trưở ng
theo thờ i gian:
Dễ dà ng thấ y rằ ng tă ng trưở ng kinh tế củ a Việt Nam có tính chu kì. Cụ thể, so vớ i cá c quý cò n lạ i
GDP là cao nhấ t trong quý 4 và tuâ n theo quy luậ t từ quý 1 đến quý 2 thì tă ng, rồ i lạ i giả m, rồ i lạ i
tă ng. Kiểm định chính thứ c cho tính chấ t chu kì nà y chú ng ta sẽ nghiên cứ u ở cá c chương sau.
Mô hình tuyến tính – logarit, trong tình huố ng vớ i bộ số liệu nà y, là mô hình kiểu như sau:
Trong đó , biến LNK là logarit cơ số tự nhiên củ a KinhNghiem. Nhưng, trướ c khi lấ y logarit chú ng ta
phả i đá nh giá khoả ng giá trị củ a KinhNghiem vì rằ ng phép lấ y logarit khô ng tồ n tạ i nếu có giá trị bé
hơn hoặ c bằ ng 0. Sử dụ ng lệnh range() ta có :
## [1] 0 46
Như vậ y kinh nghiệm có giá trị từ 0 đến 46. Dướ i đâ y là lệnh chỉ thị cho R: (1) chỉ lấ y cá c quan sá t
mà biến KinhNghiem dương, (2) tạ o biến mớ i LKN, và (3) thự c hiện hồ i quy cho mô hình (11):
dung <- subset(dung, dung$KinhNghiem > 0) # Những quan sát có KinhNghiem > 0.
dung$LKN <- log(dung$KinhNghiem) # Tạo biến LNK = ln(KinhNghiem)
summary(lm(TienLuong ~ LKN, data = dung))
##
## Call:
## lm(formula = TienLuong ~ LKN, data = dung) ##
## Residuals:
##Min1Q Median
3QMax
## -4.8794 -0.9070 0.2159 0.8715 2.6079
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) ## LKN
7.89542 0.22239 35.503 < 2e-16 ***
## --- 0.33301 0.08366 3.981 9.15e-05 ***
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.354 on 236 degrees of freedom
## Multiple R-squared: 0.06292,Adjusted R-squared: 0.05895 ## F-statistic: 15.85 on 1 and
Ý nghĩa củ a cá c ướ c lượ ng thu đượ c là nếu kinh nghiệm tă ng lên 1% thì mứ c lương sẽ tă ng
0.33301/100 = 0.003331 (%). 1% củ a mộ t nă m chừ ng 3.65 ngà y hay xấ p xỉ 3 ngà y 16 tiếng. Nó i
cá ch khá c, kinh nghiệm là m việc tă ng 3 ngà y 16 tiếng thì mứ c lương tă ng 0.003331 (%). Cho nên,
mô hình nà y có thể sẽ diễn đạ t hơn nếu thay đổ i đơn vị củ a biến kinh nghiêm từ nă m sang tuầ n hoặ c
ngà y.
library(readxl)
dung <- read_excel("Table2_8.xls")
##
## Call:
## lm(formula = sfdho ~ I(expend^-1), data = dung) ##
## Residuals:
##Min1Q Median
3QMax
## -0.2989 -0.0421 -0.0112 0.0323 0.4461
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept)
0.07726 0.00401 19.3 <2e-16 ***
## I(expend^-1) 1331.33806 ## 63.95713
--- 20.8 <2e-16 ***
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
224
##
## Residual standard error: 0.0697 on 867 degrees of
freedom ## Multiple R-squared: 0.333, Adjusted R-squared:
0.332 ## F-statistic: 433 on 1 and 867 DF, p-value: <2e-
16
Hệ số củ a b có ý nghĩa thố ng kê và dương ngụ ý rằ ng khi tổ ng chi tiêu hộ gia đình tă ng lên thì mứ c
chi cho thự c phẩ m sẽ giả m đi. Chú ng ta cũ ng có thể vẽ đườ ng hồ i quy cho mô hình vớ i khoả ng tin
cậ y 95% cho cá c ướ c lượ ng:
theme_set(theme_minimal())
dung %>%
ggplot(aes(x = expend, y = sfdho)) +
geom_point(alpha = 0.3) +
geom_smooth(formular = y ~ 1/x, method = "loess")
##
## Call:
## lm(formula = R_GDP ~ T + I(T^2), data = dung) ##
## Residuals:
##Min1Q Median
3QMax
## -40137 -5080 14588630 26614
##
## Coefficients:
225
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 15930 on 49 degrees of freedom ## Multiple R-squared: 0.772
## F-statistic: 82.94 on 2 and 49 DF, p-value: < 2.2e-16
Nếu như mô hình (10) ở mụ c 5.4.3 nó i rằ ng khi t tă ng 1 (quý) thì GDP tă ng 1888.5 và con số nà y là
khô ng đổ i bấ t kể ở quý nà o thì kết quả ướ c lượ ng ở mô hình (13) có nghĩa hoà n toà n khá c. Thự c
vậ y, lấ y đạ o hà m hai vế củ a (13) ta có :
𝑑(𝑅𝐺𝐷𝑃)
𝑑𝑇 = 𝑏 + 2𝑐𝑇 = 1124.38 + 25.06𝑇
Điều nà y có nghĩa là mứ c tă ng trưở ng theo quý sẽ khô ng phả i là mộ t con số khô ng đổ i cho tấ t cả cá c
quý mà là phụ thuộ c và o mố c thờ i gian đượ c chọ n và là mộ t hà m củ a thờ i gian T.
Có hai điểm chú ng ta cầ n chú ý đố i vớ i mô hình đa thứ c. Thứ nhấ t, đâ y là mô hình tuyến tính tham
số chứ khô ng phả i tuyến tính dạ ng hà m. Thứ hai, sử dụ ng mô hình đa thứ c sẽ tồ n tạ i nguy cơ đa
cộ ng tuyến ở mứ c cao vì, chẳ ng hạ n, biến T và T2 thườ ng tương quan rấ t chặ t vớ i nhau.
226
Mục tiêu của chương này là hướng dẫn các thao tác thực hành trong R cho mô hình hồi quy bội, kiểm
định Wald về sự ràng buộc của các hệ số hồi quy, ước lượng khoảng cho một hệ thức của hệ số hồi quy.
6.1 Thực hiện hồi quy bội trong R và khoảng tin cậy cho các hệ số
Từ mụ c 6.1 đến 6.3 chú ng ta sẽ nghiên cứ u bộ số liệu ch2vd5.WF1. Tô i mặ c định rằ ng cá c bạ n đã
biết cá ch chỉ thị cho R đọ c file Eviews nà y thà nh mộ t data.frame vớ i tên gọ i dung. Giả sử chú ng ta
đá nh giá tá c độ ng củ a thu nhậ p (TN) và tà i sả n (TS) lên chi tiêu (CT) bằ ng mô hình sau:
3QMax
## -16.026 -10.504 0.373 5.784 32.274
##
## Coefficients:
##Estimate Std. Error t value Pr(>|t|)
## (Intercept) 18.860180 8.832144 2.135 0.041010 *
## TN 0.791224 0.015991 49.481 < 2e-16 ***
## TS ## --- 0.015818 0.003984 3.970 0.000414 ***
confint(hoiquyboi)
## 2.5 % 97.5 %
## (Intercept) 0.822534473 36.89782483
## TN 0.758567036 0.82388141
## TS 0.007681386 0.02395467
R sẽ mặ c định tính khoả ng tin cậ y 95% như lệnh chú ng ta vừ a thự c hiện. Nếu muố n tìm khoả ng tin
cậ y 99% cho cá c hệ số (khô ng hiển thị kết quả ):
6.2 Khoảng tin cậy cho một biểu thức của hệ số hồi quy
Khoả ng tin cậ y cho, chẳ ng hạ n, biểu thứ c (aβ2 + bβ3) đượ c tính theo cô ng thứ c sau:
(𝑎𝛽̂2 + 𝑏𝛽̂ 3 ) − 𝑡𝛼/2 𝑠𝑒(𝑎𝛽̂ 2 + 𝑏𝛽̂ 3) ≤ 𝑎𝛽2 + 𝑏𝛽3 ≤ (𝑎𝛽̂ 2 + 𝑏𝛽̂ 3) + 𝑡𝛼/2 𝑠𝑒(𝑎𝛽̂ 2 + 𝑏𝛽̂ 3)
Trong đó :
Vớ i mô hình OLS thu đượ c, giả sử cầ n tìm khoả ng tin cậ y 95% cho (−𝛽2̂ + 10𝛽̂ 3). Trướ c hết tìm
các giá trị củ a var(𝛽̂ 2 ), var(𝛽̂ 3 ), và cov(𝛽̂ 2 , 𝛽3̂ ):
vcov(hoiquyboi)
##(Intercept) TN TS
## (Intercept) 78.00677420 7.375351e-02 -2.395591e-02
## TN 0.07375351 2.556997e-04 -6.231694e-05
## TS -0.02395591 -6.231694e-05 1.587315e-05
Sau đó thự c hiện mộ t loạ t cá c lệnh:
## [1] -0.7465574
ct
## [1] -0.5195304
228
Như vậy khoảng tin cậy 95% cho (−𝛽̂ 2+ 10𝛽̂ 3) là (-0.746; -0.519).
6.3 Kiểm định Wald về sự ràng buộc của các hệ số hồi quy
Kiểm định Wald về sự rà ng buộ c củ a cá c hệ số hồ i quy á p dụ ng cho cặ p giả thuyết H0: mβ2 + nβ3 = p;
H1: mβ2 + nβ3 # p trong đó m, n, và p là cá c số thự c.
Chú ng ta có thể kiểm tra giả thuyết rằ ng β2 =50β3 (tứ c là m=1, n = -50, p=0) như sau:
library(AER)
linearHypothesis(hoiquyboi, "TN = 50*TS")
Giá trị Pr(>F) = 0.998 > 5% nên chú ng ta có bằ ng chứ ng thố ng kê để chấ p nhậ n giả thuyết gố c.
Chú ng ta có thể kiểm tra giả thuyết rằ ng β2 =25β3 +0.4 (tứ c là m=1, n = -25, p=0.4) như sau:
Giá trị Pr(>F) = 0.971 > 5% nên chú ng ta có bằ ng chứ ng thố ng kê để chấ p nhậ n giả thuyết gố c.
229
6.4 Kiểm định F về việc đồng thời bằng không của nhiều hệ số hồi quy
Đâ y là nhó m cá c kiểm định cho cặ p giả thuyết dạ ng H0: β2i + β2j = 0; H1: β2i + β2j # 0. Chú ng ta sử dụ ng
kiểm định F cho nhữ ng tình huố ng như vậ y.
Từ mụ c 5.4 trở đi chú ng ta sẽ sử dụ ng bộ số liệu ch5bt10.WF1. Chú ng ta chỉ thị cho R đọ c file dữ liệu
dướ i dạ ng mộ t data.frame vớ i tên dung. Chú ng ta xét mô hình sau:
Giả sử chú ng ta muố n kiểm định cặ p giả thuyết H0: β23 + β24 = 0; H1: β23 + β24 # 0. Nếu giả thuyết Ho
đú ng thì mô hình (2) trở thà nh:
Bướ c thứ nhấ t chạ y cả hai mô hình (2) và (3) nhằ m thu đượ c R2ur và R2r trong đó R2ur và R2r lầ n lượ t
là R2 củ a mô hình (2) và (3).
Bướ c cuố i cù ng chú ng ta so sá nh thố ng kê F tính ở bướ c thứ hai vớ i Fα(m,n-k). Nếu F > Fα(m,n-k)
thì chú ng ta có bằ ng chứ ng thố ng kê bắ c bỏ Ho, nếu khô ng chú ng ta có bằ ng chứ ng thố ng kê chấ p
nhậ n H1.
Chú ng ta tuâ n theo ba bướ c nà y thự c hiện kiểm định nà y trong R như sau (chỉ hiển thị phầ n kết quả
chứ a R2):
Ta tính thố ng kê F:
## [1] 0.46313
## [1] 3.340386
Chú ng ta có thể tính kiểm định F cá ch khá c trong R nhanh hơn và chắ c chắ n khô ng gặ p sai só t như
sau:
anova(luonggh, luong)
Chú ng ta vẫ n thu đượ c F = 0.463 như ở trên. Và cá ch nà y cũ ng khô ng cầ n bạ n phả i tìm F 0.05(2,28-4) mà
chỉ cầ n so sá nh Pr(>F) = 0.634 vớ i 5%. Do Pr(>F) = 0.634 > 5% nên chú ng ta chưa có bằ ng chứ ng
thố ng kê bắ c bỏ Ho.
Chú ng ta cũ ng có thể tính thố ng kê F thô ng qua RSS(R) và RSS(U) củ a mô hình bị giớ i hạ n và khô ng
bị giớ i hạ n theo cô ng đã biết ở mụ c 5.4.1:
231
(𝑅𝑆𝑆𝑅 − 𝑅𝑆𝑆𝑈𝑅)/𝑚
𝐹= ~𝐹𝑚,(𝑛−𝑘)
𝑅𝑆𝑆𝑈𝑅 /(𝑛 − 𝑘)
Trướ c hết ta cầ n tính cá c
RSS:
anova(luong)
anova(luonggh)
6.5 Mối liên hệ hình chữ U ngược giữa giáo dục và mức lương
Trong kinh tế họ c lao độ ng ngườ i ta thườ ng quan tâ m đến mô hình sau về tá c độ ng củ a giá o dụ c
(EDUC) lên logarit cơ số tự nhiên củ a lương (lnWAGE):
Cá c lý thuyết củ a kinh tế họ c lao độ ng chỉ ra rằ ng β3 < 0, β2 > 0 đồ ng thờ i hai hệ số hồ i quy nà y phả i
có ý nghĩa thố ng kê vớ i ngụ ý về mố i quan hệ hình chữ U ngượ c giữ a EDUC và ln(WAGE). Nghĩa là ,
ban đầ u số nă m họ c tă ng dẫ n đến mứ c lương cũ ng tă ng. Nhưng khi nă m họ c đạ t mộ t ngưỡ ng nà o đó ,
tá c độ ng củ a số nă m đi họ c lên mứ c lương lạ i ngượ c lạ i. Nó i cá ch khá c, vượ t qua ngưỡ ng nà y thì
mứ c lương tuâ n theo quy luậ t cậ n biên giả m dầ n so vớ i số nă m đi họ c.
##
## Call:
## lm(formula = log(WAGE) ~ EDUC + I(EDUC^2) + MEDUC + SSIBS, data = dung)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.25091 -0.10462 0.05347 0.07849 0.15292
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.335686 0.822291 10.137 1.06e-10 ***
## EDUC -0.049861 0.122870 -0.406 0.688
## I(EDUC^2) 0.002788 0.004501 0.620 0.541
## MEDUC -0.004551 0.006258 -0.727 0.473
## SSIBS -0.011027 0.012458 -0.885 0.384
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1147 on 27 degrees of freedom
## Multiple R-squared: 0.1711, Adjusted R-squared: 0.04835
## F-statistic: 1.394 on 4 and 27 DF, p-value: 0.2626
Ở đâ y cá c bạ n chú ý phả i gõ I(EDUC^2) để tạ o biến mớ i EDUC2 trong R. Kết quả cho thấ y rằ ng hệ số
củ a EDUC2 là dương – ngượ c lạ i nhữ ng phá t biểu củ a kinh tế họ c lao độ ng. Nguyên nhâ n có thể là mô
hình cò n thiếu mộ t số biến số quan trọ ng. Chú ng ta sẽ nghiên cứ u vấ n đề nà y ở cá c chương sau.
6.6 hồi quy chuẩn hóa và vấn đề so sánh tác động của các biến độc lập
Mộ t câ u hỏ i đặ t ra là , ví dụ vớ i mô hình hồ i quy ở mụ c 6.1, là so sá nh mứ c độ ả nh hưở ng (hay tá c
độ ng) củ a cá c biến độ c lậ p lên biến phụ thuộ c. Có thể thấ y mứ c chênh lệch giữ a hệ số hồ i quy củ a
biến TN và TS là 50 (0.791224 so vớ i 0.015818) nên thườ ng đưa ra kết luậ n sai trá i rằ ng tá c độ ng
củ a thu nhậ p lên biến CT mạ nh gấ p 50 lầ n so vớ i tá c độ ng củ a biên TS lên CT. Để so sá nh đú ng vai
trò , mứ c độ ả nh hưở ng củ a cá c biến độ c lậ p lên biến phụ thuộ c chú ng ta phả i sử dụ ng hồi quy
chuẩn hóa (Gujarati & Porter, 2009). Vớ i tình huố ng ở mụ c 6.1, thự c hiện hồ i quy chuẩ n hó a trong
R:
##
## Call:
## lm(formula = scale(CT) ~ scale(TN) + scale(TS), data = dung) ##
## Residuals:
##Min1Q
Median3QMax
## -0.02876 -0.01885 0.00067 0.01038 0.05791
##
## Coefficients:
233
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02203 on 30 degrees of freedom ## Multiple R-squared: 0.9
0.92690 / 0.07437
## [1] 12.46336
6.7 Kiểm định LM, LR trong trường hợp kích cỡ mẫu là lớn
Nếu phầ n dư là phâ n phố i chuẩ n thì cá c thố ng kê t và F đượ c sử dụ ng vớ i mọ i kích thướ c mẫ u. Tuy
nhiên, nếu phầ n dư khô ng tuâ n theo quy luậ t chuẩ n thì thố ng kê t và F sẽ khô ng tuâ n theo quy luậ t
Student, Fisher vớ i kích thướ c mẫ u là bé do vậ y sử dụ ng thố ng kê t và F có thể khô ng á p dụ ng đượ c
trong tình huố ng nà y. Nhưng nếu kích thướ c mẫ u là lớ n thì chú ng ta có thể sử dụ ng thố ng kê t và F
bấ t kể phầ n dư có phâ n phố i chuẩ n hay khô ng.
Để thự c hiện Likelihood Ratio Test (LR Test) trướ c hết chú ng ta cà i đặ t và sử dụ ng package có tên
lmtest bằ ng cá ch gõ install.packages(“lmtest”) tạ i cử a sổ lệnh củ a R. Sau đó chú ng ta thự c hiện
ướ c lượ ng cho hai mô hình trên như sau:
mohinh1 <- lm(data = trang, WAGE ~ EDUC + EXPER + FEDUC + MEDUC + IQ)
mohinh2 <- lm(data = trang, WAGE ~ EDUC + EXPER + IQ)
lrtest(mohinh1, mohinh2)
Chú ng ta thấ y giá trị củ a Pr(>Chisq) = 0.00288 < 5% (tương ứ ng vớ i χ 2qs = 11.697) nên chú ng ta có
bằ ng chứ ng thố ng kê để bắ c bỏ giả thiết rằ ng hai hệ số củ a FEDUC và MEDUC đồ ng thờ i bằ ng 0.
Chú ng ta có thể tính trự c tiếp LR Test bằ ng cá ch sử dụ ng thố ng kê λ (Gujarati & Porter, 2009) mà
khô ng cầ n sử dụ ng package lmtest. Giá trị λ đượ c tính theo cô ng thứ c sau:
Trong đó ULLF và RLLF lầ n lượ t là giá trị Log Likehood củ a mô hình khô ng giớ i hạ n (mô hình 1) và
mô hình bị giớ i hạ n (mô hình 2). Vớ i n đủ lớ n thì thố ng kê λ tuâ n theo phâ n phố i χ2 vớ i số bậ c tự do
bằ ng số biến bị loạ i khỏ i mô hình 1. Trong mộ t số phầ n mềm như Eviews, khi chạ y cá c mô hình hồ i
quy thì nó luô n hiển thị ULLF và RLLF. Trong R chú ng ta có thể gọ i giá trị ULLF như sau:
logLik(mohinh1)
logLik(mohinh2)
## [1] 11.6972
Giá trị 11.6972 nà y chính là giá trị ở cộ t Chisq. Bướ c cuố i cù ng là chú ng ta cầ n so sá nh λ = 11.6972
nà y vớ i χ20.95 vớ i số bậ c tự do trù ng vớ i số biến bị loạ i bỏ ở mô hình 2 (hay df = 2). Chú ng ta tính hai
giá trị nà y trong R:
qchisq(0.95, 2)
## [1] 5.991465
Do giá trị 11.6972 > 5.99 nên λ thuộ c miền bắ c bỏ . Nghĩa là chú ng ta có bằ ng chứ ng thố ng kê để bắ c
bỏ giả thiết rằ ng hai hệ số hồ i quy củ a FEDUC và MEDUC đồ ng thờ i bằ ng 0.
Chú ý rằ ng cá c nhà kinh tế lượ ng – thố ng kê đã chứ ng minh rằ ng (4) có thể viết lạ i như sau:
Trong đó RRSS và URSS lầ n lượ t là tổ ng phầ n dư bình phương củ a mô hình 2 (mô hình bị giớ i hạ n)
và mô hình 1 (mô hình khô ng bị giớ i hạ n) cò n n là số quan sá t. Nếu chú ng ta sử dụ ng (5) để tính
toá n thì chú ng ta cũ ng rú t ra cù ng mộ t kết luậ n mà khô ng cầ n biết cá c giá trị Log Likehood củ a cá c
mô hình.
Ngườ i ta cũ ng chứ ng minh đượ c hai thố ng kê Wald (Wald Test) và Lagrange Multiplier (LM Test)
tuâ n theo phâ n phố i χ2 như sau:
(𝑛 − 𝑘)(RRSS − URSS)
Wald Statistic (W) = ~ χ2
URSS 𝑟
(𝑛 − 𝑘 + 𝑟)(RRSS − URSS)
Lagrange Multiplier Statistic (LM) = ~ χ2
RRSS 𝑟
W ≥ LR ≥ LM (8)
Nghĩa là khi n lớ n đến vô cù ng thì ba thố ng kê nà y hộ i tụ về cù ng mộ t giá trị. Nó i cá ch khá c, vớ i n là
bé thì mộ t giả thuyết có thể bị bắ c bỏ bở i kiểm định Wald nhưng khô ng bị bắ c bỏ bở i kiểm định LM.
Chú ng ta có thể tính trự c tiếp kiểm định (thố ng kê) Wald theo như (6) sau:
## [1] 11.70765
Giá trị củ a thố ng kê Wald = 11.7076 cao hơn khô ng đá ng kể so vớ i λ = 11.6972 mà chú ng ta đã tính
ở trên. Ngoà i ra 11.7076 > χ20.95;2 = 5.99 nên chú ng ta bắ c bỏ giả thuyết rằ ng hai hệ số củ a FEDUC và
MEDUC đồ ng thờ i bằ ng 0.
## [1] 11.58696
Tương tự ta cũ ng thấ y 11.587 > χ20.95;2 = 5.99 nên chú ng ta bắ c bỏ giả thuyết rằ ng hai hệ số củ a
FEDUC và MEDUC đồ ng thờ i bằ ng 0.
Tấ t nhiên cá c bạ n hoà n toà n có thể sử dụ ng kiểm định F như đã trình bà y ở mụ c 5.4 củ a chương nà y.
6.8 Gợi ý trả lời một sô bài tập chương 2 thuộc cuốn giáo trình của NEU
Chú ng ta sẽ trả lờ i mộ t số khía cạ nh lý thuyết, thự c tiễn, cũ ng như thự c hà nh trong R vớ i cá c bà i tậ p
từ 2.4 đến 2.6 (trang 120 và 131 sá ch giá o trình củ a NEU). Theo quan điểm cá nhâ n củ a tô i, nguồ n
gố c số liệu đá ng tin cũ ng như giả i thích ở mứ c tố i thiểu cá c biến là cầ n thiết cho nghiên cứ u kinh tế
lượ ng. Rấ t tiếc sá ch củ a NEU nhiều bộ số liệu thì khô ng có (nhưng sá ch vẫ n nó i có ) lạ i cò n khô ng có
thô ng tin về dữ liệu. Vì lý do nà y, để trả lờ i cho câ u hỏ i củ a cá c bà i tậ p từ 2.4 đến 2.6 chú ng ta nghiên
cứ u bộ số liệu hoà n toà n tương tự có tên WAGE1.DTA lấ y từ sá ch củ a Wooldridge (2013).
Trướ c hết cầ n nhắ c lạ i mộ t lý thuyết khá phổ biến về quy luậ t cậ n biên giả m dầ n củ a số nă m đi họ c
hoặ c kinh nghiệm củ a kinh tế họ c lao độ ng (Labour Economics). Theo lý thuyết nà y thì mứ c lương
sẽ tă ng cù ng vớ i số nă m đi họ c hoặ c kinh nghiệm nhưng sau đó mố i quan hệ nà y đổ i chiều nếu số
nă m đi họ c hoặ c kinh nghiệm vượ t mộ t ngưỡ ng nà o đó . Để kiểm định lý thuyết kinh tế nà y, chú ng ta
có thể xét mô hình sau:
Trong đó wage là mứ c lương củ a ngườ i lao độ ng, exper là số nă m kinh nghiệm. Nếu lý thuyết nà y là
đú ng thì chú ng ta kì vọ ng rằ ng hệ số hồ i quy củ a exper là dương và hệ số hồ i quy củ a exper2 là â m.
Chú ng ta sử dụ ng bộ dữ liệu WAGE1.DTA để đá nh giá mô hình nà y:
setwd("D:/KTLR")
library(haven)
trang <- read_stata("WAGE1.DTA")
names(trang)