Chuyển đến nội dung chính

Phân tích chuỗi thời gian bằng R: Hướng dẫn

Học Phân tích chuỗi thời gian với R cùng với cách dùng một gói trong R để dự báo, nhằm khớp chuỗi thời gian thực với mô hình tối ưu.
Đã cập nhật 5 thg 10, 2026  · 13 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Chuỗi thời gian là phép đo, hay còn gọi là một chỉ số được đo theo các thời điểm đều đặn, được gọi là Chuỗi thời gian. Ví dụ phân tích chuỗi thời gian gồm Tài chính, Giá cổ phiếu, Dữ liệu thời tiết, Nghiên cứu tiện ích và nhiều lĩnh vực khác.

Mô hình chuỗi thời gian có thể được xây dựng bằng cách:

  • Hiểu các lực tác động và cấu trúc cơ bản tạo ra dữ liệu quan sát.
  • Bắt đầu khớp mô hình và tiến hành dự báo, giám sát hoặc thậm chí điều khiển phản hồi và phản hồi đón trước.

Trong hướng dẫn này, bạn sẽ được giới thiệu tổng quan về các mô hình chuỗi thời gian dừng và không dừng. Bạn sẽ được hướng dẫn cách nhận diện một chuỗi thời gian bằng cách tính ACF và PACF của nó. Đồ thị của các hàm này cho phép đánh giá tính dừng của chuỗi thời gian. Ta có thể biến một chuỗi không dừng thành dừng bằng phép sai phân. Khi đã hiểu bản chất của chuỗi, việc dự đoán giá trị tương lai từ một mô hình mà chuỗi tuân theo trở nên dễ dàng hơn. Một minh họa với dữ liệu thực có trong gói TSA của R cũng sẽ là một phần của hướng dẫn này.

Tiến trình dừng

Gọi $X$ là một biến ngẫu nhiên được đánh chỉ số theo thời gian (thường ký hiệu là $t$), các quan sát $\left\{x_t,\,t\in \textbf{N}\right\}$ được gọi là một chuỗi thời gian. $\textbf{N}$ là tập số nguyên, ở đây được coi là tập chỉ số thời gian. $N$ cũng có thể là timestamp. Tính dừng là một giả định quan trọng trong các mô hình chuỗi thời gian, ngụ ý tính đồng nhất trong chuỗi, tức chuỗi ứng xử tương tự bất kể thời điểm, nghĩa là các đặc trưng thống kê của nó không thay đổi theo thời gian. Có hai dạng tính dừng: dạng mạnh và dạng yếu.

Định nghĩa 1

Một tiến trình dừng $\left\{x_t,\,t\in \textbf{N}\right\}$ được gọi là dừng nghiêm ngặt hay dừng mạnh nếu các phân phối thống kê của nó không đổi sau khi tịnh tiến thang thời gian. Vì các phân phối của một quá trình ngẫu nhiên được xác định bởi các hàm phân phối hữu hạn chiều, ta có thể phát biểu một định nghĩa thay thế cho tính dừng nghiêm ngặt. Nếu với mọi $n$, mọi lựa chọn thời điểm $t_1, t_2, \ldots, t_n\in \textbf{N}$ và mọi độ trễ $k$ sao cho $t_{i+k}\in\textbf{N}$, véc-tơ ngẫu nhiên $n$ chiều $(X_{t_1+k}, X_{t_2+k}, \ldots, X_{t_n+k})$ có cùng phân phối với véc-tơ $(X_{t_1}, X_{t_2}, \ldots, X_{t_n})$, thì tiến trình là dừng nghiêm ngặt. Tức là với $h$ và $x_i$

\begin{align*} P(X_{t_1}\leq x_1, X_{t_2}\leq x_2, \ldots, X_{t_k}\leq x_k) &= F(x_{t_1}, x_{t_2}, \ldots, x_{t_k})\\ &= F(x_{h+t_1}, x_{h+t_2}, \ldots, x_{h+t_k})\\ &= P(X_{h+t-1}\leq x_1, X_{h+t_2}\leq x_2, \ldots, X_{h+t_k}\leq x_k) \end{align*}

