1. Trang chủ
  2. » Tài Chính - Ngân Hàng

Kinh tế lượng ứng dụng với R bản full (version of 01 11 2017)

455 728 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 455
Dung lượng 7,12 MB

Nội dung

Kinh tế lượng ứng dụng với R (version of 01 11 2017)

Trang 1

Kinh Tế Lượng Ứng Dụng Với

(Phiên bản ngày 10/10/2017)

Trang 3

Lời Nói Đầu Tại sao dùng R?

Với nhiều công cụ cho tích dữ liệu mà bạn có thể lựa chọn như Eviews, Stata, SPSS – AMOS, Excel,

S-PLUS, MATLAB thì rõ ràng câu hỏi đầu tiên là tại sao phải dùng R? Có ít nhất năm lí do để bạn lựa

chọn R

Thứ nhất, với tư cách là một công cụ cho nghiên cứu thống kê – kinh tế lượng, năng lực phân tích của

R là không thua kém bất kì phần mềm thống kê nào hiện có, thậm chí trong nhiều tình huống còn làm

tốt hơn Chẳng hạn, nếu phân tích dữ liệu mảng (Panel Data) thì chúng ta sẽ cân nhắc giữa Stata và

Eviews vì Stata có năng lực phân tích đa dạng và linh động hơn so với Eviews Còn nếu bạn thực hiện

các phân tích thống kê đa biến như phân tích EFA, CFA thì bạn sẽ có xu hướng chọn Stata hoặc SPSS

– AMOS do chúng linh hoạt và tiện lợi hơn Tuy nhiên, nếu dùng R thì bạn chẳng cần phải đắn đo về

vấn đề này: nó có thể thực hiện tất cả những phân tích mà các phần mềm thống kê thương mại trên

có thể làm và làm tốt hơn

Thứ hai, R còn là một ngôn ngữ lập trình hoàn thiện định hướng cho tính toán thống kê, phân tích dữ

liệu Nó cho phép bạn xây dựng những hàm, những câu lệnh chỉ để giải quyết một nhóm các nhiệm vụ

phân tích đặc thù nào đó và chia sẻ chúng trên mạng Chẳng hạn, nếu có một kiểm định mới, một mô

hình mới về phương diện lý thuyết và được đăng trên một tạp chí chuyên nghành nào đó, bạn hoàn

toàn có thể viết một chương trình nhằm biến kiểm định mới, những mô hình mới chỉ ở dạng lý thuyết

kia thành một hàm cụ thể trong R Nếu được kiểm tra bởi cộng đồng những người sử dụng rằng đúng

và không có lỗi, hàm mà bạn viết sẽ được thừa nhận và sử dụng rộng rãi

Thứ ba, với tư cách là một công cụ phân tích dữ liệu nói chung, R còn là một công cụ cho Data Mining,

Big Data, Data Visualization và Machine Learning Tôi lấy một ví dụ của Data Visualization bằng hình

ảnh ấn tượng dưới đây:

Hình ảnh này được vẽ trong R dựa trên các số liệu thu thập được về các chuyến bay của 7 hãng hàng

không lớn nhất thế giới Dựa vào hình ảnh này các bạn có thể thấy trung tâm của cái mạng nhện này

là ở Bắc Mĩ và Châu Âu – những đầu mối nhộn nhịp nhất của vận tải hàng không Nếu căn cứ vào màu

Trang 4

dữ liệu phải lên tiếng, phải cung cấp cho ta một thông tin đáng giá nào đó thì R hoàn toàn là một công

cụ thích hợp cho bạn lựa chọn

Một ví dụ nữa là sử dụng dữ liệu từ Google Scholar, chúng ta có thể hình ảnh hóa (Data Visualization)

về thị phần của R từ năm 1995 đến 2011 dựa trên các truy vấn tìm kiếm như sau:

Dữ liệu cần thiết đễ vẽ đồ thị trên tôi cũng gửi kèm với tài liệu này

Thứ tư, sử dụng R trong nghiên cứu và phân tích dữ liệu là một xu hướng và ngày càng phổ biến, ít

nhất là trong nghiên cứu thống kê – kinh tế lượng Hiện R được giảng dạy và sử dụng như một công

cụ phân tích dữ liệu ở nhiều trường đại học lớn, có uy tín trong lĩnh vực này ở Mĩ và Châu Âu Đây

cũng là lý đo xứng đáng để bạn chọn R

Cuối cùng, các trường đại học sớm hay muộn thì cũng không thể dùng phần mềm chùa như hiện nay

và sẽ sớm chuyển sang sử dụng các phần mềm miễn phí Hiện nay đã có một số trường đại học sử

dụng R cho việc giảng dạy thống kê và kinh tế lượng

Đối tượng bạn đọc của tài liệu này là ai?

Đây chắc chắn là câu hỏi mà tôi phải trả lời trước ki viết tài liệu này Đối tượng bạn đọc mà tôi hướng

đến trước hết là các bạn học khối nghành kinh tế nói chung có nhu cầu sử dụng R như là một công cụ

nghiên cứu – thực hành thống kê cũng như kinh tế lượng Tất nhiên bạn đọc không thuộc khối kinh

tế cũng có thể thu được nhiều lợi ích khi sử dụng tài liệu này

Ngoài ra, nếu bạn là người phóng khoáng, ưa thích cái đẹp và sự chính xác thì chắc chắn R sẽ trở thành

người bạn đồng hành lâu dài của bạn ngay cả khi bạn chọn cho mình một nghề nghiệp mà buộc dữ

liệu phải nói điều gì đó có ích Ví dụ, không giống như một số phần mềm thương mại khô cứng khác

(và bạn chẳng biến nó tính toán ra sao) khi thực hiện hồi quy OLS bạn cứ làm mãi mỗi một thao tác

R thì không như vậy, cũng là hồi quy OLS nhưng bạn có thể có hàng chục cách thức khác nhau Về sự

chính xác, theo tôi được biết thì cho đến tận phiên bản mới nhất của Stata mà tôi đang dùng (Version

14) thì khi tính R2 với dữ liệu mảng, Stata vẫn báo kết quả sai Với R thì điều này không có Vì bạn biết

từng bước trong tính toán nếu muốn bằng cách xem trực tiếp những dòng mã lệnh

Trang 5

Bạn cần có gì để sử R với tài liệu này?

Trước hết cần nói rằng đây không phải là một tài liệu về kinh tế lượng Nó là một cuốn hướng dẫn sử

dụng R với các áp dụng cho kinh tế lượng, do vậy sẽ không đề cập nhiều đến lý thuyết (mặc dù có một

số tình huống tôi cũng có nhắc lại lý thuyết) Tôi mặc định là các bạn đã có kiến thức nền tảng về thống

kê và kinh tế lượng Ngoài ra tôi cũng khuyến cáo bạn nên sử dụng tài liệu này kèm với cuốn Giáo

Trình Kinh Tế Lượng in năm 2012 của tác giả Nguyễn Quang Dong và Nguyễn Thị Minh của Đại Học

Kinh Tế Quốc Dân (NEU) hoặc cuốn Kinh tế lượng của tác giả Nguyễn Thành Cả và Nguyễn Thị Ngọc

Miên thuộc đại học Kinh Tế Thành Phố Hồ Chí Minh (UEH)

Ngoài ra, từ chương 8 trở đi của cuốn giáo trình của NEU sử dụng nhiều dữ liệu từ cuốn sách

Introductory Econometrics: A Modern Approach của Wooldridge (2013) nên tôi cũng gửi kèm các

bạn cuốn sách này để tham khảo và đối chiếu

Sử dụng R có khó không?

Câu trả lời rất dứt khoát: không Và tôi tin chắc là nếu bạn thành thạo R ở mức tối thiểu, bạn có xu

hướng không sử dụng các phần mềm thống kê thương mại khác Vì sao? Vì bạn hiểu bạn đang làm gì

Tuy nhiên là một người tự học nên tôi có một lời khuyên: R không phải là một kiểu “mì ăn liền” như

Eviews, SPSS, hay Stata – những phần mềm mà các bạn chủ yếu là kích chuột, kích chuột là có kết quả

R có chút khắt khe hơn khi nó yêu cầu bạn hai thứ: (1) sự thận trọng trong việc gõ các câu lệnh, và (2)

tuần tự từng bước Theo kinh nghiệm của tôi cũng như nhiều người khác, là một người mới sử dụng

R, bạn không thể nào học theo lối nhảy cóc được

Là một tài liệu định hướng thực hành nên khía cạnh lý thuyết (nhất là các công thức, các chứng minh)

sẽ không phải là trọng tâm của tài liệu này Trong tình huống cần tham chiếu lại lý thuyết một cách rõ

ràng tôi sẽ chỉ rõ tại số trang bao nhiêu, của cuốn sách hay nghiên cứu nào Tất nhiên, nếu là sách

trong nước thì tôi sẽ chỉ sử để cập đến hai cuốn giáo trình kinh tế lượng của đại học Kinh Tế Quốc

Dân và Kinh Tế Thành Phố Hồ Chí Minh Ngoài ra tôi mặc định rằng người sử dụng đã có những kiến

thức cơ bản về kinh tế lượng cũng như thống kê

Kết cấu của tài liệu này

Dự kiến tôi sẽ viết tài liệu này thành hai tập Tập một tương ứng với học phần kinh tế lượng 1 được

giảng ở NEU cũng như UEH Tuy nhiên phần này có thêm một số nội dung mà chương trình học của

EUH không có là hồi quy phân vị, Logistic, Probit, Poisson, các mô hình có biến kiểm duyệt, mô hình

hồi quy với biến công cụ, phân tích dữ liệu bảng (hay dữ liệu tổng hợp) Tập hai tương ứng với nội

dung phân tích chuỗi dữ liệu thời gian cũng một số mô hình quen thuộc như ARCH, GARCH, VAR,

BVAR

Dữ liệu sử dụng cho tài liệu

Một trong những nguyên tắc chủ đạo của tôi khi viết tài liệu này là sử dụng data có nguồn gốc rõ ràng

và đáng tin cậy Điều này đảm bảo rằng các bạn có thể kiểm tra, đối chiếu các kết quả phân tích thu

được nếu cần Một lí do nữa tôi tin rằng không thể học tốt kinh tế lượng nếu như không am hiểu ở

mức độ tối thiểu về dữ liệu mà mình đang sử dụng Tất cả số liệu được sử dụng trong tài liệu này

Trang 6

