## 2 Methodology  
### Ssa  
Singular spectrum analysis (SSA) is a non-parametric method that is usually used to extract trends from nonlinear and noisy time series [36; 37]. SSA has the advantage that only a small part of the extracted trend is significantly influenced by the end effects. Furthermore, the length of the influenced part is fixed and closely relevant to the window length of SSA [33]. To this end, SSA is selected as the data decomposition technique in this paper. Given the wind speed series \(\mathbf{x}_{i}=(x_{1},\cdots,x_{N})\) of length \(N\), window length \(L\), \(K\) = \(N-L\) + 1 and grouping parameter \(r\), the main procedure of SSA to denoise the series is as follows [38]. SSA consists of the decomposition stage and the reconstruction stage. In the decomposition stage, the original series is firstly transformed into the trajectory matrix \(\mathbf{X}\) by embedding, which is shown in Equations (1) and (2):  
\[\mathbf{X}= \begin{bmatrix}\mathbf{x}_{1}&\cdots&\mathbf{x}_{K}\end{bmatrix} = \begin{bmatrix}x_{1}&\cdots&x_{k}\\ \vdots&\ddots&\vdots\\ x_{L}&\cdots&x_{N}\end{bmatrix}  \tag{1}\]  
\[\mathbf{x}_{i}=(x_{i},\cdots,x_{i+L-1})^{T} \tag{2}\]  
in which \(\mathbf{x}_{i}\) is called the lagged vector. The trajectory is then decomposed by the singular value decomposition (SVD). With the obtained eigen-triples \(\left(\sqrt{\lambda_{i}},\mathbf{u}_{i},\mathbf{v}_{i}\right)\) (\(\sqrt{\lambda_{i}}\) is the singular value of the \(i\)th eigen-triple, \(\mathbf{u}_{i}\) denotes the corresponding eigenvector and \(\mathbf{v}_{i}=\mathbf{X}^{T}\mathbf{u}_{i}/\sqrt{\lambda_{i}}\)) of the SVD, the trajectory matrix can be rewritten as follow:  
\[\mathbf{X}=\mathbf{X}_{1}+\cdots+\mathbf{X}_{d} \tag{3}\]  
where \(\mathbf{X}_{i}=\sqrt{\lambda_{i}}\mathbf{u}_{i}\mathbf{v}_{i}^{T}\) is called the elementary matrix, and \(d\) is the number of eigen-triples. In the reconstruction stage, eigen-triple grouping is firstly performed to select eigen-triples and their corresponding elementary matrices, which is to choose \(r\) eigen-triples of all \(d\) eigen-triples and construct the trajectory matrix of the trend by these elementary matrices. The grouping can be expressed as:  
\[\mathbf{X}_{trend}=\mathbf{X}_{1}+\cdots+\mathbf{X}_{r} \tag{4}\] \begin{table}
\begin{tabular}{c c c c} \hline
**Ref** & **Method** & **Real-Time Decomposition** & **Multi-Resolution Data** \\ \hline
[15] & EMD + ARIMA & No & No \\
[16] & WPD + ENN & No & No \\
[17] & SSA + CNNGRU + SVR & No & No \\
[20] & CEEMDAN + EWT + NN & No & No \\
[21] & VMD + WT + RBF & No & No \\
[24] & MCEEMDAN + QRNN & No & No \\
[25] & CEEMD + ARMA + BPNN & No & No \\
[26] & WTD + GRU & No & No \\
[27] & VMD + SVM + LSTM & No & No \\
[28] & VMD + RBF & No & No \\
[31] & EMD + SVM & Basic real-time decomposition & No \\
[32] & EWT + ENN & Quasi real-time decomposition & No \\
[33] & SSA + BiLSTM & Truncated real-time decomposition & No \\
[34] & Functional regression & No & Yes \\
[35] & ICEEMDAN & No & Yes \\ Proposed & SSA + GRU & Truncated real-time decomposition & Yes \\ \hline \end{tabular}
\end{table} 
Table 1: The comparison of the proposed model with relevant research studies. where \(\textbf{X}_{trend}\) is the trajectory matrix of the trend of the original series. Finally, the diagonal averaging is performed to transform \(\textbf{X}_{trend}\) to the trend \(\textbf{x}_{trend}\) of the original series. The diagonal averaging is given as follows (Y is used to denote \(\textbf{X}_{trend}\) for simplicity):  
\[y_{j}=\left\{ \begin{aligned} \frac{1}{j}\sum_{i=1}^{j}\text{Y}_{i,j-i+1},1 \leq j<L\\ \frac{1}{L}\sum_{i=1}^{L}\text{Y}_{i,j-i+1},L\leq j<K\\ \frac{1}{N-j+1}\sum_{i=j-K+1}^{N-K+1}Y_{i,j-i+1},K\leq j\leq N \end{aligned} \right. \tag{5}\]  
in which \(y_{j}\) is \(j\)th element of \(\textbf{x}_{trend}\). The performance of SSA is controlled by the window length and the grouping parameter \(r\). The grouping parameter can be selected by inspecting the eigenvalue spectrum, and the window length can be selected by comparing results of denoising [39].