với mọi độ dịch thời gian $h$ và quan sát $x_j$. Nếu $\left\{X-t,\,t\in\textbf{N}\right\}$ là dừng nghiêm ngặt, thì phân phối biên của $X_t$ độc lập với $t$. Đồng thời, các phân phối hai chiều của $(X_{t_1}, X_{t_2})$ độc lập với vị trí tuyệt đối của $t_1$ và $t_2$, chỉ phụ thuộc vào khoảng cách $t_1-t_2$. Hệ quả là hàm kỳ vọng $E(X)$ là hằng số, và hiệp phương sai $Cov(X_t,X_{t-k})$ chỉ là hàm của $k$, không phụ thuộc vị trí tuyệt đối của $k$ và $t$. Ở các mômen bậc cao hơn, như mômen bậc ba, $E[X_uX_tX_v]$ không đổi nếu cộng một độ dịch thời gian hằng vào $s, t, u$.

Định nghĩa 2

Một chuỗi thời gian đơn biến $X_t$ là dừng nếu kỳ vọng, phương sai và hiệp phương sai của nó độc lập với thời gian. Do đó, nếu $X_t$ là một chuỗi thời gian (hay quá trình ngẫu nhiên, nghĩa là các biến ngẫu nhiên sắp theo thời gian) được định nghĩa cho $t=1,2,3,\ldots, n$ và cho $t=0, -1, -2, -3, \ldots$, thì $X_t$ là dừng yếu về mặt toán học nếu

\begin{align} (i) & E[X_t] = \mu\\ (ii) & E\left[(X-\mu)^2\right] = Var(X_t) = \gamma(0) = \sigma^2\\ (iii) & E\left[(X_t-\mu)(X_{t-k}-\mu)\right] = Cov(X_t, X_{t-k}) = \gamma(k) \end{align}

Hai điều kiện đầu ($(i)$ và $(ii)$) yêu cầu quá trình có kỳ vọng và phương sai không đổi, trong khi $(iii)$ yêu cầu hiệp phương sai giữa hai giá trị bất kỳ (chính thức gọi là hàm hiệp phương sai) chỉ phụ thuộc vào khoảng thời gian $k$ giữa hai giá trị này và không phụ thuộc thời điểm $t$.

Nếu một quá trình Gauss có các mômen bậc hai hữu hạn, thì tính dừng yếu tương đương với tính dừng mạnh. Tính dừng nghiêm ngặt chỉ suy ra tính dừng yếu khi các mômen cần thiết tồn tại. Tính dừng mạnh cũng đòi hỏi các giả định về phân phối. Dạng mạnh nhìn chung bị coi là quá nghiêm, vì vậy bạn chủ yếu quan tâm đến tính dừng yếu, đôi khi còn gọi là tính dừng theo hiệp phương sai, tính dừng theo nghĩa rộng hoặc tính dừng bậc hai.

Tính dừng và chuỗi thời gian ngẫu nhiên (Quá trình ngẫu nhiên)

Một chuỗi thời gian mà các quan sát dao động quanh một kỳ vọng hằng, có phương sai ổn định và độc lập ngẫu nhiên, là một chuỗi thời gian ngẫu nhiên. Những chuỗi như vậy không biểu hiện khuôn mẫu nào:

  • Các quan sát không có xu hướng tăng hoặc giảm
  • Phương sai không tăng hoặc giảm theo thời gian
  • Các quan sát không có xu hướng lớn lên ở một số giai đoạn hơn các giai đoạn khác

Một ví dụ về mô hình ngẫu nhiên dừng có thể viết là

$$X_t = \mu+\varepsilon_t$$ trong đó $\mu$ là kỳ vọng hằng sao cho $E[X_t] = \mu$ và $\varepsilon_t$ là nhiễu được giả định có kỳ vọng bằng 0, phương sai hằng và độc lập (còn gọi là nhiễu trắng).

Mô phỏng một chuỗi thời gian ngẫu nhiên

