You are on page 1of 8

Huỳnh Vũ Ngọc Ánh, Hoàng Nhật Quy và Huỳnh Thị Oanh Triều 1

Ứng dụng của phần mềm R trong Kinh tế lượng

Huỳnh Vũ Ngọc Ánh, Hoàng Nhật Quy và Huỳnh Thị Oanh Triều
1
Khoa Toán, Trường ĐH Sư phạm - ĐHĐN
nhuynhanh41@gmail.com, hoangnhatquy@gmail.com,
oanhtrieuhuynh@gmail.com

Tóm tắt. R là một phần mềm dùng cho phân tích thống kê và vẽ biểu đồ được khởi xướng
bởi R. Ihaka và R. Gentleman năm 1996 [1]. Ý tưởng này được giới thống kê học ủng hộ và
tập trung phát triển R thành một ngôn ngữ máy tính đa năng và hoàn toàn miễn phí [3]. Đặc
điểm này cùng với công năng tốt nên R ngày càng được sử dụng phổ biến trong nhiều lĩnh
vực. Bài báo này nhằm giới thiệu ứng dụng của R để ước lượng và phân tích bài toán hồi
quy trong kinh tế lượng – một lĩnh vực cũng đang rất thời sự trong kinh tế học.

Từ khóa: phần mềm R, hồi quy, kinh tế lượng, kinh tế vi mô, kinh tế vĩ mô.

1 Đặt vấn đề
Về các phần mềm ứng dụng trong kinh tế lượng, trong phân tích và xử lý số liệu, trong vẽ
biểu đồ thì có lẽ những cái tên như Eviews, Stata, SPSS, S-plus, Mathlab đã khá quen thuộc.
Một mặt, đây là những phần mềm thương mại nên việc sử dụng chúng đòi hỏi phải có chi phí về
bản quyền. Đây là vấn đề rất quan trọng, đặc biệt trong bối cảnh hội nhập quốc tế ngày càng sâu
rộng theo thời gian. Mặt khác, chúng là những phần mềm chuyên dụng, chỉ phù hợp với một số
lĩnh vực. Chẳng hạn, nếu công việc là phân tích dữ liệu mảng thì nên chọn Stata, dùng trong
kinh tế lượng thì dùng Eviews, còn nếu là phân tích thống kê đa biến như phân tích EFA, CFA
thì nên chọn SPSS. Ngược lại, phần mềm R hoàn toàn khắc phục được 2 vấn đề trên đây. Một
mặt, nó là phần mềm mã nguồn mở [3], mặt khác R có thể thực hiện được tất cả các phân tích
mà các phần mềm thương mại nói trên có thể làm và làm tốt hơn.
Với những lợi thế như vậy, mà R đã được sử dụng khá phổ biến trong học tập, giảng dạy và
nghiên cứu tại nhiều trường đại học trên thế giới. Ở Việt Nam, trong những năm gần đây R bắt
đầu được sử dụng trong dạy học tại một số trường đại học lớn như trường ĐH Kinh tế quốc dân,
ĐH Thương mại, ĐH Kinh tế TP. Hồ Chí Minh. Tại ĐH Đà Nẵng, R cũng bắt đầu được quan
tâm và đưa vào ứng dụng. Tháng 10/2017, Khoa Y Dược – ĐHĐN đã khai mạc khóa học về
“Phương pháp nghiên cứu khoa học và công bố quốc tế” của GS. Nguyễn Văn Tuấn, mà nội
dung chính là sử dụng R trong thiết kế nghiên cứu và phân tích dữ liệu [5]. Trước đó, tại Hội
thảo Cita lần thứ 2 (2013), Hoàng Nhật Quy cũng đã giới thiệu nghiên cứu ứng dụng R trong
giải bài toán Quy hoạch tuyến tính [2]. Chúng tôi hy vọng rằng bài báo nghiên cứu ứng dụng
của R trong Kinh tế lượng sẽ mang tới cho các bạn sinh viên và đồng nghiệp tại ĐH Đà Nẵng
một công cụ mới và góp phần giới thiệu việc sử dụng rộng rãi R tại Việt Nam.

2 Kết quả nghiên cứu


Nghiên cứu mối quan hệ giữa chi tiêu với lương và các nguồn thu nhập khác, người ta đã
tiến hành khảo sát và thu được bảng số liệu sau đây:
2 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA 2018 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH

Bảng 1. Số liệu khảo sát (đơn vị: triệu đồng)

Chi 24.4 31.2 29.2 23.6 36.0 31.4 32.6 36.8 32.8 29.8 30.2 26.8
tiêu
Lương 20 30 28 24 32 36 32 34 24 22 28 30
TN 16 10 2 0 18 10 16 24 28 20 8 4
khác

Việc sử dụng R để nghiên cứu định lượng mối quan hệ phụ thuộc của CHI TIÊU vào
LƯƠNG và THU NHẬP (TN) KHÁC trong 2 trường hợp hồi quy đơn và hồi quy bội được trình
bày như sau.
2.1 Hồi quy tuyến tính đơn
Giả sử X, Y là 2 biến kinh tế (Y là biến phụ thuộc, X là biến giải thích). Mô hình hồi quy
tuyến tính đơn có dạng
Y = b + aX + ε
Trong đó, a gọi là độ dốc (slope), b gọi là tung độ gốc (Intercept); a, b còn được gọi là các hệ
số hồi quy.
Đối với ví dụ trên, cần nghiên cứu mối quan hệ giữa CHI TIÊU và LƯƠNG. Dựa vào các số
liệu ở bảng 1. và sử dụng phần mềm R , thực hiện việc ước lượng các hệ số a, b trong mô hình
hồi quy, cũng như thực hiện một số phân tích và kiểm định khác cụ thể như sau.
- Nhập số liệu vào R: sử dụng các lệnh sau
> chitieu<-c(24.4,31.2,29.2,23.6,36.0,31.4,32.6,36.8,32.8,29.8,30.2,26.8)
> luong<-c(20,30,28,24,32,36,32,34,24,22,28,30)
- Có thể hiển thị dữ liệu về chitieu và luong lên giao diện phần mềm R
> chitieu
[1] 24.4 31.2 29.2 23.6 36.0 31.4 32.6 36.8 32.8 29.8 30.2 26.8
> luong
[1] 20 30 28 24 32 36 32 34 24 22 28 30
- Lệnh để thực hiện hồi quy tuyến tính đơn là lm. Lệnh này có nhiều tùy chọn. Có thể sử
dụng lệnh help(lm) để tìm hiểu thêm về lệnh lm [xem 3,4]. Sau khi ước lượng, mô hình hồi quy
đơn giữa Chi tiêu và Lương có dạng sau:
Chitieu = (Intercept) + (slope).luong
> hoiquydon<-lm(chitieu~luong)
> hoiquydon
Call:
lm(formula = chitieu ~ luong)
Coefficients:
(Intercept) luong
15.6192 0.5217
Như vậy sẽ có được mô hình: Chitieu = 15.6192 + 0.5217.luong
- Để vẽ đường hồi quy, cách thực hiện như sau
> plot(chitieu~luong)
> abline(hoiquydon)
Huỳnh Vũ Ngọc Ánh, Hoàng Nhật Quy và Huỳnh Thị Oanh Triều 3

Hình 1. Đường hồi quy chitieu~luong


- Để hiển thị thông tin chi tiết của ước lượng mô hình hồi quy trên đây, cách làm như sau
> summary(hoiquydon)

Call:
lm(formula = chitieu ~ luong)

Residuals:
Min 1Q Median 3Q Max
-4.5394 -1.9894 -0.0478 2.8889 4.6606

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 15.6192 5.7370 2.723 0.0215 *
luong 0.5217 0.1997 2.612 0.0259 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.285 on 10 degrees of freedom


Multiple R-squared: 0.4056, Adjusted R-squared: 0.3462
F-statistic: 6.824 on 1 and 10 DF, p-value: 0.02594

Từ bảng số liệu trên và căn cứ vào tiêu chuẩn thống kê, có thể nhận định mô hình hồi quy là
không tốt lắm vì: R2 = 0.4056 khá nhỏ (so với 1) và F = 6.824 cũng khá nhỏ. Nhưng mô hình
vẫn có ý nghĩa thông kế vì p=0.02594 < 0.05.
- Về thông số Phần dư (Residuals): Ở bảng chi tiết trên đây cho các giá trị nhỏ nhất (Min),
giá trị lớn nhất (Max) và trung vị (Median) của phần dư. Để hiển thị thông tin cụ thể hơn về
phần dư, cách làm như sau
> phandu<-residuals(hoiquydon)
> phandu
1 2 3 4 5 6
-1.65270936 -0.06945813 -1.02610837 -4.53940887 3.68719212 -2.99950739
7 8 9 10 11 12
0.28719212 3.44384236 4.66059113 2.70394089 -0.02610837 -4.46945813
Vẽ biểu đồ phần dư
> hist(phandu)
4 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA 2018 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH

Hình 2. Biểu đồ về phần dư

- Tìm khoảng ước lượng cho các hệ số hồi quy (mặc định với độ tin cậy 95%)
> confint(hoiquydon)
2.5 % 97.5 %
(Intercept) 2.83630060 28.4021230
luong 0.07672091 0.9666288
- Nếu muốn tìm khoảng ước lượng với độ tin cậy cho trước, chẳng hạn 90% thì cách làm như
sau
> confint(hoiquydon, level=0.9)
5% 95 %
(Intercept) 5.2210584 26.017365
luong 0.1597308 0.883619
- Phân tích thông tin hồi quy từ bảng ANOVA:
> anova(hoiquydon)
Analysis of Variance Table

Response: chitieu
Df Sum Sq Mean Sq F value Pr(>F)
luong 1 73.66 73.660 6.8242 0.02594 *
Residuals 10 107.94 10.794
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Ở đây RSS (với df2=12-2=10 bậc tự do) là 107.94 và ESS (với df 1=1 bậc tự do) là 73.66. Và
có TSS=RSS+ESS, có thể kiểm tra lại là R 2=ESS/TSS=0.4056. Bảng anova này cũng hiển thị
giá trị thống kê F = 6.8242 = (ESS/df1)/(RSS/df2).
2.2 Hồi quy tuyến tính bội
Giả sử Y, X1, X2, …, Xn là các biến kinh tế (Y: biến phụ thuộc, còn X1, X2, …, Xn là các biến
giải thích). Mô hình hồi quy tuyến tính bội có dạng
Y = b + a1X1 + a2X2 + ⋯ + anXn + ε
Trong ví dụ trên đây, cần nghiên cứu mối quan hệ phụ thuộc của Chi tiêu vào Lương và TN
khác.
- Nhập số liệu vào R
> chitieu<-c(24.4,31.2,29.2,23.6,36.0,31.4,32.6,36.8,32.8,29.8,30.2,26.8)
> luong<-c(20,30,28,24,32,36,32,34,24,22,28,30)
> tnkhac<-c(16,10,2,0,18,10,16,24,28,20,8,4)
Huỳnh Vũ Ngọc Ánh, Hoàng Nhật Quy và Huỳnh Thị Oanh Triều 5

- Lệnh thực hiện ước lượng trong mô hình hồi quy bội vẫn là lm. Sau khi thực hiện và hiển
thị số liệu bằng R như sau
> hoiquyboi<-lm(chitieu~luong+tnkhac)
> summary(hoiquyboi)

Call:
lm(formula = chitieu ~ luong + tnkhac)

