dùng phần mềm r nghiên cứu thống kê

143 555 5
dùng phần mềm r nghiên cứu thống kê

Đ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

Ứng dụng phần mềm R nghiên cứu thống kê  TRƯỜNG ĐẠI HỌC CẦN THƠ  KHOA KHOA HỌC TỰ NHIÊN  BỘ MÔN TOÁN ------------    LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC DÙNG PHẦN MỀM R NGHIÊN CỨU THỐNG KÊ GIÁO VIÊN HƯỚNG DẪN SINH VIÊN THỰC HIỆN TS. NGUYỄN HỮU KHÁNH LÊ CHÍ TÀI (BỘ MÔN TOÁN – KHOA KHTN) NGÀNH: TOÁN ỨNG DỤNG CẦN THƠ – 12/2013   i  Ứng dụng phần mềm R nghiên cứu thống kê  LỜI CẢM ƠN ---------  Tôi  xin  tỏ  lòng  kính  trọng  và  biết  ơn  sâu  sắc  tới  Thầy  Nguyễn  Hữu  Khánh, người đã tận tình hướng dẫn, chỉ bảo khích lệ  và động  viên tôi trong  suốt  quá  trình  làm  luận  văn.  Bên  cạnh  đó  thầy  đã  cung  cấp  cho  tôi  nhiều  tài  liệu quý giá giúp tôi hiểu sâu hơn về đề tài của mình hơn.      Để đạt được kết quả như ngày hôm nay, tôi xin gửi lời cảm ơn đến toàn  thể  quý  thầy  cô  của  bộ  môn  Toán  -  Khoa  Khoa  học  tự nhiên  của  trường  đại  học Cần Thơ đã trang bị cho tôi những kiến thức cơ bản, các kỹ năng cần thiết  trong suốt bốn năm học tập tại trường, đây chính là hành trang quý báu, giúp  tôi không chỉ thực hiện tốt đề tài tốt nghiệp mà còn giúp tôi tự tin vững bước  trên con đường sự nghiệp sắp tới.    Tôi  xin  cảm  ơn  quý  thầy  cô  trong  Hội  đồng  bảo  vệ  đã  dành  thời  gian  xem  xét,  chỉnh  sửa những  sai  xót  cũng  như đóng  góp  ý  kiến  những  mặt  còn  hạn chế của đề tài để đề tài được hoàn chỉnh hơn.    Tôi  xin  cảm  ơn  các  bạn,  những  người  luôn  sát  cánh  cùng  tôi,  giúp  đỡ  động viên tôi trong suốt quá trình vừa qua.    Cuối  cùng,  tôi  xin  cảm  ơn  đến  gia  đình  tôi,  nhừng  người  đã  dạy  dỗ,  khuyến khích, động viên và tạo mọi điều kiện tốt nhất cho tôi trong quá trình  học tập.    Dù đã cố gắng hết sức cùng với sự tận tâm của Thầy hướng dẫn song do  trình độ còn hạn chế nên khó tránh khỏi những thiếu sót. Rất mong nhận được  sự thông cảm và góp ý của Thầy Cô và các bạn.      Cần Thơ, tháng 12 năm 2013         Lê Chí Tài i  Ứng dụng phần mềm R nghiên cứu thống kê  DANH MỤC CÁC TỪ VIẾT TẮT/ KÍ HIỆU OLS  Bình phương bé nhất              ii  Ứng dụng phần mềm R nghiên cứu thống kê  DANH MỤC CÁC BẢNG   Trang  Bảng 3.1. Độ tuổi, tỉ trọng cơ thể và cholesterol. ...........................................24  Bảng 3.2. Dữ liệu quan sát nhiệt lượng phát sinh trong quá trình đông cứng  của xi măng Portland.....................................................................33  Bảng 3.3. Hàm lượng gỗ cứng và độ căng của vật liệu. .................................42  Bảng 3.4: Nghiên cứu đo lường ESR và fibrinogen ở 32 đối tượng. ..............51  Bảng 3.5. Dữ liệu 30 bệnh nhân nhiễm trùng huyết. ......................................57    iii  Ứng dụng phần mềm R nghiên cứu thống kê    DANH MỤC CÁC HÌNH   Trang  Hình 1.1: Đồ thị của chuỗi thời gian ldeaths, mdeaths, fdeaths. .......................8  Hình 3.1. Dáng điệu của phần dư...................................................................23  Hình 3.2. Đồ thị liên hệ giữa age và chol. ......................................................25  Hình 3.3. Đồ thị phân tích phần dư để kiểm tra các giả định                         trong phân tích hồi qui...................................................................27  Hình 3.4. Đường biểu diễn mối quan hệ giữa tuổi (age) và cholesterol. .........28  Hình 3.5. Đồ thị tương quan tuyến tính giữa các biến với nhau......................35  Hình 3.6. Mối liên hệ giữa hàm lượng gỗ cứng và độ căng mạnh của vật liệu. ......................................................................................................44  Hình 3.7. So sánh hai mô hình: tuyến tính đơn và đa thức bậc hai. ................45  Hình 3.8. Biểu diễn ba đường hồi qui. ...........................................................47  Hình 3.9. Mối quan hệ giữa logit[p(x)] và p(x). .............................................49  Hình 3.10. Đồ thị thể hiện mối quan hệ giữa ESR và fibrinogen....................52  Hình 3.11. Thể hiện độ phân phối của fibrinogen giữa hai nhóm ESR. ..........53  Hình 4.1. Sự phân tích chuỗi thời gian với hàm decompose. ......................65  Hình 4.2. Sự phân tích chuỗi thời gian với hàm stl. ....................................66  Hình 4.3. Đồ thị của 100 biến ngẫu nhiên......................................................68  Hình 4.4. Tương quan đồ của dữ liệu air passenger giai đoạn 1949 – 1960....73  Hình 4.5. Số lượng sản phẩm bán ra của một cửa hàng trong 24 tháng. .........75  Hình 4.6. Lọc tuyến tính dữ liệu chuỗi thời gian x (filter)..............................76  Hình 4.7. Số lượng sản phẩm bán ra của một của hàng năm 1990-1991.........79  Hình 4.8. Số lượng sản phẩm bán ra và trung bình dịch chuyển                        có trọng số mũ 1990-1991. ............................................................80  Hình 4.9. Doanh thu của công ty A 2010-2012. .............................................81  Hình 4.10. Giá trị dự đoán cho doanh thu của công ty A................................83  Hình 4.11. Mô tả quá trình AR(1) của chuỗi thời gian  xt  0.7 xt 1  et . .........92  Hình 4.12. Tương quan đồ của chuỗi phần dư ...............................................94  Hình 4.13. Đồ thị chuỗi thời gian  xt  et  0.8 et 1 ..........................................97  Hình 4.14. Tương quan đồ của chuỗi thời gian  xt  et  0.8 et 1 . ....................98  Hình 4.15. Mô tả quá trình ARMA(2, 1) của chuỗi Xt..................................105    iv  Ứng dụng phần mềm R nghiên cứu thống kê  Hình 4.16. Đồ thị của chuỗi thời gian  X t  3 1 X t 1  et  et 1 . ....................107  4 2 Hình 4.17. Tương quan đồ của chuỗi  X t  3 1 X t 1  et  et 1 . .....................108  4 2 Hình 4.18. Sai phân bậc 1 của sản lượng lúa cả năm....................................121  Hình 4.19. Sai phân bậc 2 của sản lượng lúa cả năm....................................122  Hình 4.20. Hàm SAC của sai phân bậc 2 của sản lượng lúa cả nước............122  Hình 4.21. Hàm SPAC của sai phân bậc 2 của sản lượng lúa cả nước..........122  Hình 4.22. Đồ thị các giá trị kiểm định cho mô hình ARIMA(0, 2, 1)             của dữ liệu sanluonglua. ....................................................124  Hình 4.23. Đồ thị dự báo sản lượng lúa cả năm từ 2011-2015 bằng mô hình  ARIMA(0, 2, 1).........................................................................126  Hình 4.24. Tổng số người tử vong do tai nạn mỗi tháng ở Hoa Kỳ              1973-1978. ................................................................................127  Hình 4.25. Đồ thị sai phân bậc 1 của chuỗi UD. ..........................................128  Hình 4.26. Tương quan đồ của chuỗi UD. ...................................................128  Hình 4.27. Đồ thị các giá trị kiểm định cho mô hình ARIMA của dữ liệu  USAccDeaths. .........................................................................129  Hình 4.28. Đồ thị dự đoán cho chuỗi UD chu kỳ 12 tháng kế tiếp…………130      v  Ứng dụng phần mềm R nghiên cứu thống kê  MỤC LỤC Trang   PHẦN MỞ ĐẦU I. LÝ DO CHỌN ĐỀ TÀI .............................................................................1  II. MỤC TIÊU VÀ PHƯƠNG PHÁP NGHIÊN CỨU.................................1  2.1. Mục tiêu của đề tài..................................................................................1  2.2. Nội dung nghiên cứu...............................................................................1  2.3. Phương pháp luận và phương pháp nghiên cứu.......................................1  PHẦN NỘI DUNG Chương 1 PHẦN MỀM............................................................................2  I. GÍỚI THIỆU PHẦN MỀM R ...................................................................2  II. CÚ PHÁP TRONG R...............................................................................2  III. CÁCH NHẬP LỆNH TRONG R ...........................................................3  3.1. Nhập số liệu trực tiếp từ lệnh c() ..........................................................3  3.2. Nhập số liệu trực tiếp từ hàm edit(data.frame()) ..........................4  3.3. Nhập số liệu từ một file dạng text ...........................................................5  3.4. Nhập số liệu từ Excel..............................................................................6  3.5. Nhập số liệu từ SPSS ..............................................................................6  IV. BIÊN TẬP DỮ LIỆU VÀ VẼ ĐỒ THỊ ..................................................6  4.1. Biên tập dữ liệu.......................................................................................7  4.1.1. Kiểm tra số liệu trống không (missing value)..................................7  4.1.2. Chiết số liệu từ một data.frame .......................................................7  4.2. Vẽ biểu đồ ..............................................................................................7  4.2.1 Vẽ biểu đồ với hàm plot ..................................................................7  4.2.2. Biểu đồ cho chuỗi thời gian ts.plot ............................................8  4.3. Hàm combine.......................................................................................9  Chương 2 CÁC KHÁI NIỆM CƠ BẢN................................................10  I. KHÁI NIỆM VỀ ĐẠI LƯỢNG NGẪU NHIÊN.....................................10  1.1. Đại lượng ngẫu nhiên rời rạc.................................................................10  1.2.  Đại lượng ngẫu nhiên liên tục ..............................................................10      vi  Ứng dụng phần mềm R nghiên cứu thống kê  II. PHÂN PHỐI XÁC SUẤT CỦA ĐẠI LƯỢNG NGẨU NHIÊN............10  2.1. Bảng phân phối xác suất .......................................................................10  2.2. Hàm mật độ xác suất.............................................................................10  III. CÁC THAM SỐ ĐẶC TRƯNG CỦA ĐẠI LƯỢNG NGẪU NHIÊN 11  3.1. Kỳ vọng (Expectation)..........................................................................11  3.2. Phương sai (Variance) ..........................................................................12  3.3. Độ lệch tiêu chuẩn (Standard deviation) ...............................................13  3.4. Hiệp phương sai (Covariance) ..............................................................13  3.5. Hệ số tương quan (Correlation coefficient) ...........................................15  IV. MỘT SỐ PHÂN PHỐI XÁC SUẤT THÔNG DỤNG .........................15  4.1. Phân phối nhị thức ................................................................................15  4.2. Phân phối chuẩn ...................................................................................15  V. TÓM LƯỢT MỘT SỐ HÀM TRONG R LIÊN QUAN ĐẾN CÁC ĐẶT TRƯNG CỦA ĐẠI LƯỢNG NGẪU NHIÊN .......................................16  Chương 3 MÔ HÌNH HỒI QUI............................................................18  I. HỒI QUI TUYẾN TÍNH (LINEAR REGRESSION) ............................18  1.1. Hồi qui tuyến tính đơn ..........................................................................18  1.1.1 Mô hình.........................................................................................18  1.1.2 Xây dựng mô hình hồi qui mẫu .....................................................18  1.1.3 Một số thống kê liên quan .............................................................20  1.2. Hồi qui tuyến tính bội ...........................................................................29  1.2.1. Mô hình........................................................................................29  1.2.2. Xây dựng mô hình hồi qui mẫu ....................................................30  1.2.3. Đánh giá sự phù hợp của mô hình.................................................30  1.3. Hiện tượng đa cộng tuyến .....................................................................35  1.3.1. Bản chất của hiện tượng đa cộng tuyến.........................................35  1.3.2. Hậu quả của đa cộng tuyến ...........................................................36  1.3.3. Phát hiện ra hiện tượng đa công tuyến ..........................................37  1.3.4. Biện pháp khắc phục ....................................................................38  II. HỒI QUI PHI TUYẾN...........................................................................41  2.1. Hồi qui đa thức .....................................................................................42  2.2. Hồi qui logistic .....................................................................................47  2.2.1. Những vấn đề cơ bản về ước lượng hợp lý cực đại .......................47    vii  Ứng dụng phần mềm R nghiên cứu thống kê  2.2.2. Odds và tỉ số odds ........................................................................48  2.2.3. Hồi qui logistic đơn ......................................................................48  2.2.4. Hồi qui logistic bội .......................................................................56  Chương 4 PHÂN TÍCH CHUỖI THỜI GIAN.....................................61  I. ĐẠI CƯƠNG VỀ CHUỖI THỜI GIAN .................................................61  1.1. Chuỗi thời gian .....................................................................................61  1.2. Các thành phần của chuỗi thời gian.......................................................62  1.3. Mô hình hóa dự báo giá trị của đại lượng ngẫu nhiên............................66  1.3.1. Mô hình nhân (Mutiplicative model) ............................................66  2.3.2. Mô hình cộng (Additive model)....................................................66  1.4. Tách thành phần xu hướng và thành phần mùa .....................................67  1.5. Độ trể ...................................................................................................67  1.6. Ồn trắng................................................................................................67  1.7. Quá trình dừng (Stationary process)......................................................68  1.7.1. Quá trình dừng .............................................................................68  1.7.2. Các tính chất của hàm tự hiệp phương sai của một quá trình dừng70  1.7.3. Quá trình Gauss............................................................................70  1.8. Toán tử lùi (Backward) và toán tử tiến (forward) ..................................73  1.9. Các phương pháp làm trơn....................................................................73  1.9.1. Phương pháp trung bình dịch chuyển (Moving average method) ..74  1.9.2. Phương pháp làm trơn bằng hàm số mũ ........................................76  II. QUÁ TRÌNH ARMA..............................................................................83  2.1. Quá trình tự hồi qui - AR (Autoregressive Processes) ...........................83  2.1.1. Quá trình tự hồi qui cấp một AR(1) ..............................................83  2.1.2. Quá trình tự hồi qui cấp hai AR(2) ...............................................86  2.1.3. Quá trình tự hồi qui cấp p (AR(p))................................................88  2.2. Quá trình trung bình trượt – MA (Move Average Processes) ................94  2.2.1. Quá trình trung bình trượt cấp q (MA(q)) .....................................94  2.2.2. Quá trình trung bình trượt cấp môt (MA(1)) .................................95  2.2.3. Quá trình trung bình trượt cấp hai (MA(2)) ..................................96  2.3. Quá trình tự hồi qui trung bình trượt – ARMA (Autoregressive Moving  Average Process)..................................................................................98  2.3.1. Quá trình tự hồi qui trung bình trượt cấp p, q (ARMA(p,q)) .........98    viii  Ứng dụng phần mềm R nghiên cứu thống kê  2.3.2. Quá trình tự hồi qui trung bình trượt cấp (1,1) (ARMA(1,1))......100  2.3.3. Quá trình tự hồi qui trung bình trượt cấp (p, 1) (ARMA(p,1)).....102  2.4. Quá trình hợp nhất tự hồi qui trung bình trượt ARIMA (Integrated  Autoregressive Moving Average) .......................................................110  2.5. Hàm tự tương quan riêng PACF (Partial Autocorrelation Function)....111  2.5.1. Xấp xỉ tuyến tính ........................................................................111  2.5.2. Tự tương quan riêng ...................................................................111  III. NHẬN DẠNG MÔ HÌNH ARIMA ....................................................112  3.1. Các giả thiết và công cụ tính toán .......................................................112  3.2. Kiểm tra tính dừng..............................................................................113  3.3. Nhận dạng quá trình AR .....................................................................113  3.4. Ước lượng các tham số a, b ................................................................114  3.4.1. Ước lượng tham số a của AR(p) .................................................114  3.4.2. Ước lượng tham số b của mô hình MA(q) ..................................115  3.4.3. Ước lượng tham số a, b của mô hình ARMA(p, q) .....................116  3.5. Xử lý mùa trong mô hình ARIMA ......................................................117  3.6. Phương pháp BOX-JENKINS.............................................................118  3.7. Dùng R để xây dựng mô hình ARIMA bằng phương pháp Box-Jenkins ...........................................................................................................121  3.7.1 Mô hình ARIMA không có tính mùa ...........................................121  3.7.2 Mô hình ARIMA có tính mùa......................................................126  PHẦN KẾT LUẬN....................................................................................131  THAM KHẢO CÁC HÀM TRONG R......................................................133  TÀI LIỆU THAM KHẢO.........................................................................133    ix  Ứng dụng phần mềm R nghiên cứu thống kê  PHẦN MỞ ĐẦU I. LÝ DO CHỌN ĐỀ TÀI    Thống kê là một bộ môn khoa học đã và đang trở thành công cụ then chốt  được  sử dụng  trong  quản  lí,  nghiên  cứu,  sản  xuất,  kinh  doanh,  v.v…  Hai  trong  những phương pháp trong thống kê đang được phổ biến nhất là mô hình hồi qui  và chuỗi thời gian. Mục đích của hai phương pháp này là tìm ra qui luật để thiết  lập nên mô hình và từ đó tiến hành dự báo cho các giá trị tương lai.    Song song với việc phát triển của thống kê, có rất nhiều phần mềm thống kê  ra đời như Minitab, SPSS, R, Matlab, … Trong các phần mềm được nêu, R được  nhiều người sử dụng nhất do tính thân thiện với người sử dụng, mã nguồn mở và  có đặc tính rất mạnh vể xử lý thống kê.     Vấn đề được nhiều người đặt ra là việc áp dụng phần  mềm R như thế nào  để phục vụ tốt cho quá trình học tập, nghiên cứu thống kê nhằm đạt hiệu quả cao  nhất. Đó là lý do mà tôi chọn đề tài này.  II. MỤC TIÊU VÀ PHƯƠNG PHÁP NGHIÊN CỨU 2.1. Mục tiêu của đề tài   Nghiên  cứu  việc  sử  dụng  phần  mềm  R  cho  việc  học  tập  và  nghiên  cứu  thống kê. 2.2. Nội dung nghiên cứu   Luận văn nghiên cứu việc sử dụng phần mềm R cho việc học tập và nghiên  cứu thống kê. Luận văn trình bày các kiến thức cơ bản của thống kê và đi kèm là  các tính toán bằng R. Ngoài ra, trong luận văn còn có các chương trình con của R  nhằm giải quyết các bài toán phức tạp.  2.3. Phương pháp luận và phương pháp nghiên cứu   Luận văn chủ yếu dựa vào phương pháp thống kê mô tả.  III. CẤU TRÚC CỦA LUẬN VĂN   Luận văn gồm 4 chương:    Chương 1: Phần mềm R    Chương 2: Các khái niệm cơ bản    Chương 3: Mô hình hồi qui    Chương 4: Phân tích chuỗi thời gian    1  Ứng dụng phần mềm R nghiên cứu thống kê  PHẦN NỘI DUNG    Chương 1 PHẦN MỀM     I. GÍỚI THIỆU PHẦN MỀM R 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 thuộc Trường đại học Auckland,  New Zealand đề xuất 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.  Đầu  năm  1997  một đề án phát triển R đã được  khởi động  và hoạt động liên tục đến  nay.    R là một phần mềm mã nguồn mở và là một phần của đề án GNU. R chạy  trên hệ điều hành Unix, Macintosh và Windows. R sử dụng cho phân tích thống  kê và vẽ biểu đồ. 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ừ vẽ đồ thị, tính toán đơn giản, tính toán ma trận  (matrix), đến các phân tích thống kê phức tạp. Vì là một ngôn ngữ, nên ta có thể  sử dụng R để phát triển thành các phần mềm chuyên dụng cho các tính toán riêng  biệt.  II. CÚ PHÁP TRONG R   R là một ngôn ngữ tương tác (interactive language), nghĩa là khi ta ra lệnh  và đúng cú pháp thì R sẽ “đáp” lại bằng một kết quả. Sự tương tác tiếp tục cho  đến khi chúng ta đạt được yêu cầu.     “Cú  pháp”  chung  của  R  là  một  lệnh  (command)  hay  function  (hàm).    Cú  pháp chung của R như sau:  đối tượng reg c(x1, x2, ..., xn) trong đó x1, x2, ..., xn là các giá trị của dữ liệu.   Ví dụ 1.2    Chúng  ta  có  số  liệu  về  độ  tuổi  và  insulin  cho  10  bệnh  nhân  như  sau,  và  muốn nhập vào R.    Độ tuổi  Isulin  50  16.5  62  10.8  60  32.3  40  19.3  48  14.2  47  11.3  57  15.5  48  16.2  67  11.2  Có thể sử dụng hàm có tên c như sau:  > age = c(50, 62, 60, 40, 48, 47, 57, 70, 48, 67)  > insulin = c(16.5, 10.8, 32.3, 19.3, 14.2, 11.3, 15.5, 15.8, 16.2, 11.2)   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 có tên  là age (age là biến số), và tương tự lệnh thứ hai là tạo ra một cột khác có tên là  insulin. Chúng ta có thể đặt tên khác mà mình thích.    Dùng hàm c (viết tắt của từ concatenation -  “móc  nối  vào nhau”) để nhập  dữ liệu. Mỗi số liệu cách nhau bởi dấu phẩy.    3  Ứng dụng phần mềm R nghiên cứu thống kê    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  với R. Vì thế, age và insulin là hai đối tượng riêng lẻ. Chúng ta cần phải  nhập hai đố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 ta cần đến hàm data.frame:  > benh = data.frame(age, insulin) Trong lệnh trên, ta yêu cầu R nhập hai đối tượng (hai cột) age và insulin lại  thành một đối tượng benh. Để kiểm tra trong benh có gì ta chỉ cần gõ:    > benh  và đây là kết quả từ R:  1 2 3 4 5 6 7 8 9 10 age insulin 50 16.5 62 10.8 60 32.3 40 19.3 48 14.2 47 11.3 57 15.5 70 15.8 48 16.2 67 11.2   Nếu  muốn lưu lại các số liệu này trong  một file theo dạng R, ta cần dùng  lệnh  save.  Giả  sử  muốn  lưu  số  liệu  trong  directory  có  tên  là  “D:\Studying\insulin”, ta cần gõ các lệnh sau:  > setwd(“D:/Studying/insulin”)    setwd  –  chữ  wd có  nghĩa  là  working directory,  báo  cho  R  biết  rằng  ta  muốn lưu các số liệu trong directory có tên là “D:\Studying\insulin” > save(benh, file=”benh.rda”) Các số liệu trong đối tượng benh sẽ lưu trong file có tên là benh.rda.   Sau  khi  gõ  xong  hai  lệnh  trên,  một  file  có  tên  benh.rda  sẽ  có  mặt  trong  directory đó.    Lưu  ý  rằng  thông  thường  Windows  dùng  dấu  backward  slash  “\”,  nhưng  trong R chúng ta dùng dấu forward slash “/”. 3.2. Nhập số liệu trực tiếp từ hàm edit(data.frame())   Ngoài việc nhập số liệu trực tiếp từ hàm  c()  ở trên, ta còn có thể nhập số  liệu bằng hàm edit(data.frame()).    Với hàm này, R sẽ cung cấp cho ta một cửa sổ mới với một dãy cột và dòng  giống như Excel, và ta có thể nhập số liệu trực tiếp trong bảng đó.    Ví dụ 1.3 (tiếp tục ví dụ 1.2) Ta nhập số liệu về độ tuổi và insulin cho 10 bệnh  nhân và đặt tên cho dữ liệu là insulin bằng cách gõ lệnh:    4  Ứng dụng phần mềm R nghiên cứu thống kê    > insu = edit(data.frame())    Một cửa sổ hiện ra như sau:   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 đó age. Nhấp  chuột vào cột var2 và thay đổi bằng cách gõ vào đó insulin. Sau đó gõ số liệu  cho từng cột. Sau khi xong, bấm nút chéo X ở góc phải của spreadsheet, ta sẽ có  một data.frame tên insu với hai biến số age và insulin.  3.3. Nhập số liệu từ một file dạng text   Nhập dữ liệu từ một file dạng text ta dùng lệnh read.table.   Ví dụ 1.4      Ta  có  số  liệu  được  thu  thập  từ  143  công  dân  Mỹ  về  mối  liên  hệ  giữa  mức  lương  dựa  trên  số  năm  kinh  nghiệm.  Dữ  liệu  được  lưu  với  tên  “salary.txt” trong directory  “D:\Studying”, các bước sau đây là cần thiết  để nhập số liệu vào R:   > setwd("D:/Studying")    > Salary = read.table("salary.txt", header=TRUE)    Lệnh  thứ  nhất,  yêu  cầu  R  truy  nhập  vào  directory  “D:\Studying”.  Tiếp  theo, lệnh thứ hai báo cho R biết là nhập số liệu từ file “salary.txt” gán vào  cho đối tượng  Salary. Trong lệnh này,  header=TRUE có nghĩa là yêu cầu  R  đọc dòng đầu tiên trong file  salary.txt như là tên của từng cột dữ kiện (nếu  dữ liệu không có dòng đầu tiên là tên dữ kiện thì header=FALSE).     Muốn biết trong dữ liệu có những cột nào và tên gì ta dùng lệnh names():  > names(Salary) [1] "ID" "Salary" "Experience" Ta lưu dữ liệu  Salary thành tập dữ liệu  Salary.rda (rda nghĩa là file  dữ liệu của R):  > save(Salary, file="Salary.rda")   5  Ứng dụng phần mềm R nghiên cứu thống kê  3.4. Nhập số liệu từ Excel    Để nhập số liệu từ phần mềm Excel, chúng ta cần tiến hành 2 bước:               •    Bước 1:  Dùng  lệnh  “Save as”  trong  Excel  và  lưu số  liệu  dưới  dạng  “csv”.              •  Bước 2: Dùng R (lệnh read.csv) để nhập dữ liệu dạng csv.  Giả  sử  dữ  liệu  từ  ví  dụ  1.3  được  nhập  trong  excel  và  được  lưu  với  tên  “sal.csv”  trong  directory  “D:\Studying”.  Bước  tiếp,  ta  vào  R  và  tạo  ra  những lệnh sau đây:    > setwd("D:/Studying") > Salary = read.csv("Sal.csv", header=TRUE)    Muốn xem số liệu Salary ta dùng lệnh  > Salary Lưu số liệu vào file Salary.rda để làm việc trên R   > save(Salary, file="Salary.rda") 3.5. Nhập số liệu từ SPSS Phần mềm thống kê SPSS lưu dữ liệu dưới dạng  “sav”. Ví dụ chúng ta đã  có một dữ liệu có tên là testo.sav trong directory “D:\Studying”, và muốn  chuyển  dữ  liệu  này  sang  dạng  R  có  thể  hiểu  được,  chúng  ta  cần  sử  dụng  lệnh  read.spss trong package có tên là foreign. Ta thực hiện các lệnh sau đây:    Việc đầu tiên chúng ta cho truy nhập vào foreign bằng lệnh library:  > library(foreign)   Việc thứ hai là lệnh read.spss:  > setwd(“D:/Studying”) > testo = read.spss(“testo.sav”, to.data.frame=TRUE)   Lệnh thứ hai read.spss yêu cầu R đọc số liệu từ “testo.sav”, và cho vào  một data.frame có tên testo.    Bây giờ chúng ta có thể lưu testo dưới dạng R để xử lí sau này bằng những  lệnh sau đây:  > save(testo, file="testo.rda") IV. BIÊN TẬP DỮ LIỆU VÀ VẼ ĐỒ THỊ   Phần này chúng ta sử dụng dữ liệu của ví dụ 1.4 để tiện cho việc theo dõi và  hiểu được. Dữ liệu đã được nhập vào R với tên là Salary từ một text file có tên  salary.txt.    6  Ứng dụng phần mềm R nghiên cứu thống kê  4.1. Biên tập dữ liệu 4.1.1. Kiểm tra số liệu trống không (missing value)   Trong nghiên cứu, vì nhiều lý do số liệu không thể thu thập được cho tất cả  các đối tượng, hay không thể đo lường tất cả biến số cho một đối tượng. Trong  trường  hợp  đó,  số  liệu  trống  được  xem  là  “missing  value”.  R  xem  các  số  liệu  trống là  NA. Có  một số  kiểm định thống  kê đòi hỏi các số liệu trống phải được  loại ra (vì không thể tính toán được) trước khi phân tích. R có lệnh na.omit rất  có ích cho việc này và cách sử dụng như sau:  > Sal.new = na.omit(Sal)   Trong  lệnh  trên,  chúng  ta  yêu  cầu  R  loại  ra  các  số  liệu  trống  trong  data.frame  Salary  và  đưa  các  số  liệu  không  trống  vào  data.frame  mới  tên  là  Sal.new.  Chú  ý  lệnh  trên  chỉ  là  ví  dụ,  vì  trong  dữ  liệu  Sal  không  có  dữ  liệu  trống.  4.1.2. Chiết số liệu từ một data.frame   Trong Salary có 3 biến số, tương ứng là: ID, Salary và Experimence. Ta có  thể chiết từng biến trong dữ liệu Salary ra như sau:  > salary = Sal[,2] > experimence = Sal[,3] Lệnh thứ nhất yêu cầu R chiết ra cột thứ hai của Sal và gán vào biến salary.  Tương tự, lệnh thứ hai yêu cầu R chiết ra cột thứ 3 và gán vào biến experimence.  4.2. Vẽ biểu đồ   Nhằm thuận lợi cho việc phân tích thống kê, R cung cấp rất nhiều hàm vẽ  biểu  đồ  khác  nhau,  luận  văn  sẽ  lần  lượt  trình  bài  trong  những  ví  dụ  ở  những  chương tiếp theo. Ở đây trình bài hai hàm vẽ đồ thị cơ bản cho mô hình hồi qui  và chuỗi thời gian. 4.2.1 Vẽ biểu đồ với hàm plot i) Mô tả Plot là hàm cơ bản dùng để vẽ đồ thị của các đối tượng trong R.  ii) Cú pháp > plot(x, y, …)   iii) Các đối số   x trục  tọa  độ  x  của  đồ  thị.  Như là  một  sự lựa chọn,  một  cấu trúc vẽ đơn, một hàm hoặc bất kỳ trong R với một  phương pháp vẽ được cung cấp.  y trục  tọa  độ  y  của  đồ  thị,  tùy  ý  nếu  x  là  một  cấu  trúc  thích hợp.  type kiểu  vẽ  của  đồ  thị.  Một  số  kiểu  vẽ:  “p”  -  cho  điểm,  7  Ứng dụng phần mềm R nghiên cứu thống kê  “l”- cho đường, “b”- cho cả hai, “s”- cho bậc thang,  v.v…  main tiêu đề của đồ thị.  xlab, ylab tiêu đề cho trục x, trục y.  xlim, ylim giới hạn của trục x, trục y.  Col màu của đồ thị: col=4 (màu xanh), col=2 (màu đỏ)  v.v…  v.v…  4.2.2. Biểu đồ cho chuỗi thời gian ts.plot  i) Mô tả   Vẽ một vài chuỗi thời gian trên một đồ thị chung. Khác với hàm  plot các  chuỗi thời gian này có thể có thời gian bắt đầu khác nhau, nhưng chúng phải có  tần số giống nhau.  ii) Cú pháp ts.plot(..., gpars = list()) iii) Các đối số một hoặc nhiều chuỗi thời gian đơn hay bội. … gpars danh sách tên những tham số trên hình vẽ phù hợp với những hàm  được vẽ. Nó thường được cung cấp trực tiếp trong …  Ví dụ 1.5. Vẽ trên cùng một  đồ thị các chuỗi thời gian ldeaths, mdeaths, fdeaths với trục hoành là year, trục tung là  deaths có kiểu đường vẽ lần lượt  là solid, dash, dot.  > require(graphics) > ts.plot(ldeaths, mdeaths, fdeaths, 1500 2500 3500 500 deaths gpars = list(xlab="year", ylab="deaths",lty=c(1:3)) 1974 1976 1978 1980 year   Hình 1.1: Đồ thị của chuỗi thời gian ldeaths, mdeaths, fdeaths.   8  Ứng dụng phần mềm R nghiên cứu thống kê  4.3. Hàm combine  i) Mô tả   Lấy ra một chuỗi của véc tơ, ma trận hoặc khung dữ liệu và theo thứ tự kết  hợp lại thành các cột  và dòng. Đây là các hàm đặc trưng  với phương  pháp cho  các lớp R khác.  ii) Cú pháp cbind(..., deparse.level = 1) rbind(..., deparse.level = 1) iii) Các đối số …  là các véc tơ hay ma trận. Ở đây có thể cho bởi tên các đối  số deparse.level mặc  định  là  deparse.level = 0 nếu  không  có  nhãn,  deparse.level= 1 or 2 nếu nhãn là tên của các đối số.  Ví dụ 1.6 # Kết hợp một cột có giá trị 1 vào véc tơ 1:7.  > m = cbind(1, 1:7) # the '1' (= shorter vector) is recycled > m   R cho ra kết quả:  [1,] [2,] [3,] [4,] [5,] [6,] [7,] [,1] [,2] 1 1 1 2 1 3 1 4 1 5 1 6 1 7   # Kết hợp một cột có giá trị 0 vào một ma trận được tạo ra từ kết hợp thêm  một dòng có giá trị 1 vào véc tơ 1:3. > cbind(0, rbind(1, 1:3)) [1,] [2,]   [,1] [,2] [,3] [,4] 0 1 1 1 0 1 2 3 9  Ứng dụng phần mềm R nghiên cứu thống kê  Chương 2 CÁC KHÁI NIỆM CƠ BẢN   I. KHÁI NIỆM VỀ ĐẠI LƯỢNG NGẪU NHIÊN  Định nghĩa 2.1. Đại lượng ngẫu nhiên là đại lượng biến đổi biểu thị giá trị kết  quả của một phép thử ngẫu nhiên. Ta dùng ký hiệu X, Y, Z, … cho các đại lượng ngẫu  nhiên.  Phân  loại  đại  lượng  ngẫu  nhiên:  có  hai  loại  đại  lượng  ngẫu  nhiên  là  đại  lượng ngẫu nhiên rời rạc và đại lượng ngẫu nhiên liên tục.  1.1. Đại lượng ngẫu nhiên rời rạc  Định nghĩa 2.2. Đại lượng ngẫu nhiên được gọi là rời rạc nếu ta có thể liệt kê  được tất cả các giá trị có thể có của nó.   Ví dụ 2.1. Gọi X là số học sinh vắng của một lớp trong một buổi học. Khi đó  X có thể nhận các giá trị 0, 1, …, n. X là đại lượng ngẫu nhiên.   1.2. Đại lượng ngẫu nhiên liên tục  Định nghĩa 2.3. Đại lượng ngẫu nhiên được gọi là liên tục nếu các giá trị có  thể có của nó lấp đầy một khoảng trên trục số hay nói cách khác ta không thể liệt  kê được tất cả các giá trị có thể có của nó.     Ví dụ 2.2.  Gọi  T  là  nhiệt  độ  (oC)  của  một  vùng  tại  một  thời  điểm.  Giả  sử                     T    (29o; 32o) thì T được gọi là đại lượng ngẫu nhiên liên tục.  II. PHÂN PHỐI XÁC SUẤT CỦA ĐẠI LƯỢNG NGẨU NHIÊN 2.1. Bảng phân phối xác suất Giả sử X là đại lượng ngẫu nhiên rời rạc nhận các giá trị x1, x2, …, xn với  các xác suất tương ứng p1, p2, …, pn. Phân phối xác suất của đại lượng ngẫu  nhiên thường được cho bởi bảng sau:    X x1  x2  ...  xn  P p1  p2  ...  pn  2.2. Hàm mật độ xác suất  Định nghĩa 2.4. Hàm mật độ xác suất  f(x) của đại lượng ngẫu nhiên X  là hàm  không âm, xác định với mọi giá trị ngẫu nhiên X và thỏa tính chất  b P ( a  X  b)   f ( x )dx .  a   10  Ứng dụng phần mềm R nghiên cứu thống kê  III. CÁC THAM SỐ ĐẶC TRƯNG CỦA ĐẠI LƯỢNG NGẪU NHIÊN  3.1. Kỳ vọng (Expectation)  Định nghĩa 2.5. Cho đại lượng ngẫu nhiên rời rạc X có bảng phân phối xác  suất  X x1  x2  ...  xn  P p1  p2  ...  pn    Kỳ  vọng của đại lượng ngẫu nhiên X,  kí hiệu là E(X) hay M(X), là số xác  định bởi:  n E ( X )   xi pi .  i 1  Định nghĩa 2.6. Cho đại lượng ngẫu nhiên liên tục X có hàm mật độ xác suất   f(x). Khi đó, kỳ vọng của đại lượng ngẫu nhiên X, ký hiệu E(X), được xác định  bởi công thức:   E(X )   xf ( x)dx .    Tính chất của kỳ vọng   i)  E (C )  C , với C là hằng số.    ii)  E (kX )  kE ( X ) .    iii)  E ( X  Y )  E ( X )  E (Y ) .    iv) Nếu X, Y là đại lượng ngẫu nhiên độc lập thì  E ( XY )  E ( X ).E (Y ) .  Ý nghĩa của kỳ vọng   Kỳ vọng của đại lượng ngẫu nhiên chính là giá trị trung bình của đại lượng  ngẫu nhiên. Nó phản ánh trung tâm của phân phối xác suất.   Ứng dụng R để tìm kỳ vọng    Tìm kỳ vọng của đại lượng ngẫu nhiên x ta dùng lệnh  > mean(x, ...)  Ví dụ 2.3. Cho X là đại lượng ngẫu nhiên nhận các giá trị 0, 1, 2, 3, 4, 5, 6, 7,  8, 9, 10, 50.    # Nhập liệu vào R  > x = c(0:10,50) # Tính kỳ vọng của x  > mean(x) Kết quả từ R:   11  Ứng dụng phần mềm R nghiên cứu thống kê  [1] 8.75   Như vậy thì kỳ xọng của X là 8.75.  3.2. Phương sai (Variance)  Định nghĩa 2.7.  Phương sai của đại lượng ngẫu nhiên X, ký hiệu Var(X), được  xác định bởi công thức  Var( X )  E{[X  E ( X )]2 } .   Định nghĩa 2.8.  Nếu X là đại lượng ngẫu nhiên rời rạc có bảng phân phối xác  suất  X x1  x2  ...  xn  P p1  p2  ...  pn  thì phương sai của X được xác định bởi công thức  n Var( X )   ( xi  E ( X )) 2 pi .  i 1  Định nghĩa 2.9. Nếu X là đại lượng ngẫu nhiên liên tục có hàm mật độ f(x) thì  phương sai của X được xác định bởi công  thức   Var( X )   ( x  E ( X )) 2 f ( x )dx .    Nhận xét 2.1. Trong thực tế ta thường sử dụng công thức sau:  Var( X )  E ( X 2 )  (E(X)) 2 .  n   - Nếu X là đại lượng ngẫu nhiên rời rạc thì   E ( X )   xi 2 pi .  i 1   - Nếu X  là đại lượng ngẫu nhiên liên tục thì   E ( X )     x 2 f ( x )dx .   Tính chất của phương sai   i)  Var(C )  0.     ii)  Var(CX )  C 2Var( X ).     iii)  Var( X  C )  Var( X ).     iv) Nếu X, Y độc lập: ( Var( X  Y )  Var( X )  Var(Y ).   Ý nghĩa của phương sai Từ định nghĩa 2.5 ta thấy X - E(X) chính là độ lệch giữa các giá trị có thể có  của đại lượng ngẫu nhiên X so với giá trị trung bình của nó. Do đó, phương sai  của X chính là trung bình bình phương độ lệch, nó phản ánh mức độ phân tán các  giá trị có thể có chung quanh giá trị trung bình. Vậy khi phương sai nhỏ thì độ  phân tán nhỏ tức mức độ tập trung lớn; ngược lại khi phương sai lớn thì độ phân  tán lớn tức mức độ tập trung nhỏ.   12  Ứng dụng phần mềm R nghiên cứu thống kê   Lệnh trong R   Tính phương sai trong R ta dùng lệnh  > var(x, y = NULL, na.rm = FALSE, use) trong đó:   x là vectơ số, ma trận hoặc mảng dữ liệu. y NULL (mặc định y = x), hoặc vectơ, ma trận, mảng dữ liệu tương  thích với x.  na.rm có tính lôgic. Các giá trị vắng mặt có thể lấy đi không?  use tuỳ chọn này là một trong các dạng sau: "everything", "all.obs", "complete.obs", "na.or.complete", "pairwise.complete.obs".   Ví dụ 2.4. Tính phương sai của tập A gồm từ số 1 đến 10.    Để tính phương sai ta sử dụng lệnh sau đây  > var(1:10) R cho ra kết quả  [1] 9.166667 3.3. Độ lệch tiêu chuẩn (Standard deviation)  Định nghĩa 2.10.  Độ  lệch  tiêu  chuẩn  của  đại  lượng  ngẫu  nhiên  X ,  ký  hiệu   ( x) , được xác định bởi công thức:   ( x)  Var( X ) .  Để tính độ lệch tiêu chuẩn, R cung cấp lệnh sau đây:  > sd(x, na.rm = FALSE) trong đó  x là vectơ số, ma trận hoặc mảng dữ liệu.  na.rm thuộc tính lôgic. Các giá trị vắng mặt có thể lấy đi không?.   Ví dụ 2.5.    > sd(1:2)^2 R cho ra kết quả:    [1] 0.5 3.4. Hiệp phương sai (Covariance)  Định nghĩa 2.11.    Hiệp  phương  sai  (hay  moment  tương  quan)  của  các  đại  lượng ngẫu nhiên X và Y, ký hiệu  cov( X ,  Y )  hay   XY , là số được xác định như  sau:  cov( X ,  Y )  E{[X - E ( X )][Y - E (Y )]}     13  Ứng dụng phần mềm R nghiên cứu thống kê    Nếu  cov( X ,  Y )  0   thì  ta  nói  đại  lượng  ngẫu  nhiên  X  và  Y  không  tương  quan.   Tính chất của hiệp phương sai   i)  cov( X ,  Y )  E ( XY )  E ( X ) E (Y ).     ii) Nếu X và Y là hai đại lượng ngẫu nhiên độc lập thì chúng không tương  quan.    Vì  E ( X , Y )  E ( X ).E (Y )  cov( X , Y )  0.     iii)  cov( X , X )  Var(X).     iv)  cov( X , Y )  cov(Y , X ) .    v)  cov(aX , bY )  ab cov( X , Y ) .    vi)  cov( X , a)  0.     vii)  cov( X  a, Y  b)  cov( X , Y ).     (với a và b là hằng số).    Ý nghĩa của hiệp phương sai   Hiệp phương sai là độ đo sự biến thiên cùng nhau của hai biến ngẫu nhiên  (phân biệt với phương sai – đo mức độ biến thiên của một biến).    Nếu hai biến có xu hướng thay đổi cùng nhau (nghĩa là, khi một biến có giá  trị  cao  hơn  giá  trị  kỳ  vọng  thì  biến  kia  có  xu  hướng  cũng  cao  hơn  giá  trị  kỳ  vọng), thì hiệp phương sai giữa hai biến này có giá trị dương. Mặt khác, nếu một  biến nằm trên giá trị kỳ vọng còn biến kia có xu hướng nằm dưới giá trị kỳ vọng,  thì hiệp phương sai của hai biến nay có giá trị âm.   Lệnh trong R    Hiệp phương sai trong R cho bởi lệnh  > cov(x, y=NULL, use = "everything", method=c("peason","kendall","spearman"))  Ví dụ 2.6. Tính hiệp phương sai của tập  X = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} và  tập Y = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11} ta thực hiện các lệnh sau:    # Nhập liệu vào R    > x =c(1,2,3,4,5,6,7,8,9,10) > y =c(2,3,4,5,6,7,8,9,10,11)   # Tính hiệp phương sai  > cov(x,y) Các lệnh trên có thể viết gọn lại:    > cov(1:10,2:11) R cho ra kết quả    14  Ứng dụng phần mềm R nghiên cứu thống kê  [1] 9.166667 Khi đó hiệp phương sai của tập X và Y cov(X, Y)=9.12  3.5. Hệ số tương quan (Correlation coefficient)  Định nghĩa 2.12. Hệ số tương quan (correlation coefficient) của hai đại lượng  ngẫu nhiên X1, X2 có cùng phân bố được định nghĩa bởi  corr( X 1 , X 2 )   ( X 1 , X 2 )  cov(X 1 , X 2 ) ,   ( X 1 ) ( X 2 ) trong đó   ( X )  là độ lệch tiêu chuẩn.  Ý nghĩa của hệ số tương quan   Hệ số tương quan đo mức độ phụ thuộc tuyến tính của hai đại lượng ngẫu  nhiên  X1  và  X2.  Khi  corr( X 1 , X 2 )   càng  gần  1  thì  mối  quan  hệ  tuyến  tính  càng  chặt chẽ, khi  corr( X 1 , X 2 )  càng gần 0 thì mối quan hệ tuyến tính càng lỏng lẻo.   Lệnh trong R > cor(x, y = NULL, use = "everything", method = c("pearson", "kendall", "spearman"))  Ví dụ 2.7.  Tính hệ số tương quan của X = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} và tập  Y = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11} ta thực hiện lệnh sau:  > cor(1:10,2:11) R cho ra kết quả   [1] 1 IV. MỘT SỐ PHÂN PHỐI XÁC SUẤT THÔNG DỤNG 4.1. Phân phối nhị thức i) Hàm mật độ xác suất Đại lượng ngẫu nhiên rời rạc X được gọi là có phân phối nhị thức với 2  tham số n và p (Kí hiệu: X~B(n, p)), nếu hàm mật độ xác suất của nó được xác  định như sau:  C x p x (1  p) n  x   khi x   0,  1,  ...,  n f ( x | n, p )   n   0                       khi  x   0,  1,  ...,   n  i) Các tham số đặc trưng Nếu X~B(n, p) thì      Trung bình:  E ( X )  np .      Phương sai:  Var ( X )  npq .     Trong đó q=1-p.    15  Ứng dụng phần mềm R nghiên cứu thống kê  4.2. Phân phối chuẩn i) Hàm mật độ xác suất Đại  lượng  ngẫu  nhiên  liên  tục  X  được  gọi  là  có  phân  phối  chuẩn  với  hai  tham số    và   2 (  0)  nếu hàm mật độ xác suất của nó được xác định như sau:   ( x   )2  1 .  exp   f ( x |  , )  2 2   2  2   Ký hiệu:  X  N (  , 2 ) .    Đặt  Y  x  , khi đó  Y  N (0,  1) . Lúc này ta nói Y có phân phối chuẩn  tắc.  i) Các tham số đặc trưng   Nếu  X  N (  , 2 )  thì       Trung bình:  E ( X )   .      Phương sai:  Var( X )   2 .   Tạo ra một biến ngẫu nhiên có phân phối chuẩn với R với hàm rnorm()  Ví dụ 2.8. Tạo ra biến X với 100 quan sát, có kỳ vọng là 0 và độ lệch chuẩn là 1.    > rnorm(100,mean=0,sd=1)   Tổng quát, hàm rnorm tạo ra biến ngẫu nhiên có phân phối chuẩn với n  quan sát có kỳ vọng là m và độ lệch tiêu chuẩn là b.    > rnorm(n,mean=m,sd=b)  V. MỘT SỐ HÀM TRONG R LIÊN QUAN ĐẾN CÁC ĐẶC TRƯNG CỦA ĐẠI LƯỢNG NGẪU NHIÊN   Trong phần này ta tóm lược lại các hàm tính kỳ vọng, phương sai, độ lệch  tiêu  chuẩn,  hiệp  phương  sai  và  ma  trận  tương  quan  (Variance,  Standard  deviation, Covariance and Correlation (Matrices)). a) Mô tả mean,  var,  sd,  cov  và  cor  lần  lượt  là  các  hàm  tính  giá  trị  kỳ  vọng,  phương sai, độ lệch chuẩn của  x,  hiệp phương sai và sự tương quan của  x và  y  nếu  chúng  là  những  véc  tơ.  Nếu  x  và  y  là  những  ma  trận  thì  hiệp  phương  sai  (hoặc sự tương quan) được tính giữa các cột x và các cột của y.    cov2cor là tỷ lệ của một ma trận hiệp phương sai trong ma trận tương  quan tương ứng có hiệu nghiệm.    16  Ứng dụng phần mềm R nghiên cứu thống kê  b) Cú pháp   mean(x, ...) var(x, y = NULL, na.rm = FALSE, use) sd(x, na.rm = FALSE) cov(x, y = NULL, use = "everything", method = c("pearson", "kendall", "spearman")) cor(x, y = NULL, use = "everything", method = c("pearson", "kendall", "spearman")) cov2cor(V) c) Các thông số x  là một véc tơ số, ma trận hoặc khung dữ liệu.  y mặc định là  NULL hoặc là  một  véc tơ, ma trận hoặc khung  dữ liệu  với kích thước tương ứng với x.  na.rm để hợp lý, phải loại bỏ các giá trị khuyết.  use một chuỗi đặc trưng bất kỳ nhận được từ phương pháp tính hiệp  phương sai trong sự có mặt của các giá trị khuyết. Nó phải là một  trong các chuỗi sau "everything", "all.obs",  "complete.obs", "na.or.complete", hoặc  "pairwise.complete.obs".  method một chuỗi đặc trưng cho biết ước lượng hệ số tương quan (hoặc hiệp  phương sai). Mặc định là "pearson" (default), "kendall", hoặc  "spearman", có thể được rút gọn.  V là  ma  trận  số  đối  xứng,  thường  được  xác  định  là  ma  trận  hiệp  phương sai.      17  Ứng dụng phần mềm R nghiên cứu thống kê  Chương 3 MÔ HÌNH HỒI QUI   I. HỒI QUI TUYẾN TÍNH (LINEAR REGRESSION)   Trong thực tế, các đại lượng thường không đứng độc lập mà luôn có sự phụ  thuộc  qua  lại  với  nhau.  Sự phụ  thuộc  giữa chúng  rất  đa  dạng,  được  diễn  tả  với  nhiều  hình  thức  khác  nhau.  Chúng  ta  có  thể  đánh  giá  mức  độ  cũng  như  chiều  hướng của sự quan hệ, sự tương quan bằng những hệ số đặc trưng nào đó. Khi  giữa các đại lượng có sự tương quan với nhau, chúng ta có thể xây dựng đường  hồi qui để thực hiện mối quan hệ đó. Từ đó có thể dự báo các biến khó quan sát,  khó đo được qua những biến có thể quan sát và đo được bằng mô hình hồi qui mà  ta đã xây dựng.    Trong  các  mô  hình  hồi  qui,  hồi  qui  tuyến  tính  được  xem  là  đơn  giản  nhất  nhưng có ứng dụng nhiều nhất. Mô hình này có thể xây dựng được cho hầu hết  các mối  quan hệ trong những lĩnh  vực khác nhau của cuộc sống, đặc biệt trong  dự báo ngắn hạn. Mô hình hồi qui này cũng được xem là nền tảng, là cơ sở cho  các mô hình nồi qui khác. Có rất nhiều mô hình hồi qui phi tuyến được chuyển  đổi về dạng tuyến tính để xử lý bởi vì xét các vấn đề liên quan cho hồi qui tuyến  tính thì đơn giản hơn nhiều so với hồi qui phi tuyến.  1.1. Hồi qui tuyến tính đơn 1.1.1 Mô hình   Xét hai biến ngẫu nhiên X và Y, trong đó X là biến độc lập còn Y là biến phụ  thuộc.  Trong  thực  tế,  thông  thường  biến  X  có  thể  quan  sát  được,  đo  được  còn  biến Y khó có thể định lượng trực tiếp được nên phải xác định nó thông qua biến  X. Giả sử hai đại lượng này có mối quan hệ tuyến tính  E (Y / X )   0  1 X ,  trong đó   0  và  1  được gọi là hệ số hồi qui lý thuyết. Thông thường   0  được gọi  là điểm chặn (intercept) và  1  là hệ số dốc (slope).      Giả sử rằng mỗi quan sát Y có thể biểu diễn bởi mô hình  Y   0  1 X   .  (3.1)  Ở đây chúng ta giả sử rằng  E ( )  0,  Var( )   2 và    là những biến ngẫu nhiên  không tương quan. Mô hình (3.1) được gọi là mô hình tuyến tính đơn.  1.1.2 Xây dựng mô hình hồi qui mẫu   Khi chúng ta có n cặp dữ liệu  ( x1 ,  y1 ),  ( x2 ,  y2 ),  ......,( xn ,  yn ) , để ước lượng  các tham số   0  và  1 , ta sử dụng phương pháp bình phương tối thiểu.      Khi đó phương trình (3.1) có thể viết lại là  18  Ứng dụng phần mềm R nghiên cứu thống kê  yi   0  1 xi   i ,   (i  1,  2,  ...,  n) .    Mô  hình  hồi  qui  tuyến  tính  mẫu  được  sử dụng  để  ước  lượng  mô  hình  hồi  qui tổng thể là  yˆ  ˆ0  ˆ1 x.     Tổng bình phương sai số giữa giá trị quan sát thực tế và lý thuyết được xác  định như sau:  n n n i 1 i 1 i 1 S ( ˆ0 , ˆ1 )    i   ( yi  yˆ i ) 2   ( yi  ˆ0  ˆ1 xi )2 .    Sử dụng phương pháp bình phương bé nhất để ước lượng các tham số của   0  và  1 . Chúng ta cần tìm  ˆ0 , ˆ1  sao cho  S ( ˆ0 , ˆ1 )  nhỏ nhất. Suy luận này dẫn  tới việc tìm hai hệ số trên bởi hệ phương trình:  n  S   2 yi  ˆ0  ˆ1 xi  0   ˆ i 1   0    n  S  2 y  ˆ  ˆ x  0 0 1 i i  ˆ1 i 1     Hệ phương trình tương đương  n  n 2  ˆ  n  ˆ x   x         i 1  i 0  xi yi  i 1   i 1  i 1    n n   ˆ ˆ    xi  1  n 0   yi  i 1  i 1  Đây  là  hệ  phương  trình  tuyến  tính  bậc  nhất  với  hai  ẩn  ˆ0 , ˆ1 .  Giải  hệ  phương  trình ta được  n n n  n x y ( x )( yi )     i i i  i 1 i 1 i 1 ˆ 1  n n  n  xi2  ( xi )2     i 1 i 1  n n  xi )  yi  ˆ1 (  ˆ  i 1 i 1 0  n   Khi tính được  ˆ0 , ˆ1  ta viết được mô hình hồi qui mẫu là  yˆ  ˆ0  ˆ1 x .   Chú ý 3.1    i)  ˆ0 ,  ˆ1  là ước lượng không chệch của   0 ,  1     ii) Thông thường để tiện lợi hơn trong việc tính toán ta thường dùng công  thức  ˆ0 , ˆ1  dưới hình thức    19  Ứng dụng phần mềm R nghiên cứu thống kê  S ˆ n( xy  x . y )  xy  1  n 2 Sx 1 n   2  x       xi  i n i 1 i 1     ˆ  y  ˆ x ,  0 1 trong đó  S x2  1 n 2 xi  x 2 ,   n i 1 S xy  xy  x y .    Khi đó hai hệ số  ˆ0  và  ˆ1  trở thành   xy  x. y  ˆ1  S x2    ˆ ˆ   0  y  1 x   (3.2)  R cung cấp cho chúng ta hàm lm (viết tắt từ linear model) cho phép chúng ta có  thể tính toán các giá trị của  ˆ  và  ˆ , cũng như tính  s 2  một cách nhanh gọn.  0 1 > lm(yi ~ xi) 1.1.3 Một số thống kê liên quan Đi  kèm  với  hàm  lm  là  hàm  summary(object),  yêu  cầu  R  liệt  kê  các  thống kê liên quan sau đây:   a) Đo lường sự biến thiên bằng hệ số xác định   R2  là một thước đo sự phù hợp của mô hình hồi qui, khi đó hệ số xác định  này thể hiện phần tỉ lệ biến thiên của Y được giải thích bởi mối liên hệ tuyến tính  của Y với X, xác định bởi công thức sau:  R2    SSR SSE  1 ,  SST SST (3.3)  trong đó  n   2 SST   ( yi  y ) : Thể hiện toàn bộ sự biến thiên của Y,  i 1 n   SSR   ( yˆ i  y ) 2 : Thể hiện phần biến thiên của Y được giải thích bởi biến  i 1 X,  n   SSE    i2 :  Thể  hiện  phần  biến  thiên  của  Y  do  các  yếu  tố  khác  không  i 1 nghiên cứu.    20  Ứng dụng phần mềm R nghiên cứu thống kê  b) Sai số chuẩn ước lượng   Sai số chuẩn ước lượng thể hiện sự đo lường biến thiên xung quanh đường  hồi  qui,    nó  đo  lường  sự  biến  thiên  của  các  giá  trị  Y  thực  tế  so  với  giá  trị  do  đường hồi qui tính ra. Độ lệch chuẩn xung quanh đường hồi qui được gọi là sai  số chuẩn của hồi qui, kí hiệu  SY / X được tính bởi công thức sau:  SSE .  n2 SY / X    (3.4)  c) Khoảng tin cậy cho hệ số độ dốc   Khoảng tin cậy cho hệ số độ dốc được tính bởi công thức sau:  ˆ1  t 2 ,n 2 .S   1  ˆ1  t 1 2 ,n 2 .S  ,  1 với  S  là sai số của ước lượng hệ số độ dốc được tính như sau:  1 SY2/ X S 2  1 X 2 i   X  2 .  i n d) Kiểm định F- kiểm tra mối quan hệ tuyến tính của X và Y   Đường hồi qui thực nghiệm  yˆ  ˆ0  ˆ1 x  là ước lượng của phương trình hồi  qui lý thuyết  Y   0  1 X . Phương trình hồi qui lý thuyết là hàm xấp xỉ tốt nhất  trong lớp hàm tuyến tính.  Song  nếu  mức độ liên hệ tuyến tính  giữa X  và  Y quá  yếu thì ước lượng trên không thể sử dụng được. Vì vậy ta cần kiểm tra xem giả  thuyết hồi qui E(Y/X) là tuyến tính có phù hợp hay không.    Để đạt mục đích này ta kiểm định giả thuyết   H : 1  0    :  0 H  1    Nếu giả thuyết  1  0  được chấp nhận thì phương trình hồi qui của Y  theo  X có dạng phi tuyến hay X và Y là hai đại lượng ngẫu nhiên độc lập, ngược lại sẽ  kết luận X và Y có sự liên hệ tuyến tính.  1 n 2  yˆi  y   F  n i n1  n  2  ,  1 2   y  yˆi  n i 1 hay   F     SSR  n  2 .  SSE Miền bác bỏ:  W   F ; 1; n 2 ;   .  21  Ứng dụng phần mềm R nghiên cứu thống kê    Nếu giả thiết  1  0  thì F có phân vị Fisher với bậc tự do (1, n-2).    Kết luận: theo nguyên tắc của bài toán kiểm định.  e) Kiểm định T- kiểm tra mối quan hệ tuyến tính của X và Y   Cũng giống như kiểm định F, Kiểm định T nhằm kiểm tra mối liên hệ tuyến  tính  của  X  và  Y  có  tồn  tại  hay  không,  tức  là  kiểm  tra  hệ  số  1   có  bằng  0  hay  không. Nếu  1  0  có nghĩa là không tồn tại mối quan hệ tuyến tính giữa X và Y.    Giả thuyết kiểm định là:   H : 1  0     H : 1  0 T ˆ1 S   1   Khi đó, nếu giả thuyết đúng thì T tuân theo qui luật Student với n-2 bậc tự    do.  Miền  bác  bỏ  là  W  T : T  t  .  Nghĩa  là  ở  mức  ý  nghĩa   ,  nếu  ;n  2 2   T  t  thì ta bác bỏ giả thuyết H tức là tồn tại mối liên hệ tuyến tính giữa Y và  2 ;n  2 X.  f) Phân tích phần dư   Khi  bắt  đầu  phân  tích  hồi  qui,  vẽ  đồ  thị  phân  tán  là  bước  khởi  đầu.  Nếu  dáng điệu đồ thị tập trung xung quanh một đường thẳng nào đó, chúng ta sẽ tìm  các hệ số   0 ,  1 . Tuy nhiên, việc lập mô hình phải dựa vào các giả thiết sau đây:           i  phân phối theo luật phân phối chuẩn,   i có giá trị trung bình (mean) là 0,   i có phương sai   2  cố định cho tất cả biến xi và  các giá trị liên tục của   i  không có tương quan với nhau.    Vì các phần dư  ei  yi  yˆ i  đại diện tốt cho sai số   i , người ta thường dùng  phân tích phần dư để kiểm tra xem mô hình có phù hợp hay không.    Mô hình hồi qui phù hợp khi phần dư  ei  yi  yˆ i  phải tuân theo một phân  bố chuẩn. Để kiểm tra tính chuẩn của phần dư trong thực hành thông thường ta  e đòi hỏi phần dư chuẩn hóa  di  i  (Standardized residuals) nằm trong khoảng  SY / X (2;  2)  và phần dư có dáng điệu tương đối đều đặn trên trục hoành.      Một số đồ thị phản ánh sự phân tán của phần dư:  22  Ứng dụng phần mềm R nghiên cứu thống kê    Hình 3.1. Dáng điệu của phần dư. g) Dự đoán giá trị trung bình của biến phụ thuộc Y.   Ta đã biết phương trình hồi qui tổng thể có dạng:  E Y / X    0  1 X .    Và nó được ước lượng bằng mô hình   yˆ  ˆ0  ˆ1 x .  i) Ước lượng điểm giá trị trung bình   Dựa trên mô hình ước lượng đó, muốn ước lượng điểm giá trị trung bình có  điều kiện của Y tại x= x0 thì ta chỉ cần thế x0 vào mô hình ước lượng:  yˆ  ˆ0  ˆ1 x .  ii) Ước lượng khoảng giá trị trung bình   Khoảng tin cậy cho trung bình có điều kiện  E (Y / X 0 ) :   ( x0  x ) 2  1 E ( y / x0 )   yˆ 0  t .SY / X  .  2  ; n 2 n x x (  )  2 i     (3.5)   Ví dụ 3.1:  Một nhà nghiên cứu đo lường độ cholestrol trong máu của 18 đối  tượng  nam.  Tỉ  trọng  cơ  thể  cũng  được  ước  tính  cho  mỗi  đối  tượng  bằng  công  thức  tính  BMI  là  lấy  trọng  lượng  chia  cho  chiều  cao  bình  phương.  Kết  quả  đo  lường như sau:  Mã số ID    Độ tuổi  BMI  (age)  Cholesterol  (chol)  1  46  25.4  3.5  2  20  20.6  1.9  23  Ứng dụng phần mềm R nghiên cứu thống kê  3  52  26.2  4  4  30  22.6  2.6  5  57  25.4  4.5  6  25  23.1  3  7  28  22.7  2.9  8  36  24.9  3.8  9  22  19.8  2.1  10  43  25.3  3.8  11  57  23.2  4.1  12  33  21.8  3  13  22  20.9  2.5  14  63  26.7  4.6  15  40  26.4  3.2  16  48  21.2  4.2  17  28  21.2  2.3  18  49  22.8  4  Bảng 3.1. Độ tuổi, tỉ trọng cơ thể và cholesterol.   Lập mô hình hồi qui tuyến tính giữa cholesterol và độ tuổi.    Trước hết ta cần nhập số liệu vào một data frame, và cho một cái tên. Trong  trường  hợp  của  ví  dụ  này,  dữ liệu  được  chứa  trong  directory  “D:\studying\luan van\csv” dưới tên chol.csv, do đó các lệnh sau đây là cần thiết để nhập số liệu:    # Báo cho R biết nơi chứa dữ liệu  > setwd("D:/studying/luan van/csv")   # Nhập số liệu và cho vào một data frame tên data  > data= read.csv("chol.csv", header=TRUE)   # Kiểm tra số liệu trống  > data.new= na.omit(data)   Lệnh trên yêu cầu R loại bỏ những số liệu trống không trong  data và đưa  các số liệu không trống vào data.new.     > names(data) [1] "ID"   "tuoi" "BMI" # Lấy dữ liệu ở cột thứ 4 trong data gán cho chol  > chol=data.new[,4]     # Tương tự gán dữ liệu ở cột 2 cho age 24  "Cholesterol" Ứng dụng phần mềm R nghiên cứu thống kê  > age=data.new[,2]   # Vẽ đồ thị  2.0 2.5 3.0 chol 3.5 4.0 4.5 > plot(age, chol, pch=16)  20 30 40 50 60 age Hình 3.2. Đồ thị liên hệ giữa age và chol.   Ta thấy đồ thị có dạng một đường thẳng, cho thấy giữa age và chol có mối  quan hệ tuyến tính với nhau.    # Tìm mô hình hồi qui tuyến tính phù hợp.  > lm(chol~age) Call: lm(formula = chol ~ age) Coefficients: (Intercept) 1.08922 age 0.05779   Trong  lệnh  trên,  “chol~age”  có  nghĩa  là  mô  tả  chol  là  một  hàm  số  của  age. Kết quả tính toán của R cho thấy  ˆ0  1.089  và  ˆ1  0.057 . Ta có được mô  hình hồi qui tuyến tính như sau:  yˆ  1.089  0.057  age .    Khoảng tin cậy cho hệ số dốc được tính với hàm confint.  > confint(reg) (Intercept) age 2.5 % 97.5 % 0.61973158 1.55870385 0.04634299 0.06923378   Để tiện lợi và nhận được nhiều thông tin hơn, ta đặt một tham số chứa mô  hình hồi qui như sau:  > reg= lm(chol~age)   25  Ứng dụng phần mềm R nghiên cứu thống kê  Khi đó biến reg có thể được sử dụng thay cho lm(chol~age)    # Liệt kê các thông số liên quan đến hàm lm  > summary(reg) Call: lm(formula = chol ~ age) Residuals: Min 1Q Median -0.40729 -0.24133 -0.04522 3Q 0.17939 Max 0.63040 Coefficients: Estimate Std. Error t value Pr(>|t|) Intercept) 1.089218 0.221466 4.918 0.000154 *** age 0.057788 0.005399 10.704 1.06e-08 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.3027 on 16 degrees of freedom Multiple R-squared: 0.8775, Adjusted R-squared: 0.8698 F-statistic: 114.6 on 1 and 16 DF, p-value: 1.058e-08   Ta  thấy,  giá  trị  kiểm  định  t  cho  ˆ   là  10.704 với  chỉ  số  p=1.06x10-8  (p < 0.05), cho thấy    không phải là 0. Nói cách khác mối liên hệ giữa chol và age  có ý nghĩa thống kê.    Sai số chuẩn của ước lượng trong ví dụ này là 0.3027 và R2=0.8775. Giá trị  kiểm định F=114.6 với p=1.05x10-8, tương tự như kiểm định t, kiểm định F cho  ta thấy mối liên hệ giữa chol và age có ý nghĩa thống kê.  * Giá trị phần dư   Để nhận thông tin phần dư từ R ta có lệnh sau đây:    > resid(reg) 1 2 3 4 5 -0.247 -0.344 -0.094 -0.222 0.116 7 8 9 10 11 0.192 0.630 -0.260 0.225 -0.283 13 14 15 16 17 0.139 -0.129 -0.201 0.336 -0.407 6 0.466 12 0.003 18 0.079    Lệnh fitted() trong R giúp chúng ta có thể tính toán  yˆi  cho từng cá nhân  như sau:  > fitted(reg) 1 3.747 7   2 2.244 8 3 4.094 9 4 2.822 10 5 4.383 11 26  6 2.533 12 Ứng dụng phần mềm R nghiên cứu thống kê  2.707 13 2.360 3.169 14 4.729 2.360 15 3.400 3.574 16 3.863 4.383 17 2.707 2.996 18 3.920 * Kiểm định sự phù hợp của mô hình   Để biết mô hình vừa tìm được có thực sự phù hợp với bộ dữ liệu hay không,  ta tiến hành phân tích phần dư cho mô hình trên. Vẽ một loạt các đồ thị của reg  như sau:  > par(mfrow=c(2,2)) # yêu cầu R dành ra 4 cửa sổ  > plot(reg)  # vẽ các đồ thị trong reg  17 4.0 2 1 0 -1 -1 0 1 Theoretical Quantiles Scale-Location Residuals vs Leverage 3.0 3.5 4.0 4.5 1 2 8 0.5 1 6 2 Cook's distance 0.5 0.00 Fitted values 2 0 1.0 17 0.5 2.5 -2 Fitted values 8 6 17 4.5 Standardized residuals 1.5 3.5 0.0 Standardized residuals 3.0 8 6 -1 0.4 0.0 -0.4 Residuals 8 6 2.5 Normal Q-Q Standardized residuals Residuals vs Fitted 0.10 0.20 Leverage   Hình 3.3. Đồ thị phân tích phần dư để kiểm tra các giả định trong phân tích hồi qui.   Đồ  thị  bên  trái  dòng  1  (Residuals  vs  Fitted)  vẽ  phần  dư  ei   và  giá  trị  tiên  đoán  yˆ i . Đồ thị này cho thấy các giá trị phần dư tập trung quanh đường y=0, có  nghĩa là  ei  có giá trị trung bình là 0.    Đồ thị bên phải dòng 1 (Normal Q-Q) vẽ giá trị phần dư và giá trị kỳ vọng  dựa vào phân phối chuẩn. Rất dễ nhận thấy các giá trị phần dư tập trung rất gần  với các giá trị đường chuẩn và nằm trong khoảng (-2; 2), tức là  ei  phân phối theo  tui luật phân phối chuẩn.    Đồ  thị  bên  trái  dòng  2  (Scale-Location)  vẽ  căn  số  phần  dư  chuẩn  ( Standardized residual ) và giá trị của  yˆ i . Chúng ta thấy không có gì khác nhau  giữa các số phần dư chuẩn cho các giá trị của  yˆ i , và do đó   i  có phương sai   2   cố định cho tất cả xi.    27  Ứng dụng phần mềm R nghiên cứu thống kê    Qua phân tích phần dư, có thể kết luận rằng mô hình hồi qui tuyến tính mô  tả mối liên hệ giữa cholesterol và age một cách khá đầy đủ và hợp lí.    Vẽ đường biểu diển mô hình tiên đoán  > plot(chol~age, pch=16) 2.5 3.0 chol 3.5 4.0 4.5 > abline(reg) 2.0 age Regression line 20 30 40 50 60 age   Hình 3.4. Đường biểu diễn mối quan hệ giữa tuổi (age) và cholesterol. * Dự đoán (ước lượng giá trị trung bình)   Sau khi hoàn thành các giai đoạn trên, tiến hành dự đoán cho mô hình với  hàm predict().  > predict(model, data.frame(pred = new pred), level = 0.95, interval = “confidence”) model mô hình dự đoán.  data.frame thay  biến  cũ  bằng  một  biến  mới.  Biến  mới  là  biến  chứa  giá  trị  mà mình muốn dự đoán.  level khoảng ước lượng   .  interval có 2 thuộc tính: “confidence” yêu cầu R liệt kê ra khoảng tin  cậy  cho  những  giá  trị  dự  đoán,  “prediction”  liệt  kê  khoảng  dự đoán.    Giả sử từ ví dụ trên, ta muốn dự báo với biến  age lần lượt là 50, 30, 47. Ta  làm như sau:    #Tạo ra biến mới chứa những phần tử cần dự báo.  > newage=c(50,30,47)  > predict(reg, data.frame(age=newage), level=0.95, interval="confidence")   28  Ứng dụng phần mềm R nghiên cứu thống kê  R cho ta kết quả             fit lwr upr 1 3.978637 3.780636 4.176638 2 2.822869 2.640959 3.004779 3 3.805272 3.627489 3.983055  Hiểu kết quả như sau: fit là kết quả dự báo và  (lwr;upr) là khoảng tin cậy  của fit.  1.2. Hồi qui tuyến tính bội 1.2.1. Mô hình   Trong  mô  hình  hồi  qui  tuyến  tính  đơn,  chúng  ta  chỉ  đơn  thuần  xây  dựng  mối  quan  hệ  tuyến  tính  giữa  hai  biến  X  và  Y.  Nhưng  thực  tế  cho  thấy  một  đại  lượng  không  chỉ  liên  quan  đến  một  đại  lượng  khác  mà  còn  chịu  tác  động  bởi  nhiều đại lượng liên quan. Vì thế, nếu chỉ dùng mô hình hồi qui đơn sẽ không thể  hiện được các quan hệ phức tạp vốn có của nó. Do đó, chúng ta mở rộng mô hình  hồi qui đơn với một biến độc lập thành nhiều biến độc lập, nói cách khác chúng  ta đi xây dựng mô hình hồi qui bội của Y qua tất cả các biến X.    Giả sử ta có biến Y phụ thuộc vào k biến độc lập X1, X2, …, Xk, mỗi giá trị  quan sát của Y có thể biểu diễn theo mô hình:  Y   0  1 X 1  ...   k X k   ,        (3.6) trong đó:    Y được gọi là biến phụ thuộc,    X1, X2, …, Xk là biến độc lập,       là các sai số ngẫu nhiên,     0  là hệ số tự do,  1  là hệ số độ dốc của Y theo biến Xi  khi các biến X1, X2,  …, Xk là không đổi.    Nếu    là biến ngẫu nhiên không tương quan thì mô hình (3.6) được gọi là  mô hình tuyến tính bội.   Một số giả định trước khi xây dựng mô hình hồi qui tuyến tính bội   -  Tuyến  tính  các  tham  số  hồi  qui.  Nghĩa  là  biến  phụ  thuộc  Y  có  thể  được  viết  dưới  dạng  tổ  hợp  tuyến  tính  của  các  mẫu  quan  sát  trên  các  biến  độc  lập  X cộng với véc tơ sai số.    - Các giá trị mẫu của Xk  được ước lượng đúng, không có sai số, các biến X  là đại lượng không ngẫu nhiên.    -  E ( )  0 .    - Các sai số    độc lập với biến X  Cov ( i ,  X ij )  0 .    29  Ứng dụng phần mềm R nghiên cứu thống kê    - Các sai số   i  có phương sai bằng nhau, nếu mô hình có phương sai sai số  thay đổi thì mô hình không còn chính xác.    - Véc tơ sai số    có phân phối chuẩn nhiều chiều với trung bình bằng 0 và  sai số bằng   2  ( E ( )  0  và  Var ( )   2 ).    -  Không  có  biến  độc  lập  nào  là  hằng  số,  và  không  tồn  tại  các  mối  liên  hệ  tuyến tính hoàn toàn chính xác giữa các biến độc lập, nghĩa là biến độc lập này  không là tổ hợp tuyến tính của biến độc lập kia. Hay nói cách khác không có hiện  tượng đa cộng tuyến.  1.2.2. Xây dựng mô hình hồi qui mẫu   Giả  sử  chúng  ta  có  n  quan  sát,  mỗi  quan  sát  có  k  giá  trị  ( yi ,  x1i ,  x2i ,  ..., xki ),  i  1,  2,  3,  ...,  n .  Khi  đó  giá  trị  của  biến  phụ  thuộc  yi   thể  hiện qua mô hình hồi qui tuyến tính bội như sau:  yi   0  1 x1i   2 x2i  ...   k xki   i .    (3.7)  Nói cụ thể hơn:  y1   0  1 x11   2 x21  ...   k xk 1   1 y2   0  1 x12   2 x22  ...   k xk 2   2                           ...   yn   0  1 x1n   2 x2 n  ...   k xkn   n     Mô hình (3.7) có thể viết dưới dạng ma trận  Y   X   . Trong đó  Y ,  X ,    và    lần lượt là ma trận cỡ  (n  1),  (n  k ),  (k  1)  và  (n  1) :  1    x11  ... xk 1   0   0   y1  1    x  ... x      y  12 k2  2 1    ;  X  ;    ;     1    Y         ...  ...  ...  ...          1    x1n  ... xkn   n   n   yn    Chúng  ta  vẫn  dùng  phương  pháp  bình  phương  tối  thiểu  để  ước  lượng  các  tham số   j  ( j  1,  2,  ...,  n)  bằng các hệ số  ˆ j  ( j  1,  2,  ...,  n) . Mô hình hồi qui  tuyến tính bội của mẫu để ước lượng mô hình hồi qui tổng thể là:    yˆ i  ˆ0  ˆ1 x1i  ˆ2 x2 i  ...  ˆk xki ,  (3.8)  hay viết dưới dạng ma trận:  yˆ  X ˆ .  Trong đó  ˆ  ( X T X ) 1 X T Y .  1.2.3. Đánh giá sự phù hợp của mô hình   Một  số  phương  pháp  đánh  giá  sự phù  hợp  của  mô  hình  là:  dựa  vào  hệ  số  xác định, dùng thống kê F.    30  Ứng dụng phần mềm R nghiên cứu thống kê  i) Đánh giá qua hệ số xác định   Tương  tự  như  ở  mô  hình  tuyến  tính  đơn,  hệ  số  xác  định  R2  dùng  để  đo  lường  sự biến  thiên  của  biến  phụ  thuộc  được  giải  thích  bởi  biến  độc  lập.  Công  thức xác định vẫn là:   R2  SSR .  SST ii) Hệ số xác định hiệu chỉnh 2   Hệ số xác định hiệu chỉnh  Radj  là một cách khác đo lường sự biến thiên của  biến phụ thuộc qua các biến độc lập mà có tính đến cỡ mẫu và số biến số độc lập  trong mô hình hồi qui bội, công thức xác định như sau:   n 1  2 Radj  1  1  R 2    ,   n  k 1   (3.9)  trong đó:    n là kích thước mẫu,    k là số biến độc lập trong mô hình.  iii) Dùng thống kê F để đánh giá ý nghĩa toàn diện của mô hình   Ý tưởng của nội dung này là sử dụng hệ số xác định R2 để suy diễn về việc  mô  hình  được  xây  dựng  có  ý  nghĩa  về  mặt  thống  kê  hay  không  trong  việc  giải  thích cho biến thiên của biến phụ thuộc. Chúng ta tiến hành qua các bước sau:  H :  R 2  0   - Đặt giả thuyết:      Hoặc có thể đặt dưới dạng sau:  H :  R 2  0   H :  1   2  ...   k  0   H :  có ít nhất một   i  0 .    - Chọn thống kê sử dụng cho bài toán kiểm định là:  SSR F SSE k .  n  k 1 Nếu giả thuyết H đúng thì thống kê F tuân theo phân phối Fisher với bậc tự  do   k ,  n  k  1 .  Miền bác bỏ:  W   F ; k ; n k 1;  +    Kết luận: theo nguyên tắc của bài toán kiểm định.    31  Ứng dụng phần mềm R nghiên cứu thống kê   Chú ý Trong thực hành chúng ta có thể dựa vào giá trị P-value kiểm định giả  thuyết. Nếu P-value nhỏ hơn mức ý nghĩa    thì bác bỏ giả thuyết H và ngược lại  là chấp nhận giả thuyết H. iv) Tính toán sai số của ước lượng   Sai số của ước lượng được tính theo công thức sau:  SSE .  n  k 1 SY / X    (3.10)  v) Đánh giá ý nghĩa của từng biến độc lập riêng biệt   Trong  kiểm  định  F  chúng  ta  đã  có  kết  luận  được  mô  hình  toàn  diện  có  ý  nghĩa. Điều này có nghĩa là có ít nhất một biến độc lập trong mô hình có thể giải  thích được sự biến thiên của biến phụ thuộc. Tuy nhiên để xác định xem biến độc  lập nào có ý nghĩa về mặt thống kê thì ta thực hiện theo các bước sau đây:  H :   i  0     - Đặt giả thuyết:       - Miền bác bỏ:  W   t ;  +  .   2 ; n k 1    - Giá trị quan sát:  H :   i  0 tqs  i s ,  i với  s là sai số chuẩn ước lượng của hệ số độ dốc của biến độc lập thứ i, được  i tính theo công thức sau:  sY2 / X s2  X 2 i   Xi  2 .  n  Ví dụ 3.2: Xét một tập dữ liệu số thu được từ một nghiên cứu kiểm tra nhiệt  lượng phát sinh trong quá trình đông cứng của xi măng Portland. Nhiệt lượng này  được giả định là một hàm của các thành phần hóa học, các biến sau đây đã được  đo:  x1: số lượng tricalcium aluminat,  x2: số lượng tricalcium silicat,  x3: số lượng ferit nhôm tetracalcium,  x4: số lượng dicalcium silicat,      Y : nhiệt lượng tỏa ra tính bằng calo trên mỗi gram xi măng.  32  Ứng dụng phần mềm R nghiên cứu thống kê  STT x1 x2 x3 x4 Y 1  7  6  26  60  78.5  2  1  26  15  52  74.3  3  11  56  8  20  104.3  4  11  31  8  47  87.6  5  7  52  6  33  95.9  6  11  55  9  22  109.2  7  3  71  17  6  102.7  8  1  31  22  44  72.5  9  2  54  18  22  93.8  10  21  47  4  26  115.9  11  1  40  23  34  83.8  12  11  66  9  12  113.3  13  10  68  8  12  109.4  Bảng 3.2. Dữ liệu quan sát nhiệt lượng phát sinh trong quá trình đông cứng của xi măng Portland. Tìm mô hình hồi qui bội và cho biết nếu x1= 9, x2= 32, x3=11, x4=45 thì Y  (nhiệt  lượng tỏa ra) sẽ là bao nhiêu?.     Giả  sử số  liệu  đã  được  nhập  trong  phần  mềm  Excel  và  được  lưu dưới  tên  XiMang. Để tìm mô hình hồi qui bội ta cần thực hiện một số câu lệnh như sau:  > setwd("D:/studying/luan van/csv") > XiMang = read.csv("XiMang.csv", header=TRUE) > x1= XiMang[,2] # x1 nhận giá trị từ cột 2 của dữ liệu.  > x2= XiMang[,3] # x2 nhận giá trị từ cột 3 của dữ liệu.  > x3= XiMang[,4] # x3 nhận giá trị từ cột 4 của dữ liệu.  > x4= XiMang[,5] # x4 nhận giá trị từ cột 5 của dữ liệu.  > y= XiMang[,6]  # y nhận giá trị từ cột 6 của dữ liệu.  > lm(y~x1+x2+x3+x4) Call: lm(formula = y ~ x1 + x2 + x3 + x4) Coefficients: (Intercept) x1 88.78951 1.51099 x2 0.16493     33  x3 0.07777 x4 -0.44240 Ứng dụng phần mềm R nghiên cứu thống kê  * Dự đoán > predict(lm(y ~ x1+x2+x3+x4), list(x1=9,x2=32, x3=11,x4=45), interval="prediction") fit lwr upr 1 88.61366 80.90073 96.3266  * Kiểm định sự phù hợp của mô hình > reg= lm(y~x1+x2+x3+x4) > summary(reg) Kết quả từ R:  Residuals: Min 1Q -5.1587 -1.1806 Median 0.1552 3Q 1.6132 Max 3.7514 Coefficients: Estimate Std. Error t value (Intercept) 88.78951 71.08170 1.249 x1 1.51099 0.65083 2.322 x2 0.16493 0.75510 0.218 x3 0.07777 0.66596 0.117 x4 -0.44240 0.76687 -0.577 --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘ ’ 1 Pr(>|t|) 0.2469 0.0488 * 0.8326 0.9099 0.5799 ‘*’ 0.05 ‘.’ 0.1 Residual standard error: 3.056 on 8 degrees of freedom Multiple R-squared: 0.9725, Adjusted R-squared: 0.9587 F-statistic: 70.62 on 4 and 8 DF, p-value: 2.813e-06  Trong lệnh “y ~ x1 + x2 + x3 + x4” có nghĩa là y được mô tả bởi các biến  x1, x2, x3, x4. Kết quả tính toán của lm cho ta được mô hình  yˆ i  88.79  1.51x1  0.16 x2  0.07 x3  0.44 x4 .  Ta  thấy  các  biến  độc  lập  xi  (i  1,  2,  3,  4)   giải  thích  khoảng  97%  độ  biến  thiên  của y ( R 2  0.97 ). Giá trị kiểm định F= 70.62 với  P  value  2.81  106  cho ta  biết  giả thuyết  H (có ít nhất  một   i  0 ) bị bác bỏ,  hay nói cách  khác  mô hình  vừa tìm được có ý nghĩa thống kê.   * Kiểm định t   Giá trị P-value của từng biến  x1 ,  x2 ,  x3 ,  x4  lần lượt là 0.048, 0.83, 0.90 và  0.57 trong đó chỉ có giá trị P-value của biến  x1  là nhỏ hơn mức ý nghĩa   =5%  hay nói cách khác chỉ có biến  x1  là có ý nghĩa thống kê.   Ta thấy có sự mâu thuẫn ở mô hình này, kiểm định F cho biết toàn bộ mô hình có  ý nghĩa thống kê, nhưng chỉ có biến  x1  là có ý nghĩa thống kê. Ta thử tiến hành  xét sự tương quan tuyến tính giữa các biến độc lập với nhau bằng lệnh pairs().    34  Ứng dụng phần mềm R nghiên cứu thống kê  > pairs(XiMang) 15 5 15 25 80 100 2 6 10 5 15 stt 40 70 5 x1 25 10 x2 10 30 50 5 15 x3 80 100 x4 Y 2 6 10 10 40 70 10 30 50   Hình 3.5. Đồ thị tương quan tuyến tính giữa các biến với nhau.   Kết quả cho thấy có sự tương quan tuyến tính  giữa các cặp biến  x1   và  x3   với hệ số tương quan 0.7. Ngoài ra  x2  và  x4  cũng có tương quan với nhau với hệ  số tương quan lên đến 0.9. Đây là dấu hiệu của hiện tượng đa cộng tuyến.  1.3. Hiện tượng đa cộng tuyến 1.3.1. Bản chất của hiện tượng đa cộng tuyến a) Định nghĩa    Đa  cộng  tuyến  là  sự tồn  tại  ít  nhất  một  mối  quan  hệ  tuyến  tính  giữa  một  biến giải thích nào đó với tất cả hay với một biến khác có mặt trong mô hình.    Giả sử hồi qui Y có k biến Xi,  i  1,  k  cho dưới dạng:  . Y   0  1 X 1   2 X 2  ...   X k   i .    Khi đó  một  mô hình lý tưởng là các biến  giải thích Xi ( i  1,  k ) không có  tương quan với nhau. Nghĩa là mỗi biến chứa đựng một số thông tin riêng về  Y  và thông tin đó lại không có trong biến giải thích khác. Khi đó ta nói không xảy  ra hiện tượng đa cộng tuyến.    Nếu tồn tại hằng số  1 ,   2 ,  ...,   k   sao cho:   0  1 X 1i   2 X 2i  ...   k X ki  0 ,    35  Ứng dụng phần mềm R nghiên cứu thống kê  với  1 ,   2 ,  ...,   k   không  đồng  thời  bằng  0  thì  giữa các  biến  Xi,  i  1,  k   xảy  ra  hiện tượng đa cộng tuyến hoàn hảo. Nói cách khác là xảy ra trường hợp một biến  giải thích được biểu diễn dưới dạng tổ hợp tuyến tính của các biến còn lại.    Nếu    0  1 X 1i   2 X 2i  ...   k X ki  Vi  0 ,  Vi  là sai số ngẫu nhiên thì ta có hiện tượng đa cộng tuyến không hoàn hảo giữa  các  biến  giải  thích.  Nói  cách  khác  là  một  biến  giải  thích  nào  đó  có  tương  quan  chặt chẽ với một biến giải thích khác.    Trong  thực  tế  hiện  tượng  đa  cộng  tuyến  không  hoàn  hảo  thì  phổ  biến,  ngược lại thì hiện tượng đa cộng tuyến hoàn hảo thì rất hiếm.  b) Nguyên nhân của đa cộng tuyến hoàn hảo   Có rất nhiều nguyên nhân dẫn đến đa cộng tuyến như:    -  Vấn  đề  thu  thập  số  liệu:  phương  pháp  thu  thập  số  liệu  có  thể  sinh  ra  đa  cộng tuyến nếu ta thu thập số liệu có giá trị liên hệ trên một biến.    - Trong hồi qui có chứa các biến giải thích với lũy thừa bậc cao.  1.3.2. Hậu quả của đa cộng tuyến a) Đa cộng tuyến hoàn hảo   Trong trường hợp đa cộng tuyến hoàn hảo, có thể có các hậu quả sau đây:    -  Ước  lượng  bình  phương  bé  nhất  (OLS)  là  ước  lượng  không  chệch.  Tính  không chệch là tính chất của mẫu lặp. Nhưng điều này chẳng nói gì về tính chất  của ước lượng trong mẫu như vậy.    - Cộng tuyến không phá hủy tính chất cực tiểu của phương sai. Nhưng điều  này không có nghĩa là phương sai của ước lượng OLS là phải nhỏ trong mẫu đã  cho.    - Đa cộng tuyến cơ bản là hiện tượng mẫu, nghĩa là nếu các biến X không  có liên hệ tuyến tính trong tổng thể, nhưng có thể có liên hệ đó trong mẫu.  b) Đa cộng tuyến không hoàn hảo   Khi gặp hiện tượng đa cộng tuyến  không hoàn hảo thì có thể gặp các tình  huống sau:    - Phương sai và hiệp phương sai của ước lượng OLS lớn.    - Khoảng tin cậy rộng hơn.    - Tỉ số t “không có ý nghĩa”.     - R2 cao nhưng không có ý nghĩa.    - Các ước lượng OLS và sai số chuẩn của chúng trở nên rất nhạy cảm với  những thay đổi nhỏ trong dữ liệu.    36  Ứng dụng phần mềm R nghiên cứu thống kê    - Dấu của các ước lượng của hồi qui có thể sai.    - Thêm hay bớt đi các biến cộng tuyến với biến khác, mô hình sẽ thay đổi  về dấu hoặc thay đổi về độ lớn của các ước lượng.  1.3.3. Phát hiện ra hiện tượng đa công tuyến a) R2 cao nhưng tỷ số t không có ý nghĩa   Dấu hiệu nhận biết đa cộng tuyến là hồi qui ước lượng được R2 cao (thường  R2 > 0.8) trong khi đó tỉ số t thấp. Đây là một mâu thuẫn bởi vì R2 cao chỉ ra rằng  có sự thích hợp hồi qui trong khi đó tỷ số t thấp lại chứng tỏ rằng không có liên  hệ giữa biến giải thích và biến được giải thích.  b) Tương quan cặp giữa các biến giải thích cao     Hệ số này được tính như sau:  RXZ  (X (X i  X )( Z i  Z ) 2 2 i  X ) ( Zi  Z ) ,  (3.11)  trong đó X, Z là hai biến giải thích trong mô hình.    Nếu tương quan cặp  giữa các biến  giải  thích  cao (lớn hơn 0.8) thì có hiện  tượng  đa  cộng  tuyến.  Tuy  nhiên  tiêu  chuẩn  này  thường  không  chính  xác.  Có  những  trường  hợp  tương  quan  cặp  không  cao  nhưng  vẫn  xảy  ra  hiện  tượng  đa  cộng tuyến.  c) Thực hiện hồi qui phụ   Hồi qui phụ là hồi qui  một biến  giải thích X  nào đó theo các biến còn lại.  Tính R2 và F theo mỗi mô hình theo công thức:    F R 2 (n  k ) .  (1  R 2 )(k  1) (3.12)  Trong đó n là số quan sát và k là số tham số có trong mô hình hồi qui phụ (kể cả  hệ số tự do).    Miền bác bỏ:  W  F ; k 1; n k ;     .    Nếu giá trị  F  F ; k 1;n k  thì giả thuyết H  bị bác bỏ, khi đó tồn tại đa cộng  tuyến.  d) Thừa số tăng phương sai (Variance inflation factor-VIF)   VIF  1 .  (1  rij2 ) Trong đó rij là hệ số tương quan giữa hai biến độc lập trong mô hình.  Nếu  VIF  10  thì mô hình có đa cộng tuyến.    37  (3.13)  Ứng dụng phần mềm R nghiên cứu thống kê    Từ công  thức  (3.13)  cho  thấy  nếu  rij  càng  tăng  thì  hệ  số  VIF  càng  lớn  và  làm tăng mức độ đa cộng tuyến.  1.3.4. Biện pháp khắc phục - Loại trừ một biến độc lập ra khỏi mô hình.  Bước 1: Xem cặp biến giải thích nào có quan hệ chặt chẽ với nhau. Giả sử  X1 ,  X 2 ,  ...,  X k  là các biến độc lập, Y là biến phụ thuộc và X1, X2 có tương quan  chặt chẽ với nhau.      Bước 2: Tính R2 đối với các hàm hồi qui: có mặt cả hai biến; không có mặt  một trong hai biến.    Bước 3: Ta loại biến mà giá trị R2 tính được khi không có mặt biến đó là lớn  hơn.  - Thu thập thêm số liệu hoặc lấy mẫu mới.  - Thay đổi dạng của mô hình.   Lệnh trong R a) Chỉ số AIC Chỉ số AIC cho bởi công thức:   SSE  2k ,  AIC  log    n  n   (3.14)  trong đó    n: số quan sát,    k: số biến có trong mô hình.    Mô hình có chỉ số AIC nhỏ nhất thì sẽ là mô hình tối ưu.    R  cung  cấp  cho  chúng  ta  lệnh  step()dùng  để  khắc  phục  hiện  tượng  đa  cộng tuyến.   b) Hàm step() i) Mô tả   Tìm ra mô hình tối ưu dựa vào chỉ số AIC.  ii) Cấu trúc > step(object, scope=list(lower, upper), direction=c("both", "backward", "forward"),...) object đối tượng đại diện cho mô hình hồi qui.  scope xác định phạm vi của các mô hình nghiên cứu.   direction phương  thức  tìm  kiếm  theo  từng  bước.  Có  3  thuộc  tính  “backward”,  “forward”  và  “both”.  Mặc  định  là  “both”.  Nếu chúng ta không đề cập đến  scope  thì  direction sẽ là    38  Ứng dụng phần mềm R nghiên cứu thống kê  “backward”.    … * Ghi chú: “Backward”: Bắt đầu với mô hình có đầy đủ biến. Sau đó, ở mỗi bước nó    sẽ loại bỏ dần từng biến độc lập không có ảnh hưởng tới biến phụ thuộc (giá trị  p-value của kiểm định t lớn hơn mức ý nghĩa   ). Quá trình tiếp tục cho tới khi  tìm được mô hình thích hợp thì sẽ dừng lại.    “Forward”:  Bắt  đầu  với  mô  hình  không  có  biến  độc  lập.  Nó  sẽ  thêm  dần  từng biến độc lập có tác động đến biến phụ thuộc hay nói cách khác biến độc lập  có ý nghĩa thống kê (p-value của kiểm định t nhỏ hơn mức ý nghĩa   ). Quá trình  được tiếp tục cho đến khi tìm được mô hình thích hợp.    “Both”: sử dụng cả hai “Backward” và “Forward”.   Ví dụ 3.3: Ta trở lại với ví dụ 3.2  > reg=lm(y~x1+x2+x3+x4) > summary(reg) Call: lm(formula = y ~ x1 + x2 + x3 + x4) Residuals: Min 1Q -5.1587 -1.1806 Median 0.1552 3Q 1.6132 Max 3.7514 Coefficients: Estimate Std. Error t value (Intercept) 88.78951 71.08170 1.249 x1 1.51099 0.65083 2.322 x2 0.16493 0.75510 0.218 x3 0.07777 0.66596 0.117 x4 0.44240 0.76687 -0.577 --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘ ’ 1 Pr(>|t|) 0.2469 0.0488 * 0.8326 0.9099 0.5799 ‘*’ 0.05 ‘.’ 0.1 Residual standard error: 3.056 on 8 degrees of freedom Multiple R-squared: 0.9725, Adjusted R-squared: 0.9587 F-statistic: 70.62 on 4 and 8 DF, p-value: 2.813e-06   Ta thấy rằng R2 có  giá trị rất cao 0.97 cho thấy một  mô hình hồi qui có  ý  nghĩa thống kê. Nhưng kiểm định t của mô hình chỉ ra rằng một số biến trong mô  hình không có ý nghĩa thống kê, bằng chứng là giá trị P-value của chúng lớn hơn  0.05 (5%). Do đó ta có thể nhận biết rằng mô hình trên có xảy ra hiện tượng đa  cộng tuyến.   * Khắc phục hiện tượng đa cộng tuyến với hàm step()   + Sử dụng thuộc tính “forward” > null=lm(y~1,data=data)   39  Ứng dụng phần mềm R nghiên cứu thống kê  > reg=lm(y~x1+x2+x3+x4)  > step(null, scope=list(lower=null, upper=reg), direction="forward")   Trong các lệnh trên,  null là  mô  hình chỉ có  hệ số   0  (Intercept). Khi  đó  null sẽ là giới hạn dưới, giới hạn trên sẽ là  reg. Do chúng ta sử dụng thuộc  tính  “forward” của hàm  step nên chúng ta sẽ đi từ mô hình null đến mô hình  reg để tìm mô hình tối ưu.   Kết quả xuất ra từ R như sau:  Start: y ~ 1 AIC=71.43 Step: AIC=58.69 y ~ x4 Df Sum of Sq RSS AIC + x4 1 1840.2 872.79 58.688 + x2 1 1705.4 1007.58 60.555 + x3 1 1441.1 1271.89 63.583 + x1 1 1435.8 1277.14 63.637 2712.96 71.431 Df Sum of Sq RSS AIC + x1 1 796.75 76.04 28.962 + x3 1 454.67 418.12 51.121 872.79 58.688 + x2 1 9.59 863.20 60.544  Step: AIC=28.96 y ~ x4 + x1 Df Sum of Sq + x2 + x3 1 1 RSS AIC 76.039 28.962 1.1977 74.841 30.756 0.8795 75.160 30.811 Call: lm(formula = y ~ x4 + x1, data = data) Coefficients: (Intercept) x4 x1 103.3121 -0.6166 1.4289    + Sử dụng thuộc tính “backward”  > step(reg, scope=list(lower=null), direction= "backward")   Kết quả từ R  Start: AIC=32.73 y ~ x1 + x2 + x3 + x4 - x3 - x2 Df Sum of Sq 1 0.127 1 0.446 - x4 1 - x1 1 RSS AIC 74.841 30.755 75.160 30.811 3.108 77.822 31.263 74.714 32.733 50.339 125.053 37.429 Step: AIC=30.76 y ~ x1 + x2 + x4 Df Sum of Sq - x2 1 1.20 - x4 - x1 Step: AIC=28.96 y ~ x1 + x4 Df Sum of Sq - x1 - x4   1 1 RSS AIC 76.04 28.962 796.75 872.79 58.688 1201.10 1277.14 63.637 40  1 1 RSS AIC 76.04 28.962 74.84 30.755 39.38 114.22 34.252 788.36 863.20 60.544 Ứng dụng phần mềm R nghiên cứu thống kê  Call: lm(formula = y ~ x1 + x4) Coefficients: (Intercept) 103.3121 x1 1.4289 x4 -0.6166   Để  cho  đơn  giản  thì  thông  thường  chúng  ta  thường  sử  dụng  thuộc  tính  “both”, nghĩa là sử dụng cả hai phương pháp “forward” và “backward”.  > step(reg, direction="both")   Từ kết quả trả về của hàm step cho ta thấy chỉ số AIC của mô hình với hai  biến x1 và x4 là  nhỏ nhất, do đó mô hình tối ưu nhất sẽ là mô hình chỉ có biến x1  và x4.  yˆ  103.3  1.43 x1  0,62 x4   > summary(lm(y~x1+x4)) R xuất ra kết quả  Call: lm(formula = y ~ x1 + x4) Residuals: Min 1Q -5.1119 -1.3886 Median 0.0224 3Q 1.6686 Max 3.7343 Coefficients: Estimate Std. Error t value (Intercept) 103.31209 2.14205 48.23 x1 1.42892 0.13959 10.24 x4 -0.61657 0.04906 -12.57 --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘ ’ 1 Pr(>|t|) 3.54e-13 *** 1.28e-06 *** 1.89e-07 *** ‘*’ 0.05 ‘.’ 0.1 Residual standard error: 2.758 on 10 degrees of freedom Multiple R-squared: 0.972, Adjusted R-squared: 0.9664 F-statistic: 173.4 on 2 and 10 DF, p-value: 1.73e-08    Kết quả trên cho thấy  hai biến x1  va x4  giải thích  khoảng 97% phương sai  của y.  II. HỒI QUI PHI TUYẾN   Mô hình hồi qui tuyến tính được sử dụng rộng rãi trong rất nhiều lĩnh vực  khác nhau, tuy nhiên trong một số lĩnh vực đặc thù thì các mô hình trên tỏ ra kém  chính xác. Mặt khác, dữ liệu trong thực tế rất phong phú nên các mô hình hồi qui  khác  tuyến  tính  nhằm  giải  quyết  vấn  đề  khó  khăn  này.  Những  mô  hình  hồi  qui  không phải tuyến tính được gọi là phi tuyến. Do đó mô hình hồi qui phi tuyến rất  phong phú, không thể nào có thể liệt kê hết được. Hiện nay đã có nhiều mô hình  hồi qui đặc biệt ra đời để đáp ứng nhu cầu của việc dự báo trong những lĩnh vực  khác nhau. Sau đây là một số mô hình hồi qui phi tuyến thông dụng.    41  Ứng dụng phần mềm R nghiên cứu thống kê  2.1. Hồi qui đa thức   Mô hình hồi qui đa thức có dạng:  yi   0  1 x   2 x 2  ...   k x k   i ,    (3.15)  trong  đó  các   i ,  i  1,  2,  ...,  k là  hệ  số  đo  lường  mối  liên  hệ  giữa  y  và  x,   i   là  phần  dư  của  mô  hình  với  giả  định  các   i   tuân  theo  phân  phối  chuẩn,  có  trung  bình bằng 0 và phương sai bằng nhau.    Trong  mô hình trên, ta thấy rằng mô hình hồi qui đa thức còn là một phát  triển  trực  tiếp  từ  mô  hình  tuyến  tính  bội.  Nếu  ta  đặt  X 1  x;  X 2  x 2 ;  ...;    X k  x k  thì nó trở thành mô hình tuyến tính bội với k biến độc lập. Ngoài ra nếu  các hệ số   i  0  với  i  2,  3,   ,  k  thì mô hình trên sẽ đơn giản thành mô hình  hồi qui tuyến tính đơn.   Ví dụ 3.4:  Thí  nghiệm  sau  đây  tìm  mối  liên  hệ  giữa  hàm  lượng  gỗ  cứng  (hardwood of concentration) và độ căng của vật liệu (tensile strength). Mười chín  vật liệu khác nhau với nhiều hàm lượng gỗ cứng được thử nghiệm để đo độ căng  mạnh của vật liệu, và kết quả được tóm lược trong bảng số liệu sau đây:    STT  Hàm lượng gỗ cứng (x)  Độ căng mạnh (y)  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  1.0  1.5  2.0  3.0  4.0  4.5  5.0  5.5  6.0  6.5  7..0  8.0  9.0  10.0  11.0  12.0  13.0  14.0  15.0  6.3  11.1  20.0  24.0  26.1  30.0  33.8  34.0  38.1  39.9  42.0  46.1  53.1  52.0  52.5  48.0  42.8  27.8  21.9  Bảng 3.3. Hàm lượng gỗ cứng và độ căng của vật liệu.   Dữ  liệu  được  nhập  trong  phần  mềm  Excel  là  lưu  dưới  tên  docangvatlieu.csv.    42  Ứng dụng phần mềm R nghiên cứu thống kê    Lấy dữ liệu từ windows  > setwd("D:/studying/luan van/csv") > data=read.csv("docangvatlieu.csv", header=T)   Gọi  x  là  hàm  lượng  gỗ  cứng  và  y  là  độ  căng  mạnh,  công  việc  được  thực  hiện trên phần mềm R như sau:  > x=data[,2]; y=data[,3] Thử với mô hình hồi qui tuyến tính đơn với lệnh:  > reg.simple=lm(y~x) > summary(reg.simple) Call: lm(formula = y ~ x) Residuals: Min 1Q -25.986 -3.749 Median 2.938 3Q 7.675 Max 15.840 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 21.3213 5.4302 3.926 0.00109 ** x 1.7710 0.6478 2.734 0.01414 * --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 11.82 on 17 degrees of freedom Multiple R-squared: 0.3054, Adjusted R-squared: 0.2645 F-statistic: 7.474 on 1 and 17 DF, p-value: 0.01414    Từ kết quả ta nhận được mô hình tuyến tính đơn như sau:  y  21.32  1.77 x .    Với R2 là 0.31 cho thấy mô hình tuyến tính đơn này giải thích khoảng 31%  phương sai của y. Phương sai của phương trình này là s2 = (11.82)2 = 139.7.    Tiếp tục ta vẽ biểu đồ và đường biểu diễn của mô hình tuyến tính đơn vừa  tìm được:  > plot(y~x, xlab="hardwood of concentration", ylab= "tensile strength") > abline(reg.simple)   43  30 20 tensile strength 40 50 Ứng dụng phần mềm R nghiên cứu thống kê  10 Hardwood Regression line 2 4 6 8 10 12 14 hardwood of concentration   Hình 3.6. Mối liên hệ giữa hàm lượng gỗ cứng và độ căng mạnh của vật liệu.   Qua hình 3.6, thấy rõ rằng mô hình hồi qui tuyến tính đơn hoàn toàn không  thích hợp cho bộ số liệu,  vì  mối liên hệ  giữa hai biến này  không tuân theo  một  quy  luật  đường  thẳng,  mà  là  một  đường  cong.  Nói  cách  khác,  một  mô  hình  đa  thức bậc hai sẽ phù hợp hơn. Có thể viết mô hình đa thức bậc hai như sau:  yi   0  1 x   2 x 2 .    Việc ước tính các hệ số   i    i  0,  1,  2   được thực hiện như sau:  > quadratic = lm(y~poly(x,2))   Trong lệnh trên,  “Poly(x, 2)” miêu tả hàm đa thức bậc hai của x, trong  trường hợp bậc của đa thức là n thì ta sử dụng poly(x, n).  > summary(quadratic)   Và đây là kết quả từ R:  Call: lm(formula = y ~ poly(x, 2)) Residuals: Min 1Q -5.8503 -3.2482 Median -0.7267 3Q 4.1350 Max 6.5506 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 34.184 1.014 33.709 2.73e-16 *** poly(x, 2)1 32.302 4.420 7.308 1.76e-06 *** poly(x, 2)2 -45.396 4.420 -10.270 1.89e-08 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 4.42 on 16 degrees of freedom   44  Ứng dụng phần mềm R nghiên cứu thống kê  Multiple R-squared: 0.9085, Adjusted R-squared: 0.8971 F-statistic: 79.43 on 2 and 16 DF, p-value: 4.912e-09    Ta nhận được mô hình mới như sau:  y  34.18  32.30 x  45.4 x 2 .    Mô hình mới này giải thích khoảng 91% phương sai của y. Ước số phương  sai của mô hình này là s2  = (4.42)2  = 19.5 và tất cả các thông số đều có ý nghĩa  thống kê.   30 10 20 tensile strength 40 50   Rõ ràng ta thấy mô hình đa hồi qui đa thức bậc hai này tốt hơn nhiều so với  mô hình hồi qui tuyến tính.   2 4 6 8 10 12 14 hardwood of concentration   Hình 3.7. So sánh hai mô hình: tuyến tính đơn và đa thức bậc hai.   Trên hình 3.7 đường cong màu xanh là đường hồi qui đa thức bậc hai.  Đồ thị trong hình 3.7 được vẽ bởi các lệnh sau đây:  > plot(y~x, xlab="hardwood of concentration", ylab="tensile strength") > abline(reg.simple) > lines(x, quadratic$fitted)   Thử tiếp tục với mô hình đa thức bậc ba (cubic) xem thử có mô tả y tốt hơn  mô hình bậc hai (quadratic) hay không.  > cubic=lm(y~poly(x,3)) > summary(cubic) Và kết quả như sau:    45  Ứng dụng phần mềm R nghiên cứu thống kê  Call: lm(formula = y ~ poly(x, 3)) Residuals: Min 1Q -4.6250 -1.6109 Median 0.0413 3Q 1.5892 Max 5.0216 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 34.1842 0.5931 57.641 < 2e-16 *** poly(x, 3)1 32.3021 2.5850 12.496 2.48e-09 *** poly(x, 3)2 -45.3963 2.5850 -17.561 2.06e-11 *** poly(x, 3)3 -14.5740 2.5850 -5.638 4.72e-05 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 2.585 on 15 degrees of freedom Multiple R-squared: 0.9707, Adjusted R-squared: 0.9648 F-statistic: 165.4 on 3 and 15 DF, p-value: 1.025e-11   Ta nhận được mô hình đa thức bậc ba:   y  34.2  32.3x  45.4 x 2  14.6 x 3 .  Ta thấy mô hình đa thức bậc ba này mô tả tốt hơn hai mô hình trước, với R2 là  0.97, nghĩa là mô hình đa thức bậc ba giải thích khoảng 97% phương sai của y.  Uớc lượng phương sai là s2 = 6.76 và tất cả các thông số đều có ý nghĩa thống kê.  * Dự đoán và vẽ đồ thị   # Tạo biến mới xnew với nhiều số gần nhau.  > xnew=(0:160)/10   # Giá trị tiên đoán của y qua hai đa thức bậc hai và bậc ba.  > quadr.pred=predict(quadratic, data.frame(x=xnew)) > cubic.pred=predict(cubic, data.frame(x=xnew))   # Vẽ đồ thị chứa 3 đường hồi qui: tuyến tính đơn, đa thức bậc hai và bậc ba.  > plot(y~x, pch=16) > abline(reg.simple) > lines(xnew, quadr.pred, col=4, lwd=2) > lines(xnew, cubic.pred, col=6, lwd=2) Kết quả được thể hiện bởi đồ thị sau đây:    46  30 10 20 y 40 50 Ứng dụng phần mềm R nghiên cứu thống kê  2 4 6 8 10 12 14 x   Hình 3.8. Biểu diễn ba đường hồi qui.   Chú ý.  Trong  hình  3.8  đường  màu  hồng  là  đường  hồi  qui  đa  thức  bậc  ba,  đường  màu  xanh  dương  là  đường  hồi  qui  đa  thức bậc  hai  và  đường  thẳng  biểu  diễn cho đường hồi qui tuyến tính đơn.  2.2. Hồi qui logistic 2.2.1. Những vấn đề cơ bản về ước lượng hợp lý cực đại  Phương pháp chung của hợp lý cực đại (log likelihood)   Giả  sử X1,  X2,  …,  Xn  là  các  biến  ngẫu  nhiên  độc  lập  có  cùng  hàm  mật  độ  xác suất  f ( X i ,   )  trong đó    (1 ,   2 ,  ...,   m )  là những tham số chưa biết. Lấy  một  mẫu  gồm  n  phần  tử  X   X 1  x1 ,  X 2  x2 ,  ...,  X n  xn  ,  ta  có  hàm  mật  độ  xác suất đồng thời của n quan sát được xác định như sau:  n   L ( )  f ( x1 ,  x2 ,  ..., xn |  )   f ( xi ,   ) .  (3.16)  i 1 Hàm số xác định bởi (3.16) là hàm theo véc tơ tham số   . Hàm này được gọi là  hàm hợp lý của    được xây dựng từ mẫu X.    Hàm  L ( )   có  thể  được  chọn  như là  một  tiêu  chuẩn  của  ước  lượng  tối  ưu  của   . Phương pháp ước lượng làm cực đại hàm hợp lý được gọi là phương pháp  hợp lý cực đại của tham số. Trong phương pháp này giá trị tối ưu  ˆ  của    được  chọn sao cho nó làm  L ( ) đạt giá trị lớn nhất.    Khi cực đại của một tổng thì đơn giản hơn tích, vì vậy thay vì cực đại hàm  L ( )  người ta cực đại hàm  ln( L ( ))  (nếu  ˆ  cực đại trong  ln( L ( ))  thì nó cũng  cực đại  trong L ( ) ).  Gradient  của  ln( L ( ))   là  U ( )   được  gọi  là  hàm  điểm.  Để  tìm  ˆ  cho hàm điểm  U ( )  0 , khi đó ta có hệ phương trình sau:    47  Ứng dụng phần mềm R nghiên cứu thống kê   n  ln  f  xi |         0   i 1 1   n    ln  f  xi |        i 1  0 .    (3.17)     2                ...  n    ln  f  x |     i    i 1 0   m    Đây  là  hệ  phương  trình  gồm  m  phương  trình,  m  ẩn  số  i ,  i  1,  2,  ...,  m .  Giải hệ phương trình này ta sẽ tìm được tham số  i .  2.2.2. Odds và tỉ số odds  Định nghĩa 3.1 Odds của một biến cố xảy ra được định nghĩa là tỉ số giữa xác  suất của biến cố xảy ra với xác suất của biến cố không xảy ra.    Odds của biến cố A được kí hiệu là odds(A).    odds ( A)  p( A) ,  1  p ( A) (3.18)  trong đó p là xác suất biến cố xảy ra.   Tỉ số odds    Cho biến cố A, B khi đó ta có    OR ( A,  B)  odds ( A) .  odds ( B) (3.19)   Nhận xét 3.1: Odds của  một biến cố đã  xảy ra là con số so sánh số lần xác  suất xảy ra và không xảy ra của một biến cố. Trong khi đó OR(A, B) là con số so  sánh số lần của odds(A) và odds(B).  2.2.3. Hồi qui logistic đơn a) Mô hình   Với  xác  suất  p  để  một  biến  cố  A  xảy  ra,  người  ta  cần  đưa ra  một  phương  trình  mô  tả  mối  quan  hệ  giữa  nó  với  giá  trị  của  các  biến  độc  lập  xi ,  i  1,  2,  ...,  n . Phương trình dạng tuyến tính biểu diễn p qua một tổ hợp tuyến  tính  của  các  biến  độc  lập  thường  được  nghĩ  đến  trước  tiên.  Tuy  nhiên,  một  phương trình tuyến tính như vậy là  không  hợp lý, vì xác suất p chỉ nhận  giá trị  trên   0,  1 , trong khi đó tổ hợp tuyến tính của các biến độc lập có thể nhận giá trị  bất kỳ trên đường thẳng thực. Để giải quyết khó khăn này người ta sử dụng mô  hình hồi qui logistic. Hàm logistic sẽ tìm mối quan hệ giữa odds(p) với các biến    48  Ứng dụng phần mềm R nghiên cứu thống kê  độc lập bất kỳ. Mối quan hệ có thể là phi tuyến hay tuyến tính, tuy nhiên trong  các bài toán thực tế mối quan hệ này thông thường là tuyến tính. Vì vậy luận văn  chỉ giới hạn trong mối quan hệ tuyến tính.    Xét hai biến X và Y, trong đó Y chỉ nhận hai giá trị 0 và 1 còn giá trị của X  ảnh  hưởng  đến  giá  trị  của  Y.  Gọi  P ( X )  P (Y  1| X )   là  xác  suất  có  điều  kiện  của Y=1  khi X xảy ra. Giả sử P(X) có mối quan hệ với biến X, nhưng ta  không  thể tìm trực tiếp mối quan hệ này vì P(X) thuộc đoạn [0, 1] trong khi X là tùy ý.   P( X )    Bởi vì  ln  odds  P ( X )    ln    có mối quan hệ với P(X) và có giá  1  P ( X )  trị bất kỳ (xem hình 3.9) nên ta có thể thay thế mối quan hệ giữa P(X) và X bằng   P( X )  mối quan hệ giữa  ln    và X. Giả sử mối quan hệ này là tuyến tính.  1  P ( X )     P( X )  ln     0  1 X ,  1  P ( X )  (3.20)  P( X )  e(    X ) .  1  P( X ) (3.21)  hay    0 1 0 -4 -2 logit(p) 2 4  (3.20) và (3.21) là hai hình thức của mô hình hồi qui logistic đơn.  0.0 0.2 0.4 0.6 0.8 1.0 p(x)   Hình 3.9. Mối quan hệ giữa logit[p(x)] và p(x).   Trong đó        P( X )  ln  odds  P ( X )    hay  ln    còn được gọi là  logit  P ( X )  .  1  P ( X )   49  Ứng dụng phần mềm R nghiên cứu thống kê    Hai tham số   0  và  1  được gọi là hai hệ số của đường hồi qui, cụ thể hơn   0  được gọi làm điểm chắn,  1  được gọi là độ dốc.   Chú ý 3.2    i) Ta có   logit  P ( X  1)   logit  P( X )    0  1 ( X  1)  ( 0  1 X )  1 .    Như vậy khi Xi tăng lên 1 đơn vị thì  logit  P ( X )   sẽ tăng lên  1 %.    ii) Khi X=X0 thì giá trị của odds tương ứng là  odds  P ( X ) | X 0   e    X .  0   1 0 Khi X=X0+1 (tức tăng một đơn vị từ X0), thì   odds  P ( X ) | X 0  1  e    ( X 0   1 0 1) .  Khi đó tỉ số OR là tỉ số của hai odds được tính bằng công thức sau:  odds  P | X 0  1 e    ( X 1) OR      X  e  .  odds  P | X 0  e 0 1 0 1 0 1 0 b) Xây dựng mô hình hồi qui mẫu   Thông thường để ước lượng các hệ số trong đường hồi qui ta dùng phương  pháp bình phương bé nhất, tuy nhiên trong hồi qui logistic nó rất phức tạp. Ở đây  ta sử dụng phương pháp hợp lý cực đại.    Giả  sử  ta  có  n  mẫu  quan  sát  độc  lập  (xi, pi),  i=1,  2,  …,  n  trong  đó  Pi ( x)  pi .  Giả  sử phân  phối  có  điều  kiện  cho  yi  khi  xi  xảy  ra  là  phân  phối  nhị   p  thức  B 1,  pi   với  ln  i    0  1 x .   1  pi    Gọi  ˆ0 ,  ˆ1   lần  lượt  là  các  ước  lượng  của   0   và  1 .  Chúng  ta  xây  dựng  đường hồi qui:     pˆ ( x)  ˆ   0  ˆ1 x .  ln    1  pˆ ( x )  (3.22)    Việc  ước  lượng  các  hệ  số  ˆ0 ,  ˆ1   trong  (3.22)  rất  phức  tạp,  có  thể  đề  cập  một cách ngắn gọn bởi một hệ phương trình sau đây:  n n 1  e  ˆ  ˆ x    y     i  i 1  i 1    n n   ˆ  ˆ x     x y   x  1  e  i i i   i 1  i 1 1 0 1 i 1 0     1 i Ta có xác suất sự thành công được xác định bởi  50  Ứng dụng phần mềm R nghiên cứu thống kê  ˆ ˆ e   X pˆ  ,  ˆ ˆ 1  e   X 0 1 0 0 1 0 hay   pˆ    1 ˆ ˆ 1  e(    X 0 1 0) .  (3.23)   Lệnh trong R   Hàm số glm (viết tắt từ generalized linear model) trong R được sử dụng để  tìm hệ số hồi qui cho mô hình logistic, với cú pháp như sau:  > glm(fomular, family = “binomial”) Chú ý:  Trong  hàm  glm  có  nhiều  luật  phân  phối,  trong  trường  hợp  mô  hình  hồi  qui logistic có biến phụ thuộc là nhị phân nên chúng ta sử dụng phân phối là nhị  thức (family = “binomial”).   Ví dụ 3.5: Nghiên cứu mối tương quan  giữa fibrinogen  và  ESR (erythrocyte  sedimentation rate). ESR là tỉ suất mà các hồng cầu đọng lại trong huyết thanh.  Bệnh nhân với ESR cao hơn 20mm/giờ có nguy cơ cao bị bệnh thấp khớp, và các  bệnh  viêm  mãn  tính;  và  bệnh  nhân  với  ESR  thấp  hơn  20mm/giờ  được  xem  là  bình  thường.  Khi  ESR  tăng,  một  số  protein  trong  máu  cũng  tăng.  Một  trong  những protein đó là fibrinogen. Một nghiên cứu đo lường ESR và fibrinogen ở 32  đối  tượng  (Collett  D,  Jenmain  AA.  Residuals,  outliers  ang  influential  observations  in  regression  analysis.  Sain  Malaysias  1985;  4:493-511),  các  nhà  nghiên cứu phát hiện trong nhóm này có 6 đối tượng  với ESR cao hơn 20 mm/  giờ. Số liệu của 32 đối tượng được trình bày trong bảng sau đây:  STT  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  Fibrinogen  2.52  2.56  2.19  2.18  3.41  2.46  3.22  2.21  3.15  2.6  2.29  2.35  3.15  2.68  2.6  2.23  ESR  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  STT  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  Fibrinogen  2.88  2.65  2.28  2.67  2.29  2.15  2.54  3.34  2.99  3.32  5.06  3.34  2.38  3.53  2.09  3.39  ESR  0  0  0  0  0  0  0  0  0  0  1  1  1  1  1  1  Bảng 3.4: Nghiên cứu đo lường ESR và fibrinogen ở 32 đối tượng.   51  Ứng dụng phần mềm R nghiên cứu thống kê    Trong bảng trên các bệnh nhân có nguy cơ cao bị bệnh thấp khớp được mã  hóa là 1 (ESR=1) và các bệnh nhân “bình thường” là 0 (ESR=0). Tìm mối tương  quan giữa Fibrinogen và ESR.    Để nhập số liệu các bước sau đây là cần thiết:  > setwd("D:/studying/luan van/csv") > fulldata=read.csv("ESR.csv", header=T) > fibrinogen=fulldata[,2] > esr=fulldata[,3]   # Vẽ đồ thị thể hiện mối quan hệ giữa ESR và fibrinogen  > plot(fibrinogen, esr, pch=16, 0.6 0.4 0.0 0.2 ESR (0=no, 1=yes) 0.8 1.0 ylab="ESR (0=no, 1=yes)") 2.0 2.5 3.0 3.5 4.0 4.5 5.0 fibrinogen Hình 3.10. Đồ thị thể hiện mối quan hệ giữa ESR và fibrinogen. > boxplot(fibrinogen ~ esr, xlab="ESR", ylab="Fibrinogen")   Lệnh  trên  yêu  cầu  R  vẽ  biểu  đồ  hình  hộp  (box  plot)  về  fibrinogen  phân  nhóm theo biến ESR, và kết quả được trình bày trong biểu đồ sau đây:    52  3.5 2.0 2.5 3.0 Fibrinogen 4.0 4.5 5.0 Ứng dụng phần mềm R nghiên cứu thống kê  0 1 ESR   Hình 3.11. Thể hiện độ phân phối của fibrinogen giữa hai nhóm ESR.   Gọi p là xác suất bệnh nhân có nguy cơ bị thấp khớp. Ta có phương trình  hồi qui:   pˆ ( x)  ˆ ˆ ln     0  1  fibrinogen .  ˆ p x 1  ( )     (3.24)  Để ước tính các thông số của mô hình (3.24) ta thực hiên các bước sau:  > logistic=glm(esr~fibrinogen, family="binomial") > summary(logistic) Kết quả xuất ra từ R  Call: glm(formula = esr ~ fibrinogen, family = "binomial") Deviance Residuals: Min 1Q Median -0.9298 -0.5399 -0.4382 3Q -0.3356 Max 2.4794 Coefficients: Estimate -6.8451 1.8271 (Intercept) fibrinogen --Signif. codes: ‘ ’ 1 Std. Error 2.7703 0.9009 z value -2.471 2.028 Pr(>|z|) 0.0135 * 0.0425 * 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 30.885 on 31 degrees of freedom Residual deviance: 24.840 on 30 degrees of freedom AIC: 28.84 Number of Fisher Scoring iterations: 5   53  Ứng dụng phần mềm R nghiên cứu thống kê    Từ kết quả trên ta có mô hình log(odds) hay logit như sau:   pˆ ( x)  ˆ   0  ˆ1 x  6.85  1.83* fibrinogen ,  ln    1  pˆ ( x)    (3.25)  hay   pˆ ( x)  exp(6.85  1.83* fibrinogen) .  1  pˆ ( x) Khi đó xác suất để bệnh nhân mắc bệnh thấp khớp là:  pˆ  1 1 .   1  exp ( ˆ0  ˆ1 X 0 ) 1  exp  ( 6.45  1.71* fibrinogen)      Từ mô hình hồi qui (3.25), ta có nhận xét:    Nếu fibrinogen tăng lên 1 thì khi đó odds(p) tăng lên exp(1.83x1) = 6.23.    Nếu fibrinogen tăng lên 2 thì odds(p) tăng lên exp(1.83x2) = 38.86.  d) Tổng bình phương sai số deviance   Trong hồi qui logistic định nghĩa tổng bình phương sai số được thay thế bởi  khái niệm deviance. Trước khi đến với công thức tính deviance, ta cần xét log likelihood của hồi qui logistic.  * Log likelihood của hồi qui logistic   Gọi yi là số lần xảy ra khi thực hiện mi phép thử i=0, 1, …, n.   Khi đó  yi | xi  Bin(mi ,  p( xi )) .    Hàm mật độ xác suất được xác định như sau:  P (Yi  yi | xi )  Cmy p( xi ) y (1  p ( xi )) m  y .  i i i i i   Ta có hàm hợp lý cực đại (likelihood) như sau:  n   n L   P (Yi  yi | xi )   Cmy p ( xi ) y (1  p ( xi ))m  y .  i i 1   i i (3.26)  i i i 1 Hàm log-likelihood được cho bởi:  n    log( L )   log Cmy  log  p ( xi ) y   log 1  p( xi )   i 1 i i i n mi  yi      .            =    yi log  p ( xi )   ( mi  yi ) log  1  p ( xi )    log C yi mi i 1 Do  luận  văn  chỉ  xét  hồi  qui  logistic  với  biến  phụ  thuộc  là  biến  nhị  phân  nên     mi= 1. Khi đó    54  Ứng dụng phần mềm R nghiên cứu thống kê  n log( L )      yi log  p ( xi )   (1  yi ) log  1  p ( xi )    log  C1y   .  (3.27)  i 1   i * Công thức tính deviance n   y   1  yi  G 2  2  yi log  i    (1  yi ) log   .  i 1   yˆ i    1  yˆ i    (3.28)    Deviance trong mô hình hồi qui logistic (M) được dựa trên sự so sánh giữa  giá  trị  maximum-likelihood  (M)  với  maximum-likelihood  (S).  Trong  thực  tế  thì  deviance được hiểu là độ khác biệt giữa hai giá trị maximum-likelihood ở trên.    (S) ước tính giá trị  p  xi  ,  i  1,  2,  ...,  n  bởi những giá trị quan sát. Ký hiệu  pˆ S  xi   yi . Đặt  pˆ M  xi   ký hiệu cho ước tính  p ( xi )  từ mô hình hồi qui logistic.  Đặt  yˆ i  là giá trị dự đoán của  yi  từ mô hình hồi qui logistic, khi đó  pˆ M  xi   yˆ i .   Ta có   G 2  2  log( LS )  log( LM )    n      =2  yi log  yi   (1  yi )log  1  yi   i 1 n      -2  yi log  yˆ i   (1  yi ) log  1  yˆ i    i 1   n    1  yi    y       =2  yi log  i   (1  yi )log     . ˆ ˆ 1  y y i 1   i    i   Ở ví dụ 3.5, trong phần kết quả xuất ra từ R ta có một số dòng code sau đây:  Null deviance: 30.885 on 31 degrees of freedom Residual deviance: 24.840 on 30 degrees of freedom  Cho  biết  giá  trị  deviance  của  mô  hình  khi  không  có  biến  độc  lập  (Null deviance) và có biến độc lập (Residual deviance)  e) Hệ số xác định R2   Nhớ  lại  rằng  công  thức  để  tính  R2  được  chúng  ta  sử  dụng  trong  hồi  qui  tuyến tính được tính bằng công thức:  R2  SSR SSE .   1 SST SST Trong mô hình hồi qui logistic thì R2 được tính bởi công thức:  R2  1    G12 .  G02 (3.29)  Trong đó       G02 : là giá trị deviance khi không có biến độc lập (null deviance),    55  G12 : là giá trị deviance khi có biến độc lập (residuals deviance).  Ứng dụng phần mềm R nghiên cứu thống kê  Trở lại với ví dụ 3.5, kết quả xuất ra từ R, ta nhận được   Null deviance: 30.885 on 31 degrees of freedom Residual deviance: 24.840 on 30 degrees of freedom    Khi đó hệ số xác định sẽ là:  R2  1  24.84  0.2 .  30.885 Nói cách khác, fibrinogen giải thích khoảng 20% phương sai của ESR.  f) Kiểm định Z-Đánh giá ý nghĩa từng biến độc lập riêng biệt   Đặt giả thuyết   H : 1  0 H : 1  0     Thống kê dùng để kiểm định :   Z   ˆ1 S ˆ .  (3.30)  1     Miền bác bỏ:  W   Z  ;   .   2    Nếu  Z  W  thì ta bác bỏ giả thuyết H.    Trong  thực tế,  khi  xét  trong  mô  hình  hồi  qui  logistic  đơn  thì  kiểm  định  Z không được quan tâm nhiều.  2.2.4. Hồi qui logistic bội Dạng của mô hình như sau :  n  P    ln    i X i ,   0 i 1 1  P  hay  n P  exp(  0    i X i ) .  1 P i 1   Gọi  ˆi  (i  1,  2,  ...,  n)  là các ước lượng   i . Khi đó ta có mô hình hồi qui  n  pˆ  ˆ ln     ˆi xi .   0  ˆ 1  p i 1       Các hệ số  ˆi  (i  1,  2,  ...,  n)  được tính bởi hệ phương trình sau:  56  Ứng dụng phần mềm R nghiên cứu thống kê  1 n  n n   ˆ   ˆ  yi  1  exp     0    j xij        i 1 i 1  i 1       1 n n      n ˆ ˆ   xi yi   xi 1  exp    0    j xij      i 1 i 1    i 1   Ví dụ 3.6. Các yếu tố có thể làm tăng nguy cơ tử vong khi nhiểm trùng huyết  là  tuổi  bệnh  nhân,  hạ  huyết  áp,  có  bệnh  nền,  procaltionin  hoặc  suy  giảm  miễn  dịch… Trong ví dụ này ta chỉ xét đến 3 yếu tố: procaltionin, hạ huyết áp và tuổi  bệnh  nhân.  Dữ  liệu  30  bệnh  nhân  nhiễm  trùng  huyết  như  sau:  age  (tuổi),  hypotension (hạ huyết áp), procaltionin (ng/ml) và dealth (tử vong):  STT  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  Age (x1)  Hypotension (x2)  Procaltionin (x3)  dealth  70  1  0.7  1  80  1  0.4  1  50  1  0.7  1  55  1  0.8  1  60  1  0.9  1  65  1  1.0  1  70  1  0.5  1  75  1  0.7  1  80  1  1.2  1  50  1  0.8  1  70  1  1.1  1  45  1  0.6  1  60  1  1.3  1  90  0  3.3  1  40  1  0.2  0  60  0  0.7  0  60  0  0.5  0  30  0  0.2  0  28  0  0.3  0  30  0  0.4  0  35  0  0.8  0  55  0  0.7  0  60  0  0.5  0  70  0  0.1  0  32  0  0.2  0  30  0  0.4  0  44  0  0.5  0  29  0  0.2  0  30  0  0.7  0  40  0  0.1  0  Bảng 3.5. Dữ liệu 30 bệnh nhân nhiễm trùng huyết.   57  Ứng dụng phần mềm R nghiên cứu thống kê    Tìm  mô  hình  thích  hợp  thể  hiện  mối  quan  hệ  giữa  nguy  cơ  bệnh  nhiễm  trùng huyết và các biến x1, x2, x3.   Giải    Gọi p là xác suất một người có nguy cơ bị tử vong. Ta có mô hình hồi qui  logistic bội như sau:  ln(   p )   0  1 x1   2 x2  3 x3 .  1 p # Nhập dữ liệu  > x1 = c(70, 80, 50, 55, 60, 65, 70, 75, 80, 50, 70, 45, 60, 90, 40, 60, 60, 30, 28, 30, 35, 35, 60, 70, 32, 30, 44, 29, 30, 40) > x2 = c(rep(1, 14), 0, 1, rep(0, 14)) > x3 = c(0.7, 0.4, 0.7, 0.8, 0.9, 1.0, 0.5, 0.7, 1.2, 0.8, 1.1, 0.6, 1.3, 3.3, 0.2, 0.7, 0.5, 0.2, 0.3, 0.4, 0.8, 0.7, 0.5, 0.1, 0.2, 0.4, 0.5, 0.2, 0.7, 0.1) > y = c(rep(1, 15), rep(0, 15))   # Hợp các biến thành một data  > data reg summary(reg) Call: glm(formula = y ~ ., family = "binomial", data = data) Deviance Residuals: Min 1Q Median -2.2871 -0.3560 -0.0367 3Q 0.3656 Max 2.3426 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -3.41371 2.60661 -1.310 0.1903 x1 0.01779 0.05739 0.310 0.7565 x2 4.79989 2.00120 2.399 0.0165 * x3 0.12241 1.91052 0.064 0.9489 --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 41.589 Residual deviance: 14.582 AIC: 22.582   on 29 on 26 58  degrees of freedom degrees of freedom Ứng dụng phần mềm R nghiên cứu thống kê  Ta có được mô hình hồi qui logistic bội như sau:   p  ln    3.41  0.02 x1  4.79 x2  0.12 x3 .  1 p  Với hệ số R2 được xác định như sau:  R2  1  14.6  0.65 .  41.6 R2= 0,65 cho thấy các biến độc lập giải thích khoảng 65% phương sai của phụ  thuộc. Ngoài ra ta thấy các ở các biến độc lập chỉ có biến x2 là có ý nghĩa thống  kê với p-value= 0.01 (thỏa mản điều kiện nhở hơn 5%). Ở đây đã xảy ra hiện  tượng đa cộng tuyến.    # Sử dụng hàm step để khắc phục hiện tượng đa cộng tuyến và tìm ra mô  hình thích hợp nhất dựa vào chỉ số AIC.  > step(reg) Kết quả từ R:  # Mô hình với đầy đủ các biến. # mô hình sau khi loại bỏ biến x3.  Start: AIC=22.58 y ~ x1 + x2 + x3 Step: AIC=20.59 y ~ x1 + x2 Df Deviance AIC - x3 1 14.586 20.586 - x1 1 14.675 20.675 14.582 22.582 - x2 1 22.108 28.108 Df Deviance AIC - x1 1 14.696 18.696 14.586 20.586 - x2 1 27.121 31.121 # Mô hình sau khi loại bỏ hai biến x3, x1.  Step: AIC=18.7 y ~ x2 Df Deviance AIC 14.696 18.696 - x2 1 41.589 43.589 Từ kết quả trên ta có thể tóm lượt theo chỉ số AIC như sau:  Mô hình  AIC  y ~ x1 + x2 + x3 y ~ x1 + x2 y ~ x2 22.58  20.59 18.7 Ta thấy chỉ số AIC của mô hình chỉ có biến x2 là nhỏ nhất, nói cách khác mô  hình chỉ có biến x2 là mô hình phù hợp nhất.  > summary(glm(y~x2, family="binomial")) Call: glm(formula = y ~ x2, family = "binomial")   59  Ứng dụng phần mềm R nghiên cứu thống kê  Deviance Residuals: Min 1Q Median -2.3272 -0.3715 0.0000 3Q 0.3715 Max 2.3272 Coefficients: Estimate Std. Error z value (Intercept) -2.639 1.035 -2.550 x2 5.278 1.464 3.606 --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘ ’ 1 Pr(>|z|) 0.010785 * 0.000311 *** ‘*’ 0.05 ‘.’ 0.1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 41.589 Residual deviance: 14.696 AIC: 18.696  on 29 on 28 degrees of freedom degrees of freedom Từ kết quả trên ta nhận được mô hình:   p  ln    2.3  5.3 x2 .  1  p   và hệ số  R 2  1  14.7  0.65 , cho thấy biến x2 giải thích khoảng 65% phương sai  41.6 của y.    60  Ứng dụng phần mềm R nghiên cứu thống kê  Chương 4 PHÂN TÍCH CHUỖI THỜI GIAN   I. ĐẠI CƯƠNG VỀ CHUỖI THỜI GIAN 1.1. Chuỗi thời gian  Định nghĩa 4.1: Chuỗi thời gian là một dãy các giá trị quan sát được sắp xếp  thứ tự theo diễn biến thời gian.    Dạng tổng quát của dãy số thời gian như sau:    ti  yi    t1   y1  t2   y2  ...  ...  tn   yn  trong đó     ti  (i=1, 2, …, n): Thời gian thứ i,    yi (i=1, 2, …, n): Giá trị chỉ tiêu tương ứng với thời gian ti (i=1, 2, …, n).   Ví dụ 4.1 - Giá một loại sản phẩm.  - Số lượng hàng bán được của một công ty trong 12 tháng.  - Chỉ số giá tiêu dùng theo tháng của Việt Nam.  - Điện tâm đồ của một bệnh nhân tim mạch.   Tạo chuỗi thời gian với phần mềm R   Hàm được sử dụng cho việc tạo chuỗi thời gian là hàm ts().  i) Cú pháp   > ts(data=NA,start=1,end=numeric(0),frequency=1, deltat=1, ts.eps=getOption("ts.eps"), class=,names =) as.ts(x, ...) is.ts(x) ii) Các thông số data giá  trị  của  chuỗi  thời  gian  dưới  dạng  số  hoặc  ma  trận.  Một  khung dữ liệu sẽ được lưu trữ một ma trận số data.matrix.  start thời gian bắt đầu quan sát. Nó có thể là một số hay là một véc  tơ, chỉ rõ một đơn vị thời gian và số mẫu chứa trong đơn vị thời  gian đó.  end thời gian kết thúc quan sát. Công thức tương tự như start.  frequency số quan sát trong mỗi đơn vị thời gian.  deltat phần của mẫu được lấy trong kỳ quan sát liên tục; vd:1/12 cho    61  Ứng dụng phần mềm R nghiên cứu thống kê  dữ liệu  tháng.  Chỉ  một  trong  frequency  hoặc  deltat  được  cung  cấp.  ts.eps bộ so sánh chuỗi thời gian trong giới hạn cho phép. Những tần  số được xem là bằng nhau nếu những tần số cực đại khác nhau  nhỏ hơn ts.eps.  class class sẽ cho là kết quả, hoặc không có nếu NULL hoặc  "none".  Mặc  định  là  "ts"  cho  chuỗi  thời  gian  đơn,  c("mts",  "ts")  cho  chuỗi thời gian bội.  names tên của một véc tơ chuỗi thời gian trong chuỗi thời gian bội.  x một đối tượng R bất kỳ.  ... các đối số hợp với phương pháp.   Ví dụ 4.2 Tạo ra một chuỗi thời gian với số liệu 1, 2, ..., 36 với tần suất bằng 12, bắt  đầu từ tháng thứ nhất của năm 1990.  > ts(1:36, frequency = 12, start = c(1990, 1)) Kết quả từ R như sau:  Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 1990 1 2 3 4 5 6 7 8 9 10 11 12 1991 13 14 15 16 17 18 19 20 21 22 23 24 1992 25 26 27 28 29 30 31 32 33 34 35 36  1.2. Các thành phần của chuỗi thời gian Một chuỗi thời gian chứa một vài hoặc tất cả các thành phần sau: a) Thành phần xu hướng T (Trend component)   Thành  phần  này  dùng  để  chỉ  xu  hướng  tăng  giảm  của  đại  lượng  X  trong  khoảng  thời  gian  dài.  Về  mặt  đồ  thị,  thành  phần  này  có  thể  diễn  tả  một  đường  thẳng hoặc một đường cong trơn.  Xu hướng giảm theo thời gian      62  Ứng dụng phần mềm R nghiên cứu thống kê  b) Thành phần mùa S (Seasonal component)   Thành  phần  này  chỉ  sự thay  đổi  của  đại  lượng  X  theo  các  mùa  trong  năm  (cũng có thể theo các tháng trong năm).   Ví dụ 4.3 - Lượng tiêu thụ chất đốt sẽ tăng vào mùa đông và sẽ giảm vào mùa hè.  Ngược lại lượng tiêu thụ xăng sẽ tăng vào mùa hè và giảm vào mùa đông.    - Lượng tiêu thụ đồ dùng học tập sẽ tăng vào mùa khai trường.  Chất  đốt  thay đổi theo mùa  Xu hướng tăng theo thời gian    c) Thành phần chu kỳ C (Cyclial component)   Thành  phần  này  chỉ  sự  thay  đổi  giá  trị  của  đại  lượng  X  theo  chu  kỳ.  Sự  khác  biệt  của  thành  phần  này  so  với  thành  phần  mùa  là  chu  kỳ  của  nó  dài  hơn  một năm. Để đánh giá thành phần chu kỳ các giá trị của chuỗi thời gian sẽ được  quan sát hàng năm.   Ví dụ 4.4: Lượng dòng chảy đến hồ chứa Trị An từ năm 1959 đến 1985.   63  Ứng dụng phần mềm R nghiên cứu thống kê  d) Thành phần bất thường I (Irregular component) Thành phần này  dùng để chỉ những sự thay đổi bất thường của các  giá trị  của  đại  lượng  X.  Sự  thay  đổi  này  không  thể  dự  đoán  bằng  các  số  liệu  kinh  nghiệm trong quá khứ. Bản chất của thành phần này là nó không có chu kỳ.     Lệnh trong R Trong  R  các  hàm  decompose  và  stl  đánh  giá  thành  phần  xu  hướng  và  mùa  dựa  trên  phương  pháp  trung  bình  dịch  chuyển  và  đa  thức  tương  ứng.  Hai  hàm  này  có  thể  được  sử dụng  như  phương  pháp  mô  tả  để  xem  các  thành  phần  chính của một chuỗi thời gian, trước khi chuyển sang các phương pháp mô hình  thống kê.  a) Hàm decompose() i) Mô tả   Hàm  decompose  dùng  để  phân  tích  chuỗi  thời  gian  trong  các  thành  phần  mùa và thành phần xu hướng sử dụng phương pháp trung bình dịch chuyển. Xét  với thành phần mùa thì ta có mô hình là nhân hoặc cộng.  ii) Cú pháp > decompose(x, type = c("additive", "multiplicative"), filter = NULL) c) Các thông số x một chuỗi thời gian. type loại  của  thành  phần  mùa:  mô  hình  cộng  "additive",  mô  hình  nhân "multiplicative". Có thể viết tắt.  filter một vector của phép lọc những hệ số trong bậc lùi thời gian (hệ số  của  mô hình AR hoặc MA), dùng cho việc lọc ra thành phần mùa.  Nếu  NULL,  mô  hình  trung  bình  dich  chuyển  với  cửa  sổ  đối  xứng  được thi hành.   Ví dụ 4.5    Gán x  là tập dữ liệu > x = c(418, 463, 343, 344, 453, 430, 486, 418, 281, 420, 506, 479, 482, 406, 440, 430, 417, 408, 377, 412, 320)   #Tạo ra chuỗi thời gian có tên là x.ts, năm bắt đầu là 1990 với tần số là 4.    > x.ts=ts(x,st=1990,fr=4)    # Gán p là decompose của x.ts > p = decompose(x.ts)  # Vẽ đồ thị p > plot(p)   64  Ứng dụng phần mềm R nghiên cứu thống kê  Hình 4.1. Sự phân tích chuỗi thời gian với hàm decompose. b) Hàm stl() i) Mô tả   Dùng để phân tích chuỗi thời gian với thành phần mùa, thành phần xu  hướng dựa trên phương pháp đa thức tương ứng (hay trung bình có trọng số hồi  qui).  ii) Cú pháp > stl(x, s.window, s.degree = 0,…) c) Các thông số x  chuỗi  thời  gian  được  phân  tích.  Nó  là  một  đối  tượng  của  lớp  "ts" với tần số lớn hơn một.  s.window ở đây luận văn chỉ xét thuộc tính "periodic" cho s.window.  s.degree bậc của đa thức thích hợp trong sự trích ra thành phần mùa. Phải  là 0 hoặc 1.  … …   Ví dụ 4.6: Ta tiếp tục ví dụ 4.5      Tiến hành phân tích chuỗi thời gian với hàm stl()   # Gán p là phân tích stl của x.    > p = stl(x.ts, s.window="per") > plot(p)   65  Ứng dụng phần mềm R nghiên cứu thống kê  Hình 4.2. Sự phân tích chuỗi thời gian với hàm stl. 1.3. Mô hình hóa dự báo giá trị của đại lượng ngẫu nhiên   Các thành phần của chuỗi thời gian X có thể được kết hợp trong nhiều cách  khác  nhau.  Thông  thường  chúng  được  kết  hợp  theo  mô  hình  nhân  và  mô  hình  cộng.  1.3.1. Mô hình nhân (Mutiplicative model) Mô hình có dạng:  X t  Tt  St  Ct  I t ,    (4.1)  trong đó    X t  là giá trị đại lượng  X ở thời điểm  t ,    Tt   là giá trị của thành phần xu hướng ở thời điểm  t ,  Tt  có cùng đơn vị với  X t ,    St ,  Ct , I t  là các hệ số đánh  giá ảnh hưởng của các  thành phần  mùa, thành  phần chu kỳ và thành phần bất kỳ đến giá trị của  X ở thời điểm  t .    Trong  thực  tế,  việc  xác  định  thành  phần  I t   rất  khó  nên  ta  thường  bỏ  qua  thành phần này.  Khi đó   X t  Tt  St  Ct .  2.3.2. Mô hình cộng (Additive model)   Mô hình cộng có dạng:  X t  Tt  St  Ct  I t ,  trong đó     66  Ứng dụng phần mềm R nghiên cứu thống kê  X t  là giá trị đại lượng  X ở thời điểm  t .  Tt ,  St ,  Ct ,  I t   là thành phần xu hướng, mùa, chu kỳ và bất thường ở thời  điểm  t .  Trong nhiều trường hợp, để dự báo giá trị của đại lượng  X , ta có thể kết  hợp cả hai mô hình trên.  1.4. Tách thành phần xu hướng và thành phần mùa   Trong  lý  thuyết  quá  trình  ngẫu  nhiên,  người  ta  thường  biểu  diễn  một  quá  trình  {X t ,  t  T }  dưới dạng:  X t  f ( Dt ,  t ) ,    (4.2)  trong đó  f  là hàm số tất định,  Dt  là biến tất định (một biến thay đổi theo quy  luật tất định phụ thuộc vào thời gian  t ) và   t  là biến ngẫu nhiên phụ thuộc vào  thời gian  t .    Trong thực tế, các kết quả nghiên cứu về chuỗi thời gian đều tập trung vào  mô hình cộng và mô hình nhân.    Nếu mô hình cộng thì biểu thức (4.2) có dạng  X t  Dt   t ,    (4.3)  trong  đó  thành  phần   t   bé  so  với  Dt   nhưng  chưa  nhỏ  đến  mức  có  thể  bỏ  qua  được.    Nếu mô hình nhân thì biểu thức (4.2) có dạng    X t  Dt   t .  (4.4)    Về nguyên tắc, bao giờ cũng tìm được phép biến đổi thích hợp để đưa (4.4)  về dạng (4.3). Vì vậy ta chỉ tập trung nghiên cứu dạng (4.3).  1.5. Độ trể   Trong phân tích chuỗi thời gian, chúng ta thường gặp biến phụ thuộc ở thời  điểm t phụ thuộc vào chính biến đó ở thời điểm t-1 và các biến khác, hay nói một  cách dể hiểu biến ngày hôm nay phụ thuộc vào chính biến đó của ngày hôm qua.     Chẳng hạn khi nghiên cứu mối quan hệ giữa tiêu dùng và thu nhập, chúng  ta thấy rằng tiêu dùng ở thời điểm hiện tại chẳng những phụ thuộc vào thu nhập  mà còn phụ thuộc vào tiêu dùng ở thời điểm trước đó.  1.6. Ồn trắng  Định nghĩa 4.2.  Một  chuỗi  thời  gian  { t : t  1, 2,..., n}   được  gọi  là  ồn  trắng  riêng biệt nếu các biến số của nó độc lập nhau và có phân bố đồng nhất  với kỳ  vọng  là  0,  phương  sai   2   và  corr( i ,  j )  0 ,  i  j .  Nếu  các  biến  số  này  có  phân  bố  chuẩn  (tức  là,   t  N (0, 2 ) )  thì  chuỗi  này  được  gọi  là  ồn  trắng  Gaussian.   67  Ứng dụng phần mềm R nghiên cứu thống kê   Ví dụ 4.7. Tạo ra 100 biến ngẫu nhiên độc lập có phân phối chuẩn ta dùng lệnh  rnorm(). Điều này tương đương với tạo ra một chuỗi ồn trắng Gaussian có độ  dài 100. Ta thực hiện các lệnh sau:  > set.seed(1)  > w = rnorm(100) Lệnh  thứ  hai  yêu  cầu  R  gán  w  là  tập  gồm  100  biến  ngẫu  nhiên  có  phân  phối  chuẩn.  Ta  biết  mỗi  lần  chạy  lệnh  thì  w  sẽ  nhận  những  giá  trị  khác  nhau,  do  dó  lệnh thứ nhất có chức năng là cố định tập  w. Ở lệnh thứ nhất  set.seed(1) có  nghĩa  là  cố  định  dòng  tiếp  theo  sau  nó.  Tất  nhiên  nếu  set.seed(2)  thì  sẽ  có  chức năng cố định 2 dòng tiếp theo sau nó.    # Vẽ đồ thị của w theo dạng đường.  0 -2 -1 w 1 2 > plot(w, type = “l”) 0 20 40 60 80 100 Index Hình 4.3. Đồ thị của 100 biến ngẫu nhiên. 1.7. Quá trình dừng (Stationary process) 1.7.1. Quá trình dừng a) Hàm tự hiệp phương sai (Autocovariance function)  Định nghĩa 4.3. Nếu  {X t ,  t  T }  là một quá trình có  Var( X t )    với mỗi  t  T  thì hàm tự hiệp phương sai được định nghĩa bởi   ( r , s )  cov( X r ,  X s )  E ( X r  EX r )( X s  EX s ) ;  r , s  T .  b) Quá trình dừng mạnh (Strongly/strichly stationary process)  Định nghĩa 4.4. Chuỗi thời gian  {X t ,  t  }  được gọi là dừng mạnh (hay dừng  nghiêm ngặt) nếu     68  Ứng dụng phần mềm R nghiên cứu thống kê  d ( X t1 ,  X t2 ,  ...,  X tk ) ( X t1  h ,  X t2  h ,  ...,  X tk  h )    t1 ,  ...,  tk ,  h   .  d Trong đó “  ” ký hiệu cho “=” trong phân bố.    Một cách trực quan, tính dừng có nghĩa là quá trình đạt đến một loại cân  bằng thống kê và phân bố của quá trình không thay đổi nhiều.   c) Quá trình dừng yếu (Weak stationary process)  Định nghĩa 4.5.  Chuỗi thời gian  {X t ,  t  }  được gọi là dừng yếu hay dừng  cấp hai nếu:    i)  E ( X t )   ,  t   .  ii)  E X t  ,  t   .  2   iii)   ( r , s )   ( r  t , s  t ),  t , r , s   .    Về bản chất, quá trình dừng yếu là một quá trình có kỳ vọng, phương sai là  hằng (không phụ thuộc vào thời điểm khảo sát) và có tự hiệp phương sai không  phụ thuộc vào thời điểm khảo sát mà phụ thuộc vào khoảng cách giữa hai thời  điểm khảo sát.   Chú ý 4.1  - Quá trình dừng mạnh thì dừng yếu. Điều ngược lại không đúng ngoại trừ  trường hợp của phân bố chuẩn.    - Trong luận văn này, nếu không nói gì thêm thì ta hiểu khái niệm dừng là  dừng yếu.  - Khi  {X t ,  t  }  dừng thì    ( r , s )   ( r  s,0) ,   r , s   .  Vì vậy, với quá trình dừng ta có thể định nghĩa lại hàm tự hiệp phương sai  thông qua hàm một biến:   ( h)   (h,0)  cov( X t , X t  h ) ,   t , h   .    Hàm số   (.)  được coi là hàm tự hiệp phương sai của  {X t }  và   ( h)  là giá  trị của nó tại “trễ” h.  d) Hàm tự tương quan (Autocorrelation function)  Định nghĩa 4.6. Hàm tự tương quan của chuỗi thời gian dừng  {X t }  được định  nghĩa tại biến trễ h là:  (h)     (h)  corr(X t , X t  h ),  t , h   .  (0) 69  Ứng dụng phần mềm R nghiên cứu thống kê  Chứng minh    h     cov X , X   h  cov X t , X t  h t th    0 VarX VarX . VarX t t          =   t h    cov X , X t t  h  Corr ( X , X ). t th  ( X ). ( X ) t th 1.7.2. Các tính chất của hàm tự hiệp phương sai của một quá trình dừng  Định lí 4.1 (Các tính chất sơ cấp)    Nếu   ( h)  là hàm hiệp tự phương sai của một quá trình dừng  {X t }  thì    i)   (0)  0 .   ii)   (h)   (0)   h   .   iii)   ( h)  là hàm chẳn, tức là   ( h)   ( h)   h   .   Định nghĩa 4.7 (Tính xác định không âm)    Một hàm thực  k :      được gọi là xác định không âm nếu và chỉ nếu  n  a k t i i  t j  a j  0 .  i , j 1 t Với  mọi  số  nguyên  dương  n  và  với  mọi  véc  tơ  a :  a1 ,  a2 ,  ...,  an    n   và  t t :  t1 ,  t 2 ,  ...,  t n    n   hay  nếu  và  chỉ  nếu    n  a k i  j  a i j  0   với  mọi  n  và  a  i , j 1 đã nêu ở trên.   Định lí 4.2 Một hàm thực xác định trên tập    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à hàm chẳn và xác định không âm.  1.7.3. Quá trình Gauss  Định nghĩa 4.8 Giả sử  {X t ,  t  }  là một quá trình dừng cấp hai với kỳ vọng  0.  Quá  trình  X t   là  quá  trình  Gauss  nếu  X t1 , X t2 ,..., X tn có  phân  bố  chuẩn  đồng  thời cho tất cả  t1 ,  t2 ,  ...,  tn .   Nhận xét 4.1 i)  Nếu  { X t }  là  quá  trình  dừng  Gauss  thì  n, h ,( X t1 ,..., X tn )  và  ( X t1  h ,..., X tn  h )  có  cùng  ma  trận  kỳ  vọng  và  ma  trận  hiệp  phương  sai  nên  có  chung phân phối. Do đó { X t } là quá trình dừng nghiêm ngặt.    70  Ứng dụng phần mềm R nghiên cứu thống kê  ii)    Không  có  hai  quá  trình  Gauss  phân  biệt  có  cùng  hàm  tự hiệp  phương  sai.   Lệnh trong R   Một  số  hàm  trong  phần  mềm  R  được  sử  dụng  trong  mục  này  như  sau:  acf(), pacf(), ccf().  a) Mô tả Hàm  acf dùng để  ước lượng hàm tự hiệp phương sai hoặc hàm tự tương  quan của một đối tượng chuỗi thời gian.  Hàm pacf dùng để tính tự tương quan riêng của một đối tượng chuỗi thời  gian.  Hàm  ccf tính sự tự tương quan ngược hoặc tự hiêp phương sai ngược của  hai đối tượng chuỗi thời gian.   b) Cú pháp i) Hàm acf > acf(x, lag.max = NULL, type = c("correlation", "covariance", "partial"), plot = TRUE, na.action = na.fail, demean = TRUE, ...) ii) Hàm pacf > pacf(x, lag.max, plot, na.action, ...)      Thường mặc định là :  > pacf(x, lag.max = NULL, plot = TRUE, na.action = na.fail, ...) iii) Hàm ccf   > ccf(x, y, lag.max = NULL, type = c("correlation", "covariance"), plot = TRUE, na.action = na.fail, ...) c) Các thông số x, y là  một  đối  tượng  chuỗi  thời  gian  có  đại  lượng  ngẫu  nhiên  đơn  hoặc  bội  hoặc  là  một  véc  tơ  hoặc  là  một  ma  trận,  hoặc  là  một  đối tượng "acf".  lag.max trễ lớn nhất để tính acf. Mặc định là 10*log10(N/m) ở đây N là số quan sát và m là số chuỗi. Giới hạn của trễ sẽ tự động nhỏ  hơn số quan sát trong chuỗi. đặc  type đặc điểm chuỗi được tính trong acf. Cho phép các giá trị sau:  "correlation" (mặc định), "covariance" hoặc "partial".    71  Ứng dụng phần mềm R nghiên cứu thống kê  plot nếu nhận giá trị là TRUE thì sẽ vẽ đồ thị.  na.action hàm dùng để xử lý những giá trị khuyết. Có thể sử dụng  na.pass.  demean hiệp phuơng sai trung bình mẫu hay không?.  ... thêm vào các đối số cho hợp với hàm plot.acf.    Hàm  acf() cho kết quả là một đồ thị của tự tương quan mẫu  rh  ở mỗi trễ  h. Ta gọi là tương quan đồ. Nó có các đặc trưng sau:    + Trục x cho ta các giá trị của trễ h và trục y cho ta các giá trị của tự tương  quan  rh  ở mỗi trễ. Đơn vị của trễ là khoảng thời gian lấy mẫu (0,1 giây). Tương  quan là đại lượng không có thứ nguyên, vì thế không có đơn vị cho trục y.    + Giá trị của tự  tương quan mẫu nằm giữa -1 và 1.    + Tự tương quan ở trễ 0 luôn luôn là 1 và được thể hiện trên đồ thị.    Mục đích chính của việc sử dụng tương quan đồ là giúp ta tìm ra tự tương  quan trong chuỗi thời gian sau khi chúng ta đã lấy ra một ước của xu hướng và  biến thiên mùa.     Ví dụ 4.8. Tiến hành phân tích tập dữ liệu AirPassengers trong thư viện của R  để thấy hàm tự tương quan của chuỗi thời gian này.  # Truy nhập vào dữ liệu.  > data(AirPassengers) # Gán AP là tập dữ liệu.  > AP = AirPassengers # Xem dữ liệu AP  > AP Kết quả  1949 1950 1951 : 1957 1958 1959 1960     Jan 112 115 145 Feb 118 126 150 Mar 132 141 178 Apr 129 135 163 315 340 360 417 301 318 342 391 356 362 406 419 348 348 396 461 May 121 125 172 : 355 363 420 472 Jun 135 149 178 Jul 148 170 199 Aug 148 170 199 Sep 136 158 184 422 435 472 535 465 491 548 622 467 505 559 606 404 404 463 508 # Vẽ đồ thị tự tương quan  > acf(AP) Kết quả từ R như sau:    72  Oct 119 133 162 : 347 359 407 461 Nov 104 114 146 Dec 118 140 166 305 310 362 390 336 337 405 432 Ứng dụng phần mềm R nghiên cứu thống kê  0.2 0.4 0.6 0.8 1.0 -0.2 ACF Series AP 0.0 0.5 1.0 1.5 Lag   Hình 4.4. Tương quan đồ của dữ liệu air passenger giai đoạn 1949 – 1960.   Ta thấy có một xu hướng và biến thiên mùa được thể hiện trong tương quan  đồ. Các đỉnh mùa được chồng lên trên mẫu hình. Xuất hiện một chu kỳ hàng năm  cho  sự  biến  thiên  mùa.  Giá  trị  lớn  nhất  của  tự  tương  quan  là  ở  trễ  của  1  năm,  phản ánh một quan hệ tuyến tính dương giữa cặp biến số ( xt , xt 12 ) được tác biệt  bởi 12 tháng. Mặt khác, xu hướng mùa gần như là một đồ thị hình sin, các giá trị  được tác biệt bởi 6 tháng (0.5  năm) sẽ có xu  hướng có quan hệ âm. Ví dụ, các  đỉnh của  giá trị  tương quan trong những tháng hè có xu hướng thấp hơn  giá trị  tương quan trong những tháng mùa đông. Vì thế độ dốc trong tương quan đồ xảy  ra ở trễ 6 tháng.  1.8. Toán tử lùi (Backward) và toán tử tiến (forward)  Định nghĩa 4.9    Toán  tử lùi  B  liên  kết  với  quá  trình  {X t ,  t  }   là  quá  trình  {Yt ,  t  }  sao cho   Yt  BX t  X t 1 .    (4.5)    Nếu B là toán tử tuyến tính, khả nghịch thì nghịch đảo của nó  B 1  F , gọi  là toán tử tiến, được định nghĩa bởi:  FX t  X t 1 .   Tính chất  Các toán tử B và F thỏa mãn    i)  B n X t  X t n ;     F n X t  X t  n .  n   n ii)  ( ai Bi ) X t   ai X t i  , (tác động lên quá trình  X t của một đa thức theo  i 0 i 0 B).   1.9. Các phương pháp làm trơn   Trong  một  số  chuỗi  thời  gian,  thành  phần  mùa  và  thành  phần  bất  thường  thay đổi lớn làm cho  việc xác  định thành phần xu hướng  và thành phần chu  kỳ  gặp nhiều  khó  khăn. Sự thay đổi lớn này có thể được giảm đi bằng các phương    73  Ứng dụng phần mềm R nghiên cứu thống kê  pháp làm trơn. Các phương pháp làm trơn thường được sử dụng là phương pháp  trung bình dịch chuyển (Moving average method) và phương pháp làm trơn bằng  hàm số mũ (Exponential smoothing method).  1.9.1. Phương pháp trung bình dịch chuyển (Moving average method)   Nội dung của phương pháp này là thay giá trị quan sát  X t  bằng giá trị trung  bình của chính nó với m giá trị trước nó và m giá trị sau nó, tức là ta thay giá trị  X t  bởi giá trị   Xt  m 1  X t  j .  2m  1 j  m  Ví dụ 4.9.  Khi m = 2 ta có giá trị trung bình trượt của 5 điểm được tính theo  công thức   Xt  X t  2  X t 1  X t  X t 1  X t  2 .  5   Chuỗi thời gian truyền thống thường được phân tích thành các thành phần  xu hướng, mùa và các phần còn lại. Phương pháp phổ biến để nhận được thành  phần xu hướng là dùng lọc tuyến tính chuỗi thời gian. Phần mềm R cung cấp  lệnh filter() giúp ta thực hiện điều đó.   Hàm filter() i) Mô tả Hàm  filter  dùng  để  lọc  tuyến  tính  một  chuỗi  thời  để  nhận  được  thành  phần xu hướng.  ii) Cú pháp   > filter(x, filter, method = c("convolution", "recursive"),sides = 2, circular = FALSE, init) iii) Các thông số x  một chuỗi thời gian đơn hay bội.  filter một véc tơ của phép lọc hệ số (xem như là hệ số của AR hoặc  MA).  method hoặc là "convolution" hoặc là "recursive" (có thể viết  tắt).  Nếu  là  "convolution" thì  dùng  phương  pháp  trung  bình  dịch  chuyển.  Nếu  là  "recursive" thì  dùng  phương  pháp tự hồi qui.  sides chỉ  dùng  cho  phương  pháp  "convolution".  Nếu  sides=1 chỉ lọc hệ số các giá trị đã xảy ra; nếu sides=2 thì nó có trung  tâm  gần  trễ  0.  Trong  trường  hợp  này  chiều  dài  của  phép  lọc  phải là lẻ, nhưng nếu nó là chẳn thì phép lọc sẽ tiến về thời gian  trước hơn là đi lùi về sau.    74  Ứng dụng phần mềm R nghiên cứu thống kê  circular chỉ  dùng  cho  phương  pháp  "convolution".  Nếu  là  TRUE thì quá trình lọc sẽ quay về điểm ban đầu và lắp đầy những giá  trị khuyết.   init chỉ  dùng  cho  phương  pháp  "recursive". Chỉ  rõ  những  giá  trị ban đầu của chuỗi thời  gian đúng  vào  giá  trị bắt đầu . Mặc  định là tập 0.   Ví dụ 4.10 Cho dữ liệu về số lượng sản phẩm bán ra của một cửa hàng trong  24  tháng  được  lưu  dưới  tên  tieuthu.csv.  Tiến  hành  lọc  tuyến  tính  dữ  liệu  tieuthu.csv và vẽ giá trị trung bình.    Áp dụng phương pháp trung bình dịch chuyển với m =2 cho các giá trị của  tập dữ liệu tieuthu.csv   1 1  .  2m  1 5   Với m = 2 thì hệ số của phép lọc sẽ là    Như vậy ta sẽ thực hiện phép lọc với hệ số  .    Thực hiện lọc tuyến tính trong R    # Lấy dữ liệu từ windows và gán vào đối tượng tieuthu  1 5 > setwd("D:/studying/luan van/csv") > tieuthu=read.csv("tieuthu.csv",header=T)   # Gán dữ liệu quan sát ở cột thứ 3 của tieuthu cho đối tượng x  > x=tieuthu[,3]   # Vẽ đồ thị cho chuỗi dữ liệu thô  25 15 20 x 30 35 > plot(x,type="l") 5 10 15 20 Index Hình 4.5. Số lượng sản phẩm bán ra của một cửa hàng trong 24 tháng. # Lọc tuyến tính với hệ số của phép lọc là 1/5  > filter=filter(x, rep(1/5,5))   75  Ứng dụng phần mềm R nghiên cứu thống kê  > filter Kết quả từ R  Time Series: Start = 1 End = 24 Frequency = 1 [1] NA NA 18.4 17.2 17.6 19.4 20.8 23.0 25.0 [10] 24.6 24.0 24.0 23.8 24.4 27.6 29.0 29.0 28.8 [19] 27.6 25.0 23.0 23.4 NA NA Trong lệnh trên, rep(1/5, 5) có nghĩa là hệ số của phép lọc 1/5 được lặp lại 5  lần.      # Vẽ đồ thị cho filter với đường màu đỏ  > plot(x,type="l") > lines(filter, col="red")   Hình 4.6. Lọc tuyến tính dữ liệu chuỗi thời gian x (filter). 1.9.2. Phương pháp làm trơn bằng hàm số mũ   Phương pháp làm trơn hàm số mũ dựa vào trung bình có trọng số của chuỗi  dữ liệu, tức là lấy tổng trọng số của các quan sát trong quá khứ. Ta có     X t   X t  (1   ) X t 1  (1   ) 2  X t  2  ...  (1   )t 1 X 1 .  (4.6)  Tương tự,     X t 1   X t 1  (1   ) X t  2  (1   ) 2  X t 3  ...  (1   )t  2  X 1 .  (4.7)  Suy ra      (1   ) X t 1  (1   ) X t 1  (1   ) 2  X t  2                      (1   )3 X t 3  ...  (1   )t 1 X 1. 76    (4.8)  Ứng dụng phần mềm R nghiên cứu thống kê  Số   i   (1   )i  gọi là trọng số hình học (geometric weight).  Từ (4.6), (4.7) và (4.8) ta có:  X t   X t  (1   ) X t 1 ,        (4.9) với  0    1 ,    gọi là hằng số trơn (smoothing constant).  Cụ thể, ta chọn  X1  X 1 X 2   X 2  (1   ) X 1 X 3   X 3  (1   ) X 2   ................................... X n   X n  (1   ) X n1.  Phương pháp Holt-Winters   Phương  pháp  HoltWinter  được  phát  minh  bởi  Holt  (1975)  và  Winters  (1960)  thuộc  trường    Industrial  Administation  ở  Carnegie  Institute  of   Technology. Phương pháp này sử dụng giá trị trung bình dịch chuyển có trọng số  mũ dùng để ước lượng sự thay đổi theo mùa của trung bình, xu hướng và mùa.    Hàm dự đoán Holt-Winters (cho chuỗi thời gian với chu kỳ p) có dạng   Y [t  h]  a[t ]  h * b[t ]  s[t  l  ( h  1) mod p ] ,  trong đó  a[t ],  b[t ],  c[t ] được cho bởi:  a[t ]   (Y [t ]  s[t  p ])  (1   ) ( a[t  1]  b[t  1]),   b[t ]   ( a[t ]  a[t  1])  (1   ) b[t  1], s[t ]   (Y [t ]  a[t ])  (1   ) s[t  p ] (h là khoảng cách từ điểm dự đoán đến điểm cuối của chuỗi dữ liệu thô).    Ở đây  a[t ],   b[t ],   c[t ]  lần lượt là ước lượng mức độ, xu hướng và tác động  mùa tại thời điểm t, và   ,  , và   là các tham số san bằng.    Các  hàm  này  sẽ  tìm  một  giá  trị  tối  ưu  cho  các  tham  số   ,  , và   bằng  phương  pháp  bình  phương  cực  tiểu  sai  số  dự  đoán  nếu  chúng  là  NULL  (mặc  định).    Đối với những mô hình mùa, các giá trị bắt đầu cho  a,  b và  s sẽ được suy  ra từ việc thực hiện một phân tích đơn giản trong thành phần xu hướng và thành  phần  mùa  sử  dụng  trung  bình  dịch  chuyển  (sử  dụng  hàm  decompose()).  Đối  với những  mô hình  không có thành phần  mùa thì giá trị bắt đầu cho  a  và  b lần  lượt  là  x[2]  và  x[2]-x[1].  Đối  với  mô  hình  chỉ  có  thành  phần  trung  bình  (thông thường là san bằng hàm số mũ) thì giá trị bắt đầu cho a là x[1].    77  Ứng dụng phần mềm R nghiên cứu thống kê   Thủ tục lọc Holt-Winters trong R i) Mô tả   Thủ  tục  lọc  Holt-Winters  cho  chuỗi  thời  gian.  Các  tham  số  được  xác  định bởi cực tiểu hóa sự dự báo bình phương sai số.  ii) Cú pháp HoltWinters(x, alpha = NULL, beta = NULL, gamma = NULL, seasonal = c("additive", "multiplicative"), start.periods = 2, l.start = NULL, b.start = NULL, s.start = NULL, optim.start = c(alpha = 0.3, beta = 0.1, gamma = 0.1), optim.control = list()) iii) Các thông số  x một đối tượng của lớp ts.  alpha tham  số  trơn  alpha  (cho  mức  độ)  của  phép  lọc  HoltWinters.  beta tham  số  trơn  beta  (cho  xu  hướng)  của  phép  lọc  HoltWinters.  Nếu  tập  là  FALSE,  hàm  sẽ  thực  hiện  sang  bằng hàm số mũ.  gama tham  số  trơn  gama  được  dùng  cho  thành  phần  mùa.  Nếu  tập là FALSE, một  mô hình không có thành phần mùa sẽ  được lọc.  seasonal đặc điểm của chuỗi để chọn một mô hình mùa là mô hình  cộng hay mô hình nhân. Một vài đặc điểm đầu là đủ. (chỉ  có tác dụng nếu gamma là hằng số khác không).  start.periods chu  kỳ  bắt  đầu  được  dùng  khi  tự  tìm  thấy  những  giá  trị  đầu tiên. Tối thiểu phải là 2.  l.start giá trị bắt đầu cho mức độ (a[0]).  b.start giá trị bắt đầu cho xu hướng (b[0]).  s.start véctơ  của  giá  trị  bắt  đầu  cho  thành  phần  mùa  (s_1[0]  …  s_p[0]).  optim.start là véctơ với các thành phần có tên là alpha, beta và gamma  bao  gồm  những  giá  trị  bắt  đầu  được  tối  ưu  hóa.  Chỉ  các  giá trị cần phải xác định. Không xét trường hợp một tham  số.  optim.control dãy bất kỳ được thêm vào tham số điều chỉnh phù hợp với  optim  nếu  nó  được  sử  dụng.  Không  xét  trường  hợp  một  tham số.      78  Ứng dụng phần mềm R nghiên cứu thống kê   Ví dụ 4.11:  Trở  lại  với  ví  dụ  4.10  ta  thấy  dữ liệu  không  bị  tác  động  bởi  xu  hướng và mùa, do đó ta tiến hành san bằng hàm số mũ cho chuỗi thời gian này.    Ta thực hiện như sau:    # Tạo một chuỗi thời gian cho dữ liệu x, thời gian bắt đầu từ năm 1990 với  tần số là 12.  > tieuthu.ts=ts(x, start=1990, fr=12)   # Vẽ đồ thị chuỗi thời gian trên.  > plot(tieuthu.ts) Hình 4.7. Số lượng sản phẩm bán ra của một của hàng năm 1990-1991.     Tiếp theo, tiến hành lọc holtwinters  > tieuthu.hw=HoltWinters(tieuthu.ts, beta=F, gamma=F)   Lệnh trên yêu vầu R gán tieuthu.hw là lọc HoltWinters cho chuỗi thời  gian không chứa thành phần xu hướng (beta = F) và thành phần mùa (gamma =  F).   > tieuthu.hw   Kết quả từ R:  Holt-Winters exponential smoothing without seasonal component. without trend Call: HoltWinters(x = tieuthu.ts, beta = F, gamma = F) Smoothing parameters: alpha: 0.9999339 beta : FALSE gamma: FALSE Coefficients: [,1] a 26.99967   79  and Ứng dụng phần mềm R nghiên cứu thống kê    # Vẽ đồ thị dữ liệu đã được lọc là đường màu đỏ.  > plot(tieuthu.hw)   Hình 4.8. Số lượng sản phẩm bán ra và trung bình dịch chuyển có trọng số mũ 1990-1991. Từ kết quả của phép lọc HoltWinters ta ước lượng được  giá trị trung bình  của sản phẩm bán ra là 26.99. Giá trị của tham số    0.99 .   Ví dụ 4.12. Ta có dữ liệu  doanhthu.csv cho biết doanh thu của công ty A  được cung cấp  hàng tháng từ tháng 1  năm 2010 đến tháng 11 năm 2012. Dùng  mô hình HoltWinters dự báo cho các tháng 12 năm 2012 và năm 2013.    # Nhập dữ liệu.  > setwd("D:/studying/luan van/csv") > doanhthu= read.csv("doanhthu.csv", header=T)   # Trích cột 2 của dữ liệu.  > doanhthu= doanhthu[, 2]   # Tạo ra một chuỗi thời gian cho doanhthu với tên doanhthu.ts. > doanhthu.ts= ts(doanhthu, start=c(2010,1), end=c(2012,11), fr=12) > doanhthu.ts Jan Feb Mar Apr May Jun Jul Aug 2010 4.8 4.0 5.5 15.6 23.1 23.3 31.4 46.0 2011 48.4 61.6 65.6 71.4 83.4 93.6 94.2 85.4 2012 100.3 111.7 108.2 115.5 119.2 125.2 136.3 146.8   80  Ứng dụng phần mềm R nghiên cứu thống kê  Sep Oct Nov 2010 46.1 41.9 45.5 2011 86.2 89.9 89.2 2012 146.2 151.4 150.9   Dec 53.5 99.1 # Vẽ đồ thị cho chuỗi thời gian doanhthu.ts.  0 50 Doanh thu 100 150 > plot(doanhthu.ts, xlab="Months", ylab="Doanh thu") 2010.0 2010.5 2011.0 2011.5 2012.0 2012.5 Time   Hình 4.9. Doanh thu của công ty A 2010-2012.   # Làm trơn dữ liệu với hàm holtwinters    > loc = HoltWinters(doanhthu.ts) Trong  lệnh  yêu  cầu  R  gán  "loc"  là  lọc  HoltWinters  cho  chuỗi  thời  gian  doanhthu.ts, các thuộc tính alpha, beta, gamma được mặc định là “TRUE”  > loc R xuất ra kết quả:  Holt-Winters exponential smoothing additive seasonal component. Call: HoltWinters(x = doanhthu.ts) Smoothing parameters: alpha: 0.7035284 beta : 0 gamma: 0.9457524 Coefficients: [,1] a 156.5152073 b 4.5149038 s1 -1.9795226 s2 -4.7991235 s3 -0.7301894 s4 -4.7537455 s5 -1.7366888 s6 3.9279917   81  with trend and Ứng dụng phần mềm R nghiên cứu thống kê  s7 s8 s9 s10 s11 s12 10.7410493 6.3807509 6.4453125 3.0521337 -0.4364703 -5.6210669 Từ kết quả, ta nhận được các giá trị alpha= 0.7, beta= 0 và gamma= 0.9 Phần kết quả  Coefficients: [,1] a 156.5152073 b 4.5149038 s1 -1.9795226 s2 -4.7991235 s3 -0.7301894 s4 -4.7537455 s5 -1.7366888 s6 3.9279917 s7 10.7410493 s8 6.3807509 s9 6.4453125 s10 3.0521337 cho biết các ước lượng hệ số giá trị trung bình, xu hướng và mùa.    # Dự đoán cho tháng 12 năm 2012 và năm 2013.  > predict(loc, n.ahead=13) Jan 2012 2013 2012 2013   Feb Mar Apr May Jun 160.7459 169.3297 169.8211 177.3530 187.5326 198.8606 Jul Aug Sep Oct Nov Dec 159.0506 199.0152 203.5947 204.7164 205.7427 205.0730 213.2294 # Vẽ đồ thị các giá trị của chuỗi thời gian và các giá trị dự đoán.  > plot(doanhthu.ts, xlim=c(2010,2014), ylim=c(0,200)) > lines(predict(loc,n.ahead=13),col=6) Kết quả từ R:    82  100 đường dự  đoán  0 50 doanhthu.ts 150 200 Ứng dụng phần mềm R nghiên cứu thống kê  2010 2011 2012 2013 2014 Time Hình 4.10. Giá trị dự đoán cho doanh thu của công ty A.   # Độ lệch chuẩn cho dữ liệu thô ban đầu.  > sd(doanhthu) [1] 44.46887   # Tổng bình phương sai số dự đoán SSE.  > loc$SSE [1] 2158.505   # Căn bậc 2 của trung bình tổng bình phương sai số dự đoán.  > sqrt(loc$SSE/length(doanhthu.ts)) [1] 7.853126  Nhận xét 4.2:  Từ kết quả của phép lọc HoltWinters ta tìm được giá trị tối ưu  của các tham số san bằng là    0.7,    0  và    0.9  dựa trên sự cực tiểu hóa  sai số dự đoán (SSE).  Sự phân tích này  nhanh chóng làm thích hợp sự biến  đổi  mùa  và  trung bình nhưng ngược lại xu hướng thì chậm lại. Các hệ số trong  kết  quả là ước lượng giá trị trung bình (a= 156.5), xu hướng (b= 4.5) và sự biến  thiên  mùa  từ tháng  1  đến  tháng  12  (Si,  i= 1,  2,  …,  12), những  giá  trị  này  được  dùng  để  dự  đoán  cho  các  giá  trị  tương  lai.  Ta  thấy  giá  trị  trung  bình  của  bình  phương sai số dự đoán nhỏ hơn độ lệch chuẩn của chuỗi thời gian ban đầu. II. QUÁ TRÌNH ARMA   Trong  phần  này  ta  nghiên  cứu  các  quá  trình  tự  hồi  qui  AR  (Auto Regressive), quá trình trung bình trượt MA (Moving Average) và quá trình tổng  quát  ARMA  (Auto Regressive Moving Average).  Đây  là  các  quá  trình  đóng  vai  trò then chốt trong việc phân tích chuỗi thời gian.  2.1. Quá trình tự hồi qui - AR (Autoregressive Processes) 2.1.1. Quá trình tự hồi qui cấp một AR(1)  Định nghĩa 4.10 Quá trình  {X t ; t  }  được gọi là quá trình tự hồi qui cấp một,  kí hiệu  X t  AR(1) , nếu  X t  là quá trình dừng thỏa    83  Ứng dụng phần mềm R nghiên cứu thống kê    X t  aX t 1   t  hoăc  X t  aX t 1   t ,        (4.10) trong đó   t  là ồn trắng (White noise), nghĩa là   t  là biến ngẫu nhiên có kỳ vọng  là không,  E t  s  0 (t  s) , và có phương sai hữu hạn   2 Var t .   Chú ý 4.2  Phương trình (4.10) có thể viết dưới dạng toán tử  a( B ) X t   t ,  trong đó  a( B)  được xác định như sau:  a( z )  1  az  (đa thức hồi qui) .   Định lý 4.3. Không tồn tại quá trình dừng  {X t ;  t  }  thỏa (4.10) với  a  1 .   Nhận xét 4.3 Định lý 4.3 cho thấy hệ thức (4.10) không đương nhiên xác định  một quá trình AR(1). Tuy nhiên, ta có điều dưới đây:   Định lý 4.4  Với  a  1   thì  hệ  thức  (4.10)  xác  định  duy  nhất  một  quá  trình  AR(1).  Khi  a  1  quá trình có dạng    Xt   a i t i ,    (4.11) i 0      với   a i   .  i 0  Nhận xét 4.4   i) Từ biểu thức (4.11) và giả thuyết   t  là ồn trắng suy ra   E t X t 1  0 .      Vì  E t X t 1  E   t  a i t 1i    a i E ( t t 1i )  0.    i 1  i 1   ii)  Mặt  khác,  với  s   t.     Ngoài ra, ta có:   (0)  VarX t   X2  EX t2   (0)  E[X t (a1 X t 1  a2 X t  2   t )]                        a1E ( X t X t 1 )  a2 E ( X t X t  2 )  E ( X t  t ), tức là     87  (4.17)  Ứng dụng phần mềm R nghiên cứu thống kê   (0)  a1 (1)  a2 (2)   2 .    Tổng quát hơn ta có:   ( h)  cov( X t , X t  h )  E ( X t X t  h )  E[X t  h (a1 X t 1  a2 X t  2   t )]            E (a1 X t 1 X t  h  a2 X t  2 X t  h  X t  h t )          a1 ( h  1)  a2 (h  2)  E ( X t  h t ), tức là    ( h)  a1 (h  1)  a2 (h  2) .  Đặc biệt ta có    (1)  a1 (0)  a2 (1),    (2)  a1 (1)  a2 (0).   Nhân hai vế (4.18) với  (4.18)  1  (h)  và để ý rằng   h   ta được    (0)  (0) 1  a1  a2 1    2  a11  a2 .   (4.19)    Cho trước  a1  và  a2 , ta có thể dùng (4.13) để tính  1 ,   2  và ngược lại, cho  trước  1 ,     2   thì  dùng  (4.19)  để  tính  a1 ,  a2 .  Tuy  nhiên,  trong  thực  tế  khi  cho  chuỗi quan sát  X  {X 1 , X 2 ,..., X n }  thì có thể tính  r1 ,  r2  xấp xỉ cho  1  và   2 . Do  đó ta có thể thay  1 ,   2  bởi  r1 ,  r2  và tìm  r1 ,  r2  từ hệ phương trình  r1  a1  a2 r1    r  a r  a 2 11 2       (4.20)  Khi  1  r 2  0  thì hệ phương trình (4.20) cho   a1  r1 (1  r2 ) 1  r2   ;   a2  1  .  2 1  r1 1  r12 (4.21)  Công thức (4.21) cho thấy  khi  r2  rất gần  r12  thì  mô hình  AR(2) rất  gần  với  mô  hình AR(1).  2.1.3. Quá trình tự hồi qui cấp p (AR(p))  Định nghĩa 4.13. Quá trình  {X t ; t  }  gọi là một quá trình tự hồi qui cấp p, kí  hiệu  X t  AR( p ) , là quá trình dừng  X t  thỏa:    hay     X t  a1 X t 1  ...  a p X t  p   t , a p  0 ,    a( B ) X t   t .  Trong đó   t  là ồn trắng và  a( B) là biểu thức được định nghĩa bởi     (4.22)  88  (4.23)  Ứng dụng phần mềm R nghiên cứu thống kê  a( z )  1  a1 z  a2 z 2  ...  a p z p ,  đa thức  a( z )  có nghiệm thỏa  z  1    Chú ý 4.4. Cũng như hai trường hợp p = 1, 2; điều kiện nhân quả đảm bảo tính  khả nghịch của toán tử  a( B) . Hơn nữa, có thể biểu diễn  X t  một cách duy nhất  dạng   X t   ( B ) t .  Nghĩa là  X t  có thể biểu diễn tường minh dạng (4.16).   Các đặc trưng của quá trình AR(p) i) Ta có  EX t  0 .  ii) Mặt khác, từ (4.22) ta suy ra   p   X t   ai X t 1   t .  (4.24) i 1       Nhân  hai  vế  (4.24)  với  X t   rồi  lấy  kỳ  vọng  hai  vế,  chú  ý  rằng   (i )  E ( X i X t i )  và dùng hệ thức (4.17) ta được     p  (0)   ai (i )   2 .  i 1 Tương tự trên, nhân (4.24) với  X t  h ,  h  0  và lấy kỳ vọng hai vế rồi chia  cho   (0)  ta được hệ phương trình dưới đây gọi là hệ phương trình Yule-Walker.  p  p   ai  hi  0, h  0 .  i 1 Lần lượt cho h=1, 2, …, p ta được    1       1      ...        p  2       p 1   a1   1         1      1       ...        p 3        p  2   a2    2  .         .        .         .           .    . ...   ...  .          p  2    p 3   ...       1           1   a p 1    p1          p 1    p 2   ...       1          1   a p    p      (4.25)     Các phương trình trong hệ (4.25) là song tính đối với a và   . Nếu cho     thì  tính  được  a  và  ngược  lại.  Trong  thực  tế,  khi  cho  chuỗi  quan  sát  X   X 1 , X 2 ,..., X n    thì  dùng  công  thức  (4.25)  để  tính  các  ri xấp  xỉ  i   và  có  hệ  phương trình:    89  Ứng dụng phần mềm R nghiên cứu thống kê    1       r1      ...       rp  2      r p 1   a1   r1         r1      1       ...       r p  3       r p  2   a 2   r2  .         .        .         .           .    . ...   ...  .         rp  2   r p  3   ...       1           r1   a p 1   rp 1         rp 1   r p  2   ...       r1          1   a p   rp      (4.26) Khi giải những bài toán thực tế, người ta thường lấy  p  13 .   Lệnh trong R   Hàm ar() dùng để tạo ra một mô hình tự hồi qui AR(p) thích hợp nhất cho  chuỗi thời gian.    Một phương pháp được sử dụng trong hàm ar()là “mle”. Phương pháp  “mle” được sử dụng trong quá trình làm trơn dựa trên sự tối đa hóa hàm  loglikelihood (hàm hợp lí cực đại).    Bậc p của quá trình ar được chọn dựa trên tiêu chuẩn Akaike Information Criterion (AIC). Trong phần này tiêu chuẩn AIC được tính theo công thức như  sau:  AIC  2.LL  2k ,  trong đó  k: số tham số có trong mô hình,  LL: log-likelihood.  Trong hàm ar, mô hình có giá trị AIC nhỏ nhất được chọn là mô hình là mô hình  AR thích hợp nhất.   Ví dụ 4.15. Ta trở lại ví dụ 4.13, quá trình AR(1) có thể được mô tả trong R  bằng các lệnh sau:    # Gán e là biến ngẫu nhiên có phân phối chuẩn độ dài 100 và cố định e. > set.seed(1) > e = rnorm(100)   # Cho x là một chuỗi rỗng. > x = c()   # Gán giá trị đầu của x là giá trị đầu của biến ngẫu nhiên e. > x[1]=e[1]   # Vòng lập for cho t chạy từ 2 đến 100 và gán  xt  0.7 xt 1  et . > for (t in 2:100) x[t] = 0.7 * x[t - 1] + e[t]   #  Vẽ  đồ  thị  dạng  đường,  hàm  tự  tương  quan  và  hàm  tự tương  quan  riêng  cho x.   90  Ứng dụng phần mềm R nghiên cứu thống kê  > plot(x, type = "l") > acf(x) -1 0 x 1 2 3 > pacf(x) 0 20 40 60 80 100 Index (a) Hình dạng chuỗi thời gian x. 0.2 0.4 0.6 0.8 1.0 -0.2 ACF Series x 0 5 10 15 20 Lag (b) Đồ thị hàm tự tương quan của x. 0.2 -0.2 0.0 Partial ACF 0.4 0.6 Series x 5 10 15 20 Lag   (c) Đồ thị hàm tự tương quan riêng của x.   91  Ứng dụng phần mềm R nghiên cứu thống kê  Hình 4.11. Mô tả quá trình AR(1) của chuỗi thời gian xt  0.7 xt 1  et .   # Tìm mô hình ar thích hợp cho x. > x.ar = ar(x, method = "mle") > x.ar Call: ar(x = x, method = "mle") Coefficients: 1 0.6009 Order selected 1 sigma^2 estimated as   0.7881 # Xác định bậc của mô hình ar. > x.ar$order [1] 1   # Ước lượng tham số của mô hình. > x.ar$ar [1] 0.6009459  Kết luận: Bậc của mô hình được chọn là bậc 1. Tham số được ước lượng cho mô  hình là  aˆ  0.6  gần bằng tham số của mô hình cơ sở  a  0.7 . Trong khoảng tin  cây 95% thì giá trị  aˆ  đáng tin cậy. Vậy mô hình AR(1) trên là chấp nhận được.   Ví dụ 4.16. Ta có dữ liệu là chuỗi thời  gian nhiệt độ trung bình hàng tháng  toàn cầu được ghi nhận từ năm 1856 đến năm 2005. Ta tiến hành tìm mô hình ar thích hợp cho dữ liệu này.     Bước đầu tiên của quá trình là nhập dữ liệu, ta làm như sau:  > setwd("D:/Studying/luan van/csv") > Global = read.table("global.txt", header=FALSE, dec=",", sep=";") Lệnh thứ hai yêu cầu R gán cho Global một dữ liệu dạng text “global.txt”.     # Tạo một chuỗi thời gian cho dữ liệu với thời gian bắt đầu là tháng 1 năm  1856 và kết thúc là tháng 12 năm 2005, tần số là 12. > Global.ts = ts(Global,st = c(1856, 1), end = c(2005,12),fr = 12)   #  Dùng  hàm  aggregate()  để  lấy  ra  tác  động  mùa  và  tạo  ra  chuỗi  thời  gian  Global.annual là  nhiệt  độ  trung  bình  hàng  năm  từ năm  1856  đến  năm  2005. > Global.annual = aggregate(Global.ts, FUN = mean)   92  Ứng dụng phần mềm R nghiên cứu thống kê  FUN là một hàm để tính thống kê mô tả, ở lệnh trên FUN = mean có nghĩa là yêu  cầu R tính trung bình các giá trị theo năm. Mỗi một năm sẽ có một giá trị trung  bình và nó được gán vào Global.annual    # Tìm mô hình AR thích hợp cho chuỗi thời gian x. > Global.ar =ar(Global.annual, method="mle") > Global.ar Kết quả từ R như sau:  Call: ar(x = global.annual, method = "mle") Coefficients: 1 2 -0.6995 -1.0103 7 8 -0.8886 -0.9417 Order selected 12 3 -0.8404 9 -0.7723 4 -0.8699 10 -1.0131 5 -0.9282 11 -0.8531 sigma^2 estimated as 6 -0.8585 12 -0.4192 40.35   Kết quả xuất ra từ lệnh Global.ar cho ta biết được các hệ số của mô hình  AR, bậc thích hợp cho mô hình là 12 và giá trị   2 =40.35.   # Trung bình của chuỗi thời gian x đã được loại khỏi tác động mùa. > mean(Global.annual) [1] -0.1382628   # Trích phần dư của chuỗi.  > global.ar$resid Time Series: Start = 1856 End = 2005 Frequency = 1 [1] NA NA NA [6] NA NA NA [11] NA NA -6.9771410 [16] 10.6638343 1.4479266 -1.8583830 [21] 0.4955568 -8.9485088 2.0423271 [26] 4.3124410 3.1042509 -3.2498834 [31] -1.5072996 -8.4249412 3.9471621     NA NA -4.4388808 11.6521789 -0.2242413 -9.8690482 7.5518000  NA NA -2.6134818 -5.4360080 14.2734031 1.7987573 -1.5756421  [116] 10.6638343 1.4479266 -1.8583830 11.6521789 -5.4360080 [121] 0.4955568 -8.9485088 2.0423271 -0.2242413 14.2734031 [126] 4.3124410 3.1042509 -3.2498834 -9.8690482 1.7987573 [131] -1.5072996 -8.4249412 3.9471621 7.5518000 -1.5756421 [136] 0.3524998 -7.0379762 -6.9771410 -4.4388808 -2.6134818 [141] 10.6638343 1.4479266 -1.8583830 11.6521789 -5.4360080 [146] 0.4955568 -8.9485088 2.0423271 -0.2242413 14.2734031       93  Ứng dụng phần mềm R nghiên cứu thống kê  # Đồ thị hàm tự tương quan của chuỗi phần dư. > acf(Global.ar$res[-(1:Global.ar$order)], lag = 50) Trong  lệnh  trên,  “Global.ar$res[-(1:Global.ar$order)]” yêu  cầu  R  loại bỏ những giá trị từ vị trí thứ 1 cho đến vị trí n (n là số bậc được chọn của mô  hình), ở ví dụ này n=12.  -0.5 0.0 ACF 0.5 1.0 Series global.ar$res[-(1:12)] 0 10 20 30 40 50 Lag Hình 4.12. Tương quan đồ của chuỗi phần dư   Ta thấy trên đồ thị acf của chuỗi phần dư , các giá trị chưa dần về 0 (tắt dần  rất chậm) nên chuỗi phần dư không là một ồn trắng. Nên mô hình AR(12) chưa  thích hợp cho dữ liệu này.  2.2. Quá trình trung bình trượt – MA (Move Average Processes) 2.2.1. Quá trình trung bình trượt cấp q (MA(q))  Định nghĩa 4.14 Quá trình  X t  được gọi là quá trình trung bình trượt cấp q, kí  hiệu  X t  MA( q ) , là quá trình thỏa    X t   t  b1 t 1  ...  bq t  q ; b1 ,  ...,  bq  ,  bq  0 ,  (4.27)  hoặc dưới dạng toán tử lùi   X t  b( B ) t .    (4.28)  Trong đó   t  là ồn trắng và hàm  b(.)  được định nghĩa bởi   b( z )  1  b1 z  ...  bq z q ,  b( z )  được gọi là đa thức trung bình trượt.   Các đặc trưng của quá trình MA(q) i)  EX t  0 .  ii) Nhân cả hai vế (4.27) với   s , lấy kỳ vọng hai vế và dùng giả thiết   t  là  ồn trắng ta được    94  Ứng dụng phần mềm R nghiên cứu thống kê   2  E ( X t  s )   2bi 0        khi st khi s  t  i, 1  i  q .  (4.29)  Mặt khác, ta có    ( h)  E ( X t X t  h )  E ( X t  h ( t  b1 t 1  ...  bq t  q ) .  (4.30)  Từ (4.29) và (4.30) ta suy ra       2  ( h)   (bh  b1bh1  ...  bq  hbq ) ; b0  1, 1  h  q     ( h)  0 (4.31)  Đặc biệt    (0)  VarX t   2 (1  b12  ...  bq2 ) .    Từ (4.31) ta suy ra các tự tương quan   bh  b1bh1  ...  bq hbq   ;    h  1, q     (h)   1  b12  ...  bq2 0                                   ;     h  q  2.2.2. Quá trình trung bình trượt cấp môt (MA(1))  Định nghĩa 4.15 Quá trình MA(1) là quá trình có dạng   X t   t  b t 1 ,    (4.32)  trong đó   t  là ồn trắng.  1 Đa thức trung bình trượt  b( z )  1  bz .  b( z )  0  có nghiệm là  z   . Do  b đó điều kiện để quá trình khả nghịch là  b  1 . Với điều kiện này, ta có thể biểu  diễn      ( z)      1   b j z j .  1  bz j 0  Vì  b  1  nên    j   b j   . Khi đó ta có thể biểu diễn   j 0 j 0  X t   b j X t  j   t .  j 1 Dùng công thức (4.31) ta được:    95  (4.33)  Ứng dụng phần mềm R nghiên cứu thống kê   (0)  VarX t   2 (1  b 2 )  2    (1)   b  ( h)  0, h  1  Suy ra   1   (1) b  ,  h  0; h  1 .   (0) 1  b 2   Trong thực tế, với chuỗi quan sát  X  {X t ; t  1, n}  thì  1  được xấp xỉ với  hệ số tương quan mẫu  r1  và có   r1  b .   2 1 b     Từ đó b là nghiệm của phương trình bậc hai:  2 rb  b  r1  0 .  1   (4.33)    Vậy  để  (4.32)  thực  sự  biểu  diễn  một  quá  trình  MA(1)  thì b  phải  là  một  nghiệm có trị tuyệt đối bé hơn 1 của (4.33). Điều này dẫn đến điều kiện:  r1  1 .  2 2.2.3. Quá trình trung bình trượt cấp hai (MA(2))  Định nghĩa 4.16 Quá trình MA(2) là quá trình có dạng   X t   t  b1 t 1  b2 t  2 ,    (4.34)  trong đó   t  là ồn trắng.    Đa  thức trung  bình  trượt  b( z )  1  b1 z  b2 z 2 .  Với  điều  kiện  khả  nghịch  là  b( z )  0 có nghiệm thỏa  z  1 , dùng công thức (4.31) ta được    (0)   2 (1  b12  b22 )  2  (1)   (b1  b1b2 )    2  (2)   b2  ( h)  0, h  2      (4.35)  Từ (4.35), ta suy ra các giá trị tương quan   1  b1  b1b2  2 b2 ; 2  , h  0, h  0 .  2 2 1  b1  b2 1  b12  b22   Trong  thực tế,  với  chuỗi  quan  sát  X thì  1   và   2   được  xấp  xỉ  với  các  tự  tương quan  r1 ,  r2  và có     96  Ứng dụng phần mềm R nghiên cứu thống kê  r1    b1  b1b2 b2 ; r  .  2 1  b12  b22 1  b12  b22 (4.36)  Từ (4.36), suy ra hệ phương trình bậc hai để tính  b1  và  b2  khi tính được  r1 ,  r2  theo công thức   (1  b12  b22 )r1  b1  b1b2 .   2 2 (1  b1  b2 )r2  b2  Lệnh trong R   Hàm arima() được dùng để tạo ra một mô hình trung bình trượt MA(q)  thích hợp cho chuỗi thời gian với bậc của các tham số của hàm được chứa trong  tập c(0,0,q).   Ví dụ 4.17. Tạo ra một chuỗi thời gian là trung bình dịch chuyển của 1000 giá  trị dựa trên mô hình  xt  et  0.8 et 1 ,  et  là ồn trắng. Vẽ đồ thị  và tương quan đồ  acf cho chuỗi xt. Tìm mô hình MA(1) thích hợp cho chuỗi thời gian trên.     Bước đầu tiên là tạo ra chuỗi thời gian  xt  et  0.8 et 1 . Được thực hiện bởi  các lệnh sau đây:  > e = rnorm(1000) > x = c() > x[1] = e[1] > for (t in 2:1000) x[t] = e[t] - 0.8 * e[t-1] Vẽ đồ thị  và tương quan đồ acf cho chuỗi xt. > plot(x, type='l') -4 -2 0 x 2 4 > acf(x) 0 200 400 600 800 Index Hình 4.13. Đồ thị chuỗi thời gian xt  et  0.8 et 1 .   97  1000 Ứng dụng phần mềm R nghiên cứu thống kê  -0.5 0.0 ACF 0.5 1.0 Series x 0 5 10 15 20 25 30 Lag Hình 4.14. Tương quan đồ của chuỗi thời gian xt  et  0.8 et 1 .   Nhìn vào đồ thị ACF ta thấy ở trễ 0 thì tự tương quan là 1 ngoài ra chỉ ở trễ  1 thì tự tương quan có ý nghĩa và nó phải mang giá trị âm. Ở các trễ còn lại thì tự  tương quan gần như không có ý nghĩa.   # Tìm mô hình MA(1) cho chuỗi thời gian x. > arima(x, order=c(0,0,1)) R cho kết quả  Call: arima(x = x, order = c(0, 0, 1)) Coefficients: s.e. ma1 intercept -0.8380 -0.0024 0.0168 0.0053 sigma^2 estimated as 1.065: aic = 2908.29 log likelihood = -1451.14, Ta có hệ số ước lượng của mô hình là  bˆ  0.838  gần bằng hệ số của mô hình cơ  sở  b  0.8 .   2.3. Quá trình tự hồi qui trung bình trượt – ARMA (Autoregressive Moving Average Process) 2.3.1. Quá trình tự hồi qui trung bình trượt cấp p, q (ARMA(p, q)) Quá  trình  ARMA  đóng  vai  trò  rất  quan  trọng  trong  phân  tích  chuỗi  thời  gian do tính mềm dẻo của nó trong việc thích hợp với hàm tự tương quan (ACF).  Ta  có  thể  tìm  một  mô  hình  ARMA  thích  hợp  với  một  số  bất  kỳ  các  giá  trị  đầu  tiên  của  ACF.  Đặc  biệt,  nếu  ACF  của  một  chuỗi  thời  gian  có  hữu hạn  số  khác  không  thì  nó  có  thể  thích  hợp  với  một  quá  trình  MA(q) ;  nếu  PACF  của  chuỗi    98  Ứng dụng phần mềm R nghiên cứu thống kê  thời  gian  có  hữu  hạn  số  khác  không  thì  nó  có  thể  thích  hợp  với  một  quá  trình  AR(p).   Định nghĩa 4.17 Quá trình  X t  được gọi là quá trình tự hồi qui trung bình trượt  cấp p, q, kí hiệu  X t  ARMA( p, q ) , là một quá trình dừng thỏa   p   q X t   a i X t i   t   b j t  j ; a i ,  b j  , i  1,  p,  j  1,  q ,  i 1 (4.37)  j 1 trong đó   t  là ồn trắng, các đa thức hồi qui  a( z )  và đa thức trung bình trượt  b( z )   có bậc p, q tương ứng:  a( z )  1  a1 z  ...  a p z p , a p  0, b( z )  1  b1 z  ...  bq z q , bq  0.   Dạng toán tử của (4.37) là   a( B ) X t  b( B ) t .    (4.38)   Định nghĩa 4.18 (Quá trình nhân quả và khả nghịch ARMA)    Một quá trình ARMA(p, q) được gọi là một quá trình nhân quả khả nghịch  nếu các phương trình  a( z )  0  và  b( z )  0  thỏa hai điều kiện:    i) Không có nghiệm chung;    ii) Không có nghiệm  z  1 .     Trong luận văn này ta chỉ nói về quá trình nhân quả khả nghịch.   Chú ý 4.5 Dạng tổng quát của quá trình ARMA(p, q) là   p   q X t   a i X t i  b0   t   b j t  j ,  i 1 (4.39)  j 1 trong đó  b0 là một hằng số thực.   Chú ý 4.6 Do tính nhân quả và khả nghịch và do tính chất khả đảo của các đa  thức toán tử lập luận tương tự như phần  AR(1) ta được các biểu diển  khác của  quá trình  X t  ARMA( p,  q ) :       X t   i t i ; 0  1; i 0    ,  i (4.40)  i 1 và có thể tính hệ số    bằng cách chia (theo lũy thừa tăng)  a( z )  cho  b( z ) . Đây là  biểu diễn  X t  dưới dạng một trung bình trượt vô hạn ( tức là  X t  MA() )    Cũng  có  thể  biểu  diễn   t   thành  một  quá  trình  tự  hồi  qui  có  bậc  vô  hạn  (tức là   t  AR() ) :       t   j X t  j ;  0  1; j 0   99   j 0 j   .  (4.41)  Ứng dụng phần mềm R nghiên cứu thống kê   Các đặc trưng của quá trình ARMA(p, q)   Từ biểu diển (4.37) và bằng cách nhân hai vế (4.37) với  X t h  (h  0) , sau đó  lấy kỳ vọng hai vế ta được  p q  ( h)  E ( X t X t  h )   ai (h  i )    , X ( h)   bi  , X ( h  i ) ,    i 1 (4.42)  i 1 với    , X  E ( t , X t  k ) .  Ta có    X t  k   i t  k i .    (4.43)  i 0 Từ (4.43) và từ giả thiết   t  là ồn trắng ta suy ra  0      , k  0    , X (k )  E ( t  i t  k i )     2   k ,  0 i0  k   Với  h  q  thì (4.42) được viết thành   p  ( h)   ai ( h  i) ,  i 1 và do đó   p  h   ai  h1 .  i 1 2.3.2. Quá trình tự hồi qui trung bình trượt cấp (1,1) (ARMA(1,1))  Định nghĩa 4.19 Quá trình ARMA(1,1) là quá trình dừng có dạng     X t  aX t 1   t  b t 1 ,    trong đó   t  là ồn trắng.    Đa thức hồi qui:  a( z )  1  az .    Đa thức trung bình trượt:  b( z )  1  bz .    Điều kiện nhân quả khả nghịch:  a  1  ;   b  1     Dạng trung bình trượt cấp vô hạng là  X t   ( B ) t , trong đó    ( z)   1+bz    j z j ,  1  az j  0       100  (4.44)  Ứng dụng phần mềm R nghiên cứu thống kê  với     0  1 0  1   a  b   a  b  1  1 0              a   0   a ( a  b ) 1  2  2  j  a j 1  0, j  2  j  a j 1 , j  2   (4.45)   Các đặc trưng của quá trình ARMA(1,1) i) Hàm tự hiệp phương sai   ( h)  a (h  1)    , X ( h)  b  , X ( h  1) ,    (4.46)  trong đó    , X ( k )  E ( k X t  k )   k 2 .   Dùng công thức (4.46) và lần lượt cho  h  0,  1  ta được   (0)  a (1)  0 2  1 2b .  Dùng (4.45) ta lại có   (0)  a (1)  [1  b( a  b)] 2 ,    (4.47)  và    (1)  a (0)  b0 2      (1)  a (0)  b 2   (4.48)  Từ (4.47) và (4.48) ta nhận được   (0)   (1)  1  2ab  b 2 2  ,  1  a2 (a  b)(1  ab) 2  ,  1  a2  ( h)  a (h  1), h  2 .  ii) Hàm tự tương quan  1   (1) (a  b)(1  ab) ;    2  a 1 ;    h  a  h1 , h  2 .    (0) 1  2ab  b 2   Để  ARMA(1,1)  là  quá  trình  nhân  quả  và  khả  nghịch  thì  a ,  b   phải  là  nghiệm có trị tuyệt đối bé thua 1 của hệ phương trình sau:  2  a   1        2 2 (   2 )b  (2   ( 2 )  1)b  (   2 )  0 2 1  1 1 1 1   101  Ứng dụng phần mềm R nghiên cứu thống kê  2.3.3. Quá trình tự hồi qui trung bình trượt cấp (p, 1) (ARMA(p,1))  Định nghĩa 4.20 Quá trình ARMA(p, 1) là quá trình dừng có dạng   X t  a1 X t 1  ...  a p X t  p   t  b t 1 ,    (4.49)  trong đó   t  là ồn trắng.    Đa thức hồi qui:  a( z )  1  a1 z  ...  a p z p , a p  0 .    Đa thức trung bình trượt:  b(z)=1+bz .    Điều kiện nhân quả khả nghịch là   b 1   1 a ( )  0, a( z )  0, b  z 1   Dạng trung bình trượt cấp vô hạng là  X t   ( B ) t , trong đó      ( z)  b( z )    j z j . a ( z ) j 0  Lệnh trong R a) Hàm arima() i) Mô tả Tạo ra một mô hình ARIMA phù hợp cho chuỗi thời gian.  ii) Cú pháp arima(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 = 1e6) iii) Các thông số x một chuỗi thời gian đơn. order chỉ  ra  thành  phần  không  mùa  của  mô  hình  ARIMA.  Ba  thành  phần  (p, d, q)   lần  lượt  là  bậc  của  AR,  bậc  lấy  sai  phân, bậc của MA.  seasonal chỉ  ra  thành  phần  mùa  của  mô  hình  ARIMA,  và  chu  kỳ  (mặc  định  là  Frequency  (x)).  Đây  là  một  dãy  gồm  các  thành phần order và Period.      102  Ứng dụng phần mềm R nghiên cứu thống kê  xreg một véc tơ hoặc ma trận bất kỳ bên ngoài biến hồi qui độc  lập. Nó phải có số hàng bằng với số hàng của x.  include.mean xem  mô  hình  ARIMA  có  chứa  số  hạng  trung  bình  hay  bị  chặn  không?.  Mặc  định  là  TRUE  cho  chuỗi  không  lấy  sai  phân, và nó bỏ qua đối với mô hình ARIMA khi chuỗi lấy  sai phân.  transform.pars nếu  là  “TRUE”  các  tham  số  AR  sẽ  thay  đổi  để  đảm  bảo  rằng chúng vẫn nằm trong vùng có tính dừng. Không dùng  cho method = "CSS".  fixed một véc tơ bất kỳ có chiều dài bằng với tổng số tham số.  init véc tơ bất kỳ của những giá trị tham số ban đầu. Những giá  trị  khuyết  sẽ  được  lấp  đầy  bởi  0  trừ  những  hệ  số  hồi  qui.  Những giá trị đã chỉ ra trong fixed sẽ được bỏ qua.  method có hai phương pháp:  maximum likelihood (tối đa hàm hợp  lý cực đại) hoặc phương pháp tổng bình phương nhỏ nhất.  Mặc  định  (nêu  không  có  giá  trị  khuyết)  là  dùng  phương  pháp tổng bình phương nhỏ nhất để tìm các giá trị bắt đầu,  sau đó là phương pháp maximum likelihood.  n.cond chỉ sử dụng nếu sự điều chỉnh bằng phương pháp tổng bình  phương: số quan sát không xét đến ban đầu. Nó bỏ qua nếu  nhỏ hơn trễ lớn nhất của một số hạng AR.  optim.method giá trị phù hợp với phương pháp đối số optim.  optim.control dãy của các tham số điều chỉnh cho optim.  kappa phương sai của mô hình lấy sai phân.  b) Hàm arima.sim() i) Mô tả   Tổng quát dùng để mô phỏng mô hình ARIMA mà ta sẽ nói ở những phần  sau. Trong phần này nó được dùng để mô phỏng mô hình ARMA(p, q).  ii) Cú pháp arima.sim(model, n, rand.gen = rnorm, innov = rand.gen(n, ...), n.start = NA, start.innov = rand.gen(n.start, ...), ...) iii) Các thông số moldel một dãy với thành phần ar hoặc ma hoặc cả hai lần lượt cho  bởi hệ số của AR và MA. Các thành phần này có bậc tùy ý.  Một dãy rỗng cho bởi mô hình ARIMA(0, 0, 0) được gọi là  ồn trắng. n chiều dài của chuỗi cung cấp.    103  Ứng dụng phần mềm R nghiên cứu thống kê  rand.gen một hàm bất kỳ được tạo ra từ sự đổi mới.  innov một chuỗi bất kỳ của sự đổi mới. Nếu nó không được cung  cấp thì rand.gen sẽ được dùng.  n.start chiều dài của chu kỳ “burn-in”. Nếu là NA (mặc định) thì  một  giá trị hợp lý được tính.  start.innov một chuỗi thời gian bất kỳ được dùng cho chu kỳ trên. Giá trị  n.start ở đây phải nhỏ nhất (và n.start được mặc định  ... tính toán bên trong hàm)  những  đối  số  được  thêm  vào  cho  rand.gen.  Hầu  hết,  độ  lệch  chuẩn  của  sự  đổi  mới  được  tạo  ra  bởi  rnorm  có  thể  được chỉ ra bởi sd.   Ví dụ 4.18. Xây dựng một chuỗi thời gian Xt có độ dài 100 theo mô hình sau:  X t  X t 1  1 X t 2  et  0.6et 1 .  4 Tạo ra mô hình ARMA(2,1) thích hợp cho chuỗi thời gian trên và mô phỏng mô  hình ARMA(2,1) vừa mới tạo.    Các bước được thực hiện trên R như sau:    # Tạo dữ liệu.  > set.seed(1) > e = rnorm(100) > x = NULL # Gán 2 phần tử đầu của tập X là 2 giá trị đầu của biến ngẫu nhiên e. > x[1:2] = e[1:2]   1 4 Tạo ra vòng lập for và gán  X t  X t 1  X t 2  et  0.6et 1  với t chạy từ 3 đến  1 4 100. Do  X t  X t 1  X t 2  et  0.6et 1  nên t chạy từ 3 mới có ý nghĩa.  > for (t in 3:100) x[t]= x[t-1]-1/4*x[t-2]+e[t]+0.6*e[t-1]   # Vẽ đồ thị.  > plot(x, type=”l”) > acf(x); pacf(x)   104  2 -2 0 x 4 6 Ứng dụng phần mềm R nghiên cứu thống kê  0 20 40 60 80 100 Index a) Đồ thị của chuỗi X 0.4 -0.2 0.0 0.2 ACF 0.6 0.8 1.0 Series x 0 5 10 15 20 Lag   b) Đồ thị hàm tự tương quan của X 0.2 -0.4 -0.2 0.0 Partial ACF 0.4 0.6 0.8 Series x 5 10 15 20 Lag c) Đồ thị hàm tự tương quan riêng của X Hình 4.15. Mô tả quá trình ARMA(2, 1) của chuỗi Xt.   # Tạo mô hình ARMA(2,1) thích hợp cho chuỗi thời gian Xt. > arma21=arima(x,order=c(2,0,1)) > arma21   105    Ứng dụng phần mềm R nghiên cứu thống kê  Kết quả từ R  Call: arima(x = x, order = c(2, 0, 1)) Coefficients: ar1 ar2 1.0518 -0.4290 ma1 0.5098 intercept 0.7427 s.e. 0.1316 0.1259 0.1404 0.3491 sigma^2 estimated as 0.7689: log likelihood = -130, = 270 aic   # Tiến hành mô phỏng 100 giá trị cho mô hình ARMA(2,1) cho chuỗi Xt  với hệ số vừa mới tìm được.  > arima.sim(list(ar=c(1.0518,-0.4290), ma=c(0.5098)), n=100) Time Series: Start = 1 End = 100 Frequency = 1 [1] 1.176921 0.361940 0.367709 0.785277 1.372793 [6] 2.501715 2.793043 1.099710 0.673459 -1.170717 [11] -3.084749 -3.275706 -2.418492 -0.202717 1.480769 [16] 2.121052 1.733592 0.630286 0.488515 1.744248 [21] -0.193722 -1.604398 -0.937692 -0.532211 0.576701       [86] 3.271709 4.860148 2.253887 -0.185553 -0.460208 [91] -0.525307 -0.364762 -0.935421 -0.588647 -0.198672 [96] -1.692272 -2.862070 -1.107232 0.424548 1.483876  Ví dụ 4.19. Tìm mô hình thích hợp cho chuỗi thời gian  Xt  3 1 X t 1  et  et 1 ,  4 2 a) Vẽ đồ  thị  cho chuỗi Xt và tương quan đồ cho chuỗi thời gian trên.  b) Tạo mô hình AR(1), MA(1), ARMA(1,1)  thích hợp cho chuỗi thời gian  trên. Từ đó dựa vào chỉ số AIC tìm mô hình thích hợp nhất cho chuỗi Xt.  Giải    Nhập dữ liệu  > set.seed(1) > e = rnorm(100)   # Cho X là một tập rổng và gán phần tử đầu của tập X là giá trị đầu của biến  ngẫu nhiên e.  > x = NULL > x[1] = e[1]   106  Ứng dụng phần mềm R nghiên cứu thống kê    # Vòng lập for cho t chạy từ 2 đến 100 và gán  X t  3 1 X t 1  et  et 1 .  4 2 > for (t in 2:100) x[t]=3/4*x[t-1]+e[t]+0.5*e[t-1] a) Vẽ đồ thị và tương quan đồ    # Vẽ đồ thị.  1 -2 -1 0 x 2 3 4 > plot(x, type=”l”) 0 20 40 60 80 100 Index Hình 4.16. Đồ thị của chuỗi thời gian X t        3 1 X t 1  et  et 1 . 4 2   # Tương quan đồ của chuỗi x.  > acf(x); pacf(x) 0.4 -0.2 0.0 0.2 ACF 0.6 0.8 1.0 Series x 0 5 10 Lag a) Đồ thị hàm tự tương quan   107  15 20 Ứng dụng phần mềm R nghiên cứu thống kê  x 0.2 0.0 -0.4 -0.2 Partial ACF 0.4 0.6 0.8 Ser ies 5 10 15 20 Lag b) Đồ thị hàm tự tương quan riêng Hình 4.17. Tương quan đồ của chuỗi X t  3 1 X t 1  et  et 1 . 4 2 b) Tìm các mô hình cho chuỗi Xt.    # Tạo mô hình AR(1) cho chuỗi Xt.  > arima(x,order=c(1,0,0)) Kết quả từ R  Call: arima(x = x, order = c(1, 0, 0)) Coefficients: ar1 intercept 0.7788 0.5897 s.e. 0.0631 0.4376 sigma^2 estimated as 0.9931: aic = 290.03       # Tạo mô hình MA(1) cho chuỗi Xt.  log likelihood = -142.01, > arima(x,order=c(0,0,1)) Call: arima(x = x, order = c(0, 0, 1)) Coefficients: ma1 intercept 0.8223 0.7003 s.e. 0.0467 0.1870 sigma^2 estimated as 1.063: aic = 297.01   # Tạo mô hình MA(1) cho chuỗi Xt.  > arima(x,order=c(1,0,1))   108  log likelihood = -145.5, Ứng dụng phần mềm R nghiên cứu thống kê  Call: arima(x = x, order = c(1, 0, 1)) Coefficients: ar1 ma1 0.6150 0.5608 s.e. 0.0899 0.0907 intercept 0.6374 0.3513 sigma^2 estimated as 0.7768: aic = 267.98 log likelihood = -129.99, * Tìm mô hình thích hợp cho chuỗi thời gian Xt.    # Chỉ số AIC lần lượt cho các mô hình AR(1), MA(1), ARMA(1, 1).  > AIC(arima(x,order=c(1,0,0))) [1] 290.0293 > AIC(arima(x,order=c(0,0,1))) [1] 297.0099 > AIC(arima(x,order=c(1,0,1))) [1] 267.9812   So  sánh  chỉ  số  AIC  của  3  mô  hình  thì  ta  thấy  chỉ  số  AIC  của  mô  hình  ARMA(1,1) là nhỏ nhất. Vậy mô hình thích hợp nhất để tái hiện chuỗi thời gian  trên là ARMA(1,1).  # Tiến hành mô phỏng 100 giá trị của mô hình ARMA(1,1) cho chuỗi Xt.    > arima.sim(list(ar=c(0.6150),ma=c(0.5608 )), n=100) Time Series: Start = 1 End = 100 Frequency = 1 [1] [5] [9] [13] [17] [21]  -1.227488462 -4.196677689 -4.841545194 -2.766224797 -1.441010844 -1.017893226 -0.120242245 -0.945899355 -0.150317063 0.517283544 1.022443116 2.059570073 2.070043628 0.519697035 0.989799003 -0.739248035 -2.121120782 -1.865678637 -1.456893532 0.031313709 0.727755984 0.931130771 0.731330203 0.163041314     [73] 1.529267675 1.662393520 2.461376432 3.953603885 [77] 3.362481002 2.681673914 0.942778467 0.328248473 [81] 1.426627316 1.561712153 0.561879280 -0.564906074 [85] -0.751102121 0.587088362 0.476670159 -0.099271104 [89] -1.423054203 -1.106619213 0.904541342 2.786805107 [93] 3.368128470 0.658495510 -0.161573311 0.627090163 [97] 0.288061011 0.149460112 -0.676507490 -0.221372695   109  Ứng dụng phần mềm R nghiên cứu thống kê  2.4. Quá trình hợp nhất tự hồi qui trung bình trượt ARIMA (Integrated Autoregressive Moving Average)   Trong thực tế, phần lớn các quá trình  X t  không dừng, khi đó người ta xét  quá trình    X t  X t  X t 1  X t  BX t  (1  B ) X t      ( X t là sai phân cấp 1 của Xt) với hy vọng  Yt  là quá trình dừng. Trường hợp  X t   cũng chưa dừng thì ta xét tiếp quá trình   2 X t  X t  X t 1 , tức là xét    2 X t  ( X t  X t 1 )  ( X t 1  X t  2 )  X t  2 X t 1  X t  2  (1  B ) 2 X t ,  trong đó B là toán tử lùi.    Một  cách  tổng  quát,  nếu  X t   chưa  là  quá  trình  dừng  thì  ta  xét  quá  trình  (1  B) d X t  (sai phân cấp d của Xt), trong đó d là một số nguyên không âm với hy  vọng quá trình  (1  B) d X t  sẽ thỏa mãn tính dừng.   Định nghĩa 4.21 Quá trình  {X t ; t  }   được gọi là quá trình hợp nhất tự hồi  qui trung bình trượt, kí  hiệu   X t  ARIMA( p, d , q )  nếu quá trình  (1  B) d X t   là  dừng thỏa    a( B )(1  B) d X t  b( B ) t , t   ,  (4.50)  trong đó   t  là ồn trắng,  a( B) ,  b( B ) lần lượt là các đa thức hồi qui và trung bình  trượt bậc p, q và d là một số nguyên không âm (gọi là bậc lấy sai phân).   Chú ý 4.4 Nếu đặt  U t  (1  B ) d X t  thì  U t  ARIMA(p, q ) .    Trong  thực  tế,  với  chuỗi  quan  sát  X  {X t :t  1,..., n}   khi  lấy  sai  phân  sẽ  làm mất đi một số số liệu ban đầu và một số số liệu cuối. Vì vậy phải tìm các bổ  sung các số liệu đã mất nhưng sẽ làm giảm tính khách quan của số liệu.   Chú ý 4.5 Trong  thực  tế,  người  ta  chỉ  chọn  d  3  ,  nếu  d  3 mà  vẫn  chưa  thỏa  mản  tính dừng thì có thể kết luận quá trình nghiên cứu không phù hợp  với quá trình  ARMA.   Lệnh trong R   Mô hình ARIMA cơ bản là mô hình ARMA được làm thích hợp cho chuỗi  thời gian lấy sai phân. Do đó, ta cũng sử dụng hàm arima() để tạo ra một mô  hình ARIMA(p, d, q) thích hợp cho chuỗi thời gian với p là bậc của mô hình hồi  qui, d là bậc lấy sai phân của chuỗi và q là bậc của mô hình trung bình trượt.    110  Ứng dụng phần mềm R nghiên cứu thống kê  2.5. Hàm tự tương quan riêng PACF (Partial Autocorrelation Function) 2.5.1. Xấp xỉ tuyến tính   Cho  {X t ; t  }  là một quá trình dừng có kỳ vọng 0 và hàm tự hiệp phương  sai    ( h)  E ( X t  h X t ), h   .    Người ta chứng minh được rằng có thể xác định được một tổ hợp tuyến tính  của các giá trị  X 1 , X 2 ,..., X n  để xấp xỉ tốt nhất  X n1  theo nghĩa nếu tổ hợp tuyến  n tính là  Xˆ n1   nj X n1 j  thì  E X n 1  Xˆ n1  đạt min.  j 1 2.5.2. Tự tương quan riêng   Xét  quá  trình  dừng  {X t ; t  }   có  kỳ  vọng  0.  Trong  trường  hợp  tổng  quát  nhất,  X 1 tương quan với  X n1  thông qua  {X 2 ,..., X n } .    Mối tương quan trực tiếp (nếu có) giữa  X 1  và  X n1  mà không qua các biến  ngẫu nhiên trung gian  X 2 ,..., X n  gọi là tương quan riêng cấp n giữa  X 1  và  X n1  ,  kí hiệu   ( n) .    Một  cách  hợp  lý  để  “khử”  các  tương  quan  giữa  X 1   và  {X 2 ,..., X n }   cũng  như  khử  các  tương  quan  giữa  X n1   và  {X 2 ,..., X n }   là  tìm  xấp  xỉ  tuyến  tính  tốt  nhất  Xˆ  của  X  và  Xˆ  của  X  và loại  Xˆ  ra khỏi  X ,  Xˆ  ra khỏi  X  và  1 n 1 1 1 n 1 1 n 1 n 1 tìm tương quan giữa các phần còn lại  X 1  Xˆ 1  và  X n1  Xˆ n1 .   Định nghĩa 4.22  Tự tương quan riêng cấp n giữa  X 1  và  X n1 , kí hiệu   ( n)  là  tương quan giữa  X  Xˆ  và  X  Xˆ , tức là:  1 1 n 1 n 1  (n)  corr(X 1  Xˆ 1 , X n1  Xˆ n1 )    cov (X 1  Xˆ 1 , X n 1  Xˆ n 1 ) .  ˆ ˆ var( X 1  X 1 ). var( X n1  X n1 ) Ta có   (1)  corr(X 1 X 2 )  1 .    Trong định nghĩa trên ta chưa chú ý đến tính dừng của quá trình  X t  có kỳ  vọng không và có  cov (X k , X l )  không phụ thuộc vào k, l mà chỉ phụ thuộc  k  l .  Một cách tổng quát, ta có định nghĩa sau:   Định nghĩa 4.23 Cho quá trình dừng  X t ,  t   , có kỳ vọng không. Tự tương quan riêng cấp n của quá trình  X t , kí hiệu   ( n) , được cho bởi   (n)  corr(X t  Xˆ t , X t  n  Xˆ t  n )  tức là     111  cov (X t  Xˆ t , X t  n  Xˆ t  n ) ,  ˆ ˆ var( X t  X t ). var( X t  n  X t  n ) Ứng dụng phần mềm R nghiên cứu thống kê   (n)  cov (X t  Xˆ t , X t  n  Xˆ t n ) ,  var( X t  Xˆ t )  (n)  cov (X t  Xˆ t , X t  n  Xˆ t n ) ,  var( X t  n  Xˆ t  n ) hay  trong đó  Xˆ t  là xấp xỉ tuyến tính của  X t .   Tính chất    i) Với quá trình AR(1):  X t  aX t 1   t  ,   t  là ồn trắng và  a  1  ta có    (1)  0,   (n)  0, n .    ii) Với quá trình MA(1):  X t   t  b t 1 ,   t  là ồn trắng và  b  1  ta có  (b) n (1  b 2 )  (1)  1 ,   ( n)  .  1  b 2( k 1) III- NHẬN DẠNG MÔ HÌNH ARIMA   Trong phần này ta nghiên cứu việc ước lượng các tham số d, p, q và các hệ  số a, b của các đa thức  a( z ), b( z )  của mô hình ARIMA(d, p, q):  a( B )(1  B) d X t  b( B ) t , t   .  3.1. Các giả thiết và công cụ tính toán   Bằng cách ước lượng tham số d của quá trình ARIMA ta có thể nhận được  quá trình ARMA. Do đó ta có thể giả thiết  X t là quá trình ARMA, tức là  a( B ) X t  b( B ) t .    Trong thực tế, từ chuỗi quan sát  X  {X t : t  1, n}  ta xác định được ba đặc  trưng số:  i) Tự hiệp phương sai mẫu ck :   ck  1 n k 1 n ( X  X )( X  X ), 0  k  n , X   jk  X j .  j n j 1 n j 1 (4.51)  ii) Tự tương quan mẫu rk :   rk  n ck , c0   ( X j  X ) 2 .  c0 j 1 iii) Tự tương quan riêng mẫu akk :   112  (4.52)  Ứng dụng phần mềm R nghiên cứu thống kê    k   r ri ak k i 1  k 1  i 1 ak 1 k 1  k    1   ri aki  i 1  ak 1 j  akj  ak 1 k 1 a (k ) j  1, k (4.53)  trong đó  a ( k )  ( ak k ak k 1...ak1 ).   3.2. Kiểm tra tính dừng   Quá trình dừng là bản chất của việc  khảo sát  quá trình ARMA. Ta đã biết  một quá trình  X t ,  t    là dừng nếu có kỳ vọng, phương sai là hằng (không phụ  thuộc vào thời điểm khảo sát) và có tự hiệp phương sai không phụ thuộc vào thời  điểm cụ thể mà chỉ phụ thuộc vào khoảng cách giữa hai thời điểm khảo sát, tức  là:  EX t  m, t ,  varX t   X2 , t ,  cov( X t X t  h )   (k )   (chỉ phụ thuộc k);    X2   (0) .    Trong thực tế, ta chỉ có thông tin về quá trình  X t  nhận được từ chuỗi quan  sát  X  {X t : t  1, n}  nên ta không thể khẳng định tính dừng hay không dừng của  quá trình  X t .    Box  và  Jenkins  để  xuất  lấy  sai  phân  X t  (1  B) d X t   có  nhiều  khả  năng  dừng hơn bản thân quá trình  X t . Do đó ta có thể xét quá trình   X t  (1  B) X t  X t  X t 1 (d  1)   với giả thiết  X t  là quá trình dừng.   Nhận xét 4.5: Nếu  X t  là quá trình dừng thì các tự hiệp phương sai mẫu và  do đó các tự tương quan mẫu  rk (của quá trình nguyên thủy Xt) không bị triệt tiêu  nhanh chóng với những k lớn.    Ta có dấu hiệu quan sát cho chuỗi X: Nếu các tự tương quan mẫu rk triệt tiêu nhanh với k khá lớn thì X t chưa dừng.     Khi đó ta xét tiếp quá trình   2 X t  X t  X t 1  với hy vọng quá trình   2 X t   gần với quá trình dừng hơn và có thể tiếp tục với quá trình này nhưng nói chung ,  d  3 , nếu d=3 mà  vẫn chưa có quá  trình dừng thì ta  kết luận quá trình nguyên  thủy không phù hợp với quá trình ARMA.  3.3. Nhận dạng quá trình AR   Về nguyên tắc, ta giả thiết quá trình Xt là quá trình nhân quả khả nghịch, tức  là có thể biểu diễn dạng AR hữu hạn thành một MA vô hạn và ngược lại, có  thể    113  Ứng dụng phần mềm R nghiên cứu thống kê  biểu diễn một MA hữu hạn thành một AR vô hạn. Tuy nhiên, trong thực tế, nếu  dùng AR mà vẫn phù hợp thì nên dùng AR vì việc tìm hệ số a của mô hình AR  đơn giản hơn so với các mô hình MA và ARMA.    Ta có các kết quả sau      + Nếu  X t  AR( p )  thì  a p p  0  và  ak k  0 k  p .      + Nếu  X t  MA( q )  thì  aq q  0  và  ak k  0 k  q .    Từ đó ta suy ra thủ tục  nhận biết  AR hay  không: nếu tự tương quan riêng  mẫu  ak k   giảm  dần  (về  trị  tuyệt  đối)  và  giảm  tới  0  theo  dáng  điệu  của  hàm  mũ  (hàm sin) thì có thể kết luận quá trình tuân theo mô hình ARMA.   Thủ tục nhận dạng AR  Tính tự tương quan riêng mẫu   ak k .   Vẽ đồ thị  ak k  với  k  1, 40 .   Nếu  ak k  tắt dần nhanh chóng theo kiểu hàm mũ hoặc hàm sin thì kết luận  có AR.   Nếu  ak k  tắt dần chậm và không tuân theo luật nào cả thì kết luận không có  AR.   Chú ý 4.6.  Trong  quá  trình  tìm  hiểu  dáng  điệu  tắt  dần  của  ak k   có  thể  ước  lượng  bậc  hồi  qui  p  cũng  như  bậc  trung  bình  trượt  q.  Tuy  nhiên,  trên  thực  tế  người ta chỉ  quan tâm nhiều đến  việc  ước lượng p  và thường lấy p  không  vượt  quá 13. Khi quá trình nghiên cứu không phải là AR thì người ta điều chỉnh q từ  q  1  đến  q  3  mà mô hình vẫn không phù hợp thì kết luận ARMA không phù  hợp với dữ liệu X.  3.4. Ước lượng các tham số a, b   Trong  phần  này  ta  giả  thiết  là  đã  biết  các  tham  số  d,  p,  q  của  quá  trình  ARMA  X t  ( X t  ARIMA( p, d , q ) ). Công  việc tiếp theo là ước lượng  các tham  số a, b của mô hình (ước lượng thô các tham số a, b).  3.4.1. Ước lượng tham số a của AR(p)   Đối với quá trình AR(p) với p > 2 ta thường gặp khó khăn khi kiểm tra điều  kiện nhân quả. Do đó ta chỉ tập trung xét quá trình AR(1) và AR(2).  a) Trường hợp X t  AR(1)   X t  có dạng:  X t  aX t 1   t .    Điều kiện nhân quả:  a  1 .    Dùng  công  thức  (4.51)  và  (4.52)  tính  c0 ,  c1 ,   r1   và  dùng  công  thức  của  tự  tương quan ta được:  a  r1 .    114  Ứng dụng phần mềm R nghiên cứu thống kê  b) Trường hợp X t  AR(2)     X t  có dạng:  X t  a1 X t 1  a2 X t  2   t , a2  0 .  Điều  kiện  nhân  quả:  phương  trình  1  a1 z  a2 z 2  0   có  nghiệm  z   thỏa  z  1  dẫn đến   a1  a2  1 a2  a1  1     (4.54)  a2  1     Dùng công thức (4.51) và (4.52) tính  c0 ,  c1 ,   c2 ,  r1 ,  r2  ta được   a1  r1 (1  r2 ) ; 1  r12 a2  1  1  r2 .  1  r12 (4.55)  Thay các giá trị của  a1  và  a2  ở (4.55) vào (4.54) ta được điều kiện nhân quả đối  với  r1  và  r2 :      (1  r2 )(1  r1 )  0    (1  r2 )(1  r1 )  0  2 (1  r2 )( r2  2r1  1)  0 (4.56)  Do điều kiện  r1  1  và  r2  1  nên (4.56) thu gọn thành   r2  2r12  1 .  3.4.2. Ước lượng tham số b của mô hình MA(q)   Trong thực tế, người ta chỉ dùng MA(q) với  q  2  nên ta chỉ tìm q cho quá  trình MA(1) và MA(2).  a) Trường hợp X t  MA(1)   X t  có dạng:  X t   t  b t 1 .    Điều kiên khả nghịch:  b  1  trong đó b là nghiệm của phương trình   2 rb  b  r1  0 .  1   Do đó ta có điều kiện đối với  r1 :  r1  1 .  2 b) Trường hợp X t  MA(2)    X t  có dạng: X t   t  b1 t 1  b2 t  2 .    Điều kiên khả nghịch:  1  b1 z  b2 z 2  0  có nghiệm z với  z  1  cho ta điều  kiện    115  Ứng dụng phần mềm R nghiên cứu thống kê  b1  b2  1  b2  b1  1   b 1  2 trong đó  b1 ,  b2  là nghiệm của hệ phương trình   (1  b12  b22 )r1  b1  b1b2    2 2 (1  b1  b2 )r2  b2 3.4.3. Ước lượng tham số a, b của mô hình ARMA(p, q)   Trong  phần  này  ta  nghiên  cứu  việc  ước  lượng  tham  số  a,  b  của  mô  hình  ARMA(p, 1) với  p  3 .  a) Trường hợp X t  ARMA(1,1)   X t  có dạng: X t  aX t 1   t  b t 1 .    Điều kiện nhân quả khả nghịch:   a  1  ;   b  1 .    Ta tìm a, b từ hệ phương trình:  r2  a   r1  r2 2 r2 2 r2  (r1  )b  (2r2  ( )  1)b  ( r1  )  0 ,  r1 r1 r1    a  1, b  1   trong đó b thỏa hệ:  r2  a   r1     r r r 2 2 (r  2 )b  (2r  ( 2 )  1)b  (r  2 )  0. 2 1  1 r1 r1 r1 b) Trường hợp X t  ARMA( p,1)   X t  có dạng:  X t  a1 X t 1  ...  a p X t  p   t  b t 1 .    Đa thức hồi qui:   a( z )  1  a1z  ...  a p z p , a p  0 .    Đa thức trung bình trượt:   b(z ) =1+ bz .    Điều kiện nhân quả khả nghịch:    116  Ứng dụng phần mềm R nghiên cứu thống kê  b 1   1 a ( )  0, a( z )  0, b  z 1   trong đó  a1 ,  a2 ,  ...,  a p  là nghiệm của hệ  r1a1  a2  r1a3  ...  rp  2 a p  r2  r2 a1  r1a2  a3  ...  rp 3a p  r3  ... ...   ... r a  r a  ...  a  r p p  p 1 1 p 2 2 rp a1  rp 1a2  ...  r1a p  rp 1  Sau khi tìm được  ai ,   i  1, p , ta tìm b và   2  từ hệ phương trình sau:  1  r1a1  a2  ...  rp a p   2 (1  a1b  b 2 )    2 r1  a1  r1a2  ...  rp1a p   b Khi p > 3 thì việc giải hệ phương trình trên trở nên không đơn giản.  3.5. Xử lý mùa trong mô hình ARIMA   Giả sử từ chuỗi quan sát  X  {X t : t  1, n}  ta phát hiện ra quá trình  X t  có  tính mùa, tức là có tính tuần hoàn với chu kỳ s; với s = 12 với chu kỳ năm, s = 4  nếu chu kỳ là quý, s = 7 nếu chu kỳ là tuần lễ… Khi đó, theo Box và Jenkins,  X t   sẽ thỏa phương trình  a( B s ) X t  b( B s ) t ,    (4.57)  tức là  (1  a1 B s  a2 B 2 s  ...  a p B ps ) X t  (1  b1B s  b2 B 2 s  ...  bq B qs ) t     Chẳng hạn, khi s = 12 (chu kỳ năm), ta được  X t  a1 X t 12  a2 X t  24  ...  a p X t 12 p   t  b1 t 12  b2 t  24  ...  bp t 12 q .    Trên thực tế,  với chuỗi quan  sát  X  {X t : t  1, n} , khi dùng  mô hình này;  thực chất là ta đã chia X  thành 12 chuỗi con (ứng với s =12) như sau:  X 1  {X 1 , X 13 , X 25 ,..., X 12 m1} X 2  {X 2 , X 14 , X 26 ,..., X 12 m 2 } ...........................................   X 12  {X 12 , X 24 ,..., X 12 m 12 }.   Mỗi chuỗi gồm ít nhất m + 1 số liệu và trong mỗi chuỗi con  X i  (i  1,  12) ,  việc xây dựng mô hình ARMA theo các thủ tục đã được giới thiệu.    117  Ứng dụng phần mềm R nghiên cứu thống kê   Chú ý 4.7   -  Tính  mùa  có  thể  nhận  biết  dựa  vào  đồ  thị  SAC  (hoặc  AFC).  Nếu  sau  m  thời gian mà đoạn đoạn SAC có giá trị cao (đồ thị SAC có đỉnh cao) thì có tính  mùa.    - Việc xử lý tính mùa theo (4.57) gặp khó khăn vì số liệu rất ít (khi chu kỳ s  càng lớn thì số liệu càng ít). Dẫn đến việc ước lượng các tham số sẽ thiếu chính  xác. Hơn nữa, ta phải dùng nhiều mô hình (4.57) (dùng s mô hình) khác nhau nên  việc tính toán sẽ phức tạp hơn.    - Nói chung, kích thước ni của các chuỗi quan sát Xi sẽ khác nhau. Các kích  thước đó chỉ giống nhau khi n là bội của s.  3.6. Phương pháp BOX-JENKINS   Box và Jenkins đề xuất một phương pháp cho phép nghiên cứu một cách có  hệ thống các dạng  khác nhau của chuỗi thời gian dựa vào các tính chất của nó.  Mục tiêu là tìm trong số tất cả các mô hình ARIMA một mô hình thích hợp nhất  với chuỗi thời gian nghiên cứu. Phương pháp này gồm các bước cơ bản sau:    - Nhận dạng mô hình.    - Ước lượng các tham số.    - Kiểm tra chuẩn đoán.  Các bước này được lặp lại đến khi nhận dạng được mô hình thích hợp.  i) Bước 1: Nhận dạng mô hình   Đây là bước quan trọng và khó nhất. Nhận dạng mô hình  ARIMA( p, d , q )   là tìm các giá trị thích hợp của  p,  d ,  q  với d là bậc sai phân của chuỗi thời gian  được khảo sát, p là bậc tự hồi qui và q là bậc trung bình trượt. Các nguyên tắc sau  đây nhằm xác định thông số p, d, q của mô hình ARIMA:    -  Xác  định  p,  q của  mô  hình  ARMA  nhờ  vào  đồ  thị  tự  tương  quan  riêng  phần mẫu (SPAC) và tự tương quan mẫu (SAC) :       + Chọn mô hình  AR( p )  nếu đồ thị SPAC có giá trị cao tại độ trễ 1, 2, …,   p và giảm nhiều sau p và dạng hàm SAC giảm dần.       + Chọn mô hình  MA( q)  nếu đồ thị SAC có giá trị cao tại độ trễ 1, 2, …, q  và giảm nhiều sau q và dạng hàm SPAC giảm dần. Tóm lại:  Loại mô hình  Dạng đồ thị SAC  Dạng đồ thị SPAC  AR(p)  Giảm dần  Có đỉnh ở p  MA(q)  Có đỉnh ở q  Giảm dần  ARMA(p, q)  Giảm dần  Giảm dần    Trong  thực  hành,  phương  pháp  phân  tích  đồ  thị  chỉ  cho  ta  tìm  được  p,  q trong các trường hợp đơn  giản. Trong trường hợp tổng quát có thể áp dụng các  tiêu chuẩn sau để xác định p, q. Thực chất điểm chung của các tiêu chuẩn này là    118  Ứng dụng phần mềm R nghiên cứu thống kê  dựa vào sự khảo sát các  giá trị liên quan đến phương sai của sai số cho bởi mô  hình với thông số đề nghị. Có 2 tiêu chuẩn thông dụng sau được sử dụng:    - Tiêu chuẩn Akaike Information Criterion (AIC):  AIC  n  ln( et2 )  2 z .    Tiêu chuẩn này luận văn đã có nhắc ở chương 3, nhưng có sự khác biệt về  cách ghi công thức, mục đích nhằm thuận tiện cho việc tính toán.    - Tiêu chuẩn Schwarz Information Criterion (SIC):   SIC  n  ln( et2 )  z ln( n) .    Trong trường hợp lý tưởng, giá trị chọn của p, q tương ứng với trường hợp  cho ta các  giá trị  AIC  và  SIC cực tiểu. Trong khi áp dụng ta có thể  gặp trường  hợp  ở  đó  giá  trị  p,  q    không  làm  cho  2  tiêu  chuẩn  này  đồng  thời  cực tiểu.  Tuy  vậy, thường các tiêu chuẩn này cho giá trị p, q tối ưu không khác nhau lớn. Trong  trường hợp này ta sẽ khảo sát từng tổ hợp p, q cụ thể để quyết định chọn mô hình  hợp lý nhất.  ii) Bước 2: Ước lượng các hệ số của mô hình   Các hệ số của mô hình sẽ được xác định theo phương pháp bình phương tối  thiểu (OLS – Ordinary Least Square) sao cho:  (X t  X t )2  min t  X t   Xt.   Trong luận văn này chúng ta sẽ dùng phần mềm R để chạy mô hình và xác định  giá trị các hệ số ước lượng.  iii) Bước 3: Kiểm định mô hình   Sau khi các thông số của mô hình được xác định, ta sẽ thực hiện kiểm định  trên các kết quả của ước lượng thu được.    - Các hệ số của mô hình phải khác 0 (kiểm định t). Nếu có một hay nhiều hệ  số không thỏa mãn ta sẽ loại bỏ ra khỏi mô hình AR hay MA đang xét.    - Phân tích các giá trị sai số được thực hiện từ 2 tiêu chuẩn sau:  + Giá trị trung bình của sai số bằng 0, trong trường hợp ngược lại ta  nên thêm 1 hằng số vào mô hình.  + Dãy giá trị sai số là một sai số ngẫu nhiên trắng. Các giá trị thống  kê của Box – Pierce và của  Ljung – Box cho phép kiểm định tính  chất này. Nếu nó không phải là một sai số ngẫu nhiên trắng ta kết  luận mô hình  không hoàn chỉnh  và phải thêm vào  mô hình các bổ  sung cần thiết.   Các phương pháp kiểm định:    - Kiểm tra sai số ngẫu nhiên trắng, kiểm tra phần dư giữa kết quả dự báo và  số liệu thực tế  Xˆ t  X t .    119  Ứng dụng phần mềm R nghiên cứu thống kê       +  Để  xem  dãy  giá  trị  sai  số  có  phải  là  một  sai  số  ngẫu  nhiên  trắng  hay  không,  ta  kiểm  định  xem  tất  cả  các  giá  trị   k   có  bằng  0  hay  không.  Quá  trình  kiểm định thực hiện theo quy tắc sau đây:  H 0 :   k  0   H1 :   k  0        + Trong thực hành, Quenouille đã chứng minh được rằng với một mẫu có  kích thước tương đối lớn, hệ số   k  tiến một cách tiệm cận về phân phối chuẩn có  giá trị trung bình bằng 0 và độ lệch chuẩn là  1 .  n Khoảng tin cậy của hệ số   k  như sau:    0  t . 2 1  (n là số lượng quan sát).  n      Nếu hệ số   k  nằm ngoài khoảng tin cậy thì ta bác bỏ giả thuyết H0 (dãy  giá trị sai số không phải là một sai số ngẫu nhiên trắng).    - Tham số thống kê Box – Pierce:       + Tương tự như trên ta đặt giả thuyết:       + Tính giá trị thống kê Q định nghĩa bởi Box – Pierce như sau:  H 0 :   k  0 H1 :   k  0   Q  n '  rl 2 (ˆ ) ,  trong đó  n'  n  d  với n là số quan sát của chuỗi, d là bậc sai phân và  rl (ˆ )  là tự  tương quan mẫu của những phần dư ở trễ l.       + Giá trị thống  kê Q tuân theo  một phân phối   2  có bậc tự do k. Từ đó  với mức ý nghĩa    cho trước và bậc tự do k ta có giá trị   02  tra từ bảng.          Nếu  Q   02  thì ta bác bỏ giả thuyết H0 và ngược lại ta chấp nhận H0.         Một  cách  khác  trong  thực  hành  có  thể  dựa  vào  giá  trị  P-value  để  kiểm  định giả thuyết (nếu P-value     thì chấp nhận H0 và ngược lại).    - Tham số thống kê Ljung – Box:   LB  n ' (n '  2) rl 2 ( ) / (n '  l ) .  Bước  kiểm định  mô hình  rất quan trọng, ta phải trở lại bước 1  nếu  mô hình đề  nghị không thích hợp.  iv) Bước 4: Dự báo   Khi mô hình đã được kiểm định, ta có thể sử dụng nó để tiến hành dự báo  cho  tương  lai  cho  chuỗi  thời  gian.  Một  trong  những  lý  do  làm  cho  mô  hình  ARIMA được thông dụng là tính chính xác của nó trong việc dự báo.    120  Ứng dụng phần mềm R nghiên cứu thống kê  3.7. Dùng R để xây dựng mô hình ARIMA bằng phương pháp Box-Jenkins 3.7.1 Mô hình ARIMA không có tính mùa  Bước 1: Nhận dạng mô hình   Thông thường một tập hợp các giá trị quan sát không cho ta chuỗi thời gian  dừng. Ta tiến hành lấy các sai phân để được chuỗi thời gian "gần dừng" hơn.       Lệnh sai phân cho bởi    > diff(file, d=n) trong đó n là bậc lấy sai phân.    Chuỗi thời gian dừng sẽ có kỳ vọng và phương sai không đổi.   Ví dụ 4.20. Nhận dạng mô hình cho chuỗi dữ liệu sản lượng lúa được thu thập  từ năm  1990 - 2010 của cả nước (được lưu với tên “sanluonglua”).     Truy xuất dữ liệu và đặt tên cho dữ liệu là data:  > setwd("D:/studying/luan van/csv") > sanluonglua=read.csv("sanluonglua.csv",header=T) > sanluonglua.ts=ts(sanluonglua[,2],fr=1)   Chuỗi dữ liệu thô chưa có tính dừng nên ta lấy sai phân bậc 1  > d1=diff(sanluonglua.ts) 500 1000 1500 2000 2500 -500 0 d1 > plot(d1) 5 10 15 20 Time Hình 4.18. Sai phân bậc 1 của sản lượng lúa cả năm. Ta thấy tính dừng chưa thể hiện rõ sau khi lấy sai phân bậc 1. Ta tiếp tục lấy sai  phân bậc 2 với hy vọng nó sẽ dừng.  > d2= diff(d1) > plot(d2)   121  0 -2000 -1000 d2 1000 2000 Ứng dụng phần mềm R nghiên cứu thống kê  5 10 15 20 Time Hình 4.19. Sai phân bậc 2 của sản lượng lúa cả năm.   Tính  dừng  thể  hiện  rõ  hơn  ở  sai  phân  bậc  2  (d=2)  vì  các  giá  trị  tập  trung  gần về 0.    Khi đã xác định được d = 2 ta tiếp tục xác định bậc p và q nhờ vào đồ thị  tương quan riêng phần mẫu (SPAC) và tự tương quan (SAC).  > acf(d2) d2 -0.5 0.0 ACF 0.5 1.0 Series 0 2 4 6 8 10 12 Lag Hình 4.20. Hàm SAC của sai phân bậc 2 của sản lượng lúa cả nước. > pacf(d2) d2 0.0 -0.2 -0.6 -0.4 Partial ACF 0.2 0.4 Series 2 4 6 8 10 12 Lag Hình 4.21. Hàm SPAC của sai phân bậc 2 của sản lượng lúa cả nước.   122  Ứng dụng phần mềm R nghiên cứu thống kê  i) Dự báo với mô hình bình quân di động (MA)   Nhìn vào Hình 4.20 và Hình 4.21, ta thấy đồ thị ACF có trễ 0 thì tự tương  quan là 1 ngoài ra chỉ ở trễ 1 thì tự tương quan có ý nghĩa và nó phải mang giá trị  âm. Ở các trễ còn lại thì tự tương quan gần như không có ý nghĩa. Trong đó, ở đồ  thị SPAC có dạng hàm PAC giảm dần. Vì vậy, ta có thể tiên đoán có một MA(1)  ii) Dự báo với mô hình tự hồi qui (AR)   Nhìn vào Hình 4.20 và Hình 4.21, ta thấy ACF giảm dần nhanh và PACF có  giá trị cao ở trễ 1 và tắt dần sau trễ 1. Do đó ta có thể nhận ra mô hình cấp p=1,  hay có 1 mô hình AR(1).  iii) Dự báo với mô hình ARIMA bằng phương pháp Box-Jenkins:   Tương tự như trên, ta thấy ở đồ thị ACF có giá trị cao ở trể 0, 1 và PACF có  giá trị cao ở trể 1. Ta tiên đoán được 2 mô hình ARIMA cho chuỗi thời gian trên  như  sau:  ARIMA(0,  2,  1)  và  ARIMA(1,  2,  1).  Để  xem  mô  hình  nào  thích  hợp  hơn thì ta có thể sử dụng chỉ số AIC để kiểm định.   Bước 2: Ước lượng các tham số của mô hình   Khi  cấp  của  mô  hình  ARIMA(p,d,q)  được  đặc  biệt,  hàm  arima()  từ  thư  viện ts được dùng để ước lượng các tham số.   Ví dụ 4.21. Ta tiếp tục với ví dụ 4.20    Từ ví dụ 4.20 ta nhận dạng được 4 mô hình cho chuỗi dữ liệu sản lượng lúa.  Ta sẽ tiến hành chọn ra  một  mô hình tốt nhất để dự báo cho chuỗi dữ liệu trên  bằng cách so sánh chỉ số AIC của từng mô hình.  > AIC(arima(sanluonglua.ts, order=c(0,0,1))) [1] 414.1859 > AIC(arima(sanluonglua.ts, order=c(1,0,0))) [1] 372.8698 > AIC(arima(sanluonglua.ts, order=c(1,2,1))) [1] 320.7702 > AIC(arima(sanluonglua.ts, order=c(0,2,1))) [1] 320.1791   Ta thấy chỉ số AIC của mô hình  ARIMA(0, 2, 1) là nhỏ nhất, nên ta chọn  nó để dự báo cho chuỗi dữ liệu.    Tiến hành ước lượng tham số cho mô hình ARIMA(0, 2, 1).  > fit=arima(sanluonglua.ts, order=c(0,2,1)) > fit R cho kết quả dưới đây:  Call: arima(x = data, order = c(0, 2, 1))   123  Ứng dụng phần mềm R nghiên cứu thống kê  Coefficients: ma1 -1.0000 s.e. 0.2603 sigma^2 estimated as 843625: aic = 320.18  log likelihood = -158.09,  Bước 3: Kiểm định mô hình   Bước đầu tiên của việc kiểm tra chuẩn đoán là phân tích phần dư (residual)  từ  việc  làm  phù  hợp  cho  dấu  hiệu  không  ngẫu  nhiên.  Việc  này  được  thực  hiện  bằng cách vẽ đồ thì ACF của residual của mô hình được làm phù hợp. Nếu ACF  mẫu của residual nằm trong giới hạn       1.96 1 (khoảng tin cậy  95% ),  N  trong  đó  N  là  số  các  quan  sát, thì  residual  là  white noise  và  chứng  tỏ  rằng  mô  hình được làm phù hợp tốt.  R có hàm tsdiag() tạo ra đồ thị phỏng đoán cho mô hình phù hợp.   Ví dụ 4.22 (ta tiếp tục với ví dụ 4.21)    Từ ví dụ 4.21 ta đã tìm được mô hình thích hợp và đã tìm các hệ số của mô  hình. Tiếp theo tha tiến hành kiểm định bởi lệnh:    > fit = arima(sanluonglua.ts, order=c(0,2,1)) > tsdiag(fit)   Tạo ra kết quả chứa hình của residual (phần dư, thặng dư),  tự tương quan  của phần dư (ACF of Residual)  và p-giá trị của thống  kê  Ljung-Box của 10 lag  (trễ) đầu tiên.  -1 0 1 2 Standardize d Residua ls 5 10 15 20 Time -0.4 0.2 0.8 ACF ACF of Residuals 0 2 4 6 8 10 12 Lag 0.0 0.4 0.8 p value p value s for Ljung-Box statistic 2 4 6 8 10 lag Hình 4.22. Đồ thị các giá trị kiểm định cho mô hình ARIMA(0, 2, 1) của dữ liệu sanluonglua.   124    Ứng dụng phần mềm R nghiên cứu thống kê  Với  N=21  thì    1.96. 1  0.43 ,  nhìn  trên  đồ  thị  ta  thấy  ACF  of  Residuals  21 nằm trong khoảng   . Do đó residuals là white noise.    - Mặt  khác, ta dùng tham số Box-Pierce (và  Ljung-Box) để  kiểm tra  phần  dư.    Trong R ta có hàm Box.test() Cấu trúc: > Box.test(x, lag = 1, type = c("Box-Pierce", "LjungBox"), fitdf = 0)  Bước 4: Dự báo   Khi một mô hình được nhận dạng và tham số của nó đã được ước lượng, ta  muốn dự đoán giá trị tương lai của chuỗi thời gian.  Tiếp tục với ví dụ trên, ta dự đoán các giá trị tương lai cho chuỗi dữ liệu sản  lượng lúa ở 8 năm kế tiếp (2011-2015) với hàm predict().    > fit = arima(data, order=c(0,2,1)) > data.pred = predict(fit, n.ahead=5) Trong  data.pred  chứa  hai  đối  tượng  (entries):  các  giá  trị  dự  đoán  data.pred$pred và sai số tiêu chuẩn của dự đoán data.pred$se.  > data.pred$pred Time Series: Start = 22 End = 26 Frequency = 1 [1] 41027.09 42065.29 43103.48 44141.67 45179.86 > data.pred$se Time Series: Start = 22 End = 26 Frequency = 1 [1] 941.1715 1362.3399 1706.0183 2012.3094 2296.2234   Ta plot dữ liệu data và dự đoán các giá trị:  > plot(data, xlim=c(0,26), ylim=c(15000,46000)) > lines(data.pred$pred, col="red") > lines(data.pred$pred+2*data.pred$se, col= “blue”, lty=4) > lines(data.pred$pred-2*data.pred$se, col=6, lty=4)   Đầu tiên, các giá trị của data được plot. Trục x được giới hạn từ năm 19902015 tương ứng với 26 năm xlim=c(0,26). các gí trị dự đoán được cho bởi  đường màu đỏ (dùng tùy chọn col= “red”).    125  15000 25000 data 35000 45000 Ứng dụng phần mềm R nghiên cứu thống kê  0 5 10 15 20 25 Time   Hình 4.23. Đồ thị dự báo sản lượng lúa cả năm từ 2011-2015 bằng mô hình ARIMA(0, 2, 1). 3.7.2 Mô hình ARIMA có tính mùa   Mặc  dù  thoáng  nhìn  mô  hình  ARIMA  có  tính  mùa  phức tạp  hơn  mô  hình  dựa  trên  hồi  qui  tuyến  tính  và  mô  hình  ARIMA  không  có  tính  mùa  (đã  xét  ở  trên).  Nhưng  nhìn  chung  nó  dễ  để  điều  khiển,  làm  thích  hợp  các  giá  trị  và  dự  đoán các giá trị tương lai. Hàm  arima()  trong R dùng cho cả mô hình ARIMA  và  mô  hình  mùa  ARIMA  (SARIMA).  Tuy  nhiên  mô  hình  SARIMA  cần  thêm  vào một tham số mùa để mô tả bậc và chu kỳ mùa. Dó đó để làm thích hợp một  mô  hình  ARIMA(p,    d,  q)×(P,  D,  Q)S  trong  R,  giá  trị  tham  số  mùa  sẽ  có  đoạn  code như sau:  seasonal = list (order = c(P, D, Q), period = S)      Mô hình ARIMA cơ bản là mô hình ARMA được làm thích hợp cho chuỗi  thời gian lấy sai phân. Do đó, mô hình SARIMA  cũng được hiểu như vậy.    Một  trong  các  khó  khăn  thường  gặp  khi  khảo  sát  chuỗi  thời  gian  với  tính  mùa là tìm bậc p, d, q và P, D, Q khi dựa vào các hàm ACF và PACF. Rất nhiều  trường hợp, các thông tin nhận  được từ các hàm này  không đủ để xác định các  bậc cho mô hình. Khi đó ta thường khảo sát nhiều mô hình và chọn mô hình tốt  nhất  dựa  vào  AIC  nhỏ  nhất.  Để  công  việc  này  trở  nên  dễ  dàng  hơn  ta  có  đoạn  chương trình của R để tìm  mô hình  ARIMA  tốt nhất có tên  get.best.arima  sau:   > get.best.arima = function(x.ts, maxord = c(1, 1, 1, 1, 1, 1)) { best.aic = 1e8 n = length(x.ts) for (p in 0:maxord[1]) for (d in 0:maxord[2]) for (q in 0:maxord[3]) for (P in 0:maxord[4])   126  Ứng dụng phần mềm R nghiên cứu thống kê  for (D in 0:maxord[5]) for (Q in 0:maxord[6]) { fit = arima(x.ts, order= c(p,d,q), seas = list(order = c(P,D,Q), frequency(x.ts)), method = "CSS") fit.aic = -2*fit$loglik +2*length(fit$coef) if (fit.aic < best.aic) { best.aic = fit.aic best.fit = fit best.model = c(p,d,q,P,D,Q) } } list(best.aic,best.fit,best.model) }  Ví dụ 4.23. Ta có dữ liệu về tổng số người tử vong do tai nạn mỗi tháng ở Hoa  Kỳ được thu thập từ năm 1973-1978 (dữ liệu có trong thư viện của phần mềm R  với tên USAccDeaths).  > data(USAccDeaths) > UD=USAccDeaths # Đồ thị của chuỗi UD.  9000 7000 8000 UD 10000 11000 > plot(UD) 1973 1974 1975 1976 Time 1977 1978 1979   Hình 4.24. Tổng số người tử vong do tai nạn mỗi tháng ở Hoa Kỳ 1973-1978. # Vẽ đồ thị sai phân bậc 1 cho dữ liệu.  > plot(diff(UD))   127  0 -1000 -500 diff(UD) 500 1000 1500 Ứng dụng phần mềm R nghiên cứu thống kê  1973 1974 1975 1976 1977 1978 1979 Time Hình 4.25. Đồ thị sai phân bậc 1 của chuỗi UD. Chuỗi dữ liệu đã dừng khi lấy sai phân bậc 1 (d=1).  > acf(diff(UD)) diff(UD) -0.2 0.0 0.2 0.4 0.6 0.8 1.0 ACF Series 0.0 0.5 1.0 1.5 Lag Hình 4.26. Tương quan đồ của chuỗi UD. Qua hình 4.25 và hình 4.26 ta nhận thấy dữ liệu có tính mùa với chu kỳ là 12  tháng.    Để tìm mô hình thích hợp cho chuỗi dữ liệu có tính mùa, ta áp dụng đoạn  lệnh get.best.arima trên. ta làm như sau: > get.best.arima(UD, maxord=c(1,1,1,1,1,1)) Kết quả từ R:  [[1]] [1] 851.9169 [[2]] Call: arima(x = x.ts, order = c(p, d, q), seasonal = list(order = c(P, D, Q), frequency(x.ts)), method = "CSS") Coefficients: ma1 sar1 sma1 -0.6397 -0.1007 -0.4872 s.e. 0.0921 0.1368 0.1993   128  Ứng dụng phần mềm R nghiên cứu thống kê  sigma^2 estimated as 98686: [[3]] [1] 0 1 1 1 1 1 part log likelihood = -422.96 Sau khi R cho kết quả, ta nhận được mô hình tốt nhất cho chuỗi dữ liệu là  ARIMA(0, 1, 1)(1, 1, 1)12 với chỉ số AIC là 851.9169.  * Kiểm định mô hình    # Gán mô hình tốt nhất vừa tìm được cho biến arima.best  > arima.best = arima(UD, order=c(0,1,1), season=c(1,1,1), method = "CSS")   # Vẽ đồ thị và tiến hành kiểm định  > tsdiag(arima.best) -2 0 2 Standardized Residuals 1973 1974 1975 1976 1977 1978 1979 Time 0.4 -0.2 ACF 1.0 ACF of Residuals 0.0 0.5 1.0 1.5 Lag 0.0 0.4 0.8 p value p values for Ljung-Box statistic 2 4 6 8 10 lag Hình 4.27. Đồ thị các giá trị kiểm định cho mô hình ARIMA của dữ liệu USAccDeaths.   Trên biểu đồ ACF of Residuals, các giá trị phân tán rất gần 0, điều đó cho  thấy chuỗi phần dư là ồn trắng, như thế thì mô hình có ý nghĩa thống kê. Ta tiến  hành dự đoán các giá trị cho chu kỳ kế tiếp.  > UD.pred= predict(arima.best1,n.ahead=12) > UD.pred Kết quả từ R:  $pred Jan Feb Mar Apr May Jun Jul 1979 8336.1 7531.8 8314.6 8616.8 9488.9 9859.7 10907.4   129  Ứng dụng phần mềm R nghiên cứu thống kê  Aug 1979 10086.5 Sep 9164.9 Oct Nov Dec 9384.2 8884.9 9376.5  Ỏ trên lần lượt là các giá trị được dự đoán ở chu kỳ 12 tháng kế tiếp.   Tháng  Giá trị dự đoán  Tháng  Giá trị dự đoán  1  8336.1  7  10907.4  2  7531.8  8  10086.5  3  8314.6  9  9164.9  4  8616.8  10  9384.2  5  9488.9  11  8884.9  6  9859.7  12  9376.5      Vẽ đồ thị dự đoán cho chuỗi UD    > plot(UD, xlim=c(1973, 1980)) 9000 7000 8000 UD 10000 11000 > lines(UD.pred$pred, col="red") 1973 1974 1975 1976 1977 1978 1979 1980 Time   Hình 4.28. Đồ thị dự đoán cho chuỗi UD chu kỳ 12 tháng kế tiếp.   Ở đồ thị 4.28 đường màu đỏ là đường dự đoán của mô hình.   130  Ứng dụng phần mềm R nghiên cứu thống kê    PHẦN KẾT LUẬN     Luận văn đã trình bày khá đầy đủ các kiến thức liên quan đến thống kê. Đi  kèm với mỗi kiến thức của thống kê là các lệnh R để thực hiện các tính toán, vẽ  đồ thị, v.v…  Khi sử dụng phần mềm R vào học tập và nghiên cứu thống kê đã  làm thay đổi thái độ của em trong quá trình học tập. Em thấy hiểu, thích thú và  hăng say hơn  với  môn học này. Em nghĩ luận văn sẽ  giúp ích cho các bạn sinh  viên khi học các môn liên quan đến thống kê và muốn áp dụng vào thực tế.    Trong tương lai, em hy  vọng sẽ tiếp tục nghiên cứu ứng dụng xa hơn nữa  việc sử dụng phần mềm R trong phân tích và xử lý số liệu thống kê và dùng các  kết quả này để thực hiện các thống kê trong đời sống.    Mặc dù có sự cố gắng và nỗ lực của bản thân cùng với sự giúp đở tận tình  của  thầy  hướng  dẫn  nhưng  luận  văn  không  thể  tránh  khỏi  những  thiếu  sót  nhất  định. Do đó, em rất mong nhận được sự đóng góp ý kiến của quý thầy cô nhằm  hoàn thiện luận văn này tốt hơn.    131  Ứng dụng phần mềm R nghiên cứu thống kê    THAM KHẢO CÁC HÀM TRONG R   abline( )     Graphics command    acf( )      Estimation of the autocorrelation function    arima( )     Fitting ARIMA–models    arima.sim( )     Simulation of ARIMA–models    Box.test( )     Box–Pierce and Ljung–Box test    c( )       Vector command            density( )                Ước lượng mật độ    diff( )     Takes differences    dnorm( )     Normal distribution    filter( )     Filtering of time series    hist( )     Draws a histogram / Vẽ biểu đồ    HoltWinters( )   Holt–Winters procedure    ks.test( )     Kolmogorov–Smirnov test    length( )     Vector command    lines( )     Lệnh đồ thị    lm( )       Mô hình tuyến tính    log( )      Calculates logs    lsfit( )     Least squares estimation    mean( )     Tính kỳ vọng    pacf( )     Ước lượng hàm tự tương quan riêng    plot( )     Vẽ đồ thị    predict( )     Hàm dự đoán    read.csv( )              Nhập dữ liệu từ file CSV    rep( )                      Vector command    sd( )                        Standard deviation / Độ lệch tiêu chuẩn    seq( )                      Vector command    shapiro.test( )         Shapiro–Wilk test    sin( )      Hàm sin    stl( )       Seasonal decomposition of time series    summary( )            Generic function for summaries    ts( )       Tạo ra đối tượng chuỗi thời gian    tsdiag( )     Chuẩn đoán chuỗi thời gian    qqnorm( )     Quantile–quantile plot    132  Ứng dụng phần mềm R nghiên cứu thống kê  TÀI LIỆU THAM KHẢO   A. Tiếng Việt [1]  Nguyễn Dạ Ngân, Luận văn đại học, Khoa Khoa học Tự nhiên, Trường đại           học Cần Thơ, 2011  [2]  Nguyễn Hồ Huỳnh, Chuỗi thời gian: Phân tích và nhận dạng, NXB Khoa    học và Kỹ thuật Hà nội, 2004.  [3]  Nguyễn Hữu Khánh, Phân tích chuỗi thời gian, Giáo trình Đại học Cần Thơ,     2010.  [4]  Nguyễn Văn Tuấn, Phân tích số liệu và biểu đồ bằng R, NXB Khoa học và    Kỹ thuật, 2006.  B. Tiếng Anh [5]  P.S. Cowpertwait, A.V. Metcalfe,  Introductory Time Series with R, Springer    Dordrecht Heidelberg London New York, 2009.  [6]  P. Dalgaard, Introductory Statistics with R, Spriger-Varlag NewYork, 2008.  [7]  S. J. Sheather, A Modern Approach to Regression with R, Springer    Science+Business Media, LLC 2009. [8]  R.H. Shumway, D.S. Stoffer, Time Series Analysis and Its Applictions with R Examples, Spriger-Varlag NewYork, 2006.      133  [...]... Ứng dụng phần mềm R nghiên cứu thống kê PHẦN NỘI DUNG    Chương 1 PHẦN MỀM     I GÍỚI THIỆU PHẦN MỀM R 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 thuộc Trường đại học Auckland,  New Zealand đề xuất 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 ... để phục vụ tốt cho quá trình học tập, nghiên cứu thống kê nhằm đạt hiệu quả cao  nhất. Đó là lý do mà tôi chọn đề tài này.  II MỤC TIÊU VÀ PHƯƠNG PHÁP NGHIÊN CỨU 2.1 Mục tiêu của đề tài   Nghiên cứu việc  sử  dụng  phần mềm R cho  việc  học  tập  và  nghiên cứu thống kê 2.2 Nội dung nghiên cứu   Luận văn nghiên cứu việc sử dụng phần mềm R cho việc học tập và nghiên cứu thống kê.  Luận văn trình bày các kiến thức cơ bản của thống kê và đi kèm là ... lập nên mô hình và từ đó tiến hành dự báo cho các giá trị tương lai.    Song song với việc phát triển của thống kê,  có r t nhiều phần mềm thống kê ra đời như Minitab, SPSS, R,  Matlab, … Trong các phần mềm được nêu, R được  nhiều người sử dụng nhất do tính thân thiện với người sử dụng, mã nguồn mở và  có đặc tính r t mạnh vể xử lý thống kê.      Vấn đề được nhiều người đặt ra là việc áp dụng phần mềm R như thế nào  để phục vụ tốt cho quá trình học tập, nghiên cứu thống kê nhằm đạt hiệu quả cao ... dữ liệu không có dòng đầu tiên là tên dữ kiện thì header=FALSE)     Muốn biết trong dữ liệu có những cột nào và tên gì ta dùng lệnh names():  > names(Salary) [1] "ID" "Salary" "Experience" Ta lưu dữ liệu  Salary thành tập dữ liệu  Salary.rda (rda nghĩa là file  dữ liệu của R) :  > save(Salary, file="Salary.rda")   5  Ứng dụng phần mềm R nghiên cứu thống kê 3.4 Nhập số liệu từ Excel    Để nhập số liệu từ phần mềm Excel, chúng ta cần tiến hành 2 bước:   ... phân tán nhỏ tức mức độ tập trung lớn; ngược lại khi phương sai lớn thì độ phân  tán lớn tức mức độ tập trung nhỏ   12  Ứng dụng phần mềm R nghiên cứu thống kê  Lệnh trong R   Tính phương sai trong R ta dùng lệnh  > var(x, y = NULL, na.rm = FALSE, use) trong đó:   x là vectơ số, ma trận hoặc mảng dữ liệu y NULL (mặc định y = x), hoặc vectơ, ma trận, mảng dữ liệu tương  thích với x.  na.rm có tính lôgic. Các giá trị vắng mặt có thể lấy đi không? ... nghĩa  là  working directory,  báo  cho  R biết  r ng  ta  muốn lưu các số liệu trong directory có tên là “D:\Studying\insulin” > save(benh, file=”benh.rda”) Các số liệu trong đối tượng benh sẽ lưu trong file có tên là benh.rda   Sau  khi  gõ  xong  hai  lệnh  trên,  một  file  có  tên  benh.rda  sẽ  có  mặt  trong  directory đó.    Lưu  ý  r ng  thông  thường  Windows  dùng dấu  backward  slash  “\”, ...Ứng dụng phần mềm R nghiên cứu thống kê PHẦN MỞ ĐẦU I LÝ DO CHỌN ĐỀ TÀI    Thống kê là một bộ môn khoa học đã và đang trở thành công cụ then chốt  được  sử dụng  trong  quản  lí,  nghiên cứu,   sản  xuất,  kinh  doanh,  v.v…  Hai  trong  những phương pháp trong thống kê đang được phổ biến nhất là mô hình hồi qui  và chuỗi thời gian. Mục đích của hai phương pháp này là tìm ra qui luật để thiết ... read.csv("Sal.csv", header=TRUE)    Muốn xem số liệu Salary ta dùng lệnh  > Salary Lưu số liệu vào file Salary.rda để làm việc trên R   > save(Salary, file="Salary.rda") 3.5 Nhập số liệu từ SPSS Phần mềm thống kê SPSS lưu dữ liệu dưới dạng  “sav”. Ví dụ chúng ta đã  có một dữ liệu có tên là testo.sav trong directory “D:\Studying”, và muốn  chuyển  dữ  liệu  này  sang  dạng  R có  thể  hiểu  được,  chúng ... “D:\Studying”, các bước sau đây là cần thiết  để nhập số liệu vào R:    > setwd("D:/Studying")    > Salary = read.table("salary.txt", header=TRUE)    Lệnh  thứ  nhất,  yêu  cầu  R truy  nhập  vào  directory  “D:\Studying”.  Tiếp  theo, lệnh thứ hai báo cho R biết là nhập số liệu từ file “salary.txt” gán vào  cho đối tượng  Salary. Trong lệnh này,  header=TRUE có nghĩa là yêu cầu  R đọc dòng đầu tiên trong file  salary.txt như là tên của từng cột dữ kiện (nếu ... Để tiện lợi và nhận được nhiều thông tin hơn, ta đặt một tham số chứa mô  hình hồi qui như sau:  > reg= lm(chol~age)   25  Ứng dụng phần mềm R nghiên cứu thống kê Khi đó biến reg có thể được sử dụng thay cho lm(chol~age)    # Liệt kê các thông số liên quan đến hàm lm  > summary(reg) Call: lm(formula = chol ~ age) Residuals: Min 1Q Median -0.40729 -0.24133 -0.04522 3Q 0.17939 Max 0.63040 Coefficients: Estimate Std Error t value Pr(>|t|) Intercept) 1.089218 0.221466 4.918

Ngày đăng: 12/10/2015, 19:27

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan