Cách tạo biến giả trong rstudio
Thế giới của kinh tế, kinh doanh và quản trị là một nơi hỗn loạn và phức tạp, với nhiều ý tưởng xuất sắc và nhiều vấn đề cần được trả lời như:
Kinh tế lượng sẽ giúp ta giải quyết những câu hỏi như vậy với những câu trả lời định lượng đầy sức thuyết phục. Nó mở ra một cánh cửa mới cho thế giới vốn dĩ đã phức tạp của chúng ta, cho chúng ta một góc nhìn về những mối quan hệ mà con người, doanh nghiệp, chính phủ dựa vào đó mà ra quyết định. Kinh tế lượng cơ bản được thiết kế như một khoá học đầu tiên và cơ bản nhất về chủ đề phân tích định lượng trong kinh tế. Mặc dù nói là kinh tế lượng, nhưng người đọc có thể hiểu các vấn đề kinh tế lượng không chỉ xoay quanh về kinh tế mà còn có thể áp dụng cho mọi ngành nghề khác như y học, dược học, kỹ thuật, xây dựng, Khoá học giới thiệu nhiều ứng dụng thực tiễn thú vị và sẽ là động lực để học sinh, sinh viên khám phá thế giới mà chúng ta đang sống, đồng thời cũng nhận ra những lý thuyết mà mọi người chê là khô khan, thiếu tính ứng dụng lại sinh ra từ chính những câu hỏi hằng ngày đơn giản như vậy. Lý thuyết và thực tiễn có mối quan hệ tương hổ lẫn nhau. Lý thuyết sinh ra từ thực tiễn và thực tiễn không những là nơi kiểm định lý thuyết mà còn là nơi để con người, doanh nghiệp, chính phủ dựa vào lý thuyết mà cải thiện cuộc sống của chính chúng ta. Các mô hình kinh tế lượng là một phiên bản đơn giản hoá của thực tiễn mà chúng ta đang sống. Khoá học này bao phủ toàn bộ kiến thức cơ bản cho các loại dữ liệu thông dụng trong thực tế: từ dữ liệu rời rạc hướng đối tượng cho đến chuỗi thời gian và dữ liệu bảng. Các dữ liệu được sử dụng trong khoá học toàn bộ đều là dữ liệu thực tế, và do đó người học có thể tiếp cận được kiến thức một cách gần gũi nhất. Người học còn được tiếp cận một phương pháp học tương tác khiến cho kiến thức được tích luỹ một cách nhanh nhất và lâu nhất. Ngoài hệ thống hoá kiến thức từ cơ bản đến nâng cao, cộng với sự hỗ trợ từ chính Datacamp, người học có thể làm theo các ví dụ trong khoá học bằng chính phần mềm R mà không cần cài đặt phần mềm về máy, từ đó không làm ngắt quãng dòng suy nghĩ cũng như giúp học viên tập trung đưa ra nhận định về vấn đề cụ thể. Suy cho cùng R hay Eviews cũng chỉ là các công cụ. Khoá học dùng R để làm tăng learning rate của người học, điều quan trọng nhất (và tác giả khoá học cũng khuyến khích người học nên nằm lòng điều này) vẫn là ta xử lý vấn đề gì và xử lý nó như thế nào? Do đó, ngoài bài tập cuối mỗi chương, khoá học còn cung cấp các bài toán thực tiễn nhằm vận dụng ở mức cơ bản những kiến thức đã được học. Khoá học này không phải là một khoá kinh tế lượng thuần tuý, hay giới thiệu về phần mềm R, mà ở đâu đó giữa hai thái cực này. Nhằm cung cấp học viên một công cụ e-learning mạnh mẽ, khoá học đan xen kiến thức cốt lõi lý thuyết và kỹ năng thực nghiệm trong kinh tế lượng bậc Cử nhân. Tôi không tập trung chứng minh hay dẫn dắt vì sao lại có định lý, định đề, công thức Toán học. Mà mục tiêu của tôi là cho phép sinh viên không chỉ học cách làm lại kết quả nghiên cứu với R (tôi gọi đây là một cách học reproducible studying) mà còn tăng cường khả năng sử dụng các kỹ năng mới có được trong các ứng dụng thực nghiệm khác. Để làm được như vậy, mỗi chương chứa các bài tập lập trình R tương tác. Các bài tập này được sử dụng như phần bổ sung cho các đoạn mã hiển thị cách các kỹ thuật có thể thực hiện trong R. Các bạn có thể tập làm quen với một bài tập nhỏ dưới đây. eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIGNyZWF0ZSBhIHZhcmlhYmxlIGEsIGVxdWFsIHRvIDVcblxuIyBwcmludCBvdXQgYVxuXG4jIGNoZWNrIHRoZSBudW1iZXIgb2YgUiBwYWNrYWdlcyBhdmFpbGFibGUgb24gQ1JBTiJ9 Và dưới đây là đáp án. # create a variable `a`, equal to 5
a <- 5
# print out `a`
print(a) ## [1] 5# check the number of R packages available on CRAN
nrow(available.packages(repos = "http://cran.us.r-project.org")) ## [1] 14265Cá nhân tôi trải nghiệm quãng đường sinh viên của mình, bộ môn Kinh tế lượng thật khó nuốt bởi vì những công thức mông lung và không rõ tại sao lại có được công thức này, thực hiện bài toán kinh tế lượng bằng Eviews như một công cụ tính toán nhanh. Môn học đã biến tôi thành một con robot bởi lẽ toàn bộ kiến thức cũng như kỹ năng Kinh tế lượng như một làn gió bất tận và tôi buộc phải chấp nhận nó như một sự thật hiển nhiên như thể Mặt trời luôn mọc ở hướng Đông lặn ở hướng Tây theo quan niệm cha ông. Theo tôi đó không phải là học. Tôi tin rằng, học tập là một quá trình tìm tòi sáng tạo, liên tục trả lời các câu hỏi tại sao, áp dụng thế nào trong thực tiễn. Và tôi càng tin chắc rằng đại bộ phận sinh viên Việt Nam cũng đã và đang trải qua cảm giác giống như tôi: luôn đau đáu trong lòng một câu hỏi: tại sao mình phải học môn này? Sau khi học xong bộ môn này trên trường, tôi quyết định xem thế giới bên ngoài học Kinh tế lượng như thế nào. Tôi đã phát hiện một điều, họ học rất bài bản. Bài bản từ hệ thống kiến thức, đi từng bước từng bước nhỏ nhất để đến khi học Kinh tế lượng, họ không vấp nhiều khó khăn để hiểu các công thức toán học. Mấu chốt ở chỗ, họ được đào tạo (hoặc tự mình đào tạo) một kỹ năng rất quan trọng mà sinh viên Việt Nam không có: xâu chuỗi các môn học thành một hệ thống chứ không để các môn học đi qua biến thành những kỷ niệm rời rạc của tuổi đời sinh viên. Lâu dần họ hình thành một tư duy suy nghĩ thực thụ, và điều này ảnh hưởng đến tác phong làm việc của họ. Sinh viên nước ngoài đủ công cụ và kiến thức tích luỹ để học tiếp Kinh tế lượng. Tôi cũng vậy, nhưng khi giải quyết bài toán Kinh tế lượng, tôi thường làm y đúc những gì được dạy trong sách, hay trên trường, và nó đã bào mòn tư duy của tôi. Và tôi quyết định học với họ, thay vì học với thói quen của chính mình. Trong nhiều năm, ngôn ngữ lập trình thống kê R đã trở thành một phần không thể thiếu đối với chương trình đào tạo các lớp Kinh tế lượng tại nhiều trường đại học nổi tiếng trên thế giới, có thể kể đến các đại học top đầu thế giới như Đại học Michigan, Đại học Harvard, Đại học Stanford, Đại học Johns Hopkins, Tại sao họ không dại Eviews, mà dạy R? Lại còn ngôn ngữ lập trình, phải học lập trình thật ư? Chuyên ngành của mình là Tài chính cơ mà? Càng tìm hiểu để trả lời những câu hỏi ban đầu này của mình, tôi càng nhận ra bản thân nhỏ bé đến nhường nào khi đứng trước một người bạn trạc tuổi mình cùng chuyên ngành nhưng lại xuất sắc cho tôi nhiều câu trả lời chân thành. Người ta sử dụng R vì ít nhất bốn lý do sau:
Như đã đề cập trước đây, cuốn sách này không nhằm mục đích giới thiệu về R mà là một hướng dẫn về cách sử dụng các chức năng của nó cho các ứng dụng thường gặp trong kinh tế lượng đại học. Tuy nhiên, những người có kiến thức cơ bản về lập trình R sẽ cảm thấy thoải mái hơn khi bắt đầu liền với Chương tiếp theo. Tuy nhiên, phần này dành cho những người chưa từng làm việc với R hoặc RStudio trước đây. Nếu bạn ít nhất biết cách tạo đối tượng và gọi hàm, bạn có thể bỏ qua phần này. Nếu bạn muốn làm mới các kỹ năng của mình hoặc cảm nhận về cách làm việc với RStudio, hãy đọc tiếp. Trước hết hãy khởi động RStudio và mở tập lệnh R mới bằng cách chọn File, New File, R Script. Trong khung soạn thảo, gõ ## [1] 2và nhấp vào nút có nhãn Run ở góc trên cùng bên phải của trình chỉnh sửa. Bằng cách đó, dòng mã của bạn được gửi đến bàn điều khiển và kết quả của thao tác này sẽ được hiển thị ngay bên dưới nó. Như bạn có thể thấy, R hoạt động giống như một máy tính. Bạn có thể thực hiện tất cả các phép tính số học bằng cách sử dụng toán tử tương ứng (+, -, *, / hoặc ^). Nếu bạn không chắc chắn toán tử cuối cùng làm gì, hãy thử và kiểm tra kết quả. R tất nhiên là làm được nhiều hơn thế. Chúng ta có thể làm việc với các biến hoặc, nói chung hơn, các đối tượng. Các đối tượng được xác định bằng cách sử dụng toán tử gán <-. Để tạo một biến có tên x chứa giá trị 10 gõ x <- 10 và nhấp vào nút Run. Biến mới sẽ xuất hiện trong khung môi trường ở trên cùng bên phải. Tuy nhiên, bảng điều khiển không hiển thị bất kỳ kết quả nào, bởi vì dòng mã này không chứa bất kỳ đoạn mã nào tạo ra được kết quả. Khi bạn gõ x trong bàn điều khiển và nhấn Run, bạn yêu cầu R hiển thị cho bạn giá trị của x và giá trị tương ứng sẽ được in trong bàn điều khiển. x là một số vô hướng, một vectơ có độ dài là \(1\). Bạn có thể dễ dàng tạo ra các vectơ dài hơn bằng cách sử dụng hàm c() (c trong concatenate hoặc combine). Để tạo một vectơ y chứa các số \(1\) đến \(5\) và hiển thị nó, làm như sau. ## [1] 1 2 3 4 5Ta đã thấy hàm c() có thể được sử dụng để kết hợp các đối tượng. Nói chung, tất cả các lệnh gọi đều trông giống nhau: một tên hàm luôn được theo sau bởi dấu ngoặc tròn. Đôi khi, dấu ngoặc đơn bao gồm các đối số (arguments). Sau đây là hai ví dụ đơn giản. # generate the vector `z`
z <- seq(from = 1, to = 5, by = 1)
# compute the mean of the enries in `z`
mean(x = z) ## [1] 3Trong dòng đầu tiên, tôi sử dụng một hàm gọi là seq() để tạo ra vectơ chính xác giống như ta đã làm trong phần trước, gọi nó là z. Hàm này đảm nhận các đối số from, to và by. Hàm mean() tính giá trị trung bình số học của đối số x. Vì chúng ta truyền vectơ z làm đối số x, kết quả là \(3\)! Nếu bạn không chắc chắn đối số mà hàm mong đợi, bạn có thể tham khảo tài liệu hướng dẫn. Giả sử tôi không chắc chắn làm thế nào biết được các đối số cần thiết cho seq(). Tôi sau đó gõ ?seq trong giao diện điều khiển. Bằng cách nhấn trả lại trang tài liệu cho chức năng đó bật lên trong khung bên phải phía dưới của RStudio. Trong đó, phần Đối số chứa thông tin chúng tôi tìm kiếm. Ở dưới cùng của hầu hết mọi trang trợ giúp bạn tìm thấy các ví dụ về cách sử dụng các chức năng tương ứng. Điều này rất hữu ích cho người mới bắt đầu và chúng tôi khuyên bạn nên để ý những người đó. Tất nhiên, tất cả các lệnh được trình bày ở trên cũng hoạt động trong các widget tương tác trong suốt khoá học. Bạn có thể thử chúng dưới đây. eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFRoaXMgaXMgYSBjb2RlIHBsYXlncm91bmQuIFlvdSBtYXkgdXNlIGl0IHRvIHBsYXkgYXJvdW5kIHdpdGggdGhlIGV4YW1wbGVzIHByZXNlbnRlZCB0aHJvdWdob3V0IHRoZSBjaGFwdGVyLiJ9 Khoá học bao gồm 3 phần. Ở phần 1, sinh viên sẽ được ôn tập lại các kiến thức cần thiết trước khi bắt đầu khoá học, bao gồm: lý thuyết xác suất (Chương 2), thống kê cơ bản (Chương 3), toán cao cấp cơ bản liên quan đến giải tích và đại số tuyến tính (Chương 4). Chú ý rằng nội dung phần 1 đóng vai trò là tiên quyết, chứ không bắt buộc trong khoá học này. Phần 2 bắt đầu giới thiệu sinh viên một thế giới kinh tế lượng cơ bản với hồi quy tuyến tính một biến (Chương 6), hồi quy đa biến (Chương 8), kiểm định và suy luận hồi quy (Chương 7 và 9). Phần 3 đi sâu hơn một chút về các chủ đề thực tế thường gặp trong Kinh tế lượng, bao gồm hồi quy phi tuyến (Chương 11), hồi quy dữ liệu bảng (Chương 12), hồi quy biến phụ thuộc nhị phân (Chương 13). Cuối mỗi chương này đều có bài tập vận dụng như một sự ôn tập kiến thức và kỹ năng lập trình. Mỗi bài tập đều có đáp án cụ thể. Mỗi phần sẽ có một bài kiểm tra tự đánh giá (Chương 5, 10, và 14), học viên có thể tự hoàn thành và xác định được mức độ kiến thức của bản thân. Hệ thống tự đánh giá như sau: trên 8 hạng A+, từ 7 đến 8 hạng A, từ 6 đến 7 hạng B, từ 5 đến 6 hạng C, dưới 5 không đạt (hạng D). Mỗi bài kiểm tra sẽ có hai phần: phần câu hỏi không dùng R và phần câu hỏi dùng R. Riêng phần câu hỏi dùng R tác giả không để sẵn dữ liệu nên câu trả lời sẽ không hiển thị trên khung lập trình của Datacamp, nhằm tập trung đánh giá khả năng lập trình thật sự, tránh học viên kiểm thử kết quả nhiều lần dẫn đến thiên lệch. Hơn nữa, các bài kiểm tra tự đánh giá sẽ không có đáp án nhằm tránh sinh viên các trường đại học tác giả đang dạy có thể gian lận trong bài kiểm tra. Học viên cần đáp án cụ thể, vui lòng liên hệ tác giả bằng cách để lại bình luận phía dưới bài kiểm tra với cú pháp: [Đáp án] Bài X Phần Y Email Z, trong đó X, Y, Z là các nội dung cần điền. Lời cuối cùng, tôi (tác giả) rất mong sự đóng góp của tất cả mọi người, nhằm hoàn thiện tốt khoá học hơn và sinh viên có thể tiếp cận được kiến thức tốt hơn. Hãy để lại bình luận (hoặc thả trạng thái cảm xúc nếu các bạn muốn) và share cho nhiều người biết đến nhé. Xin chân thành cảm ơn! |