Residuals:
Min 1Q Median 3Q Max
-2.34689 -0.98818 0.04292 0.98416 2.36009

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 10.85676 3.21030 3.382 0.008103 **
luong 0.54890 0.10703 5.129 0.000621 ***
tnkhac 0.30701 0.06032 5.089 0.000654 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.759 on 9 degrees of freedom


Multiple R-squared: 0.8467, Adjusted R-squared: 0.8127
F-statistic: 24.86 on 2 and 9 DF, p-value: 0.0002161
Từ bảng số liệu chi tiết trên đây, mô hình hồi quy bội ước lượng được là
Chitieu = 10.85676+0.554890.luong + 0.30701.tnkhac
Theo tiêu chuẩn thống kế thì mô hình hồi quy ước lượng được là khá tốt vì: R 2 = 0.8467 khá
gần với 1, F = 24.86 khá lớn và chỉ số thống kê p = 0.0002161 khá nhỏ.
Từ bảng số liệu trên cũng có được các thông tin về phần dư (Residuals). Để hiển thị chi tiết
hơn phần dư và lập biểu đồ của nó thì cách thực hiện tương tự mục hồi quy tuyến tính đơn ở
trên.
- Khoảng tin cậy của các hệ số hồi quy trong mô hình được ước lượng khoảng theo công
thức
â1 − t 𝖺/2 se(â1 ) ≤ a1 ≤ ̂a1 + t 𝖺/2 se(̂a1 )
Trong R, việc tìm khoảng ước lượng của các hệ số hồi quy được thực hiện như sau (giả sử độ
tin cậy là 99%)
> confint(hoiquyboi, level=0.99)
0.5 % 99.5 %
(Intercept) 0.4238061 21.2897085
luong 0.2010778 0.8967173
6 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA 2018 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH

tnkhac 0.1109680 0.5030544


- Hiển thị ma trận hệ số tương quan
> vcov(hoiquyboi)
(Intercept) luong tnkhac
(Intercept) 10.30603427 -0.3287460712 -0.0564491727
luong -0.32874607 0.0114547543 0.0003226691
tnkhac -0.05644917 0.0003226691 0.0036389908
- Kiểm định Wald về sự ràng buộc của các hệ số hồi quy:
Giả thiết H0: ma1 + na2 = p
Đối thiết H1: ma1 + na2 ≠ p
Chẳng hạn, hãy kiểm định mô hình hồi quy bội trên đây với giả thiết a1=2a2. Việc kiểm định
được thực hiện bằng R như sau. Ở đây ta có: m=1, n= -2, p=0
> library(AER)
> linearHypothesis(hoiquyboi,"luong=2*tnkhac")
Linear hypothesis test
Hypothesis:
luong - 2 tnkhac = 0
Model 1: restricted model
Model 2: chitieu ~ luong + tnkhac
Res.Df RSS Df Sum of Sq F Pr(>F)
1 10 28.365
2 9 27.834 1 0.53061 0.1716 0.6884
Từ số liệu kiểm định ta có: Pr(>F) = 0.6884 > 5% từ đây có bằng chứng thống kê để chấp
nhận giả thiết gốc.
2.3 Một số mô hình hồi quy phi tuyến
Trong mục này, nội dung sẽ xét một mô hình đa thức và đưa ra định hướng để thực hiện hồi
quy bằng R đối với một mô hình phi tuyến nói chung.
Giả sử các biến kinh tế Y và X quan hệ với nhau theo mô hình hồi quy đa thức như sau
Y = a0 + a1X + a2X2 + … + anXn
Lệnh để thực hiện tìm các hệ số hồi quy trong R đối với mô hình đa thức như sau
> hoiquydathuc <- lm(Y~X + I(X2) + … + I(Xn))

Trở lại với bảng số liệu ban đầu, ở đây cần nghiên cứu mối quan hệ của CHITIEU và TN
KHÁC theo mô hình đa thức bậc 2 như sau
chitieu = a0 + a1 . tnkhac + a2. (tnkhac)2
Cách thực hiện cụ thể trong R như sau.
Huỳnh Vũ Ngọc Ánh, Hoàng Nhật Quy và Huỳnh Thị Oanh Triều 7