# purely random process with mean 0 and standard deviation 1.5
eps <- rnorm(100, mean = 0, sd = 1)
mu <- 2 # the constant mean
# The process
X_t <- mu + eps

# plotting the time series
ts.plot(X_t, main = "Example of (random) stationary time series", ylab = expression(X[t]))

Tiến trình mô phỏng dao động quanh kỳ vọng hằng $\mu = 2$.

Hàm tự hiệp phương sai

Hàm tự hiệp phương sai (ACF) lý thuyết của một quá trình ngẫu nhiên dừng là công cụ quan trọng để đánh giá các thuộc tính của chuỗi thời gian. Gọi $X_t$ là một quá trình ngẫu nhiên dừng với kỳ vọng $\mu$ và phương sai $\sigma^2$. ACF tại độ trễ $k$, $\gamma(k)$, là $$\gamma(k) = \frac{\gamma(k)}{\gamma(0)} = \frac{\gamma(k)}{\sigma^2}$$

Hàm ACF là thước đo chuẩn hóa của tự hiệp phương sai và có một số tính chất.

Các tính chất của ACF

  1. $\rho(0) = 1$
  2. ACF là một hàm chẵn của độ trễ. Nghĩa là $\rho(k) = \rho(-k)$
  3. $|\rho(-k)| \leq 1$

ACF của tiến trình ở trên được thể hiện trong hình sau.

# Auto-covariance function of the simulated stationary random time series
acf(X_t, main = "Auto-covariance function of X")

Lưu ý 1. Tính không duy nhất là một đặc điểm của ACF. Ngay cả khi một biến ngẫu nhiên cho trước có cấu trúc hiệp phương sai duy nhất, điều ngược lại nói chung không đúng: có thể tìm được nhiều quá trình ngẫu nhiên khác nhau có cùng ACF. Điều này gây vấn đề trong đặc tả, được minh họa trong [@jenkinsd].

Lưu ý 2: Một ma trận rất đặc biệt thu được từ hàm tương quan tự động của một tiến trình dừng. Nó được gọi là ma trận Toeplitz. Đây là một dạng ma trận phương sai và hiệp phương sai bậc $m = t-k$ (độ trễ, bao gồm tự tương quan tới độ trễ $m-1$), nên là ma trận chéo, đối xứng, xác định dương.

\begin{equation} \begin{pmatrix} 1 & \rho(1) & \rho(2) & \cdots & \rho(m-1)\\ \rho(1) & 1 & \rho(1) & \cdots & \rho(m-2)\\ \cdots &\cdots &\cdots &\cdots &\cdots\\ \rho(m-1) & \rho(m-2) & \cdots & \rho(1) & 1 \end{pmatrix} \end{equation}

Tiến trình thuần ngẫu nhiên hay nhiễu trắng

Một tiến trình rời rạc $\left\{Z_t\right\}$ được gọi là thuần ngẫu nhiên nếu các biến ngẫu nhiên $Z_t$ tạo thành một dãy biến độc lập và đồng phân phối (i.i.d.). Định nghĩa này hàm ý tiến trình có kỳ vọng và phương sai hằng.

$$\gamma(k) = cov(Z_t, Z_{t+k}) = 0,\quad\forall k\in -3,-2,-1,0,1,2,3, \ldots$$ Vì kỳ vọng và hàm tự hiệp phương sai (acvf) không phụ thuộc thời gian, tiến trình là dừng bậc hai.

Tiến trình bước ngẫu nhiên

Một tiến trình $\left\{X_t\right\}$ được gọi là bước ngẫu nhiên nếu $X_t = X_{t-1}+Z_t$, với $Z_t$ là tiến trình thuần ngẫu nhiên có kỳ vọng $\mu$ và phương sai $\sigma^2_Z$. Tiến trình thường bắt đầu tại $t = 0$ và ta có $X_1 = Z_0$ tức $X_0 = 0$. Ta có