các bạn có thể dễ dàng lấy trên Internet Tuy nhiên để thuận tiện tôi gửi toàn bộ chúng cùng tài liệu

này Cụ thể, các số liệu được sử dụng trong tài liệu này đến từ 7 nguồn chủ yếu dưới đây:

1 Các số liệu từ cuốn Giáo Trình Kinh Tế Lượng của tác giả Nguyễn Quang Dong và Nguyễn Thị

Minh của NEU ở dạng file Eviews (gửi kèm tài liệu này)

2 Các số liệu từ cuốn sách Kinh tế lượng của tác giả Nguyễn Thành Cả và Nguyễn Thị Ngọc Miên

của UEH được cung cấp tại: https://sites.google.com/site/kinhteluongttkueh/home

3 Bộ số liệu CPS 1988 đi kèm với gói AER Bộ số liệu engel đi kèm gói quantreg Ngoài ra còn

có một số bộ dữ liệu khác được sử dụng và được tích hợp (có sẵn) trong một số gói phân tích

của R

4 Một số bộ số liệu (file Stata) lấy từ cuốn Econometrics by Example in năm 2011 của Gujarati

5 Bộ số liệu panel1.dta (file Stata) sử dụng ở chương 10 cho phân tích dữ liệu mảng lấy từ cuốn

Econometric Analysis of Panel Data in năm 2005 của Baltagi

6 Một số bộ dữ liệu lấy từ một số giáo trình điển hình khác về kinh tế lượng như cuốn

Introductory Econometrics: A Modern Approach ấn bản năm 2013 của Wooldridge, cuốn

Applied Logistic Regression ấn bản năm 2013 của Hosmer và Lemeshow và một số sách

khác Các dữ liệu này ở dạng file Stata

7 Một số bộ dữ liệu từng được sử dụng trong một số nghiên cứu của nước ngoài và được sử

dụng lại bởi nhiều cuốn giáo trình kinh tế lượng trên thế giới

Về văn phong của tài liệu này

Trước khi công bố tài liệu này tôi cũng gửi cho nhiều bạn đọc thẩm định trước Ý kiến phản hồi về tài

liệu chủ yếu là ở hai khía cạnh sau

Một là, văn phong bình dân với bằng chứng từ việc sử dụng nhiều đại từ “chúng ta”, “các bạn” Việc

này tôi cũng có cân nhắc trước khi viết Sự thực là thay vì viết “Chúng ta có thể tính kiểm định F trực

tiếp như sau ” bằng “Tính trực tiếp kiểm định F như sau ” là việc tôi có thể làm được Nhưng tôi thấy

viết kiểu đó tài liệu trở nên “kém thân thiện” Tôi hoàn toàn có thể viết tài liệu theo xung hướng trang

trọng điển hình của các sách giáo trình Tuy nhiên, tôi thích kiểu “thân thiện” hơn nên sẽ vẫn để

nguyên phong cách ngôn ngữ như vậy Có lẽ tôi bị ảnh hưởng từ A Field – một trong số các tác giả

yêu thích Chẳng hạn, một trong các cuốn sách thống kê của tác giả này có tên Discovering statistics

using SPSS: (and sex and drugs and rock 'n' roll) – dịch ra là : Khám phá thống kê sử dụng SPSS: (và

tình dục, ma túy, nhạc Rock – Roll)

Hai là, giải thích chi tiết quá Về điểm này tôi cần giải thích như sau Đối tượng bạn đọc của tài liệu này

có thể có mức độ học và hiểu thống kê – kinh tế lượng ở các mức độ khác nhau: từ những người được

đào tạo bài bản về thống kê – kinh tế lượng như ở khoa Toán của đại học Kinh Tế Quốc Dân cho đến

những bạn đọc không chuyên về thống kê như tôi Nên viết chi tiết, nhất là ở khía cạnh thực hành, là

điều tôi muốn hướng tới Điều này còn dựa trên kinh nghiệm của chính bản thân tôi khi học cách sử

dụng R: một lỗi rất nhỏ trong thao tác có thể làm cho một câu lệnh hay toàn bộ một chương trình

không vận hành Mà có thể tìm mãi cũng không ra Bạn đọc có thể thấy điều này về cuốn sách về R

vừa được tái bản ở Việt Nam của T.S Nguyễn Văn Tuấn (in cuối năm 2015) Rõ ràng ông có thể viết

cuốn sách ngắn cô đọng hơn Nhưng ông không làm thế

Trang 7

Các sai sót

Dù đã rất cẩn thận và cố gắng, tôi tin chắc tài liệu này còn có thiếu sót Do vậy tôi rất mong nhận được

bất kì phản hồi nào của các bạn về tài liệu Dựa trên những phản hồi ấy tôi sẽ hiệu chỉnh và hoàn thiện

hơn tài liệu cho những lần đánh máy sau

Trợ giúp từ người viết tài liệu này

Trong tình huống các bạn gặp trục trặc (như thiếu data chẳng hạn) hay có bất kì phê phán nào đối với

tài liệu, các bạn có thể nhận được hỗ trợ và phản hồi một cách nhanh chóng nhất có thể từ tôi qua ba

cách thức sau (theo thứ tự ưu tiên và cập nhật giảm dần):

1 Website gồm các bài viết về phân tích dữ liệu nói chung và kinh tế lượng nói riêng tại:

http://rpubs.com/chidungkt Các bài viết ở mục này sẽ có nhãn KTLR và các bạn có thể phản

hồi ngay lập tức Tôi sẽ cố gắng cập nhật, trả lời phản hồi nhanh nhất có thể

2 Gửi câu hỏi đến địa chỉ: https://phantichdinhluong.wordpress.com/ Đây là Blog của tôi được

thành lập để chúng ta trao đổi mọi thắc mắc về R Do tôi chưa có kinh nghiệm dùng Blog nên

giao diện của nó còn chưa tiện dụng và xấu Tuy nhiên cái đó không quan trọng vì chắc chắn

nó sẽ được cải thiện Cách này được khuyến khích

3 Tài liệu này luôn được làm mới và cập nhật cứ 2 tháng mỗi lần tại:

http://www.mediafire.com/download/3lg8bsfbu6csq8d/KinhTeLuongUngDungVoiR.rar

Lời cảm ơn

Tất nhiên, mọi thứ không thể được xây dựng từ chân không Người viết tài liệu này được hưởng lợi

từ sự động viên, định hướng, công sức và sự nhiệt tình của nhiều người và do vậy tôi muốn nói lời

cảm ơn chân thành tới họ Trước hết, đó là Thầy Lê Đức Hoàng (Viện Ngân Hàng – Tài Chính, đại học

Kinh Tế Quốc Dân) – người đã giúp đỡ tôi nhiều mặt (và cũng là một người bạn) Thầy đã tạo cho tôi

sự chú ý đối với R thông qua cuốn sách tuyệt vời Analysis of Financial Time Series của Ruey S Tsay

Ngoài ra, tôi cũng gián tiếp được hưởng lợi từ: (1) T.S Nguyễn Văn Tuấn ở viện nghiên cứu Garvan

(Australia) – người nhiệt thành cổ vũ cho việc sử dụng R trong các nghiên cứu và phân tích bằng việc

công bố tài liệu tiếng Việt đầu tiên về R qua Blog của mình vào những năm 2004, (2) T.S Daniel

Zelterman (Yale University) – người đã gửi cho tôi rất nhiều dữ liệu từ các nghiên cứu của ông cũng

như cho cuốn Applied Multivariate Statistics with R, (3) T.S Hadley Wickham (Rice University) –

người đã hào phóng gửi cho tôi bản mềm cuốn sách ggplot2 - Elegant Graphics for Data Analysis còn

đang trong quá trình in ấn của mình mà không suy nghĩ gì về vấn đề bản quyền Nhiều kiến thức thu

được về sử dụng gói ggplot2 từ cuốn sách này được sử dụng để viết một phần chương 3 của tài liệu

Tôi cũng muốn nói lời cảm ơn đến bố - mẹ, những bạn bè thân hữu đã cũng tạo điều kiện và giúp đỡ

tôi hoàn thành tài liệu này mặc dù họ có thể không ý thức được điều đó

Cuối cùng, tôi cũng muốn nói lời cảm ơn đến tất cả các bạn – những người quan tâm và sử dụng tập

tài liệu này

Trang 9

Mục Lục

Chương 1: R với tư cách một công cụ nghiên cứu kinh tế lượng 18

1.1 Tổng quan về R 18

1.2 Cài đặt R, Rstudio và các Packages cần thiết 19

1.2.1 Cài đặt R cho cho Windows 19

1.2.2 Cài đặt Rstudio 20

1.2.3 Cài đặt các packages 21

1.2.4 Yêu cầu một Package cụ thể trình diện 22

1.2.5 Sử dụng Rmarkdown để trao đổi, công bố kết quả trên Internet với Rpub 23

1.2.6 Cập nhật các phiên bản mới hơn của R 26

1.3 Trợ giúp từ R 26

1.4 Xem danh sách các gói đã cài đặt cũng như số lượng các gói của R 29

1.5 Các quy ước khi sử R cho phân tích 29

1.6 Tổng kết chương mở đầu 30

Chương 2: Môi trường làm việc trong R 30

2.1 Nhập dữ liệu trực tiếp vào R 31

2.2 Hiệu chỉnh dữ liệu 31

2.3 Đọc dữ liệu từ file sẵn có ở các định dạng khác nhau, từ các nguồn bên ngoài vào R 32

2.3.1 Đọc dữ liệu từ file Eviews 33

2.3.2 Đọc dữ liệu từ Stata 34

2.3.3 Đọc dữ liệu từ SPSS 35

2.3.4 Đọc dữ liệu của phần mềm SAS 37

2.3.5 Đọc dữ liệu từ Excel 37

2.3.6 Đọc dữ liệu định dạng txt 37

2.3.7 Đọc dữ liệu định dạng csv 38

2.3.8 Đọc nhiều file dữ liệu cùng một lúc 38

2.3.9 Đọc dữ liệu được cung cấp bởi World Bank với gói WDI 40

2.3.9.1 Giới thiệu về các số liệu được cung cấp bởi WB 40

2.3.9.2 Lấy các dữ liệu cung cấp bởi WB vào R với gói WDI 41

2.3.10 Đọc dữ liệu tài chính từ Internet với gói quantmod 47

2.3.11 Đọc dữ liệu kích thước lớn 52

Trang 10

2.4.1 Tạo một data frame 54

