Cụ thể: Ứng dụng R phân tích chuỗi thời gian nhận dạng mô hình ARIMA ước lượng được các hệ số của quá trình AR và MA, bậc sai phân, đồng thời đưa ra được dự báo cho các giá trị tương lai
Trang 1TRƯỜNG ĐẠI HỌC VINH -
Nguyễn thị sửu
Khai thác phần mềm R để xử lý số liệu chuỗi thời gian thông qua mô hình arima
Chuyờn ngành: Lí THUYẾT XÁC SUẤT VÀ THỐNG Kấ TOÁN
Mó số: 60.46.15
Người hướng dẫn khoa học: TS NGUYỄN TRUNG HềA
VINH 2010
Trang 2MỤC LỤC Trang
MỞ ĐẦU 1
CHƯƠNG 1 CÁC KIẾN THỨC CHUẨN BỊ4
1.1 ĐẠI CƯƠNG VỀ CHUỖI THỜI GIAN VÀ DỰ BÁO4
1.1.1 Khái niệm về chuỗi thời gian và quá trình ngẫu nhiên 4
1.1.2 Mục đích của việc phân tích chuỗi thời gian 5
1.2 QUÁ TRÌNH DỪNG VÀ PHÂN TÍCH HỆ SỐ TỰ TƯƠNG QUAN 7 1.2.1 Khái niệm về quá trình dừng 7
1.2.2 Hàm tự hiệp phương sai của một quá trình dừng………
……… … 8
1.2.3 Hệ số tương quan và tự tương quan mẫu 9
1.2.4 Hệ số tự tương quan riêng 10
1.3 QUÁ TRÌNH ARIMA 12 1.3.1 Toán tử lùi và toán tử tiến 12
1.3.2 Quá trình ồn trắng 13
1.3.3 Quá trình tự hồi quy cấp p 13
1.3.4 Quá trình trung bình trượt cấp q 15
1.3.5 Quá trình tự hồi quy trung bình trượt 15
1.3.6 Quá trình hợp nhất tự hồi quy trung bình trượt ARIMA………… ………
16 1.4 NHẬN DẠNG MÔ HÌNH CHUỖI THỜI GIAN ARIMA 17 1.5 KIỂM TRA TÍNH PHÙ HỢP CỦA MÔ HÌNH 18 1.6 KHÁI NIỆM DỰ BÁO CHUỖI THỜI GIAN DỪNG 19 CHƯƠNG 2 ỨNG DỤNG R TRONG XỬ LÝ MÔ HÌNH ARIMA 20 2.1 GIỚI THIỆU VÀ CÀI ĐẶT PHẦN MỀM R 20 2.1.1 Giới thiệu về R 20
Trang 32.1.2 Hướng dẫn cài đặt R 20
2.1.3 “Văn phạm” R 22
2.1.4 Cách đặt tên trong R 24
2.1.5 Hỗ trợ trong R 25
2.1.6 Môi trường vận hành R 28
2.1.7 Cách nhập dữ liệu vào R 28
2.2 CHỨC NĂNG XỬ LÝ SỐ LIỆU CHUỖI THỜI GIAN - NHẬN DẠNG MÔ HÌNH ARIMA VÀ DỰ BÁO CỦA R36 2.2.1 Tính hàm tự tương quan, hàm tự tương quan riêng phần của quá trình ARMA 36
2.2.2 Sử dụng hàm arima để ước lượng cho các chuỗi thời gian một chiều .42
2.2.3 Sử dụng hàm arima0 để ước lượng cho các chuỗi thời gian một chiều và dự báo về mô hình đã được ước lượng. ……… 50
2.2.4 Mô phỏng theo một mô hình ARIMA 57 2.3 VÍ DỤ ỨNG DỤNG 60
TÀI LIỆU THAM KHẢO 69
PHỤ LỤC 70
Trang 4MỞ ĐẦU
Việc dự đoán các xu thế phát triển của đối tượng đóng vai trò cực kì quantrọng trong việc hoạch định các chính sách kinh tế - xã hội Tuy nhiên, việcphân tích và xử lý số liệu để đưa ra được kết quả dự đoán đó không hề đơn giản
và tốn khá nhiều thời gian Vì thế việc ứng dụng công nghệ thông tin hỗ trợ choviệc phân tích thống kê là rất hữu hiệu Đáp ứng nhu cầu thực tiễn đó có rấtnhiều phần mềm hỗ trợ cho việc phân tích, xử lý số liệu, tính toán xác suất đã
ra đời như SAS, SPSS, Stata, Statistica, S-Plus, Eviews, Minitab Đây lànhững phần mềm được các công ty phần mềm phát triển và giới thiệu trên thịtrường trong khoảng ba thập niên qua và đã được các trường đại học, các trungtâm nghiên cứu công ty kỹ nghệ trên toàn thế giới sử dụng cho giảng dạy vànghiên cứu Nhưng vì chi phí để sử dụng cho các phần mềm này tương đối tốnkém, nên nhiều cá nhân ngay cả tập thể hay một số nước cũng không có khảnăng tài chính để sử dụng chúng một cách lâu dài Do đó, các nhà nghiên cứuthống kê trên thế giới đã hợp tác với nhau để phát triển một phần mềm mới, vớichủ trương mã nguồn mở, sao cho tất cả các thành viên trong ngành thống kêhọc và toán học trên thế giới có thể sử dụng một cách thống nhất và miễn phí.Năm 1996, trong một bài báo quan trọng về tính toán thống kê, hai nhàthống kê học Ross Ihaka và Robert Gentleman [lúc đó] thuộc Trường đại họcAuckland, New Zealand phát hoạ một ngôn ngữ mới cho phân tích thống kê mà
họ đặt tên là R Sáng kiến này được rất nhiều nhà thống kê học trên thế giới tán thành và tham gia vào việc phát triển R Tuy miễn phí, nhưng chức năng của R
hơn hẳn những phần mềm vừa kể trên Tất cả những phương pháp, mô hình mà
các phần mềm trên có thể làm được thì R cũng có thể làm được và R còn có lợi thế hơn tất cả các phần mềm trên là R có khả năng phân tích biểu đồ tuyệt vời.
Cho đến nay, qua chưa đầy 15 năm phát triển, càng ngày càng có nhiều nhàthống kê học, toán học, nghiên cứu trong mọi lĩnh vực đã chuyển sang sử dụng
R để phân tích dữ liệu khoa học Trên toàn cầu, đã có một mạng lưới hơn hàng
Trang 5triệu người sử dụng R, và con số này đang tăng rất nhanh Có thể nói trong
những năm sắp tới, vai trò của các phần mềm thống kê thương mại sẽ khôngcòn lớn như trong thời gian qua nữa
Vậy R là gì? Nói một cách ngắn gọn, R là một phần mềm sử dụng cho phân tích thống kê và vẽ biểu đồ Thật ra, về bản chất, R là ngôn ngữ máy tính
đa năng, có thể sử dụng cho nhiều mục tiêu khác nhau, từ tính toán đơn giản,toán học giải trí, tính toán ma trận, đến các phân tích thống kê phức tạp Vì là
một ngôn ngữ, cho nên người ta có thể sử dụng R để phát triển thành các phần
mềm chuyên môn cho một vấn đề tính toán cá biệt Vì thế, những ai làm nghiêncứu khoa học, nhất là ở các nước có nền kinh tế còn khó khăn như nước ta thì
việc ứng dụng R cho phân tích thống kê và vẽ đồ thị là rất hữu ích và thiết thực.
Phân tích chuỗi thời gian và dự báo là phương pháp phân tích và xử lý sốliệu của chuỗi quan sát ban đầu nhằm dự báo được các giá trị tương lai củachuỗi quan sát Trên cơ sở đó cùng với sự chỉ bảo định hướng của Thầy giáo
TS Nguyễn Trung Hòa tác giả đã chọn đề tài “Khai thác phần mềm R để xử lý
số liệu chuỗi thời gian thông qua mô hình ARIMA ” để nghiên cứu
Nhiệm vụ chính của chúng tôi là tìm hiểu về phần mềm R, khai thác ứng dụng nó vào phân tích và xử lí số liệu Cụ thể: Ứng dụng R phân tích chuỗi thời
gian nhận dạng mô hình ARIMA ước lượng được các hệ số của quá trình AR và
MA, bậc sai phân, đồng thời đưa ra được dự báo cho các giá trị tương lai
Trong luận văn chúng tôi chọn chuỗi số liệu giá vàng SJC thu thập trong
500 ngày bắt đầu từ ngày 10/02/2009 đến ngày 24/06/2010 để thực hành
Nội dung của luận văn bao gồm 2 chương:
Chương 1 Các kiến thức chuẩn bị
Trong chương này, chúng tôi trình bày về khái niệm chuỗi thời gian vàquá trình ngẫu nhiên, các công thức tính hàm tự hiệp hương sai; hàm tự tươngquan; hàm tự tương quan mẫu; hàm tự tương quan riêng mẫu, về toán tử lùi,
Trang 6toán tử tiến, về khái niệm các quá trình tuyến tính “tự hồi quy; trung bình trượt;
tự hồi quy trung bình trượt; hợp nhất tự hồi quy trung bình trượt”, nhận dạng
mô hình, dự báo
Chương 2 Ứng dụng R trong xử lí mô hình ARIMA
Đây là nội dung chính của luận văn, gồm 3 tiết Tiết 2.1 chúng tôi giới
thiệu về R và trình bày chi tiết cách cài đặt và nhập dữ liệu vào R Tiết 2.2 trình bày về cách ứng dụng R để tính ACF, PACF của một chuỗi thời gian, mô
phỏng theo một mô hình ARIMA, sử dụng hàm arima và arima0 để ướclượng chuỗi thời gian một chiều sau đó kiểm tra tính phù hợp của mô hình vànếu mô hình phù hợp thì dùng mô hình đó để dự báo giá trị tiếp theo của chuỗithời gian Tiết 2.3 sử dụng các kiến thức ở Tiết 2.2 thực hành với chuỗi số liệugiá vàng
Luận văn này được hoàn thành tại Đại học Vinh dưới sự hướng dẫn khoahọc của Thầy giáo TS Nguyễn Trung Hòa Tác giả xin bày tỏ lòng biết ơn chânthành và sâu sắc của mình đối với Thầy Người đã dành cho tác giả nhiều thờigian quý báu, sự quan tâm giúp đỡ, hướng dẫn tận tình cho tác giả hoàn thànhluận văn này Nhân dịp này tác giả cũng xin chân thành gửi lời cảm ơn tới Thầygiáo PGS.TS Nguyễn Văn Quảng, Thầy giáo PGS.TS Trần Xuân Sinh, Thầygiáo PGS.TS Phan Đức Thành cùng các Thầy giáo, Cô giáo trong khoa Toán,khoa Sau đại học đã tham gia giảng dạy giúp đỡ tác giả trong suốt quá trình họctập nâng cao trình độ kiến thức Cuối cùng tác giả xin cảm ơn gia đình và đồngnghiệp cùng tất cả bạn bè đã ủng hộ, động viên và tạo điều kiện tốt nhất cho tácgiả trong suốt quá trình học tập và nghiên cứu
Trang 7Mặc dù có nhiều cố gắng, song luận văn không thể tránh được những thiếusót, tác giả rất mong nhận được những ý kiến đóng góp quý báu từ các Thầygiáo, Cô giáo và các bạn để đề tài được hoàn thiện hơn.
Vinh, tháng 12 năm 2010
Tác giả Nguyễn Thị Sửu
Chương 1 CÁC KIẾN THỨC CHUẨN BỊ 1.1 Đại cương về chuỗi thời gian và dự báo
Trước khi đi vào chi tiết tìm hiểu về mô hình ARIMA, ta sẽ nhắc lại một số
khái niệm liên quan đến chuỗi thời gian và quá trình ngẫu nhiên Dù là ta đi vàochi tiết mô hình gì đi chăng nữa thì các khái niệm cơ bản này vẫn sẽ theo chúng
ta trong suốt quá trình nghiên cứu về chuỗi thời gian
1.1.1 Khái niệm về chuỗi thời gian và quá trình ngẫu nhiên
1.1.1.1 Định nghĩa Quá trình ngẫu nhiên X t( )là các biến ngẫu nhiên phụthuộc tham số t T (trong đó T và được giải thích như là thời gian) Đó là
hiện tượng mang tính thống kê phát triển theo thời gian, tuân theo những quyluật của lý thuyết xác suất
1.1.1.2 Định nghĩa Giả sử T là tập hợp tất cả các số nguyên thuộc một khoảng
nào đó a b, , a b ; X t T t là một dãy các đại lượng ngẫu
nhiên được sắp xếp theo thứ tự trên T Chuỗi thời gian là một dãy x t T t
(hữu hạn hoặc vô hạn) các giá trị của dãyX t
Nếu thời gian là một đoạn T a b; thì chuỗi thời gian được gọi là
liên tục Nếu thời gian là một tập hợp rời rạc T thì chuỗi thời gian được
gọi là rời rạc.
Trang 8Khái niệm chuỗi thời gian có quan hệ trực tiếp đến khái niệm quá trìnhngẫu nhiên và các chuỗi thời gian mà ta đang xét chính là thể hiện của một quátrình ngẫu nhiên
Có thể xem chuỗi thời gian là một dãy các điểm trong không gian vô hạnchiều các đại lượng ngẫu nhiên, trên đó đã xác định một độ đo xác suất Chính
vì thế có thể đưa hàng loạt các khái niệm của quá trình ngẫu nhiên vào chuỗithời gian một cách cụ thể hơn
Để phân biệt ta sẽ sử dụng thuật ngữ quá trình X t( )để chỉ một dãy các đại
lượng ngẫu nhiên mà một thể hiện của nó là chuỗi thời gian x Và cũng có thể t
hiểu rằng, một chuỗi thời gian là một dãy rời rạc các thể hiện của một quá trình,được chỉ số hóa bởi các số nguyên liên tiếp trong những khoảng thời gian cáchđều nhau
Nếu tập hợp các thời điểm quan sát là t t0, 0 h, ,t0 Nhthì chuỗi thờigian được kí hiệu là x x0, , ,1 x và N N 1 là độ dài của chuỗi
Nếu T thì chuỗi thời gian là dãy vô hạn về cả hai phía
Vì biến ngẫu nhiên thực là ánh xạ đo được từ không gian xác suất ,F,
)vào không gian đo được B() nên quá trìnhX t( )là hàm của cặp ( , )t đo đượctheo với mỗi t T
Ví dụ.Các báo cáo tài chính mà ta thấy hằng ngày trên báo chí, tivi hay Internet
về các chỉ số chứng khoán, tỷ giá tiền tệ, chỉ số tăng cường hay chỉ số tiêudùng…đều là những thể hiện rất thực tế của chuỗi thời gian
Trong giới hạn của luận văn này ta chỉ xét cho trường hợp T là tập các số nguyên và chúng ta sẽ sử dụng thuật ngữ chuỗi thời gian để đồng thời chỉ dữ liệu cũng như quá trình có dữ liệu đó là một thể hiện.
Trang 91.1.2 Mục đích của việc phân tích chuỗi thời gian
Mục đích của việc phân tích chuỗi thời gian là nghiên cứu các kỹ thuật để
tách mẫu hình cơ bản tiềm ẩn trong các số liệu đang nghiên cứu và sử dụng nónhư là cơ sở để dự báo cho tương lai
Các kỹ thuật thường dùng:
+) Kỹ thuật làm trơn số liệu phù hợp với kiểu dự báo ngắn hạn
+) Kỹ thuật dự báo Box-Jenkins dùng để dự báo chuỗi thời gian có độ phức tạp cao hơn, yêu cầu phải có nhiều số liệu Trên thực tế đòi hỏi ít nhất là 50
số liệu và thông thường tốt nhất là nên có khoảng 100 số liệu mới có thểnhận dạng chính xác mô hình Kỹ thuật dự báo Box-Jenkins được đề xuất bởiGeorge Box và Gwin-lym Jenkins vào năm 1976
Trong các chu kì tăng trưởng, nhiều chuỗi thời gian có sự tiến triển trung
hạn tương tự nhau Sự tiến triển trung hạn này được gọi là các xu thế Như vậy
nếu tồn tại một xu thế trong chuỗi thời gian thì ta nên tách nó ra để dễ dàng choviệc xử lý số liệu còn lại
1.1.2.3 Hiệu chỉnh theo mùa
Chuỗi số nhận được sau khi loại bỏ các xu thế theo mùa trong chuỗi thời
gian gọi là “chuỗi được hiệu chỉnh theo mùa”.
1.1.2.4 Phát hiện các thời điểm đột biến
Phát hiện các thời điểm đột biến là phát hiện ra giá trị quan sát có sự thay
đổi mạnh mẽ về xu thế cũng như mức độ tại những thời điểm nào đó.
1.1.2.5 Phương pháp chung để mô hình hóa chuỗi thời gian
Trang 10 Vẽ các số liệu của chuỗi thời gian lên mặt phẳng tọa độ và xét các đặc
trưng chính của chúng chú ý đến “xu thế, thành phần theo mùa, thời điểm thay đổi dáng điệu lớn, những quan sát dị thường”.
Khử các xu thế và thành phần theo mùa
- Ước lượng các xu thế hay các biểu diễn theo mùa nhờ phương pháp bìnhphương tối thiểu, sau đó trừ các giá trị của hàm vừa ước lượng vào các sốliệu
- Sai phân số liệu tức là xét chuỗi thời gian mới Y từ chuỗi ban đầu nhờ t
toán tử sai phân mục đích là để nhận được chuỗi ở trạng thái dừng
1.2 Quá trình dừng và phân tích hệ số tự tương quan
1.2.1 Khái niệm về quá trình dừng
1.2.1.1 Định nghĩa (Hàm trung bình, hàm tự hiệp phương sai)
Giả sử X là chuỗi thời gian t 2
t
X Khi đó
a) Hàm số X( )t X với t t T gọi là hàm trung bình của X t
b) Hàm 2 biếnX( , ) covt s ( ,X X t s)X t X ( )t X s X( )s với
,
s t T được gọi là hàm tự hiệp phương sai của X t
1.2.1.2 Định nghĩa Chuỗi thời gian X t được gọi là dừng nếu thỏa t,
Trang 111.2.1.3 Định nghĩa Hàm tự tương quan của X , được định nghĩa tại biến trễ t
Chú ý Trong thực tế, ta chỉ quan sát được một thể hiện hữu hạn các giá trị của
X x t t 1, 2, , n của một chuỗi thời gian dừng nên về nguyên tắc ta khôngthể biết chính xác được các hàm tự hiệp phương sai của chuỗi thời gian đó,muốn ước lượng nó ta đưa vào khái niệm hàm tự hiệp phương sai mẫu của thểhiệnX
1.2.1.4 Định nghĩa Quá trình ngẫu nhiên X được gọi là dừng theo nghĩa t
“chặt” nếu như t1 t2 t k và h 0 ta có 1, 2, ,
k
X X X có cùng phânphối với 1 , 2 , ,
Quá trình dừng đóng vai trò bản chất trong việc phân tích chuỗi thời gian
và dĩ nhiên trong thực tế, các chuỗi thời gian quan sát thường chưa phải là mộtchuỗi dừng Vì vậy, khi gặp những dữ liệu như thế, phải có những xử lý thíchhợp để biến chuỗi thời gian nguyên thủy thành một chuỗi mới phù hợp với điềukiện của tính dừng Công cụ đầu tiên nghiên cứu chuỗi thời gian là hàm tự hiệpphương sai
1.2.2 Hàm tự hiệp phương sai của một quá trình dừng
Trang 12Một hàm thực k: được gọi là xác định không âm nếu và chỉ nếu:
với n a, đã nêu ở trên
1.2.2.3 Định lí (Đặc trưng của hàm tự hiệp phương sai)
Một hàm thực xác định trên tập được gọi là hàm tự hiệp phương sai của một chuỗi thời gian dừng nếu và chỉ nếu nó là chẵn và xác định không âm.
1.2.2.4 Định lí Nếu X t là quá trình dừng, và nếu t, a , i i thỏa
1.2.3 Hệ số tương quan và tự tương quan mẫu
1.2.3.1 Hệ số tương quan mẫu
Nếu ta quan sát được n giá trị của chuỗi X là t x x1, , ,2 x và n n giá trị
của chuỗi Y là t y y1, , ,2 y thì hệ số hiệp phương sai n Cov X Y( , ) được ướclượng bởi XY X Y*
Còn hệ số tương quan của X và Yđược tính bởi công thức:
Trang 13Giả sử ta quan sát đượcngiá trị của chuỗi X là t x x1, , ,2 x Khi đó ước n lượng của hệ số tự hiệp phương saiX( )h là hệ số tự hiệp phương sai mẫu được
cho bởi:
1
1 ( )
n h
t
t h t
i) n là số quan sát của đại lượng X
ii) x là thể hiện của t X tại thời điểm t t.
iii) X là giá trị trung bình của các thể hiện của chuỗi thời gian
Nhận xét.
( ) và ( )h h đo mối tương quan giữa đoạn số liệu x x1, , ,2 x n h với đoạn
số liệu x h1,x h2, ,x ncách nhau một độ trễ của thời gian là h.
Giá trị( )h nằm giữa 1 và +1 Và ( )h (h)với mọi độ trễ của thờigian h Do vậy trong quá trình nghiên cứu ta chỉ xét những h 0
Như vậy ACF là một hàm hay đồ thị của độ tự tương quan của mẫu ở
độ trễ h1 2, , ACF có thể được dùng để giúp chúng ta tìm ra một chuỗi thờigian dừngx x1, , ,2 x Việc này có thể được thực hiện vì chúng ta có thể liên n
kết động thái của ACF với sự dừng của chuỗi thời gian
Tổng quát, với một chuỗi số liệu không có tính mùa có thể chỉ ra rằng: i) Nếu ACF của chuỗi thời gian x x1, , ,2 x n hoặc giảm thật nhanh hoặc giảm
dần khá nhanh thì giá trị của chuỗi thời gian được xem là dừng
ii) Nếu ACF của chuỗi thời gian x x1, , ,2 x n giảm dần thật chậm thì chuỗi
thời gian được xem là không dừng
Ý nghĩa chính xác của từ “khá nhanh” và “thật chậm” có phần tùy ý và
tốt nhất được xác định bằng kinh nghiệm Hơn thế nữa, kinh nghiệm chỉ ra rằng
Trang 14với dữ liệu không có tính mùa, việc ACF giảm khá nhanh, nếu có thường xảy
ra sau một độ trễ h 2
1.2.4 Hệ số tự tương quan riêng
Hệ số tự tương quan riêng là khái niệm ít được sử dụng hơn so với hệ số
tự tương quan trong việc phân tích chuỗi thời gian Trên thực tế, hệ số tự tươngquan riêng chỉ giúp cho ta việc nhận dạng mô hình tự hồi quy trung bình trượtARMA để dự báo
Ta có thể quan niệm một cách thô thiển là hệ số tự tương quan riêng củachuỗi số liệu X nhằm để đo mức độ kết hợp giữa chuỗi thời gian t X và t
chuỗi thời gian trễ X t k khi ảnh hưởng của các quan sát xen vào ở giữa đã bị
loại trừ (ví dụ k 4thì ta loại X t1,X t2,X t3ra khỏi việc tính toán).
Định nghĩa Hệ số tự tương quan riêng của chuỗi thời gian dừng X , được t
kí hiệu là ( )k chính là hệ số tương quan của hai biến ngẫu nhiên:
t
X X X t t1, ,X t k 1 và X t k X t k X t1, ,X t k 1
Nói cách khác ( )k đo sự phụ thuộc của X và t X t k sau khi loại bỏ các ảnh
hưởng (tuyến tính) của các giá trị trung gian
Giá trị tương quan riêng phần của mẫu tại độ trễ k là:
k
k j
Trang 15Như vây hàm tự tương quan riêng mẫu (PACF) là một danh sách hay đồ
thị của các trị số tự tương quan riêng của mẫu ở các độ trễ k 1,2, đại lượng
này mô tả một cách trực giác các trị tự tương quan của mẫu đối với các giá trịquan sát chuỗi thời gian ngăn cách bằng một độ trễ k lần đơn vị thời gian.Một lần nữa, để áp dụng phương pháp luận Box-Jenkins, chúng ta phảithử và cố gắng phân loại động thái của PACF
Đầu tiên, PACF của một chuỗi thời gian không có tính mùa có thể giảmthật nhanh Với dữ liệu không có tính mùa, kinh nghiệm chỉ ra rằng nếu PACFtắt, một cách tổng quát nó sẽ giảm thật nhanh sau một độ trễ bé hơn hay bằng 2.Thứ hai, chúng ta nói rằng PACF giảm dần nếu hàm này không giảm thật
nhanh nhưng giảm đi theo một “dạng ổn định” PACF có thể giảm dần theo
một dạng hàm mũ tắt dần (không dao động hoặc có dao động), một dạng sónghình sin tắt dần hoặc một dạng bị trội bởi một trong hai dạng trên hoặc một tổhợp của chúng Hơn nữa, PACF có thể giảm dần khá nhanh hoặc giảm dần thật chậm
Quá trình nhận dạng một mô hình ARIMA không có tính mùa hay có tínhmùa phụ thuộc vào những công cụ thống kê Đó là, hệ số tự tương quan, hệ số
tự tương quan riêng, đồ thị tự tương quan, đồ thị tự tương quan riêng và hiểubiết về quá trình đang nghiên cứu cũng như kinh nghiệm và phán đoán tốt
1.3 Quá trình ARIMA
1.3.1 Toán tử lùi và toán tử tiến
Định nghĩa
Toán tử B đặt tương ứng một quá trình X t với quá trình , t, Y t t
sao cho Y t BX t X t1 được gọi là toán tử lùi.
Trang 16Toán tử lùi B là toán tử tuyến tính, khả nghịch và nghịch đảo của nó là
1,
F B
được gọi là toán tử tiến
Một cách tương đương toán tử tiến được định nghĩa bởi FX t X t1
Chú ý Trong trường hợp các quá trình là dừng ta có thể định nghĩa các chuỗi
theo toán tử tiến F hay toán tử lùi B Khi đó, giả sử ta có quá trình dừng X với t
t và một dãy a i , i tuyệt đối khả tổng tức là i i
i a
Các chuỗi theo B khi đó sẽ có những tính chất cho phép ta xử lý nó tương
tự như đối với chuỗi nguyên thông thường Đặc biệt ta có thể thực hiện phép cộng, phép nhân hay phép lấy nghịch đảo Điều này có vai trò quan trọng trong các phép biến đổi của đa thức tự hồi quy, đa thức trung bình trượt và các phép biến đổi xử lý chuỗi thời gian khác.
1.3.2 Quá trình ồn trắng
Định nghĩa Quá trình ngẫu nhiên t, t được gọi là một ồn trắng, ký
hiệu ~t W(0,2)khi tlà biến ngẫu nhiên thỏa mãn các điều kiện sau:
+) t 0với t
+) t 2
+) cov( , ) 0 t s với t s
1.3.3 Quá trình tự hồi quy cấp p
Định nghĩa 1.3.3 Ta gọi quá trình tự hồi quy cấp p viết là X t ~ AR p là một( )quá trình dừng X t thỏa mãn hệ thức: t,
Trang 17Ta gọi X là tự hồi quy vì giá trị hiện tại của nó được tính truy hồi qua các t
giá trị X t1 , X t2 , , X t p đứng trước nó, số pđược gọi là cấp tự hồi quy của môhình, nó chỉ số các giá trị quá khứ của chuỗi cần phải lấy để tính truy hồi
Giá trị chính xác của p được sử dụng sẽ là số làm cho sai số dự báo của
mô hình là nhỏ nhất và làm cho các số dư có phân phối ngẫu nhiên Thường thìchúng ta nhận dạng giá trị p như là cấp của quá trình AR p( ) bằng cách phân
tích hệ số tự tương quan riêng của chuỗi
Chú ý Nếu đa thức hồi quy ( )z có nghiệm nằm ngoài đĩa tròn đơn vị z 1
thì X được gọi là quá trình nhân quả tự hồi qui cấp t p và nói chung ta chỉ xétcác quá trình nhân quả
Các đặc trưng của quá trình tự hồi quy cấp p
)
X t 0
2 1
Trang 18phương trình Jule – Walker, nếu ta đặt pi i với i1,2, ,pthì hệ phương
trình Jule – Walker tương đương với
Đại lượng pp ở trên được gọi là tự tương quan riêng cấp p của quá trình
X t ,nó đóng vai trò rất quan trọng trong việc xác định bậc của quá trình tựhồi quy cũng như việc ước lượng tham số mô hình tự hồi quy sau này
Trong thực tế, khi cho chuỗi quan sát x t t, 1,2, ,n thì ta dùng côngthức tự tương quan mẫu để tính các ( ), i là các giá trị xấp xỉ của ( )i Khi đã
có các tự tương quan mẫu ta thay vào hệ phương trình Jule – Walker và giải nó
để tìm các tham số Từ đây ta xác định được tương quan riêng . p1, ,pp
1.3.4 Quá trình trung bình trượt cấp q
Định nghĩa Một quá trình trung bình trượt cấp q là một quá trình X t t,
được định nghĩa bởi:
Trang 19Trong đó hàm (.)định nghĩa bởi ( ) 1 1 p.
p
Ở đây ( )z được gọi là đa thức trung bình trượt
Chú ý Khác với trường hợp AR p( ), biểu thức trên luôn xác định duy nhất mộtquá trình MA mà không đòi hỏi thêm điều kiện gì đối với các hệ số ivà vớigiả thiết t là ồn trắng nên X là quá trình dừng t
1.3.5 Quá trình tự hồi quy trung bình trượt
Định nghĩa Một quá trình tự hồi quy trung bình trượt cấp( , ),p q ký hiệu
(.) là đa thức tự hồi quy cấp p
(.) là đa thức trung bình trượt cấp q.
Khi đó có thể viết quá trình ARMA p q dưới dạng toán tử như sau: ,
1.3.6 Quá trình hợp nhất tự hồi quy trung bình trượtARIMA
Phần lớn các chuỗi thời gian kinh tế, tính dừng không đúng nữa; Tuynhiên nếu ta lập các chuỗi sai phân cấp d d ( 1) thì các chuỗi kinh tế lại có thể
Trang 20Định nghĩa Một quá trìnhX thõa mãn phương trình (*) được gọi là quá trình t hợp nhất hỗn hợp tự hồi quy trung bình trượt, ký hiệu là X t ~ ARIMA p d q , ,
Nhận xét Như vậy, một chuỗi thời gian X có thể xấp xỉ một quá trình mà t
qua d d ( 1) lần lấy sai phân thì sẽ là mộtARMA p d q , Và lúc đó hệ thức(*) cũng được viết lại là B X t B t với B cho bởi:
' 1
p
1.4Nhận dạng mô hình chuỗi thời gian ARIMA
Trong mục này ta sẽ xây dựng thủ tục nhận dạng mô hình hợp nhất hỗn
hợp tự hồi quy trung bình trượtARIMA p d q theo quan điểm Box-Jenkins. , ,
Với một chuỗi thời gian cho trước tính dừng thể hiện ở chỗ dãy các tựtương quanX( )k của nó giảm nhanh khi klớn và chuỗi sai phân cấp d củachuỗi thời gian X có thể là chuỗi dừng mặc dầu chuỗi gốc t X ban đầu là t
không dừng Để đạt được điều đó, có thể xét dãy tự tương quan của các chuỗi
Trang 21Y X với các d khác nhau cho đến khi xuất hiện các đặc điểm trên Thôngthường cấp sai phân d được xét là 0, 1, 2, 3 Với mỗi cấp lấy sai phân ta đềuphải tính tự tương quan mẫu Y Giả thiết tính dừng xuất hiện sau t d lần lấy saiphân và giả sử rằng chuỗi Y tuân theo mô hình t ARMA p q ta cần phải xác ,
định cấp tự hồi quy p và cấp trung bình trượt q của mô hình
Giả sử ( );k k 1,2, là dãy tự tương quan mẫu và kk; k 1,2, làdãy các tự tương quan riêng mẫu của chuỗi Y , khi đó t được tính theo côngkthức ở mục 1.2.3.2 với phương sai mẫu được ước lượng bởi công thức:
ARMA p q như sau:
+) Nếu ~Y t AR p thì dãy các tự tương quan ( ) kgiảm nhanh theo quy luật
mũ hoặc sin/mũ, còn dãy các tự tương quan riêng mẫu ( )k kk 0; k p.+) Nếu ~Y t MA q thì dãy các tự tương quan ( ) k 0; k pvà dãy tựtương quan riêng ( )k kkgiảm nhanh theo quy luật mũ hoặc sin/mũ
+) Nếu ~Y t ARMA p q thì dãy các tự tương quan ( , ) kgiảm nhanh theoquy luật mũ hoặc sin/mũ sau trễ thứ q p(nếu q p) và dãy các tự tươngquan riêng ( ) k kkgiảm nhanh theo quy luật mũ hoặc sin/mũ sau trễ thứ
p q (nếu p q )
Trang 221.5Kiểm tra tính phù hợp của mô hình
Mỗi khi mô hình đã được ước lượng, chúng ta có thể kiểm tra nó phù hợphay không trong việc mô tả chuỗi số liệu đã cho nhờ việc xét các số dư hay còngọi là thặng dư (tức là xét chuỗi thời gian được tạo bởi hiệu số của chuỗi sốliệu gốc và chuỗi số liệu dự báo) Các số dư t có thể được tính ra nhờ các sốliệu quan sát được và các tham số vừa được tính Mô hình được xem là phù hợpvới chuỗi số liệu nếu phần dư này được phân bổ một cách ngẫu nhiên hay còngọi là tạo thành ồn trắng
Để kiểm tra số dư có phải là ngẫu nhiên hay không ta đi tính các hệ số tựtương quan của chuỗi số dư Nếu các hệ số tự tương quan này nằm trong giới
hạn tin cậy với mức ý nghĩa cho trước thường là khoảng 2 , 2
mô hình có thể xem là dùng được Nếu có dù chỉ một hệ số tự tương quan nằm
ra ngoài giới hạn này thì mô hình đã được lựa chọn không phù hợp với chuỗithời gian đang xét và cần tìm kiếm một mô hình khác tốt hơn
Sử dụng kiểm định thống kê Ljung-Box hay còn gọi là thống kê Q đểkiểm tra tổng thể mức độ phù hợp của mô hình với công thức tính:
2 1
+) n là số quan sát của số dư
+) m là số lớn nhất của thời gian trễ (tức là số các hệ số tự tươngquan được tính)
+) r là hệ số tự tương quan của các số dư ek e được tính với độ trễ của t
thời gian là k
Nếu p-value nhỏ (< 0.05), thì mô hình không phù hợp, nên ta phải xácđịnh mô hình mới phù hợp hơn
Trang 231.6 Khái niệm dự báo chuỗi thời gian dừng
Giả sử ta có chuỗi thời gian dừng X với giá trị trung bình và hàm tự t
tương quan( )h đã được biết Ta muốn dự báo giá trị X n h theo các giá trị của
1, 2, , n
X X X mục tiêu của chúng ta là tìm một hàm số g x x( , , , )1 2 x để n
( , , , n)
g X X X là dự báo cho X n h có sai số bình phương trung bình nhỏ nhất.
Các thuật toán thường dùng để dự báo quá trình dừng
Thuật toán Durbin – Lewinson [6, tr 220-221]
Thuật toán đổi mới [6, tr 222-225]
Hiệu quả của dự báo phụ thuộc vào nhiều yếu tố Trước hết nó phụ thuộc
vào xu hướng phát triển của chuỗi thời gian Nếu chuỗi thời gian là hàm “đều đặn” theo thời gian thì càng dễ dự báo Cho đến nay các phương pháp dự báo
chuỗi thời gian chưa cho phép dự báo được các giá trị đột biến Hiệu quả của
dự báo còn phụ thuộc xa gần của thời gian dự báo, dự báo các giá trị càng gầnhiện tại càng chính xác Ngoài ra phương pháp ước lượng đóng vai trò hết sứcquan trọng
Chương 2 ỨNG DỤNG R TRONG XỬ LÝ MÔ HÌNH ARIMA 2.1 Giới thiệu và cài đặt phần mềm R
2.1.1 Giới thiệu về R
Vậy R là gì? Nói một cách ngắn gọn, R là một phần mềm sử dụng cho phân tích thống kê và vẽ biểu đồ Thật ra, về bản chất, R là ngôn ngữ máy tính
đa năng, có thể sử dụng cho nhiều mục tiêu khác nhau, từ tính toán đơn giản,
toán học giải trí (recreational mathematics), tính toán ma trận (matrix), đến các
Trang 24phân tích thống kê phức tạp Vì là một ngôn ngữ, cho nên người ta có thể sử
dụng R để phát triển thành các phần mềm chuyên môn cho một vấn đề tính toán
cá biệt
2.1.2 Hướng dẫn cài đặt R
Để sử dụng R, việc đầu tiên là chúng ta phải cài đặt R trong máy tính của
mình Để làm việc này, ta phải truy nhập vào mạng và vào website có tên là
“Comprehensive R Archive Network” (CRAN) sau đây:
http://cran.r-project.org./
Tài liệu cần tải về, tùy theo phiên bản, nhưng thường có tên bắt đầu bằng
mẫu tự R và số phiên bản (version) Hiện tại phiên bản mới nhất là
R-2.12.0-win.exe ra ngày 15/10/2010 phiên bản này khoảng 37MB, phiên bản này có thểtải về tại địa chỉ sau:
http://cran.r-project.org/bin/windows/base/
Còn như phiên bản chúng tôi đang sử dụng là 2.10.1, nên tên tên phiênbản cần tải là: R-2.10.1-win32.exe Tài liệu này khoảng 30.9 MB, và địa chỉ cụthể để tải là:
http://cran.r-project.org/bin/windows/base/old/2.10.1/
Tại website của R http://cran.r-project.org./, chúng ta có thể tìm thấy rất nhiều tài liệu chỉ dẫn cách sử dụng R, đủ trình độ, từ sơ đẳng đến cao cấp Khi
đã tải R xuống máy tính, bước kế tiếp là cài đặt (set-up) vào máy tính Để làm
việc này, chúng ta chỉ đơn giản nhấn chuột vào tài liệu trên và làm theo hướngdẫn cách cài đặt trên màn hình Đây là một bước rất đơn giản, chỉ cần 1 phút là
việc cài đặt R có thể hoàn tất
Sau khi hoàn tất việc cài đặt, một biểu tượng
R 2.2.1.lnk
sẽ xuất hiện trên màn hình của máy tính Đến đây thì chúng ta đã sẵn sàng sử
dụng R Có thể nhấp chuột vào biểu tượng này và sẽ có một cửa sổ như sau:
Trang 25R thường được sử dụng dưới dạng “command line”, có nghĩa là chúng ta phải
trực tiếp gõ lệnh vào cái dấu nhắc “prompt” màu đỏ trên Các lệnh phải tuân
thủ nghiêm ngặt theo văn phạm và ngôn ngữ của R Một trong những văn phạm này là R phân biệt giữa Arima và arima Nói cách khác, R phân biệt lệnh viết
bằng chữ hoa hay chữ thường Một văn phạm khác nữa là khi có hai chữ rời
nhau, R thường dùng dấu chấm để thay vào khoảng trống, chẳng hạn như
data.frame,read.table,v.v…
Nếu lệnh gõ ra đúng văn phạm thì R sẽ cho chúng ta một cái dấu nhắc “>”
khác hay cho kết quả nào đó (tùy theo lệnh); nếu lệnh không đúng văn phạm thì
R sẽ cho ra một thông báo ngắn không đúng hay không hiểu
Khi muốn rời khỏi R, chúng ta có thể đơn giản nhấn nút chéo (x) bên góc
trái của cửa sổ hiện hành hay gõ lệnh q().
Đặc biệt, R cung cấp cho chúng ta một “ngôn ngữ” máy tính và một số
hàm “frunction” để làm các phân tích căn bản và đơn giản Nếu muốn làm
những phân tích phức tạp hơn, chúng ta cần phải tải về máy tính một số gói
lệnh “package” khác Địa chỉ để tải các package vẫn là:
http://cran.r-project.org
Trang 26Sau đó chọn phần “Packages” xuất hiện bên trái của mục lục trang web Các
package này có thể cài đặt trực tuyến bằng cách chọn Install packages trong phần packages của R như hình dưới đây Ngoài ra, nếu package đã được tải xuống máy tính cá nhân, việc cài đặt có thể nhanh hơn bằng cách chọn Install
package(s) from local zip file cũng trong phần packages (xem hình dưới đây).
2.1.3 “Văn phạm” R
R là một ngôn ngữ tương tác “interactive language”, có nghĩa là khi
chúng ta ra lệnh, và nếu lệnh theo đúng “văn phạm”, R sẽ “đáp” lại bằng một
kết quả Và, sự tương tác tiếp tục cho đến khi chúng ta đạt được yêu cầu “Văn
phạm” chung của R là một lệnh “command” hay một hàm “function” Mà đã
là hàm thì phải có thông số; cho nên theo sau hàm là những thông số mà chúng
Trang 27Thì setwd là một hàm, còn “D:/R thuc hanh” là thông số của hàm.
Để biết một hàm cần có những thông số nào, chúng ta dùng lệnh args(x),
( args viết tắt chữ arguments) mà trong đó x là một hàm chúng ta cần biết:
> args(arima)
function (x, order = c(0, 0, 0), seasonal = list(order = c(0,
0, 0), period = NA), xreg = NULL, include.mean = TRUE, transform.pars = TRUE, fixed = NULL, init = NULL, method = c("CSS-ML", "ML", "CSS"), n.cond, optim.method = "BFGS", optim.control = list(), kappa = 1e+06)
NULL
R là một ngôn ngữ đối tượng “object oriented language” Điều này có
nghĩa là các dữ liệu trong R được chứa trong đối tượng “object” Định hướng
này cũng có vài ảnh hưởng đến cách viết của R Chẳng hạn như thay vì viết x =
5 như thông thường chúng ta vẫn viết, thì R yêu cầu viết là x == 5.
Đối với R, x = 5 tương đương với x <- 5 Cách viết sau dùng kí hiệu (<)
được khuyến khích hơn là cách viết trước (=) Chẳng hạn như:
> x <- rnorm(10) có nghĩa là mô phỏng 10 số liệu và chứa trong đối tượng
“object” x Chúng ta cũng có thể viết x = rnorm(10).
Một số kí hiệu hay dùng trong R là:
A & B A và B (AND)
A | B A hoặc B (OR)
Trang 28! Không là (NOT)
Với R, tất cả các câu chữ hay lệnh sau kí hiệu # đều không có hiệu ứng,
vì # là kí hiệu dành cho người sử dụng thêm vào các ghi chú
Ví dụ.
> # lệnh sau đây sẽ lưu dữ liệu giá vàng với file=”giavangSJC”
> save(giavangSJC, file=”giavangSJC.rda”)
2.1.4 Cách đặt tên trong R
Đặt tên một đối tượng “object” hay một biến số “variable” trong R khá
linh hoạt, vì R không có nhiều giới hạn như các phần mềm khác Tên một đối
tượng phải được viết liền nhau tức là không được cách rời bằng một khoảng
trống Chẳng hạn như R chấp nhận myobject, không chấp nhận my object
> myobject <- rnorm(10)
> my object <- rnorm(10)
Error: syntax error in "my object"
Nhưng đôi khi tên myobject khó đọc, cho nên chúng ta nên tách rời bằngdấu chấm “.”
Một vài điều cần lưu ý khi đặt tên trong R:
• Không nên đặt tên một đối tượng hay biến số bằng kí hiệu “_” hoặc “-”
Trang 29• Không nên đặt tên một object giống như một biến số trong một dữ liệu.Chẳng hạn nếu chúng ta có một data.frame (dữ liệu hay dataset) với biến số
gia.ban trong đó, thì không nên có một object trùng tên gia.ban, tức làkhông nên viết: gia.ban <- gia.ban
Tuy nhiên, nếu data.frame tên là giavangSJC thì chúng ta có thể đềcập đến biến số gia.ban với một kí tự $ như sau: giavangSJC$gia.ban
(Tức là biến số gia.ban trong data.frame giavangSJC), và trong trườnghợp đó, gia.ban <- giavangSJC$gia.ban có thể chấp nhận được
2.1.5 Hỗ trợ trong R
Để phân tích số liệu cần nhiều lệnh và nhiều hàm Tuynhiên, vì tính tương tác các lệnh này sẽ biến mất khi thoát khỏi
R Vấn đề đặt ra là có cách nào lưu trữ các lệnh này trong một
hồ sơ để sau này sử dụng lại Phần mềm cực kì có ích cho mụcđích này là Tinn-R Website để tải Tinn-R và tài liệu hướng dẫncách sử dụng là:
http://www.sciviews.org/Tinn-R
Tinn-R thực chất là một trình soạn thảo “editor” cho R (và
nhiều phần mềm khác) Tinn-R cho phép chúng ta lưu trữ tất cảcác lệnh cho một công trình phân tích trong một hồ sơ VớiTinn-R, chúng ta có sẵn một chỉ dẫn trực tuyến về cách sử
dụng các lệnh hay hàm trong R Trong khi lệnh gõ sai “văn phạm” R, Tinn-R sẽ báo ngay và đề nghị cách sửa Với Tinn-R chúng ta ít khi phạm phải những sai sót nhỏ trong khi chạy R.
Sau khi đã xong một số lệnh, chúng ta có thể dùng chuột để tô
đậm những lệnh cần chạy và gửi sang R Chú ý, chúng ta không cần phải rời Tinn-R trong khi R chạy
Trang 30Phần mềm để “tự động hóa” R có tên là Rcmdr (viết tắt từ R
commander) Trong thực tế, Rcmdr là một package có thể tải từ
website chính thức của R Chú ý, để Rcmdr vận hành tốt nên cónhững package sau đây trong máy: relimp, multcomp, lmtest,effects, car, và abind Nếu chưa có những package này thì nêntải chúng về máy Tài liệu chỉ dẫn Rcmdr cũng có thể tải từwebsite
còn trong nội dung chính của luận văn thì chúng tôi chỉ quan
tâm tới việc thực hành R bằng các câu lệnh
Trang 31Hỗ trợ cho R ngoài lệnh args()thì R còn cung cấp lệnh help() để
người sử dụng có thể hiểu “văn phạm” của từng hàm Chẳng hạn như muốn
biết hàm arima có những thông số “arguments” nào, ta chỉ đơn giản lệnh:
> help(arima) hay > ?arima
Một cửa sổ sẽ hiện ra bên phải của màn hình chỉ rõ cách sử dụng ra sao và
thậm chí có cả ví dụ Ta chỉ việc sao chép “copy” và dán “paste” ví dụ vào R
để xem cách vận hành Trước khi sử dụng R, nếu cần chúng ta có thể đọc qua phần chỉ dẫn có sẵn trong R bằng cách chọn mục Help và sau đó chọn Html
help như hình dưới đây để biết thêm chi tiết Bạn đọc cũng có thể sao chép và
dán các lệnh trong mục này vào R để xem cho biết cách vận hành của R.
Thay vì chọn mục trên bạn đọc cũng có thể đơn giản lệnh:
> help.start() và một cửa sổ xuất hiện chỉ dẫn toàn bộ hệ thống R.
Hàm apropos cũng rất có ích vì nó cung cấp cho chúng ta tất cả các hàm
trong R bắt đầu bằng kí tự mà ta muốn tìm Chẳng hạn như chúng ta muốn biết hàm nào trong R có kí tự “arima” thì chỉ đơn giản lệnh:
> apropos(arima)
2.1.6 Môi trường vận hành R
Trang 32Do dữ liệu phải được chứa trong một thư mục làm việc của máy tính Vì
vậy trước khi sử dụng R, có lẽ hay nhất là tạo ra một thư mục để chứa dữ liệu,
chẳng hạn như D:/R thuc hanh Chúng ta sử dụng lệnh setwd()như sau:
>setwd(“D:/R thuc hanh”)
Lệnh trên (setwd – chữ wd có nghĩa là working directory) báo cho R biết
dữ liệu sẽ chứa trong thư mục “D:/R thuc hanh” Chú ý, R dùng “/” chứ
không phải “\” như trong hệ thống Windows
Để biết hiện nay, R đang “làm việc” ở thư mục nào, chúng ta chỉ cần lệnh:
>getwd()
[1] "D:/R thuc hanh"
Cái dấu nhắc “prompt” màu đỏ mặc định của R là “>” Nhưng nếu chúng
ta muốn có một “prompt” khác theo cá tính cá nhân, chúng ta có thể thay thế
Muốn làm phân tích dữ liệu bằng R, chúng ta phải có sẵn dữ liệu ở dạng
mà R có thể hiểu được để xử lí Dữ liệu mà R hiểu được phải là dữ liệu trong
một data.frame Có nhiều cách để nhập số liệu vào một data.frame trong
R, từ nhập trực tiếp đến nhập từ các nguồn khác nhau Sau đây là những cách
thông dụng nhất:
2.1.7.1 Nhập số liệu trực tiếp: c(…)
Để nhập số liệu trực tiếp chúng ta sử dụng hàm c() Lệnh này cho phépchúng ta tạo ra một cột dữ liệu Cú pháp của hàm này:
Trang 33>ten.bien.lưu.du.lieu<-c(phan.tu.thu.1,…,phan.tu.thu.n)
Ví dụ Chúng ta thu thập số liệu giá bán, giá mua vàng SJC trong 500 ngày bắt
đầu là ngày 10/02/2009 đến ngày 24/06/2010 và muốn nhập số liệu này vào R
>TT<- c(1,2,…,499,500)
>gia.mua <- c(18.64,18.75,…,28.32,28.34)
>gia.ban <- c (18.74,18.85,…,28.40,28,41)
Lệnh thứ nhất cho R biết rằng chúng ta muốn tạo ra một cột dữ liệu với
biến số có tên là TT , lệnh thứ hai là tạo ra một cột khác có tên là gia.mua,lệnh thứ ba là tạo ra một cột khác có tên là gia.ban Tất nhiên, chúng ta cóthể lấy một tên khác mà mình thích Chúng ta dùng hàm c() (chữ c viết tắt của
chữ concatenation – có nghĩa là móc nối vào nhau) để nhập dữ liệu Chú ý rằng
mỗi số liệu giá vàng theo từng ngày được cách nhau bằng một dấu phẩy
Kí hiệu gia.mua <- cũng có thể viết là gia.mua= có nghĩa là các số liệu theo sau sẽ có nằm trong biến số gia.mua R là một ngôn ngữ cấu trúc
theo dạng đối tượng (thuật ngữ chuyên môn là object-oriented language), vì
mỗi cột số liệu hay mỗi một data.frame là một đối tượng đối với R Vì thế,
TT,gia.mua và gia.ban là ba đối tượng riêng lẻ Bây giờ chúng ta cần phảinhập ba đối tượng này thành một data.frame để R có thể xử lí sau này.
Để làm việc này chúng ta cần đến function data.frame.
Cú pháp lệnh như sau:
>ten.bien.luu.tru<-data.frame(tham.so.1,…,tham.so.n)
Ví dụ.
> giavangSJC<-data.frame(time,gia.mua,gia.ban)
Trang 34Trong lệnh này, chúng ta muốn cho R biết rằng nhập ba cột (hay ba đối
tượng) time,gia.mua,gia.ban vào một đối tượng có tên là gia.vang.Đến đây thì chúng ta đã có một đối tượng hoàn chỉnh để tiến hành phân tíchthống kê
Để kiểm tra xem trong gia.vangSJC chứa dữ liệu gì thì chúng ta chỉ cầnđơn giản lệnh:
> giavangSJC
Nếu chúng ta muốn lưu lại bảng số liệu này trong một file theo định dạng
của R, cần dùng lệnh save với cú pháp sau:
Lệnh đầu tiên cho R biết rằng chúng ta muốn lưu các số liệu trong thư
mục “R thuc hanh” có đường dẫn như sau “D:/R thuc hanh”
Lệnh thứ hai save() cho R biết rằng các số liệu trong đối tượng
hai lệnh trên, một file có tên giavangSJC.rda sẽ có mặt trong thư mục “D:/
2.1.7.2 Nhập số liệu trực tiếp: edit(data.frame(…))
Chúng ta có thể nhập trực tiếp số liệu bằng hàm edit(data.frame())
Cú pháp lệnh như sau:
Ten.bien.luu.so.lieu<- edit(data.frame())
Trang 35Với hàm này, R sẽ cung cấp cho chúng ta một cửa sổ mới với các cột và
dòng giống như cửa sổ làm việc của Excel, và chúng ta có thể có thể nhập sốliệu trong bảng đó một cách dễ dàng
Ví dụ Cần nhập số liệu giá vàng SJC trong 500 ngày bắt đầu là ngày10/02/2009 đến ngày 24/06/2010 Bảng số liệu cụ thể ở phần phụ lục
TT time gia.mua gia.ban
Một cửa sổ sẽ hiện ra như sau:
Ở đây, R không biết chúng ta có biến số nào, cho nên R liệt kê các biến số
var1, var2, v.v… Nhấp chuột vào cột var1 và thay đổi bằng cách gõ vào đótime Nhấp chuột vào cột var2 và thay đổi bằng cách gõ vào đó gia.mua.Nhấp chuột vào cột var3 và thay đổi bằng cách gõ vào đó gia.ban Sau đó
gõ số liệu cho từng cột Sau khi xong, click vào biểu tượng close ở góc phải
của bảng tính “spreadsheet”, chúng ta sẽ có một data.frame tên
lưu file giavangSJC với định dạng của R thì cũng làm tương tự như trên.
Trang 362.1.7.3 Nhập số liệu từ 1 text file: read.table
Trong trường hợp đã có sẵn dữ liệu dưới dạng text file, thì không cần phảinhập lại dữ liệu bằng các cách trực tiếp như trên mà chúng ta sẽ sử dụng hàm
read.table để đọc dữ liệu từ text file vào R Cấu trúc lệnh như sau:
Ten.bien.luu.du.lieu<-read.table(“duong.dan.den.file.txt”, header=TRUE)
Tham số HEADER = true cho R biết chúng ta muốn chọn dòng đầu tiên
của file txt làm tên của các cột Sau khi thực hiện lệnh này chúng ta đã có một
đối tượng chuẩn của R để lưu trữ dữ liệu của file txt ban đầu Chúng ta có thể
lưu lại đối tượng này cho các lần làm việc sau bằng lệnh save() đã được giớithiệu ở trên
Ví dụ.Chúng ta có dữ liệu giá vàng SJC được lưu dưới dang text file có tên
TT time gia.mua gia.ban
và chúng ta muốn nhập các dữ liệu này vào R để tiện việc phân tích sau này.
>setwd(“D:/R thuc hanh”)
>giavangSJC<-read.table(“D:/R thu chanh/giavangSJC.txt”, header=TRUE)
Lệnh thứ nhất chúng ta muốn đảm bảo R truy nhập đúng thư mục mà sốliệu đang được lưu giữ
Lệnh thứ hai yêu cầu R nhập số liệu từ file có tên là “giavangSJC.txt”trong thư mục C:/R thuc hanh và cho vào đối tượng giavangSJC Tronglệnh này, header=TRUE có nghĩa là yêu cầu R đọc dòng đầu tiên trong file
đó như là tên của từng cột dữ kiện
Có thể kiểm tra xem R đã đọc hết các dữ liệu hay chưa bằng cách:
> giavangSJC
Trang 37>names(giavangSJC)
[1] "TT" "time" "gia.mua" "gia.ban"
R sẽ cho biết có các cột như sau trong dữ liệu (names là lệnh hỏi trong dữ
liệu có những cột nào và tên gì)
Bây giờ chúng ta có thể lưu dữ liệu dưới dạng R để xử lí sau này bằngcách ra lệnh:
> save(giavangSJC, file="giavangSJC.rda")
2.1.7.4 Nhập số liệu từ Excel
R cũng cho phép chúng ta có thể nhập dữ liệu từ một file định dạng xls
của Excel một cách đơn giản chỉ với vài thao tác:
• Bước 1: Dùng lệnh “Save as” trong Excel và lưu số liệu dưới dạng *.csv; để R
có thể xử lý được
• Bước 2: Dùng R (lệnh read.csv) để nhập dữ liệu dạng *.csv
Cấu trúc lệnh có dạng:
Tên.bien.luu.so.lieu<-read.csv(“đuong.dan.đen.file.csv”, HEADER=true)
Tham số HEADER = true cho R biết chúng ta muốn chọn dòng đầu tiên
của file xls làm tên của các cột Sau khi thực hiện lệnh này chúng ta đã có một
đối tượng chuẩn của R để lưu trữ dữ liệu của file xls ban đầu Chúng ta có thể
lưu lại đối tượng này cho các lần làm việc sau bằng lệnh save() đã được giớithiệu ở trên
Ví dụ Giả sử ta đã lưu file giavangSJC.csv trong thư mục “D:/R thuc hanh” ta dùng R đọc file giavangSJC.csv với câu lệnh như sau:
>setwd(“D:/R thuc hanh”)
>giavangSJC<-read.table(“D:/R thuc hanh/giavangSJC.txt”, header=TRUE)
2.1.7.5 Các hình thức biểu thị dữ liệu chuỗi thời gian trong R
Trang 38Thao tác nhập số liệu dưới dạng chuỗi thời gian vào để R xử lí, được tiếnhành theo các bước giống như mục 2.1.7.1 đến mục 2.1.7.4 Tuy nhiên vớiphạm vi chúng tôi nghiên cứu ở đây là chuỗi thời gian đơn biến một chiều vì
vậy xin nói thêm về cách đưa dữ liệu chuỗi thời gian vào R với hình thức biểu
thị chuỗi thời gian này ở dạng bảng hay ở dạng chuỗi Các thao tác cần thiết đốivới số liệu đã được đưa vào đó
• Giả sử chúng ta đã đưa bảng số liệu sau vào R và đã được lưu file với tên
TT time gia.mua gia.ban
[1] "TT" "time" "gia.mua" "gia.ban"
Mặt khác khi xử lí số liệu thường chúng ta không dùng cả bảng số liệu trên mà chỉ xử lí số liệu ở một cột nào đó, giả sử chúng ta cần dùng số liệu ởcột “gia.ban” và để tách số liệu ta dùng lệnh:
hàng bán gạo vào R và lưu lại với tên “slbanra” Đặc biệt chúng ta cần biển
thị chuỗi số liệu đó dưới dạng bảng như sau:
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Trang 39Bước 1 Nhập số lượng gạo bán ra từng tháng của cửa hàng dưới dạng chuỗi
theo một trong các cách ở mục 3.1.7 với biến “slbanra” và lưu vào file
“slbanra”
Bước 2 Biểu diễn chuỗi thời gian theo dạng bảng như trên bằng lệnh
>slbanra=ts(slbanra, start=2007, frequency=12)
Trong lệnh trên frequency=12 nghĩa là tần số của chuỗi là 12
• Nếu cần nhập một chuỗi thời gian thống kê về lợi nhuận của một xínghiệp may mặc theo từng quý bắt đầu từ năm 2000 đến 2010 (đơn vị triệuvnđ) hiển thị theo như bảng sau:
Bước 1: Nhập số liệu theo dạng chuỗi theo một trong các cách được trình bày ở
trên với biến “loi.nhuan” và lưu lại với file có tên “loi.nhuan.rda”
Bước 2: Để biểu diễn chuỗi thời gian đã nhập dưới dạng bảng như trên ta thực
hiện lệnh sau:
>loi.nhuan=ts(loi.nhuan, start=2000, frequency=4)
2.2 Chức năng xử lý số liệu chuỗi thời gian - Nhận dạng mô hình ARIMA
và dự báo của R
2.2.1 Tính hàm tự tương quan, hàm tự tương quan riêng phần của quá trình ARMA
Hàm tự tương quan, hàm tự tương quan riêng phần của quá trình ARMA
có thể tính được nếu như chúng ta biết được dạng mô hình của chuỗi thời gian
đó tức là biết được các hệ số của AR và hệ số MA của quá trình ARMA hoặcbiết được giá trị chuỗi quan sát của quá trình ARMA
2.2.1.1 Tính ACF, PACF khi biết chuỗi quan sát của quá trình ARMA
Thông thường để dự đoán được mô hình của chuỗi thời gian thì người ta
đi tìm dãy hàm tự tương quan, tự tương quan riêng Sau đó dựa vào đặc điểm