1. Trang chủ
  2. » Kinh Tế - Quản Lý

Kinh tế lượng ứng dụng với r (version 15 07 2017)

456 479 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 456
Dung lượng 7,19 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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

(Phiên bản ngày 15/07/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 sắc (mỗi hãng hàng không một màu) thì bạn cũng thấy rõ ngay các thị trường chính của những

hàng không này Suy rộng ra là, với tư cách là một nhà nghiên cứu thị trường, các xu hướng xã hội,

Trang 4

hay buộc 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?

Tôi chỉ nói ngắn gọn thế này: 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

Trang 6

này 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 31

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

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

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 từ Matlab và SAS 37

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

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

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

2.3.12 Đọc dữ sẵn có thuộc một gói của R 54

Trang 10

2.4 Quản lý dữ liệu, đổi tên, hiệu chỉnh dữ liệu bằng các hàm của gói base 55

2.4.1 Tạo một data frame 56

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 57

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ố 59

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

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

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

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

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

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

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

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 63

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

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

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

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

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 68

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

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 69

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

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

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

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

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 73

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 74 2.5.14 Hợp nhất có điều kiện theo cột cho các bộ dữ liệu 76

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

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 81

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

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 86

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

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

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

Trang 11

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

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 98

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

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

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

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

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

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

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 105

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

3.2.2 Phân phối Student t 107

3.2.3 Phân phối F 109

3.2.4 Phân phối χ2 110

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

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

3.3.1.1 Vẽ Scatter Plot 111

3.3.1.2 Histogram 113

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

3.3.1.4 Boxplots 116

3.3.1.5 Biểu đồ cột 121

3.3.1.6 Pie Chart 123

3.3.1.7 Biểu đồ đường 125

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 126

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

3.3.2.1 Vẽ Scatter Plot 127

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

3.3.2.3 Vẽ Histogram 130

3.3.3.4 Boxplots 132

3.3.2.5 Biểu đồ cột 133

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

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

3.3.2.8 Biểu đồ đường 143

3.3.2.9 Pie Chart 145

Trang 12

3.3.3 Hình ảnh hóa dữ liệu (Data Visualiztion) nâng cao 146

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 146

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

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 148

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

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

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

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

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

3.5 Lưu các Graphs 161

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

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

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

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

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

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 177

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

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

4.2.3.2 Kiểm định Durbin - Watson 181

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

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

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

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

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

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

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

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

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 191

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 195

4.6.1 Phương pháp Bootstrap 196

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

4.6.2.1 Kiểm tra chéo LOOCV 202

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

Trang 13

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

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 206

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

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

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

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

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

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

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

5.4.2 Mô hình bán logarit 227

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

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

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

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

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

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

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

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

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 239

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

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 242

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

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 246

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

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

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 254

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ả 258

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

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

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 260

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

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

Trang 14

7.4 Hồi quy riêng lẻ cho từng nhóm 266

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

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ụ 271

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

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 273

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

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

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

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 284

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 290

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 293

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

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

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

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

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

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

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

9.2.2.1 Kiểm định Park 299

9.2.2.2 Kiểm định Glejser 302

9.2.2.3 Kiểm định Goldfeld - Quandt 303

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

9.2.2.5 Kiểm định White 307

9.2.2.6 Kiểm định Koenker - Basett 308

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

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

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

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

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

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

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

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

10.3.2 Kiểm định Wald 317

10.3.3 Kiểm định F 320

Trang 15

10.3.4 Kiểm định Ramsey RESET 320

10.3.5 Kiểm định Lagrange Multiplier 322

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

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

10.4.2 Các kiểm định 324

10.5 Dạng hàm sai 324

10.5.1 Kiểm định Koop 324

10.5.2 Ramsey Test 326

10.5.3 Davidson – MacKinnon Test 328

10.6 Lỗi đo lường 330

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 330

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

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 336

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 365

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

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

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

12.5 Một số phân tích hình ảnh – đồ thị cho dữ liệu bảng 367

Trang 16

12.6 Một số lưu ý về định dạng dữ liệu và công thức cho mô hình 369

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

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

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

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

12.7.4 Ước lượng FGLS 379

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

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

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

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

13.2.1 Mô hình Logistic 382

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

13.2.2.1 Kiểm định Hosmer-Lemeshow 394

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 395

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

13.4 Mô hình Probit 403

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

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

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 410

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 418

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

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

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 423

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

14.1 Mô hình Tobit 432

14.2 Hồi quy Poisson 434

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ố chỉ tiêu thống kê về các câu hỏi 438

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

Trang 17

15.3.1 Kiểm định KMO 439

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 Khu vực B không 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 (có thể cần một chút thời gian thử - sai ) thì bạn sẽ có sản phẩm tương tự như sau:

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ó

9334 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

Trang 30

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(), gói ggplot2 Các cụm từ, khái niệm quan trọng, tên các nghiên cứu được in đậm

và nghiêng

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:

Trang 31

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

(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

Trang 32

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:

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:

Trang 33

setwd("D:/KTLR")

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 từ Matlab và SAS

Cả hai gói foreign và haven có thể đọc dữ liệu của Matlab và SAS Tuy nhiên cách thức đọc các dữ

liệu Matlab và SAS không được trình bày ở đây Nguyên nhân là Matlab, SAS là những phần mềm

hiếm khi được sử dụng ở các trường đại học (ít nhất là ở khối kinh tế)

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

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

cần cài đặt hai gói có tên xlsx và gdata Một số máy tính khi cài đặt gói xlsx được nhưng khi gọi gói

này để sử dụng bằng lệnh library() thì sẽ nhận được báo lỗi như sau:

Nguyên nhân là bạn chưa cài đặt Java cho máy tính Trong tình huống này cần download và cài đặt

Java ở: https://www.java.com/en/download/manual.jsp

Sau khi hoàn tất việc cài đặt Java cũng như gói xlsx chúng ta có thể sử dụng lệnh read.xlsx() để đọc

dữ liệu Ví dụ, để đọc liệu tên là luong.xlsx:

library(xlsx)

choson <- read.xlsx("luong.xlsx", sheet = 1)

Ở đây cần chú ý số 1 ở câu lệnh read.xlsx() với hàm ý rằng R chỉ đọc sheet thứ nhất của file dữ liệu

gốc (chú ý rằng Excel có thể lưu nhiều bản ghi dữ liệu khác nhau ở cùng một file nhưng ở những

“lớp” – tức những sheet khác nhau)

Để đọc file dữ liệu có định dạng xls có tên Table2_8.xls vào R:

library(gdata)

doc_file_xls <- read.xls("Table2_8.xls")

Nếu các bạn không cài đặt thành công gói xlsx (hoặc Java) thì trong tình huống này có thể sử dụng

một giải pháp thay thế là dùng lệnh read_excel() của gói readxl Gói này có thể đọc cả định dạng

Trang 38

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:

persian <- read.table("luong.txt", header = TRUE, row.names = 1)

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"

Trang 39

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

Ở đâ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")

head(love3)

Trang 40

## Ma_CK Gia_mocua Gia_caonhat

## 1 AAA 29.6 29.8

## 2 AAA 29.7 30.0

## 3 AAA 29.3 29.7

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:

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

🧩 Sản phẩm bạn có thể quan tâm

w