2.4.2 Dán lại nhãn cho các quan sát thuộc bộ số liệu từ dạng số thành ki tự hoặc factor 56

2.4.3 Dán lại nhãn cho các quan sát từ dạng kí tự thành dạng số 58

2.4.4 Ghép dữ liệu vào một data frame sẵn có 58

2.4.5 Trích dữ liệu từ một data frame có sẵn với dấu [] 60

2.4.5.1 Trích xuất dữ liệu theo cột 60

2.4.5.2 Trích xuất dữ liệu theo hàng 60

2.4.5.3 Trích xuất dữ liệu đồng thời theo hàng và cột 61

2.4.6 Trích dữ liệu từ một data frame có sẵn bằng lệnh subset() 61

2.4.7 Lấy mẫu ngẫu nhiên 61

2.5 Quản lý dữ liệu, hiệu chỉnh dữ liệu bằng các hàm của gói tidyverse 62

2.5.1 Tổ chức dữ liệu ở dạng tibble 63

2.5.2 Lọc dữ liệu với lệnh filter 66

2.5.3 Chọn cột biến với lệnh select 66

2.5.4 Đổi tên biến với lệnh rename 67

2.5.5 Sắp xếp lại theo giá trị tăng dần hay giảm dần với lệnh arrange 67

2.5.6 Tạo biến mới với lệnh mutate và transmute 67

2.5.7 Lấy ra ngẫu nhiên một số quan sát với lệnh sample_n và sample_frac 67

2.5.8 Lấy ra không ngẫu nhiên một số quan sát với lệnh slice 68

2.5.9 Loại các dòng trùng nhau bằng lệnh distinct 68

2.5.10 Hợp nhất dữ liệu bằng lệnh bind_rows và bind_cols 69

2.5.11 Dán lại nhãn cho các quan sát với hàm recode() hoặc recode_factor() 70

2.5.12 Dán lại nhãn cho các quan sát với hàm if_else hoặc case_when 72

2.5.13 Chuyển từ dạng wide sang long cho các nghiên cứu dữ liệu bảng với lệnh gather 73 2.5.14 Hợp nhất có điều kiện theo cột cho các bộ dữ liệu 75

2.6 Toán tử tẩu thuốc pipe (%>%) 78

2.7 Tính các thống kê cơ bản với bộ số liệu PISA sử dụng gói dplyr 80

2.8 Lưu các dữ liệu đã có trong R thành file Excel, Stata 83

2.9 Lưu các kết quả, các lệnh đã thực hiện cũng như các Objects để sử dụng cho lần sau 84

2.10 Thực hiện các tính toán thông thường, đại số tuyến tính 85

2.11 Mô phỏng dữ liệu 90

2.12 Viết và trình bày R code đúng cách 93

2.13 Lưu ý về sử dụng dấu = thay cho <- và lệnh attach 95

Trang 11

2.14 Lưu ý khi gặp tình huống cùng một tên hàm tồn tại ở hai hay nhiều gói 96

Chương 3: Các thống kê mô tả và hình hóa dữ liệu với R 97

3.1 Thực hiện các thống kê mô tả trong R 97

3.1.1 Thống kê mô tả với các hàm sẵn có trong R 97

3.1.2 Thống kê mô tả chi tiết với gói pastecs 99

3.1.3 Thống kê mô tả chi tiết với gói stargazer 100

3.1.4 Thống kê mô tả chi tiết với gói fBasics 101

3.2 Tìm các giá trị thống kê và mức xác suất của phân phối N, t, F,và χ2 102

3.2.1 Phân phối chuẩn N 102

3.2.2 Phân phối Student t 104

3.2.3 Phân phối F 106

3.2.4 Phân phối χ2 107

3.3 Vẽ các Graph và đồ thị trong R 108

3.3.1 Các Graphs với gói mặc định graphics của R 108

3.3.1.1 Vẽ Scatter Plot 108

3.3.1.2 Histogram 110

3.3.1.3 Hàm mật độ xác suất Density 112

3.3.1.4 Boxplots 113

3.3.1.5 Biểu đồ cột 118

3.3.1.6 Pie Chart 120

3.3.1.7 Biểu đồ đường 122

3.3.1.8 Trình bày nhiều Graphs trên cùng một cửa sổ hiển thị trong R 123

3.3.2 Các Graphs với gói ggplot2 123

3.3.2.1 Vẽ Scatter Plot 124

3.3.2.2 Vẽ đường hồi quy 125

3.3.2.3 Vẽ Histogram 127

3.3.3.4 Boxplots 128

3.3.2.5 Biểu đồ cột 130

3.3.2.6 Vẽ các đường cong hồi quy bặc hai 130

3.3.2.7 Hàm mật độ xác suất Density 138

3.3.2.8 Biểu đồ đường 140

3.3.2.9 Pie Chart 142

Trang 12

3.3.3.1 Trình bày nhiều Graphs trên cùng một cửa sổ hiển thị trong R với gói grid 143

3.3.3.2 Vẽ thêm Histogram cho đường hồi quy với gói ggExtra 144

3.3.3.3 Vẽ thêm hàm mật độ xác suất cho đường hồi quy với gói gridExtra 145

3.3.3.4 Vẽ thêm Boxplot cho đường hồi quy với gói gridExtra 146

3.3.3.5 Vẽ đồ thị thị phần của R giai đoạn 1995 - 2011 147

3.3.3.6 Sử dụng gói plotly tạo ra các hình ảnh tương tác 148

3.3.3.7 Sử dụng gói googleVis tạo ra các hình ảnh tương tác 152

3.4 Môt số nguyên tắc của hình ảnh hóa dữ liệu của Edward Tufte 157

3.5 Lưu các Graphs 159

3.6 Mini Projects: Hình ảnh hóa dữ liệu trong thực tế 160

Chương 4: Mô hình hồi quy tuyến tính hai biến số 169

4.1 Một số thống kê cơ bản về bộ dữ liệu 169

4.2 Thực hiện hồi quy và một số kiểm định thường gặp 171

4.2.1 Hồi quy đơn, khoảng tin cậy cho các hệ số và bảng ANOVA 171

4.2.2 Tìm các quan sát bất thường và chẩn đoán lỗi mô hình bằng hình ảnh 175

4.2.3 Thực hiện một số kiểm định thường gặp cho mô hình hồi quy 176

4.2.3.1 Kiểm định tính phân phối chuẩn của phần dư 176

4.2.3.2 Kiểm định Durbin - Watson 179

4.2.3.3 Kiểm định Wald về một giá trị cụ thể của một hệ số hồi quy 179

4.2.3.4 Kiểm định Wald đồng thời cho nhiều hệ số hồi quy 180

4.3 Mô phỏng Monte Carlo kiểm tra các giả thuyết CLMR 180

4.4 Sử dụng kết quả hồi quy cho ước lượng 183

4.5 Một số tiêu chí thường sử dụng để đánh giá chất lượng mô hình 186

4.5.1 Tiêu chí R 2 và tương quan giữa Y và Ŷ 187

4.5.2 Các tiêu chí đánh giá theo phần dư 187

4.5.3 Các tiêu chuẩn thông tin AIC, SIC, và Cp của Mallow 187

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 188

4.6 Đá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 193

4.6.1 Phương pháp Bootstrap 194

4.6.2 Phương pháp kiểm tra chéo 200

4.6.2.1 Kiểm tra chéo LOOCV 200

4.6.2.2 Kiểm tra chéo k lớp 202

4.6.2.3 Sự đánh đổi Bias – Variance 203

Trang 13

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 204

4.7 Dữ liệu thiếu và xử lý dữ liệu thiếu trong phân tích kinh tế lượng 210

Chương 5: Mở rộng mô hình hồi quy hai biến số 217

5.1 Hồi quy qua gốc tọa độ - mô hình CAPM 217

5.2 Vấn đề thay đổi đơn vị của biến 220

5.3 Hồi quy chuẩn hóa 222

5.4 Dạng hàm của mô hình hồi quy 223

5.4.1 Mô hình logarit tuyến tính 223

5.4.2 Mô hình bán logarit 226

5.4.3 Mô hình xu hướng tuyến tính 229

5.4.4 Mô hình tuyến tính – logarit 230

5.4.5 Mô hình nghịch đảo 232

5.4.6 Mô hình đa thức 233

Chương 6: Mô hình hồi quy bội 235

6.1 Thực hiện hồi quy bội trong R và khoảng tin cậy cho các hệ số 235

6.2 Khoảng tin cậy cho một biểu thức của hệ số hồi quy 236

6.3 Kiểm định Wald về sự ràng buộc của các hệ số hồi quy 237

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 238

6.5 Mối liên hệ hình chữ U ngược giữa giáo dục và mức lương 240

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 241

6.7 Kiểm định LM, LR trong trường hợp kích cỡ mẫu là lớn 242

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 245

Chương 7: Các mô hình hồi quy biến giả 253

7.1 Bản chất của biến giả và các mô hình hồi quy ANOVA 253

7.1.1 mô hình ANOVA với chỉ một biến giải thích là biến giả duy nhất 253

7.1.2 mô hình ANOVA với hai biến giả trở lên 256

7.1.3 mô hình ANOVA có sự tương tác của các biến giả 257

7.2 Mô hình có chứa cả biến giả lẫn biến định lượng – mô hình ANCOVA 258

7.2.1 Mô hình ANCOVA không có sự tương tác giữa các biến 258

7.2.2 Mô hình ANCOVA có sự tương tác giữa các biến 259

7.2.3 Vai trò của biến định tính và kiểm định Chow 259

7.2.4 Sử dụng biến định tính thay thế cho kiểm định Chow 260

7.3 Biến định tính có nhiều phạm trù 263

Trang 14

7.5 Vấn đề gán giá trị cho biến giả 268

7.6 Sử dụng biến định tính cho hồi quy từng khúc và phân tích mùa vụ 270

7.2.1 Hồi quy từng khúc 270

6.7.1 Tính chất mùa vụ trong phân tích kinh tế sử dụng biến định tính 272

Chương 8: Hiện tượng đa cộng tuyến và cách xử lý đa cộng tuyến 275

8.1 Hiện tượng đa cộng tuyến 275

8.2 Một ví dụ minh họa hiện tượng đa cộng tuyến 277

8.3 Xử lý hiện tượng đa cộng tuyến bằng bỏ biến số căn cứ vào tiêu chí Cp của Mallows 282

8.4 Xử lý hiện tượng đa cộng tuyến bằng phân tích thành phần chính PCA 289

