1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Tối ưu hóa mã R với Rcpp

Connected

Bài tập

Mô phỏng mô hình AR(p)

Mô hình tự hồi quy (AR) là một dạng hồi quy tuyến tính cho chuỗi thời gian, trong đó giá trị dự đoán phụ thuộc vào các giá trị tại những thời điểm trước đó. Do phụ thuộc vào các điểm thời gian trước, mô hình phải được tính tuần tự theo từng thời điểm. Điều này đồng nghĩa với việc dùng vòng lặp for, nên C++ sẽ rất hữu ích!

Đây là thuật toán bằng R:

ar1 <- function(n, constant, phi, eps) {
  p <- length(phi)
  x <- numeric(n)
  for(i in seq(p + 1, n)) {
    value <- rnorm(1, constant, eps)
    for(j in seq_len(p)) {
      value <- value + phi[j] * x[i - j]
    }
    x[i] <- value
  }
  x
}

n là số lượng quan sát mô phỏng, c là hằng số, phi là một vector số các hệ số tự tương quan, và eps là độ lệch chuẩn của nhiễu. Hoàn thiện định nghĩa ar2(), bản dịch C++ của ar1().

Hướng dẫn

100 XP
  • Sinh một số ngẫu nhiên phân phối chuẩn với kỳ vọng c và độ lệch chuẩn eps, dùng R API của Rcpp.
  • Làm cho vòng lặp for phía trong lặp từ 0 đến p.
  • Bên trong vòng lặp trong, tăng value bằng phần tử thứ j của phi nhân với phần tử thứ "i trừ j trừ 1" của x.