1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Phân tích chuỗi thời gian bằng R

Connected

Bài tập

Tính tự tương quan

Tự tương quan hay tương quan trễ được dùng để đánh giá liệu một chuỗi thời gian có phụ thuộc vào quá khứ của chính nó hay không. Với một chuỗi thời gian x độ dài n, ta xét n-1 cặp quan sát cách nhau một đơn vị thời gian. Cặp đầu tiên là (x[2],x[1]), tiếp theo là (x[3],x[2]). Mỗi cặp có dạng (x[t],x[t-1]) với t là chỉ số quan sát, thay đổi từ 2 đến n trong trường hợp này. Tự tương quan trễ-1 của x có thể được ước lượng bằng hệ số tương quan mẫu của các cặp (x[t], x[t-1]) này.

Nói chung, bạn có thể tự tạo các cặp quan sát này. Trước tiên, tạo hai vector, x_t0 và x_t1, mỗi vector có độ dài n-1, sao cho các hàng tương ứng với các cặp (x[t], x[t-1]). Sau đó áp dụng hàm cor() để ước lượng tự tương quan trễ-1.

May mắn là lệnh acf() cung cấp cách làm nhanh. Áp dụng acf(..., lag.max = 1, plot = FALSE) cho chuỗi x sẽ tự động tính tự tương quan trễ-1.

Cuối cùng, lưu ý rằng hai ước lượng có khác biệt nhỏ do dùng cách chuẩn hóa hơi khác nhau khi tính hiệp phương sai mẫu: 1/(n-1) so với 1/n. Dù cách sau tạo ra ước lượng chệch, nó lại được ưa dùng trong phân tích chuỗi thời gian, và các ước lượng tự tương quan thu được chỉ khác nhau bởi một hệ số (n-1)/n.

Trong bài này, bạn sẽ thực hành cả cách tính thủ công và tự động cho tự tương quan trễ-1. Chuỗi thời gian x và độ dài n (150) đã được nạp sẵn. Chuỗi được hiển thị trong biểu đồ bên phải.

Hướng dẫn

100 XP
  • Tạo hai vector, x_t0 và x_t1, mỗi vector có độ dài n-1 sao cho các hàng tương ứng với các cặp (x[t], x[t-1]).
  • Xác nhận rằng x_t0 và x_t1 là các cặp (x[t], x[t-1]) bằng đoạn mã có sẵn.
  • Dùng plot() để xem biểu đồ phân tán của x_t0 và x_t1.
  • Dùng cor() để xem hệ số tương quan giữa x_t0 và x_t1.
  • Dùng acf() với x để tự động tính tự tương quan trễ-1. Đặt đối số lag.max là 1 để tạo một khoảng trễ và đặt đối số plot là FALSE.
  • Xác nhận rằng hệ số chênh lệch là (n-1)/n bằng đoạn mã có sẵn.