Let \(Y_{i,c,t}\) represent the raw Google Trends search volume index for term \(i \in \{1, \dots, p\}\) in country \(c\) at month \(t\).
- Sampling Denoising: High-frequency sampling jitter is filtered using a 3-month center moving average:
\[\tilde{Y}_{i,c,t} = \frac{1}{4} Y_{i,c,t-1} + \frac{1}{2} Y_{i,c,t} + \frac{1}{4} Y_{i,c,t+1}\]
- Adaptive Seasonal Adjustment (STL): Decomposed into trend (\(T\)), seasonal (\(S\)), and remainder (\(R\)) components using Loess with seasonal window \(s.\text{window} = 7\):
\[\tilde{Y}_{i,c,t} = T_{i,c,t} + S_{i,c,t} + R_{i,c,t} \implies Y^{\text{SA}}_{i,c,t} = \tilde{Y}_{i,c,t} - S_{i,c,t}\]
- Standardization (Z-Score): Each seasonally adjusted component is standardized to zero mean and unit variance:
\[Z_{i,c,t} = \frac{Y^{\text{SA}}_{i,c,t} - \mu_{i,c}}{\sigma_{i,c}}, \quad \mathbf{Z}_c \in \mathbb{R}^{T \times p}\]
- Principal Component Analysis (PCA): The empirical covariance matrix \(\boldsymbol{\Sigma}_c = \frac{1}{T-1} \mathbf{Z}_c^T \mathbf{Z}_c\) is decomposed:
\[\boldsymbol{\Sigma}_c \mathbf{v}_1 = \lambda_1 \mathbf{v}_1\]
where \(\lambda_1\) is the largest eigenvalue and \(\mathbf{v}_1 = [v_{1,1}, \dots, v_{1,p}]^T\) is the first eigenvector (factor loadings). The variance explained ratio confirms the validity of a unified wage-pressure factor (\(60.8\% - 93.4\%\) across EU countries):
\[\operatorname{VarExplained}_c = \frac{\lambda_1}{\sum_{j=1}^p \lambda_j} \times 100\%\]
- Factor Projection & Min-Max Index Normalization (0–100 Scale):
\[\operatorname{PC1}_{c,t} = \operatorname{sgn}\left(\sum_{j=1}^p v_{1,j}\right) \cdot \mathbf{Z}_{c,t} \mathbf{v}_1\]
\[I_{c,t} = 100 \times \left( \frac{\operatorname{PC1}_{c,t} - \min_\tau \operatorname{PC1}_{c,\tau}}{\max_\tau \operatorname{PC1}_{c,\tau} - \min_\tau \operatorname{PC1}_{c,\tau}} \right)\]
- Momentum (MA 3M) and Structural Trend (MA 12M):
\[\text{Momentum}_{c,t} = \frac{1}{3}\sum_{k=0}^2 I_{c,t-k}, \quad \text{Trend}_{c,t} = \frac{1}{12}\sum_{k=0}^{11} I_{c,t-k}\]