> hoiquydathuc2<-lm(chitieu~tnkhac+I(tnkhac^2))
> summary(hoiquydathuc2)
Call:
lm(formula = chitieu ~ tnkhac + I(tnkhac^2))

Residuals:
Min 1Q Median 3Q Max
-7.3399 -1.2804 0.9104 1.6970 3.7785

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 25.819306 2.408111 10.722 2e-06 ***
tnkhac 0.484940 0.402446 1.205 0.259
I(tnkhac^2) -0.007181 0.014291 -0.503 0.627
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.435 on 9 degrees of freedom


Multiple R-squared: 0.4152, Adjusted R-squared: 0.2852
F-statistic: 3.195 on 2 and 9 DF, p-value: 0.08944
Từ bảng số liệu chi tiết trên đây sẽ có:
Hàm hồi quy ước lượng được là
chitieu = 25.819306 + 0.484940 . tnkhac -0.007181. (tnkhac)2
Theo quan điểm thống kế thì mô hình hồi quy bậc 2 ước lượng được trên đây là không tốt vì:
hệ số tương quan R2 = 0.4152 khá nhỏ so với 1, F = 3.195 khá nhỏ và chỉ số p = 0.08944 khả
lớn. Do p > 5% nên có thể nói mô hình trên không có ý nghĩa về mặt thống kê.
Mô hình hồi quy phi tuyến của hai biến Y và X có dạng Y = F(X, β) + ɛ. Và lệnh trong R để
thực hiện hồi quy phi tuyến là nls (cấu trúc của lệnh nls cũng giống lệnh lm, có thể dùng lệnh
help(nls) để xem cấu trúc cụ thể của lệnh [xem 3,4]). Giả sử xét một mô hình phi tuyến là
ε
Y=
1 + eβ1X1+β2X2
Biến đổi mô hình trên về dạng tổng quát bằng cách lấy ln (lô ga rít tự nhiên) hai vế được
được kết quả:
lnY = − ln(1 + eβ1X1+β2X2 ) + ln ε
Và trong R, ước lượng mô hình nói trên bằng lệnh sau đây
1. hoiquyphituyen <- nls(log(Y) ~ log(1+exp(a*X1+b*X2)), start=list(a=1,b=1),
data=mydata).

3 Kết luận
Bài báo đã giới thiệu một ứng dụng của phần mềm R để giải bài toán trong Kinh Tế Lượng,
đây là ứng dụng chưa được khai thác ở Việt Nam. Chúng tôi hy vọng qua sự giới thiệu này, sẽ
tăng thêm động lực, tình cảm cho những ai đã, đang và sẽ quan tâm tới những ứng dụng của R.
8 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA 2018 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH

Nhân đây, chúng tôi xin gửi lời cảm ơn tới Ban tổ chức hội thảo vì đã tạo ra một diễn đàn có
ích cho những người quan tâm tới ứng dụng CNTT có thể chia sẻ những nghiên cứu của mình.

Tài liệu tham khảo


1. Ross Ihaka, and Robert Gentleman, R: A language for data analysis and graphics, Journal of
Computational and Graphical Statistics 5, No.3, 299 – 314 (1996).
2. Hoàng Nhật Quy: Ứng dụng phần mềm R để giải bài toán QHTT, Hội thảo Cita lần thứ 2, pp 61-73,
(2013).
3. Website: Cài đặt phần mềm R và các gói lệnh: http://cran.R-project.org.
4. Website: Tìm hiểu và khai thác các ứng dụng của phần mềm R: https://www.r-project.org/help.html.
5. Website: Nguyễn Văn Tuấn, Phương pháp nghiên cứu khoa học và công bố quốc tế:
http://smp.udn.vn/?Page=duandetail&idNews=710

You might also like