8.5 Lựa chọn số lượng biến căn cứ vào các tiêu chuẩn thông tin BIC 292

Chương 9: Phương sai sai số thay đổi trong mô hình hồi quy 296

9.1 Phương sai sai số thay đổi và hậu quả 296

9.2 Chẩn đoán phương sai sai số thay đổi 297

9.2.1 Các phương pháp không chính thức 297

9.2.1.1 Căn cứ vào bản chất của các biến số kinh tế 297

9.2.1.2 Căn cứ vào đồ thị phần dư 297

9.2.2 Căn cứ vào các bằng chứng thống kê chính thức 298

9.2.2.1 Kiểm định Park 298

9.2.2.2 Kiểm định Glejser 301

9.2.2.3 Kiểm định Goldfeld - Quandt 302

9.2.2.4 Kiểm định do Breusch – Pagan đề xuất dựa trên kiểm định F 303

9.2.2.5 Kiểm định White 306

9.2.2.6 Kiểm định Koenker - Basett 307

9.3 Một số cách khác phục phương sai sai số thay đổi 308

9.3.1 Phương pháp bình phương nhỏ nhất có trọng số và đổi biến số 308

9.3.2 Sử dụng biến đổi Box – Cox và Yeo-Johnson 311

Chương 10: Lỗi định dạng và lựa chọn mô hình 315

10.1 Các tiêu chuẩn lựa chọn mô hình 315

10.2 Các loại lỗi mô hình 315

10.3 Bỏ sót biến quan trọng 316

10.3.1 Các hậu quả của việc bỏ sót biến quan trọng 316

10.3.2 Kiểm định Wald 316

10.3.3 Kiểm định F 319

10.3.4 Kiểm định Ramsey RESET 319

Trang 15

10.3.5 Kiểm định Lagrange Multiplier 321

10.4 Thêm biến không cần thiết 323

10.4.1 Các hậu quả của thêm biến không cần thiết 323

10.4.2 Các kiểm định 323

10.5 Dạng hàm sai 323

10.5.1 Kiểm định Koop 323

10.5.2 Ramsey Test 325

10.5.3 Davidson – MacKinnon Test 327

10.6 Lỗi đo lường 329

10.7 Lỗi do các quan sát bất thường, đòn bẩy cao, quan sát gây ảnh hưởng 329

Chương 11: Hồi quy với biến công cụ và hồi quy hai giai đoạn 2SLS 335

11.1 Nguyên nhân của việc sử dụng biến công cụ cho mô hình hồi quy 335

11.2 Sử dụng đồng thời nhiều biến công cụ cho một biến số 338

11.3 Kiểm định biến công cụ yếu, kiểm định Wu-Hausman và Sargan 339

11.4 Hậu quả của việc sử dụng biến công cụ yếu 340

11.5 Ước lượng bình phương nhỏ nhất hai giai đoạn 2SLS 342

Chương 12: Phân tích dữ liệu bảng (Panel Data) 345

12.1 Giới thiệu về dữ liệu bảng 345

12.2 Giới thiệu bộ số liệu sử dụng và package cần thiết cho phân tích 346

12.3 Phân tích dữ liệu mảng cho mô hình nghiên cứu 348

12.3.1 Hồi quy gộp (Pooled OLS) 348

12.3.2 Mô hình tác động cố định biến giả SLDV và kiểm định gộp 350

12.3.3 Mô hình tác động cố định không có biến giả 354

12.3.4 Mô hình tác động ngẫu nhiên một chiều 356

10.3.5 Mô hình tác động ngẫu nhiên hai chiều 360

12.4 Một số kiểm định lựa chọn và chẩn đoán lỗi của mô hình 361

12.4.1 Kiểm định lựa chọn giữa FEM , Pooled OLS và REM 361

12.4.2 Kiểm định Breusch-Pagan cho lựa chọn giữa REM và Pooled OLS 363

12.4.3 Một số kiểm định khác chẩn đoán lỗi mô hình sử dụng dữ liệu mảng 364

12.4.3.1 Kiểm định tương quan phần dư giữa các cá thể 364

12.4.3.2 Kiểm định tương quan chuỗi cho FEM, REM 364

12.4.3.3 Kiểm định phương sai sai số thay đổi cho FEM 365

Trang 16

12.7 Một số mô hình nâng cao cho phân tích dữ liệu mảng 370

12.7.1 Sử dụng biến công cụ 370

12.7.2 Ước lượng Hausman – Taylor 375

12.7.3 Phương pháp moment tổng quát GMM 377

12.7.4 Ước lượng FGLS 378

12.8 Vài kết luận cuối cùng về phân tích dữ liệu mảng 379

Chương 13: Các mô hình với biến phụ thuộc là rời rạc 380

13.1 Mô hình xác suất tuyến tính LPM 380

13.2 Mô hình Logistic và một số tiêu chí đánh giá 381

13.2.1 Mô hình Logistic 381

13.2.2 Một số tiêu chí đánh giá chất lượng của mô hình Logistic 393

13.2.2.1 Kiểm định Hosmer-Lemeshow 393

13.2.2.2 Các tiêu chí khác đo lường khả năng phân loại của mô hình 394

13.3 Mô hình Logistic đa cấp độ 398

13.4 Mô hình Probit 402

13.5 So sánh Probit và Logistic theo tiêu chí AUC 405

13.6 Một vài nhận xét về chương 10 sách giáo trình 407

13.7 Ứng dụng trong nghiên cứu của mô hình Logit và Probit và một số mô hình phân loại khác cho xếp hạng tín dụng 409

13.8 Lựa chọn mô hình phù hợp cho bài toán phân loại – xếp hạng hồ sơ tín dụng 417

13.9 Mô hình cây phân loại và so sánh với mô hình Logistic 419

13.9.1 Giới thiệu về mô hình cây phân loại 419

13.9.2 So sánh mô hình cây phân loại và Logistic dựa trên hậu quả kinh tế của việc sử dụng 422

Chương 14: Mô hình có biến bị kiểm duyệt: Tobit và hồi quy Poisson 431

14.1 Mô hình Tobit 431

14.2 Hồi quy Poisson 433

Chương 15: Phân tích nhân tố khám phá EFA 436

15.1 Mô tả số liệu và các gói cần thiết cho phân tích 436

15.2 Các phân tích sơ bộ cần thiết 437

15.2.1 Phân tích tương quan 437

15.2.2 Phân tích một số thống kê khác về các câu hỏi 438

15.3 Kiểm định KMO và Bartlett 439

15.3.1 Kiểm định KMO 439

Trang 17

15.3.2 Kiểm định Bartlett 440

15.4 Số lượng các nhân tố chính rút ra 440

15.5 Các biến cấu thành nhân tố, đặt tên cho nhân tố và kiểm định Cronbach Alpha 442

15.6 Mini Project: Hình ảnh hóa dữ liệu sử dụng thang đo Likert 446

15.7 Về xu hướng sử dụng phân tích EFA trong nghiên cứu hiện nay 454

Trang 18

Chương 1: R với tư cách một công cụ nghiên cứu kinh tế lượng

Chương này chúng ta sẽ tìm hiểu về R với tư cách là một phần mềm tính toán thống kê – kinh tế lượng

kiêm ngôn ngữ lập trình cũng như cách cài đặt R và một số Packages (gói) cần thiết cho nghiên cứu

thống kê – kinh tế lượng

1.1 Tổng quan về R

Động lực ra đời của R khá đơn giản Vào khoảng năm 1993 Ross Ihaka và Robert Gentleman ở

University of Auckland (New Zealand) nhận thấy rằng các phần mềm thống kê thương mại sử dụng

cho các tính toán thống kê vào thời điểm ấy là còn đắt đỏ và quan trọng hơn là không phù hợp và chưa

linh hoạt cho cả mục đích giảng dạy thống kê cũng như một số tình huống công việc Hai ông đã quyết

định lựa chọn ngôn ngữ S được phát triển bởi Bell Laboratories với nỗ lực viết một phần mềm thống

kê mới Lí do lựa chọn S có lẽ là do sự thành công của S-PLUS – một phần mềm thống kê cũng dựa

trên ngôn ngữ S được phát triển những năm 80 và đến thời điểm đó đã được sử dụng phổ biến Tuy

nhiên người nhìn thấy tiềm năng và sức mạnh của R nếu như mã nguồn (R code) của nó được công

khai với tư cách là một phần mềm miễn phí chính là Martin Maechler Được thuyết phục bởi Maechler,

Ross Ihaka và Robert Gentleman đã quyết định rằng R là miễn phí cho tất cả người sử dụng vào năm

1995 Kể từ thời điểm đó, R được đón nhận và ngày càng trở nên mạnh mẽ vì nó được phát triển bởi

một cộng đồng rộng lớn những chuyên gia về phân tích dữ liệu mà trước tiên là các nhà thống kê và

kinh tế lượng Đến thời điểm hiện tại thì R đã là một công cụ phân tích dữ liệu đa năng không chỉ sử

dụng cho thống kê mà còn là công cụ của Data Mining, Machine Learning, và Big Data Với tư cách là

một công cụ cho nghiên cứu thống kê – kinh tế lượng, R ngày càng trở nên phổ biến và được giảng

dạy ở hầu hết các trường đại học lớn Princeton, Yale, University of California at Berkeley, University

of California at Los Angeles, Stanford, Havard, MIT ở Hoa Kì và Cambridge ở Anh

Khoảng năm 2004, TS Nguyễn Văn Tuấn có lẽ là người Việt Nam đầu tiên viết về R khi giới thiệu tập

tài liệu về R (hồi đó là hơn 100 trang) qua blog của mình Hiện tài liệu này đã trở thành một cuốn sách

dày hơn 500 trang được in bởi nhà xuất bản thành phố Hồ Chính Minh (cuối năm 2015) Tuy nhiên,

tác giả là một nhà nghiên cứu Y Học nên cuốn sách này là thuộc Biostatistics (thống kê Y – Sinh) nên

có thể chưa phù hợp lắm nhu cầu của người học và nghiên cứu các vấn đề kinh tế

Với mục đích nghiên cứu thống kê – kinh tế lượng, 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 kê thương mại như Eviews, SPSS – AMOS, STATA, SAS có thể làm Và trong nhiều

tình huống còn làm tốt hơn Chẳng hạn, nếu phân tích dữ liệu mảng thì Eviews có khả năng hạn chế

và kém hơn so với Stata Nhưng nếu là nghiên cứu dùng đến thống kê đa biến, thống kê nhiều chiều

như phân tích nhân tố khám phá EFA, CFA, phân tích đường dẫn (Path Analysis)… thì bạn có xu hướng

dùng SPSS – AMOS hay Stata vì nó phù hợp hơn Nhưng với R bạn chẳng cần lựa chọn gì cả Nó thực

hiện được tất cả các phân tích đó, kể các các phân tích phức tạp cho dữ liệu chéo, dữ liệu mảng, đến

dữ liệu chuỗi thời gian và dữ liệu tần số cao (High Frequency Data) vốn phổ biến trong nghiên cứu

tài chính

Trang 19

Ngoài ra, với tư cách là một ngôn ngữ lập trình hoàn thiện, R cho phép bạn xử lý những phân tích một

cách linh hoạt hoặc thiết kê những hàm, những chương trình cho phép bạn xử lí một vấn đề phân tích

cụ thể nào đó và có thể chia sẻ với người khác

Việc học và làm chủ được một công cụ phân tích số liệu mạnh như R cho thống kê – kinh tế lượng là

một công việc không hề khó Điều này tôi có thể khẳng định chắc chắn Thứ bạn cần là sự đều đặn

trong thực hành (thường không quá 1 tháng với mỗi ngày học 60 phút) Một khi đã thành thao R ở

một mức độ tối thiểu nào đó chắc chắn bạn chỉ muốn học thêm nhiều về R

1.2 Cài đặt R, Rstudio và các Packages cần thiết

Phần này giới thiệu cách thức cài đặt R, Rstudio cho Windown, Mac cũng như một số khía cạnh liên

quan khác

1.2.1 Cài đặt R cho cho Windows

Để sử dụng R cho các máy dùng hệ điều hành Windows, trước hết các bạn cần cài đặt nó Tôi kiến

nghị rằng các bạn nên cài đặt phiên bản mới nhất R 3.3.2 (biệt danh của nó là Sincere Pumpkin Patch)

từ địa chỉ sau:

https://cran.r-project.org/bin/windows/base/R-3.3.2-win.exe

Sau khi cài đặt (cả cài và download chưa đến 10 phút), R có giao diện như sau (trích một phần):

Nếu dùng Mac bạn cần cài đặt R cho phiên bản Mac ở mục Download R for (Mac) OS X tại:

https://cran.r-project.org/

Đến đây chúng ta có thể sử dụng trực tiếp R Chẳng hạn chúng ta thực hiện phép tính 2+2 rồi enter

kết quả là (trích một phần):

Trang 20

Tuy nhiên cách thực thực hiện các phân tích, tính toán trực tiếp trong R như trên là không khuyến

khích Thay vì sử dụng R trực tiếp chúng ta sẽ sử dụng R thông qua Rstudio – một giao diện thân thiện

và có nhiều hỗ trợ hơn Chúng ta tìm hiểu vấn đề này ở mục ngay sau đây

1.2.2 Cài đặt Rstudio

Nếu bạn nào từng sử dụng các phần mềm thống kê có môi trường làm việc dạng giao diện cửa sổ

(SPSS là một điển hình) thì khi làm việc với R bạn sẽ cảm thấy khá khó chịu Thay vì di chuyển và kích

chuột bạn cần phải nhớ các dòng lệnh khi làm việc với R Chưa hết, nếu bạn gõ sai R cũng không báo

cho bạn biết Rstudio được ra đời với nhiều mục đích trợ giúp (hay chí ít là làm cho R “gần hơn” với

giao diện cửa sổ - vốn rất dễ sử dụng) khi làm việc với R Hiện nay Hadley Wickham là Chief Scientist

của Rstudio

Rstudio có hai phiên bản, trong đó có một phiên bản miễn phí dành cho các máy tính cá nhân Tuy

thuộc vào dòng máy (dùng Windows hay máy Mac) mà bạn cần cài Rstudio tại:

https://www.rstudio.com/products/rstudio/download/

Khi kích vào link trên bạn nhớ chọn cho mình phiên bản Rstudio phù hợp dưới đây:

Sau khi load và cài đặt (tầm 5 phút) khởi động Rstudio chúng ta có giao diện như sau:

Trang 21

Giao diện của nó được chia thành 4 phần và phần dưới cùng bên trái chính là nơi chúng ta sẽ gõ các

dòng lệnh Đến đây bạn có thể trải nghiệm những khả năng của Rstudio Lúc này các dòng lệnh sẽ là

màu xanh và kết quả hiện lên có chữ màu đen Hình ảnh (nếu có) sẽ được hiện ở khu vực phía dưới

bên phải của màn hình Chẳng hạn để tính 2+2 tại cửa sổ lệnh của Rstudio (bên dưới góc trái màn

hình) các bạn gõ 2+2 rồi enter

Tất nhiên các bạn gõ lệnh trong R và Rstudio thì kết quả luôn luôn như nhau Nhớ rằng Rstudio là thư

hỗ trợ chúng ta sử dụng R thuận tiện hơn Ngoài ra Rstudio còn có thể “biến” các phân tích của bạn

thành một bài trên web site Ví dụ:

http://rpubs.com/chidungkt/185954

Như đã nói, Rstudio là một kiểu môi trường, một kiểu giao diện giúp chúng ta thuận tiện hơn trong

việc sử dụng R Do vậy, tất cả các phân tích mà chúng ta thực hiện trong tài liệu này sẽ được thực hiện

trong Rstudio Tất nhiên nếu bạn muốn, bạn có thể sử dụng trực tiếp R Các bạn cũng cần chú ý rằng

trong tài liệu này, cụm từ “tại cửa sổ lệnh của R” thì hoàn toàn tương đương với cụm từ “tại cửa sổ

lệnh của Rstudio”

1.2.3 Cài đặt các packages

Ban đầu được phát triển như là một công cụ cho tính toán Thống Kê - Kinh Tế Lượng nhưng theo thời

gian R đã trở thành một công cụ phân tích dữ liệu đa năng Từ đào mỏ dữ liệu (Data Mining), dữ liệu

lớn (Big Data) trong nhiều lĩnh vực khác nhau (Marketing, Kinh Tế, Tài Chính, Thống kê Y - Sinh,

nghiên cứu Ngôn Ngữ Học) đến cả vẽ bản đồ Điều này ngụ ý rằng chúng ta không cần đến mọi chức

năng phân tích của nó Mỗi khi cài đặt R thì chỉ có một số hàm, chẳng hạn hàm mean() để tính trung

bình, là luôn thường trực để chúng ta sử dụng Tuy nhiên nếu chúng ta cần một phân tích đặc biệt

nào đó như phân tích dữ liệu bảng thì chúng ta cần phải cài đặt một hoặc một số gói (Packages) cần

thiết tương ứng

Cho đến thời điểm tài liệu này được viết đã có hơn 9000 gói được viết cho R bởi một cộng đồng rộng

lớn thuộc giới phân tích dữ liệu – bao gồm cả các nhà thống kê, kinh tế lượng và giới phân tích dữ liệu

chuyên nghiệp Chúng ta tạm hiểu một Package của R là một tập hợp các chương trình, hàm được viết

sẵn để xử lý một nhóm các phân tích hay một nhóm các bài toán nào đó Trong nhiều trường hợp, các

Packages này có thể bao gồm cả dữ liệu đi kèm Ví dụ gói AER – một gói trong số các gói mà chúng sử

dụng trong tập tài liệu này có chứa bộ dữ liệu CPS1988 – một bộ dữ liệu tương tự như VHLSS của Việt

Nam

Đối với nghiên cứu thống kê – kinh tế lượng, dưới đây là một số gói quan trọng mà chúng ta cần đến:

Tên gói Công dụng

xlsx Đọc data đuôi xlsx (file Excel) gdata Đọc data đuôi xls (file Excel) foreign Đọc data đuôi sav (file SPSS), dta (file Stata) hexView Đọc data đuôi wf1 và WF1(file Eviews)

Trang 22

AER Gói thực hiện nhiều phân tích kinh tế lượng cơ bản ggplot2 Vẽ Graph với chất lượng hình ảnh cao

Để cài đặt một gói nào đó, ví dụ gói gdata chẳng hạn, các bạn làm như sau Tại cửa sổ lệnh của R các

bạn gõ:

install.packages("gdata")

Tuy nhiên cách cài đặt như các bạn vừa thực hiện ở trên là không khuyến khích Nguyên nhân là một

số gói của R để sử dụng được còn phụ thuộc vào một hoặc một số gói khác Do vậy an toàn nhất là cài

đặt với lựa chọn dependencies = TRUE với hàm ý rằng chúng ta sẽ cài đặt luôn tất cả các gói phụ

thuộc:

install.packages("gdata", dependencies = TRUE)

Kể từ đây, khi cài đặt bất kì gói nào chúng ta đều nên có lựa chọn thêm là dependencies = TRUE dù

rằng có thể có gói nào đó không phụ thuộc vào bất kì gói nào Nghĩa là chúng ta đang thực hiện một

chiến thuật kiểu “Giết nhầm còn hơn bỏ sót”

Khi nó rằng “một số gói quan trọng” nghĩa là vẫn còn một số gói “râu ria” nữa Đương nhiên sau một

thời gian thực hành các bạn sẽ thành thạo việc xác định gói nào cần và tự biết cách tự cài đặt cũng

như sử dụng chúng Trước mắt, các bạn nên cài đặt tất cả các gói mà tôi liệt kê ở trên

Cách thức cài đặt một gói như trên chỉ áp dụng cho những gói có trên CRAN – tạm hiểu là một “kho

chứa” các gói của R và được lưu ở một máy chủ nào đó Có một số gói đang được phát triển hoặc đã

viết xong rồi nhưng tác giả chưa “công bố” chính thức trên CRAN mà lại lưu tại tài khoản của cá nhân

họ trên github (một loại tài khoản lưu trữ tài liệu và chương trình) thì cách cài đặt sẽ khác bằng lệnh

install_github() như ở mục 8.4 mà chúng ta sẽ nghiên cứu cách cài đặt sau

1.2.4 Yêu cầu một Package cụ thể trình diện

Yêu cầu một gói trình diện để sử dụng trong R quan trọng đến mức tôi phải để riêng một mục riêng

Nếu có một công việc nào đó bạn yêu cầu R thực hiện lệnh ggplot() nhưng bạn quên không gọi

package tương ứng để thực hiện công việc ấy thì R sẽ báo lỗi kiểu như sau:

Lí do là vì ggplot là một hàm (lệnh) thuộc gói ggplot2 – một gói mà bạn đã cài đặt nhưng bạn quên

yêu cầu gói này trình diện Để gọi gói này trình diện, bạn thực hiện theo câu lệnh sau:

library(ggplot2)

Các bạn thực hiện theo cú pháp này: tên gói bạn muốn gọi luôn để trong dấu ( ) của câu lệnh trên

Điều này áp dụng cho mọi gói trong R Do vậy khi yêu cầu một gói trình diện theo cú pháp trên mà

gặp thông báo kiểu như sau:

Error in library(XXX) : there is no package called ‘XXX’

Trang 23

Thì có nghĩa là bạn chưa cài đặt gói XXX này Lúc đó, quay trở lại mục 1.2.3 để xem lại cách cài đặt gói

có tên XXX

1.2.5 Sử dụng Rmarkdown để trao đổi, công bố kết quả trên Internet với Rpub

Rstudio hỗ trợ chúng ta công bố các phân tích trên mạng Internet Đây là một ví dụ của việc công bố

các phân tích trên mạng: http://rpubs.com/chidungkt/215596

Việc công bố trên mạng như trên sẽ tạo thuận lợi cho việc trao đổi học hỏi lẫn nhau Để sử dụng chức

năng này chúng ta sử dụng một ứng dụng của Rstudio thường gọi là Rmarkdown Rmarkdown là một

hỗ trợ rất mạnh của R Nó cho phép chúng ta xuất kết quả phân tích, code hoặc cả hai ra ít nhất 4 định

dạng: (1) website để công bố trên mạng Internet, (2) định dạng word, (3) định dạng pdf, và (4) mẫu

trình bày (template) của hầu hết các tạp chí có trên ScienceDirect

Để sử dụng Rstudio chúng ta cài đặt hai gói là rmarkdown và knitr:

install.packages("rmarkdown", dependencies = TRUE)

install.packages("knitr", dependencies = TRUE)

Đây là hai gói đặc biệt vì khi cần sử dụng nó không cần phải gõ lệnh library() như thường thấy Sau

khi cài đặt xong, để công bố code cũng như kết quả phân tích ta làm theo các bước sau:

Sau khi chọn R Markdown (khoanh vùng viền đỏ) chúng ta có giao diện kiểu như sau (chú ý rằng

giao diện của bạn có thể không hoàn toàn giống như vậy ở một số chi tiết phụ):

Trang 24

Đây là mẫu cơ bản Chúng ta có thể hiệu chỉnh mẫu theo ý muốn của chúng ta dựa trên mẫu cơ bản

này Chẳng hạn xóa hoàn toàn khu vực có chữ tiếng Anh và thay bằng câu “Rmarkdown là một ứng

dụng cho phép công bố phân tích trên mạng.” Hãy quan sát thật kĩ sự khác biệt giữa mẫu cơ bản và

hiệu chỉnh (do chúng ta xóa một số lệnh cũng như tùy chỉnh, gõ mới một số lệnh) dưới đây:

Trang 25

Ở đây khu vực A là khu vực bạn có thể chính sửa Các khu vực C và D gọi là code chunk – nơi chúng

ta gõ các lệnh của R Cụ thể ở code chunk C chúng ta đã gõ hai lệnh và data(iris) và summary(iris) còn

code chunk D chỉ có một lệnh là hist(iris$Sepal.Length)

Như vậy phân tích của bạn chỉ có 3 câu lệnh mà thôi Để xuất kết quả của ba câu lệnh này lên mạng

chúng ta kích vào Knit HTML ↦ Knit to HTML như dưới đây:

Đến bước này R sẽ hỏi lưu một cái gì đó Bạn cứ lưu đi Lưu và ấn OK được sản phẩm trung gian như

sau:

Đến đây bạn muốn công bố kết quả phân tích lên mạng Internet thì kích vào cửa sổ Publish ở góc trên

bên phải Rstudio có thể yêu cầu bạn đăng kí một tài khoản ở bước cuối cùng này Nếu bạn làm đúng

Trang 26

http://rpubs.com/chidungkt/228157

Thay vì kích Knit to HTML, nếu bạn muốn xuất ra file word thì kích vào Knit to Word Thực tế tài

liệu này được viết gần như hoàn toàn trong Rmarkdown

1.2.6 Cập nhật các phiên bản mới hơn của R

R thường cập nhật và cải tiến nhanh chóng (khoảng 1 quý hay nửa năm một lần) Ví dụ những phân

tích trong tài liệu này là sử dụng R 3.3.2 Muốn cài đặt những phiên bản mới hơn của R, trước hết

chúng ta cài đặt gói installr bằng lệnh install.packages(“installr”) Kế tiếp tại cửa sổ lệnh của

Rstudio thực hiện các lệnh sau để cài đặt các phiên bản mới nhất (nếu có) của R:

library(installr)

setInternet2(TRUE) # Câu lệnh này dành cho mục đích cài các biên bản thấp hơn

3.3.0 của R.Cao hơn thì không cần

installr::updateR() # Cập nhật (cài đặt) phiên bản mới nhất của R

Trước khi cài đặt (cập nhật) mới các bạn cũng nên xem R bạn đang sử dụng thuộc phiên bản gì bằng

cách gõ version tại cửa sổ của Rstudio Cá nhân tôi không hứng thú việc cập nhật mới vì nguyên nhân

sau: có nhiều gói vốn sử dụng được ở phiên bản cũ nhưng sẽ không tương thích với phiên bản mới và

do đó bạn cần cài đặt lại – một việc rất tốn thời gian còn hơn cả cài đặt R

1.3 Trợ giúp từ R

Mục này bạn nên biết để tự trả lời một số tình huống chưa hiểu, thậm chí là khó khăn nếu có khi sử

dụng R với sự trợ giúp của Google dịch (nếu bạn đọc tiếng Anh chưa thạo) Giả sử bạn đã cài đạt gói

lmtest và muốn biết sơ bộ các hàm, lệnh (và mọi thứ cơ bản khác) thuộc một gói này, trong R bạn gõ

đồng thời hai lệnh:

library(lmtest)

help(package = lmtest)

Lúc này chúng ta nhận được các mô tả về các hàm của gói này (trích) xuất hiện góc phải phía dưới

giao diện của Rstudio :

Các gói thường luôn đi kèm với một số bộ dữ liệu nào đó để minh họa các lệnh (hay các hàm của gói)

Để xác định một gói cụ thể, chẳng hạn lmtest, có đi kèm với những bộ số liệu nào các bạn gõ:

Trang 27

data(package = "lmtest")

Sau khi thực hiện câu lệnh này các bạn sẽ thấy góc trái phía trên của Rstudio báo cáo như sau (trích

một phần):

Với vốn tiếng Anh cơ bản các bạn có thể đoán bộ dữ liệu có tên bondyield (thứ 4 từ trên xuống) có

thể là lãi suất của trái phiếu Để biết nhiều thông tin hơn nữa về bộ dữ liệu này các bạn gõ:

help("bondyield", package = lmtest)

Lúc này góc phải phía dưới của Rstudio hiển thị các thông tin về bộ dữ liệu này như sau (trích một

phần):

Các bạn có thể thấy đây là một chuỗi thời gian đa biến (nhiều biến số) từ quý 1 năm 1961 tới quý 4

năm 1975 Mô tả chi tiết về các biến cũng đi kèm

Trở lại báo lỗi của R ở mục 1.2.3:

Bất kể khi nào bạn gặp thông báo như trên thì có nghĩa là hầu hết các bạn quên gọi một gói tương ứng

để thực hiện một lệnh (hàm) nào đó Nếu chúng ta biết rằng lệnh ggplot này thuộc gói ggplot2 thì đến

đây bạn có thể xử một số trở ngại điển hình (chỉ dành cho người học R giai đoạn đầu) thường gặp

bằng cách cài đặt gói ggplot2 như sau (nếu bạn chưa cài đặt):

library(ggplot2)

Trang 28

Khi sử dụng một lệnh nếu chúng ta chưa hiểu rõ lệnh đó có tác dụng gì và áp dụng ra sao, ví dụ với

lệnh tính trung bình cộng (lệnh mean()) chúng ta làm như sau:

?mean()

Lúc này chúng ta sẽ biết rất nhiều thông tin về hàm này kể cả cách sử dụng cũng như ví dụ:

Trong tình huống chúng ta không nhớ cụ thể một hàm nào đó và chỉ biết rằng, chẳng hạn, hàm đó có

cụm kí tự test Lúc này chúng ta có thể liệt kê tất cả các hàm có cụm kí tự này (trích một phần):

Lúc này bạn sẽ có thông báo kiểu như sau:

Lúc này bạn có thể: (1) xem mã nguồn của nó, (2) tải bản PDF về sử dụng lệnh này – cụ thể là hướng

dẫn vẽ biểu đồ Venn, hoặc (3) vào một số link trên Internet có bài viết về sử dụng lệnh này

Một tình huống khác bạn hay gặp (thường là các sách dày cả ngàn trang về R): bạn gõ chính xác tất

cả các câu lệnh nhưng R lại không cho ra kết quả như kì vọng Trong tình huống này bạn nên rà soát

xem có gói nào bạn chưa cài đặt và yêu cầu R sử dụng hay không

Trang 29

1.4 Xem danh sách các gói đã cài đặt cũng như số lượng các gói của R

Trong nhiều tình huống số lượng các gói mà chúng ta cài đặt là rất nhiều Lệnh dưới đây cho biết

những gói nào được chúng ta cài đặt (user-installed R packages) – tức là không tính các gói mặc định

được cài đặt kèm khi cài đặt R lần đầu Trong R chúng ta gõ các lệnh sau (với chú ý chữ viết sau dấu

# là lời giải thích cho lệnh được gõ vào) :

trang <- as.data.frame(installed.packages()[, c 1, 3 4)])

rownames(trang) <- NULL

trang <- trang[is.na(trang$Priority), 1 2, drop = FALSE]

dim(trang) # Lệnh này cho biết tại thời điểm tôi viết tài liệu này, có 261 gó

i được cài đặt

head(trang) # Liệt kê tên cùng phiên bản của 6 gói đầu tiên

Để biết hiện có bao nhiêu gói mà chúng ta có thể cài đặt trực tiếp từ CRAN:

trangyeu <- available.packages()

dim(trangyeu) # Cho biết số gói Tại thời điểm tôi viết tài liệu này là có 93

34 gói – một con số khổng lồ

head(trangyeu[, c 1, 2)]) Liệt kê tên cùng phiên bản của 6 gói đầu tiên

Như vậy hiện có 9334 gói mà chúng ta có thể cài đặt Tất nhiên KHÔNG MỘT AI thành thạo và cần

phải sử dụng đến 9334 gói này Lưu ý rằng con số này chưa dừng lại và sẽ tăng hàng ngày chứ không

phải hàng tuần Nên lúc bạn thực hiện các lệnh trên, con số thu được sẽ khác

1.5 Các quy ước khi sử R cho phân tích

Để thuận lợi trong việc sử dụng tài liệu này chúng ta có một vài quy ước với nhau như sau:

1 Để tất các file dữ liệu vào thư mục KTLR (xem kĩ mục 2.3 của chương 2 về cách tạo thư mục

này)

2 Luôn gõ lệnh setwd("D:/KTLR") sau khi khởi động R để chỉ thị cho R làm việc với thư mục

KTLR

3 Giải thích cho ý nghĩa dòng lệnh (nếu có) được đặt sau dấu # Dòng giải thích có thể được đặt

trước hoặc sau một dòng lệnh cụ thể Dưới đây là một ví dụ về dòng giải thích đặt sau dòng

lệnh:

Ở đây head(dung) là lệnh của R còn giải thích cho dòng lệnh này đặt sau dấu # và là “Xem 6

quan sát đầu tiên”

4 Các bạn có bản mềm của tài liệu này trong tay và điều này có nghĩa là về cơ bản, các bạn có

thể copy lệnh từ tài liệu rồi paste vào R Trong hầu hết các tình huống R sẽ cho ra kết quả như

mong muốn Tuy nhiên tôi khuyến cáo không làm thế vì ít nhất hai lí do: (1) một số tình huống,

thao tác copy – paste này không có tác dụng vì phạm một lỗi gọi là typos, và (2) các bạn chẳng

học sử dụng R một cách hiệu quả bằng cách copy – paste như vậy

5 Các câu lệnh (hay hàm), tên các gói nếu xuất hiện lần đầu sẽ được in đậm Ví dụ: lệnh library(),

Trang 30

1.6 Tổng kết chương mở đầu

Với những người chưa sử dụng R bao giờ thì chương mở đầu này vừa gây cho bạn tò mò, cảm giác bị

thử thách Đây là chương quan trọng vì nó tạo những cơ sở đầu tiên để bạn học cách sử dụng R một

cách chuyên nghiệp Chung quy lại, chương này có hai nội dung quan trọng

Thứ nhất là cài đặt R/Rstudio và các hỗ trợ cần thiết, đặc biệt là cài đặt các gói (packages) cũng như

chỉ thị cho R gọi một gói cụ thể nào đó để sử dụng bằng lệnh library()

Thứ hai là sử dụng Rpub để trao đổi cũng như công bố các phân tích lên Internet

Cuối cùng, những địa chỉ sau đây được sử dụng để trợ giúp các bạn bằng cách trả lời những thắc mắc

và lỗi (nếu có) của tài liệu:

Chương 2: Môi trường làm việc trong R

Đây là chương mở đầu và là chương tạo những nền tảng đầu tiên cơ bản cho bạn sử dụng R một cách

thành thạo không chỉ cho nghiên cứu kinh tế lượng nói riêng mà còn phân tích dữ liệu nói chung

Chương này giới thiệu những kĩ năng cốt lõi nhất của việc đọc dữ liệu từ các định dạng khác nhau

Trang 31

(Eviews, SPSS, Stata, Excel), nhập dữ liệu trực tiếp vào R cũng như các cấu trúc dữ liệu data frame và

data_frame Những kĩ năng biến đổi và quản lí số liệu (gọi chung là Data Manipulation) là trọng tâm

của chương này Là một chuơng khá dài và bạn nên đầu tư một cách thích đáng

2.1 Nhập dữ liệu trực tiếp vào R

Để phân tích dữ liệu thứ đầu tiên bạn cần làm là nhập dữ liệu vào R Bạn có thể nhập dữ liệu trực tiếp

vào R Để mình họa chúng ta xét bảng số liệu sau:

STT (Lương) X2 (TN khác) X3 (Chi tiêu) Y

Ở trên, dấu <- được gọi là dấu gán Trong Rstudio, để có dấu này gõ tổ hợp phím Alt và – (phím có

dấu trừ) Sau khi nhập bộ dữ liệu này các bạn có thể xem lại, chẳng hạn biến có tên luong trong R:

luong

## [1] 20 30 28 24 42 36 32 34 24 22 28 30

2.2 Hiệu chỉnh dữ liệu

Trong tình huống bạn nhập sai một quan sát nào đó, chẳng hạn với biến luong, quan sát cuối cùng

thực tế là 32 nhưng bạn nhập sai thành 30 Để hiệu chỉnh giá trị này các bạn làm như sau trong R:

Trang 32

luong <- edit(luong)

R sẽ ra cửa sổ sau:

Lúc này bạn có thể di chuyển con trỏ đến vị trí 30 cuối cùng và chỉnh thành 32

Một điểm cần chú ý là các dấu = như các bạn đã sử dụng ở trên có thể thay bằng dấu <- quen thuộc

Ví dụ, thay vì gõ luong = edit(luong) như trên các bạn có thể thay bằng luong <- edit(luong) Tuy

nhiên dùng đấu = có thể gây một số lỗi khi thực hiện một số lệnh và hàm nên dù tiết kiệm thời gian

thì chúng ta cũng không nên sử dụng kí hiệu này Trong tài liệu này các bạn sẽ thấy dấu = xuất hiện

khá nhiều Đây là một thói quen xấu của tôi và do vậy không khuyến khích các bạn học theo

2.3 Đọc dữ liệu từ file sẵn có ở các định dạng khác nhau, từ các nguồn bên ngoài vào R

R cũng cho phép bạn đọc dữ liệu ở một loạt các định dạng khác nhau từ dữ liệu dạng số đến dữ liệu

văn bản (text) hay thậm chí dữ liệu hình ảnh, từ Internet Với phạm vi hẹp là nghiên cứu kinh tế lượng,

chúng ta chỉ xem xét cách thực hành để R đọc dữ liệu từ một file sẵn có ở một số định dạng phổ biến

là Excel, Stata, Eviews, SPSS Mục này cũng trình bày cách thu thập dữ liệu kinh tế vĩ mô cung cấp bởi

World Bank và dữ liệu tài chính trực tiếp trên Internet

Tại mỗi thời điểm R mặc định chỉ làm việc với một thư mục và luôn mặc định là thư mục Documents

Chúng ta có thể kiểm tra lại như sau:

getwd()

## [1] "C:/Users/admin/Documents"

Ở đây lệnh getwd() chỉ ra đường dẫn của thư mục hiện thời (là Documents) mà R đang làm việc Để

thuận lợi trong quản lí và tạo sự thống nhất, chúng ta sẽ chỉ định cho R làm việc với thư mục có tên là

KTLR ở ổ D của máy tính và chúng ta sẽ để toàn bộ các số liệu được sử dụng trong tài liệu này ở thư

mục trên Có hai cách để tạo ra thư mục này Một là vào ổ D, dùng con chuột kích chuột phải rồi chọn

New ↦ Folder rồi đặt tên cho thư mục là KTLR Cách thứ hai (chúng ta sẽ sử dụng cách này trong tài

liệu này) là chúng ta tạo ra thư mục này từ R như sau:

dir.create("D:/KTLR")

Với lệnh này các bạn tạo một folder có tên KTLR ở ổ D Kế tiếp, bạn chỉ thị cho R làm việc chỉ với foder

này bằng lệnh:

setwd("D:/KTLR")

Trang 33

Chú ý rằng cách thức thiết lập đường dẫn có thể khác so với những gì được trình bày nếu bạn sử dụng

Mac

2.3.1 Đọc dữ liệu từ file Eviews

Giả sử chúng ta cần đọc dữ liệu có tên ch2vd5.WF1 với tên gọi mới là dung trong R:

setwd("D:/KTLR") # Đặt đường dẫn vì ch2vd5.WF1 ở folder có tên KTLR

library(hexView) # Gọi gói hexView chuyên dụng đọc file Eviews

dung <- readEViews("ch2vd5.WF1", as.data.frame = TRUE) # Đọc dữ liệu

R sẽ thông báo một số cảnh báo (warnings) nhưng chúng ta chưa cần quan tâm và tìm hiểu về các

cảnh báo này Sau khi thực hiện chính xác ba câu lệnh trên, bạn có thể xem qua số liệu này (10 quan

Đối với dữ liệu hàng chục ngàn (thậm chí hàng trăm ngàn) quan sát với hàng chục biến số thì bạn nên

sử dụng một trong bốn câu lệnh sau:

dim(dung) # Xem số lượng quan sát và số lượng biến số

## [1] 33 7

head(dung) # Xem 6 quan sát đầu tiên

## CT HHSIZE INTEREST STOCKDIVIDEND TN TNP TS

Trang 34

## CT HHSIZE INTEREST STOCKDIVIDEND TN TNP TS

str(dung) # Mô tả chi tiết kiểu biến số của data frame

## 'data.frame': 33 obs of 7 variables:

Với lệnh đầu tiên bạn thấy có 33 quan sát và 7 biến số trong bộ dữ liệu này Còn lệnh thứ hai liệt kê

chỉ một số quan sát đầu tiên Lệnh thứ ba miêu tả chi tiết hơn các biến số có trong bộ số liệu

Chúng ta cũng có thể xem chi tiết các biến số theo cách thức tương tự như của Excel:

View(dung)

Chú ý rằng câu lệnh đọc file dữ liệu vào R có thể được gõ dài dòng như sau:

dung <- readEViews("D:/KTLR/ch2vd5.WF1", as.data.frame = TRUE)

Tất nhiên cách gõ lệnh dài dòng như vậy là không cần thiết vì chúng ta đã chỉ định cho R làm việc với

thư mục KTLR rồi nên câu lệnh có thể gõ ngắn lại như bạn có thể thấy

Trang 35

Chú ý rằng không cần dùng lệnh setwd("D:/KTLR") nữa vì đã làm điều này ở mục 2.3.1 (mà nếu có

dùng lại cũng không sao) Các bạn có thể kiểm tra file dữ liệu này:

aoe[1 6, ] # Xem 6 quan sát đầu tiên

Với gói foreign, R cũng có thể đọc dữ liệu nếu nó lưu ở một website nào đó Chẳng hạn, bộ dữ liệu có

tên crime.dta của trung tâm tính toán thống kê IDRE thuộc UCLA (University of California, Los

Angeles) có thể được đọc vào R ở dạng data.frame với tên gọi greek:

greek <- read.dta("http://www.ats.ucla.edu/stat/data/crime.dta")

Lệnh read.dta() ở trên chỉ đọc được các file của Stata từ phiên bản 12 trở xuống Muốn đọc được các

file Stata phiên bản 13 hoặc 14 (khi tài liệu này được viết thì Stata mới dừng ở phiên bản 14) cần sử

dụng một gói khác là readstata13 (mặc định là bạn đã cài đặt gói này) Dưới đây là R code để đọc bộ

dữ liệu của Stata 13 có tên dung_stata13.dta với lệnh read.stata13():

Điểm khác biệt ở đây chính là tốc độ Gói have có tốc độ đọc dữ liệu nhanh và nó hỗ trợ các tính toán

hiệu tốc độ cao Điều này thực sự ý nghĩa nếu dữ liệu nguyên thủy cần đọc có kích thước lớn

2.3.3 Đọc dữ liệu từ SPSS

Để đọc dữ liệu của SPSS chúng ta có hai cách: (1) sử dụng gói foreign, hoặc (2) haven Ví dụ, cần đọc

một file của SPSS có tên chicken.sav vào R với tên gọi lần lượt là aoe1 và aoe2:

# cách 1 (dùng gói foreign)

aoe1 <- read.spss("chicken.sav", to.data.frame = TRUE)

# Cách 2 (dùng gói haven) Có hai hàm của gói này có thể đọc SPSS

aoe2 <- read_spss("chicken.sav")

aoe2 <- read_sav("chicken.sav")

Điểm khác biệt đáng chú ý ở đây là nếu dùng lệnh read.sps() thì các biến định tính (GROUP) được giữ

nguyên dạng kí tự (thuật ngữ của R gọi là factor):

Trang 36

Trong khi đó, nếu dùng gói haven thì biến có bản chất định tính được chuyển thành số Cụ thể 1 ứng

với Manic Psychosis còn 2 ứng với Sussex Lecturers:

Trang 37

## 19 2 10 14

## 20 2 10 17

Cần lưu ý sự khác biệt này khi thực hiện phân tích

2.3.4 Đọc dữ liệu của phần mềm SAS

Với file dữ liệu của phần mềm SAS chúng ta sử dụng, ví dụ, hàm read_sas() của gói này để đọc dữ

File dữ liệu của Excel thường có hai định dạng là xlsx và xls Để đọc các file dữ liệu dạng này vào R

chúng ta có thể sử dụng các hàm của một trong hai gói là readxl hoặc gdata Một số ví dụ:

library(gdata)

doc_file_xls <- read.xls("Table2_8.xls") # Đọc dữ liệu có tên Table2_8.xls

Riêng gói readxl có thể đọc cả định dạng xlsx lẫn xls:

library(readxl)

# Đọc xls

doc_xls <- read_excel("Table2_8.xls")

# Đọc xlsx

doc_xlsx <- read_excel("luong.xlsx", sheet = 1)

Lợi thế của sử dụng gói readxl là tốc độ đọc dữ liệu nhanh gấp 10 lần Các file xlsx có thể có nhiều

bảng (sheet) và do đó muốn chỉ thị R đọc chính xác sheet nào thì cần chỉ thị rõ Trong trường hợp

trên, sheet = 1 có nghĩa là sheet 1 thuộc file có tên luong.xlsx

2.3.6 Đọc dữ liệu định dạng txt

Đọc dữ liệu từ file có đuôi txt vốn là một chức năng ban đầu của R khi nó được xây dựng nên chúng

ta không cần cài đặt gói nào cả Giả sử ta có dữ liệu tên là luong.txt ở màn hình rồi thì chỉ thị cho R

đọc file này và gán nó với cái tên mới persian bằng câu lệnh:

Trang 38

2.3.7 Đọc dữ liệu định dạng csv

Với file dữ liệu có đuôi csv có tên scholarly_impact_2012.4.9.csv chúng ta có thể yêu cầu R đọc file

này với tên mới là hello (dữ liệu này sẽ được sử dụng lần nữa ở chương 3):

hello <- read.csv("scholarly_impact_2012.4.9.csv", header = TRUE)

Nếu file đuôi csv có kích thước lớn, sử dụng lệnh read_csv() của gói readr có thể tăng tốc độ đọc dữ

liệu lên chừng 10 lần:

library(readr)

hello <- read_csv("scholarly_impact_2012.4.9.csv")

Chú ý rằng nếu sử dụng lệnh read_csv thì ta không cần sử dụng lựa chọn header=TRUE Với các dữ

liệu có kích thước rất lớn chúng ta nên sử dụng lệnh fread() như được trình bày ở mục 2.3.11

2.3.8 Đọc nhiều file dữ liệu cùng một lúc

Trong nhiều tình huống chúng ta cần đọc nhiều file dữ liệu cùng một lúc, chẳng hạn, chừng 360 file

dữ liệu tài chính của 360 công ti niêm yết trên sàn HOSE Rõ ràng chỉ thị cho R đọc từng file là một

cách làm nhàm chán Với mục đích minh họa, giả sử cần đọc dữ liệu tài chính của hai mã AAA và AAM

vào R (là các file csv), trước hết lấy dữ liệu này tại địa chỉ http://www.cophieu68.vn/export.php Khi

kích vào địa chỉ trên chúng ta có:

Download hai file dữ liệu về AAA và AAM và để chúng vào một folder có tên cophieu chứa trong folder

KTLR mà chúng ta đã biết Dưới đây là R code để đọc hai file dữ liệu tài chính về AAA và AAM đồng

thời:

path <- dir("D:/KTLR/cophieu", full.names = TRUE) # Đặt đường dẫn

path # Xem chi tiết đường dẫn

## [1] "D:/KTLR/cophieu/excel_aaa.csv" "D:/KTLR/cophieu/excel_aam.csv"

data <- lapply(path, read.csv) # Đọc tất cả dữ liệu cùng lúc

str(data) # Xem dữ liệu được đọc thuộc loại gì

## List of 2

## $ :'data.frame': 1569 obs of 14 variables:

## $ X.Ticker : Factor w/ 1 level "AAA": 1 1 1 1 1 1 1 1 1 1

Trang 39

Ở đây có một điểm cần chú ý là lúc này data không phải data frame quen thuộc mà nó là một list (thể

hiện bằng dòng chữ List of 2 ) chứa cả hai data frame Data frame thứ nhất ứng với AAA còn data

frame thứ hai ứng với AAM Nếu cần phân tích riêng cho từng mã cổ phiếu có thể tách các data frame

này ra như sau:

aaa <- data[[1]] # Data frame này ứng với mã AAA

aam <- data[[2]] # Data frame này ứng với mã AAB

Đương nhiên hai data frame này có biến số trùng nhau (hiển thị một phần):

Nếu muốn hợp nhất hai data frame ứng với hai cổ phiếu ở trên thành một data frame duy nhất với

tên là love3 nhưng đồng thời chỉ chọn ra các biến là mã cổ phiếu, giá mở cửa và giá cao nhất:

love <- lapply(data, function(df) df[,c "X.Ticker.", "X.Open.", "X.High.")])

love3 <- do.call("rbind", love)

dim(love3)

## [1] 3265 3

Có 3265 quan sát ở love3 và chúng chính là tổng của 1569 và 1696 – số lượng các quan sát ứng với

mã AAA và AAM tính đến thời điểm tài liệu này được viết:

table(love3$X.Ticker.)

##

## AAA AAM

## 1569 1696

Tên biến nên được đổi lại cho dễ hiểu với người đọc phổ thông như sau:

names(love3) <- ("Ma_CK", "Gia_mocua", "Gia_caonhat")

Trang 40

Có thể áp dụng cách thức tương tự cho việc đọc nhiều file dữ liệu cùng một lúc thuộc các đinh dạng

khác Ví dụ, nếu chúng ta có 1000 file Stata 13 và tất cả có đuôi là dta thì trước hết chúng ta cần gọi

gói readsata13 bằng lệnh library(readstata13) đồng thời thay read.csv bằng read.dta13 ở câu lệnh

data <- lapply(path, read.csv)

Trong trường hợp chúng ta muốn lấy tất cả các cột biến thì làm như sau:

love4 <- do.call("rbind", data)

dim(love4)

## [1] 3265 3

Có thể thực hiện việc đổi tên cho cột biến tương tự như trên cho data frame có tên love4 hoặc theo

một số cách khác được trình bày ở mục 2.4 hoặc 2.4

2.3.9 Đọc dữ liệu được cung cấp bởi World Bank với gói WDI

R có một lợi thế nữa là nó có thể trực tiếp thu thập dữ liệu được cung cấp bởi nhiều tổ chức, các cơ

quan thống kê hay các tổ chức chuyên cung cấp số liệu từ Internet Mục này chỉ giới thiệu một trong

số các khả năng đó của R là thu thập dữ liệu kinh tế - xã hội từ ngân hàng thế giới WB (World Bank)

2.3.9.1 Giới thiệu về các số liệu được cung cấp bởi WB

Trong nhiều nghiên cứu , nhất là các nghiên cứu Vĩ Mô thì việc lấy được các dữ liệu vĩ mô về nền kinh

tế là rất quan trọng Một trong các nguồn tin cậy mà chúng ta có thể khai thác là bộ gồm 7145 chuỗi

số liệu theo thời gian – thường được gọi là bộ Chỉ Số Phát Triển Thế Giới WDI (viết tắt của cụm từ

World Development Indicator) - được Ngân Hàng Thế Giới (WB) cung cấp cho 200 quốc gia và vùng

lãnh thổ Các chuỗi dữ liệu này được phân thành 20 nhóm (gọi là Topics) như sau:

(Nguồn: http://datacatalog.worldbank.org )

Sở dĩ có 20 nhóm dữ liệu này nhưng lại có tới 16000 chuỗi dữ liệu khác nhau là bởi vì mỗi một nhóm

này lại được phân thành các nhóm nhỏ hơn (gọi là SubTopic) Ví dụ, chúng ta xét 7 chuỗi dầu tiên:

(Nguồn: http://data.worldbank.org/sites/default/files/WDI_April2013_CETS.xls )

Ngày đăng: 25/04/2018, 16:28

TỪ KHÓA LIÊN QUAN

w