\begin{align*} X_1 &= X_0 + Z_1, \quad\text{tại } t = 1\\ X_2 &= X_1 + Z_2 = X_0 + Z_1+ Z_2, \quad\text{tại } t = 2\\ X_3 &= X_2 + Z_3 = X_0 + Z_1+ Z_2 + Z_3, \quad\text{tại } t = 3\\ &\cdots\\ X_t &= X_0 + \sum_{i = 1}^tZ_i \end{align*}

Mômen bậc nhất (hay giá trị kỳ vọng) của tiến trình này bằng $$E[X_t] = X_0 +\sum_{i = 1}^tE[Z_i] = X_0 + t\mu_z = t\mu_z$$ và phương sai $$Var(X_t) = t\sigma^2_Z$$ Lưu ý rằng kỳ vọng và phương sai thay đổi theo thời gian, do đó, tiến trình là \textbf{không dừng}. Ví dụ về chuỗi thời gian có hành vi như bước ngẫu nhiên là giá cổ phiếu.

Mô phỏng tiến trình bước ngẫu nhiên

# seed X_0 = 0
X <- 0

# purely random process with mean 0 and standard deviation 1.5
Z <- rnorm(100, mean = 0.5, sd = 1.5)

# the process
for (i in 2:length(Z)){
  X[i] <- X[i-1] + Z[i]
}

# process plotting
ts.plot(X, main = "Random walk process")

Sai phân

Sai phân là phương pháp phổ biến nhất để làm dừng dữ liệu chuỗi thời gian. Đây là một dạng lọc đặc biệt, đặc biệt quan trọng để loại bỏ xu hướng. Với dữ liệu mùa vụ, sai phân bậc nhất thường đủ để đạt tính dừng về kỳ vọng. Gọi $X_t = \left\{X_1, X_2,\ldots, X_n\right\}$ là chuỗi thời gian không dừng. Chuỗi dừng thu được là

$$\Delta X_{t+1} = X_{t+1}-X_t\quad\text{hoặc }\,\Delta X_{t} =X_t-X_{t-1}$$ gọi là sai phân bậc nhất. Nếu cần sai phân bậc hai, bạn có thể dùng toán tử $\Delta^2$ là sai phân của các sai phân bậc nhất

$$\Delta^2X_{t+2} = \Delta X_{t+2} - \Delta X_{t+1}$$

# differencing and plotting of the random walk process
ts.plot(diff(X))

Bạn thấy rằng sai phân bậc nhất thu được dao động quanh kỳ vọng hằng 0. Điều này do về mặt toán học

$$\Delta X_{t+1} = X_{t+1}-X_t = Z_t$$ là dừng vì đó là một tiến trình thuần ngẫu nhiên với kỳ vọng và phương sai hằng.

Trung bình trượt bậc $q$: MA($q$)

Gọi $\left\{Z_t\right\}$ là tiến trình thuần ngẫu nhiên với kỳ vọng 0 và phương sai $\sigma^2_Z$. Tiến trình được gọi là Trung bình trượt bậc #q# nếu

$$X_t = \beta_0Z_t-\beta_1Z_{t-1}-\cdots-\beta_q Z_{t-q}$$ trong đó $\beta_i,\, i = 1,2,\ldots,q$ là các hằng số. Các biến ngẫu nhiên $Z_t, \,t\in\textbf{N}$ thường được chuẩn tỷ lệ để $\beta_0=1$

Mô phỏng MA bậc nhất

# purely random process with mean 0 and standard deviation 1.5 (arbitrary choice)
Z <- rnorm(100, mean = 0, sd = 1.5)

# process simulation
X <- c()
for (i in 2:length(Z)) {
  X[i] <- Z[i] - 0.45*Z[i-1]
}

# process plotting
ts.plot(X, main = "Moving Average or order 1 process")

Với tiến trình MA(1), có thể kiểm chứng 3 điều kiện như sau:

\begin{align} E[X_t] &= 0\\ Var(X_t) &= E[X_t^2] - 0 = E\left[Z_t^2-2\beta Z_tZ_{t-1}+\beta^2Z_{t-1}^2\right]= \sigma^2_Z+\beta^2\sigma^2_Z\\ \gamma(k) &= cov(X_t, X_{t+k}) = E[X_tX_{t+k}] - E[X_t]E[X_{t+k}] = E[X_tX_{t+k}]\\ &= E\left[(Z_t-\beta Z_{t-1})(Z_{t+k}-\beta Z_{t-1+k})\right]\\ &= E\left[Z_tZ_{t+k} - \beta Z_tZ_{t-1+k} -\beta Z_{t-1}Z_{t+k} + \beta^2 Z_{t-1}Z_{t-1+k}\right]\\ \end{align}

với $k = 0,\, \gamma(0) = Var(X_t) = \sigma^2_Z(1+\beta^2)$

với $k = 1,\, \gamma(1) = E\left[Z_tZ_{t+1} - \beta Z_t^2 -\beta Z_{t-1}Z_{t+1} + \beta^2 Z_{t-1}Z_{t}\right] = -\beta\sigma^2_Z$

và với $k>1,\, \gamma(k) = 0.$

Như vậy, tiến trình MA(1) có hiệp phương sai bằng 0 khi độ dịch lớn hơn một kỳ. Tức là nó chỉ “nhớ” một kỳ.

ACF cho MA(1) do đó là

$$\rho(k) = \frac{\gamma(k)}{\gamma(0)} = \begin{cases}1, &\text{k }=0\\\frac{-\beta}{1+\beta^2}, & \text{k }\pm 1\end{cases}$$

Câu hỏi: làm lại cho MA(2)

Có thể thấy vì sao hàm tự tương quan mẫu hữu ích trong việc xác định bậc của tiến trình trung bình trượt: hàm tự tương quan (k) cho tiến trình MA(q) có q giá trị khác 0 (khác biệt có ý nghĩa so với 0) và bằng 0 với $k > q$. Không cần ràng buộc nào trên $\left\{\beta_i\right\}$ để MA là dừng. Tuy nhiên, $\left\{\beta_i\right\}$ cần bị ràng buộc để đảm bảo khả nghịch.

Tự hồi quy bậc $p$: AR($p$)

Gọi $\left\{Z_t\right\}$ là tiến trình thuần ngẫu nhiên với kỳ vọng 0 và phương sai $\sigma_Z^2$. Một tiến trình $\left\{X_t\right\}$ được gọi là tự hồi quy bậc $p$ nếu $$X_t = \alpha_1X_{t-1}+\alpha_2X_{t-2}+\cdots+\alpha_pX_{t-p}+Z_t$$ Trong tiến trình tự hồi quy bậc $p$, quan sát hiện tại $X_t$ (ví dụ lợi suất hôm nay) được tạo bởi trung bình có trọng số của các quan sát quá khứ lùi về $p$ kỳ, cùng với một biến ngẫu nhiên độc lập nhưng dựa trên các giá trị quá khứ của $X_t$ và do đó là tự hồi quy. Các loại tiến trình này được giới thiệu bởi [@greenwood1920inquiry]. AR($p$) ở trên có thể viết với một kỳ vọng hằng

$$X_t = \delta+\alpha_1X_{t-1}+\alpha_2X_{t-2}+\cdots+\alpha_pX_{t-p}+Z_t$$ trong đó $\mu$ là hằng số liên quan tới kỳ vọng của chuỗi thời gian và $\alpha_1, \alpha_2,\ldots, \alpha_p$ có thể dương hoặc âm. AR($p$) là dừng nếu $E[X_t] = E[X_{t-1}] = \cdots = E[X_p] = \mu$. Do đó,

\begin{align*} E[X_t] = \mu &= \delta + \alpha_1\mu+\alpha_2\mu+\cdots+\alpha_p\mu+ 0\\ \Rightarrow \mu &= \frac{\delta}{1-\alpha_1-\alpha_2-\cdots-\alpha_p} \end{align*} Để biểu thức cuối cùng là hằng số, ta xét điều kiện $\alpha_1+\alpha_2+\cdots+\alpha_p<1$.

  </1>

Tiến trình AR bậc nhất: AR(1)

Xét trường hợp $p=1$, khi đó $$X_t = \alpha X_{t-1}+Z_t$$ là tự hồi quy bậc nhất AR(1), còn được gọi là tiến trình Markov. Dùng toán tử lùi $BX_t = X_{t-1}$, bạn có thể biểu diễn AR(1) như một tiến trình MA vô hạn. Ta có $$(1 - \alpha B)X_t = Z_t$$ nên, \begin{align*} X_t &= \frac{Z_t}{1-\alpha B}\\ &= (1+\alpha B +\alpha^2B^2+ \cdots)Z_t\\ &=Z_t+\alpha Z_{t-1}+\alpha^2Z_{t-2}+\cdots\\ &=Z_t+\beta_1 Z_{t-1}+\beta_2 Z_{t-2}+\cdots\\ \end{align*}

Khi đó $E[X_t] = 0$ và $Var(X_t) = \sigma^2_Z(1+\alpha^2+\alpha^4+\cdots)$. Chuỗi hội tụ khi $|\alpha|<1$.

Câu hỏi: Cho tiến trình AR(1) $X_t = \alpha_1X_1+Z_t$ là thuần ngẫu nhiên với kỳ vọng 0 và phương sai $\sigma^2_Z$ và $\alpha$ là hằng với các điều kiện cần thiết trên $\alpha$, hãy suy ra phương sai và hàm tự hiệp phương sai của $X_t$.

Mô phỏng AR(1)

# constant alpha
alpha = 0.5

# purely random process with mean 0 and standard deviation 1.5
Z <- rnorm(100, mean = 0, sd = 1.5)

# seed
X <- rnorm(1)

# the process
for (i in 2:length(Z)) {
  X[i] <- 0.7*X[i-1]+Z[i]
}

# process plotting
ts.plot(X)

Câu hỏi: Biểu diễn điều kiện dừng của mô hình AR (2) theo giá trị tham số. Tức là, chứng minh các điều kiện sau:

expression

Bạn cũng có thể biểu diễn một tiến trình AR bậc hữu hạn, gọi là p, dưới dạng một tiến trình MA bậc vô hạn. Có thể thực hiện bằng thế lặp liên tiếp hoặc dùng toán tử lùi.

Tiến trình tự hồi quy - trung bình trượt: ARMA($p,q$)

Trong xây dựng mô hình, có thể cần trộn cả các hạng AR và MA trong mô hình. Điều này dẫn đến tiến trình hỗn hợp tự hồi quy – trung bình trượt (ARMA). Một tiến trình ARMA chứa $p$ hạng tự hồi quy và $q$ hạng trung bình trượt được gọi là bậc $(p, q)$ và được cho bởi

$$X_t = \alpha_1X_{t-1}+\alpha_2X_{t-2}+\cdots+\alpha_pX_{t-p}+Z_t-\beta_1Z_{t-1}-\beta_2Z_{t-2}-\cdots-\beta_qZ_{t-q}$$ Dùng toán tử lùi B, phương trình có thể viết là

$$\alpha_p(B)X_t = \beta_q(B)Z_t$$ trong đó $\alpha_p(B)$ và $\beta_q(B)$ là các đa thức bậc $p$ và $q$ tương ứng, sao cho

\begin{align*} \alpha_p(B) &= \left(1-\alpha_1 B-\cdots-\alpha_p B^p\right)\\ \beta_q(B) &= \left(1-\beta_1 B-\cdots-\beta_p B^p\right) \end{align*}

Để tiến trình khả nghịch, các nghiệm của $\beta_q(B)$ phải nằm ngoài đường tròn đơn vị. Để dừng, ta yêu cầu các nghiệm của $\alpha_p(B)=0$ nằm ngoài đường tròn đơn vị. Cũng giả định rằng $\alpha_p(B)=0$ và $\beta_q(B) = 0$ không có nghiệm chung.

Tiến trình ARMA(1,1)

Tiến trình này có bậc $(1,1)$ và được cho bởi phương trình $$X_t = \alpha_1X_{t-1}+Z_t-\beta_1Z_{t-1}$$

với các điều kiện $|\alpha_1|<1$ và $|\beta_1|<1$ là cần để chứng minh tính dừng và khả nghịch. Khi $\alpha < 0$, ARMA(1,1) trở về MA(1) và khi $\beta_1<0$, ta được AR(1). Một tiến trình ARMA(1,1) có thể được chuyển thành dạng tự hồi quy thuần bằng toán tử lùi:

$$(1-\alpha_1B)X_t = (1-\beta_1B)Z_t$$

Ta có

\begin{align*} \frac{1-\alpha_1B}{1-\beta_1B}X_t &= Z_t\\ \pi(B)X_t &= Z_t \end{align*}

với

\begin{align*} \pi(B) = 1-\pi_1B-\pi_2B^2-\ldots &= \frac{1-\alpha_1B}{1-\beta_1B}\\ (1-\beta_1B)(1-\pi_1B-\pi_2B^2-\ldots) &= 1-\alpha_1B\\ 1-\left[(\pi_1+\beta_1)B - (\pi_2+\beta_2)B^2 - (\pi_3+\beta_3)B^3\right] & = 1-\alpha_1B \end{align*}

Bằng cách đồng nhất hệ số của B ở hai vế, ta được các hạng chưa biết là $$\pi_j = \beta_1^{j-1}(\alpha_1-\beta_1),\,\text{với }\, j\geq1$$

Hàm tự tương quan của ARMA (1, 1)

Kỳ vọng của $X_t$ được cho bởi $E[X_t] = \alpha_1E[X_{t-1}]$ và dưới giả định dừng, ta có $E[X_t] = E[X_{t-1}] = \mu = 0$. Điều này hữu ích khi tính hàm tự hiệp phương sai như sau:

  1. $X_tX_{t-k} = \alpha_1X_{t-k}X_{t-1}+X_{t-k}Z_t-\beta_1X_{t-k}Z_{t-1}$
  2. Lấy kỳ vọng hai vế, ta được: \begin{align*} E\left[X_tX_{t-k}\right] &= E\left[\alpha_1X_{t-k}X_{t-1}\right]+E\left[X_{t-k}Z_t\right]-\beta_1E\left[X_{t-k}Z_{t-1}\right]\\ \gamma(k)&=\alpha_1\gamma(k-1)+E\left[X_{t-k}Z_t\right]-\beta_1E\left[X_{t-k}Z_{t-1}\right] \end{align*}

Với $k = 0$,

\begin{align*} \gamma(1)&=\alpha_1\gamma(0)+E\left[X_{t-1}Z_t\right]-\beta_1E\left[X_{t-1}Z_{t-1}\right]\\ &=\alpha_1\left(\alpha_1\gamma(1)+ \sigma^2_Z - \beta_1(\alpha_1-\beta_1)\sigma^2_Z\right)-\beta_1\sigma^2_Z\\ &= \alpha^2\gamma(1)+(\alpha_1-\beta_1)(1-\alpha_1\beta_1)\sigma^2_Z\\ \Rightarrow \gamma(1)&=\frac{(\alpha_1-\beta_1)(1-\alpha_1\beta_1)\sigma^2_Z}{1-\alpha^2}\\ \Rightarrow \gamma(0)&=\alpha_1\frac{(\alpha_1-\beta_1)(1-\alpha_1\beta_1)\sigma^2_Z}{1-\alpha^2}+ \sigma^2_Z - \beta_1(\alpha_1-\beta_1)\sigma^2_Z\\ &=\frac{\left(1+\beta_1^2-2\alpha_1\beta_1\right)\sigma_Z^2}{1-\alpha^2} \end{align*}

Với $k \geq 2$,

\begin{align*} \gamma(2)&=\alpha_1\gamma(k-1) \end{align*}

Vì vậy, ACF của ARMA(1,1) là:

$$\rho(k) = \begin{cases} 1, &\text{với }\,k=0\\ \frac{(\alpha_1-\beta_1)(1-\alpha_1\beta_1)}{1+\beta_1^2-2\alpha_1\beta_1},&\text{với }\,k=1\\ \alpha_1\rho(k-1), &\text{với }\,k\geq2\\ \end{cases} $$ ACF của ARMA(1,1) kết hợp đặc trưng của cả AR(1) và MA(1). Tham số MA(1) và AR(1) đều xuất hiện trong $\rho(1)$. Vượt quá $\rho(1)$, ACF của mô hình ARIMA(1,1) theo cùng khuôn mẫu như ACF của AR(1).

Câu hỏi: Tìm hàm tự tương quan riêng phần (PACF) của tiến trình ARMA(1,1).

Lưu ý: Đặc trưng của các tiến trình chuỗi thời gian được mô tả qua ACF và PACF của chúng. Bước quan trọng nhất trong phân tích chuỗi thời gian là nhận diện và xây dựng mô hình dựa trên dữ liệu sẵn có, nơi ACF và PACF là chưa biết.

Mô phỏng ARMA(1,1)

# purely random process with mean 0 and standard deviation 1.5
Z <- rnorm(100, mean = 0, sd = 1.5)

# Process
X <- rnorm(1)

for (i in 2:length(Z)) {
  X[i] <- 0.35*X[i-1] + Z[i] + 0.4*Z[i-1]
}

# process plotting
ts.plot(X, main = "ARMA(1,1) process")

# ACF et PACF
par(mfrow = c(1,2))
acf(X); pacf(X)

Tiến trình ARIMA($p,d,q$)

Các mô hình Tự hồi quy Tích hợp Trung bình trượt là những chuỗi thời gian được xác định bởi phương trình:

Tiến trình SARIMA(p,d,q)(P,D,Q)

Dự báo

Trong phần này, bạn sẽ dùng chuỗi thời gian thực để khớp mô hình tối ưu. Cho mục đích đó, bạn sẽ dùng gói forecast. Hàm auto.arima khớp và chọn mô hình tối ưu từ dữ liệu và hàm forecast cho phép dự báo trước h kỳ.

# R packages to be used
library(forecast)
library(TSA)

Ví dụ 1:

# Data from TSA package
data("co2")
data("boardings")

# fitting
fit <- auto.arima(co2)

# Time series plot
plot(fc <- forecast(fit, h = 15))

Ví dụ 2:

data("boardings")

# fitting
fit2 <- auto.arima(boardings[,"log.price"])

# forecasting
plot(fc2 <- forecast(fit2, h = 15))

Tài liệu tham khảo

Greenwood, Major, và G Udny Yule. 1920. “An Inquiry into the Nature of Frequency Distributions Representative of Multiple Happenings with Particular Reference to the Occurrence of Multiple Attacks of Disease or of Repeated Accidents.” Journal of the Royal Statistical Society 83 (2). JSTOR: 255–79.

Jenkins, GM. không đề năm. “D. G. Watts (1968) Spectral Analysis and Its Applications.” San Francisco.

Kết luận

Trong hướng dẫn này, bạn đã học nhiều chi tiết về Chuỗi thời gian trong R. Bạn đã biết thế nào là tiến trình dừng, mô phỏng biến ngẫu nhiên, mô phỏng chuỗi thời gian ngẫu nhiên, tiến trình bước ngẫu nhiên và nhiều nội dung khác. Bạn cũng đã đề cập đến Tự hồi quy bậc pp: Ar(pp), quy trình SARIMA(p,d,q(P, D, Q), dự báo.

Nếu bạn muốn tìm hiểu thêm về Chuỗi thời gian trong R, hãy tham gia các khóa học của DataCamp sau:

Chủ đề
R
Khoa học Dữ liệu
Phân tích dữ liệu

Tìm hiểu thêm về R

Khóa học

Phân tích chuỗi thời gian bằng R

4 giờ
61.5K
Học các kỹ thuật cốt lõi cần thiết để trích xuất những insight có ý nghĩa từ dữ liệu chuỗi thời gian.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm