| nmfkc.ar.latent | R Documentation |
This function is experimental. The interface may change in future versions: argument names, defaults and the contents of the returned object are not yet stable.
Reduces a fitted NMF-VAR to the Q\times Q operators that drive its
coefficient vector. Writing \bm b_t=\Theta\bm a_t for the fitted
scores, the residual-free recursion is
\bm b_t=\sum_{d=1}^{D}G_d\,\bm b_{t-d}+\bm\theta,\qquad G_d=\Theta_d X
\ \ (Q\times Q),
and the G_d carry the model's whole deterministic structure —
transition weights, propagation, roots, the long-run mean. They stay
readable where the P\times P matrices \Xi_d = X\Theta_d do not:
4\times4 instead of 47\times47.
Use plot.nmfkc.ar.latent to draw them,
nmfkc.ar.latent.inference to attach standard errors, and
nmfkc.ar.stationarity if the stationarity verdict is all that
is wanted.
nmfkc.ar.latent(x)
x |
A fitted |
The latent process is VARMA, not VAR. The display above drops the
observation residual. With \bm y_t = X\bm b_t + \bm e_t the exact
identity is
\bm b_t=\sum_{d=1}^{D}G_d\,\bm b_{t-d}+\bm\theta
+\sum_{d=1}^{D}\Theta_d\,\bm e_{t-d},
i.e. a VARMA(D,D) in general (verified to machine precision; dropping
the moving-average term leaves an error of order the residuals themselves).
G_d is therefore the autoregressive operator of the fitted VAR
reduced to the latent space, not the coefficient matrix of a latent VAR that
the scores obey exactly. In particular an entry of G_d should not be
read as Granger causality between latent conditions: the moving-average term
is common to all coordinates and is not conditioned on.
Direction convention: (G_d)_{q q'} is the effect of
b_{q',\,t-d} on b_{q,\,t} — row = effect (at t),
column = cause (at t-d).
Identification. The factorization is unique only up to
(X,\Theta)\to(XT,T^{-1}\Theta), under which G_d\to T^{-1}G_dT.
The eigenvalues, \rho, \Xi_d and \bm\mu_y are therefore
invariant, while individual entries of G_d are not. Column
normalization removes only the scale part of T, and a separable fitted
X does not certify the rest: with X=I_2,
\Theta=\left(\begin{smallmatrix}2&3\\1&1\end{smallmatrix}\right) and
T=\left(\begin{smallmatrix}0.9&0.1\\0.1&0.9\end{smallmatrix}\right) the
basis is perfectly separable and column-normalized, yet XT\ge0,
T^{-1}\Theta\ge0, the product is unchanged and T is no
permutation. Read the entries of G_d as descriptive and the invariants
as inferential; see nmfkc.ar.latent.inference.
Oscillation. A complex pair means a cycle, but a negative
real root also oscillates — it alternates in sign each period, i.e. with
period 2. cycle.period covers the first case and alternating
the second; non.oscillatory is TRUE only when neither occurs.
Positive real roots rule out oscillation but not overshoot: a
non-normal G can send a coordinate up before it comes down, which is
exactly what the off-diagonal impulse responses of the Canada fit do. Note
also that for Q=2, D=1 and G\ge0 the roots are real by
construction (the discriminant is (a-d)^2+4bc\ge0), so in that setting
the absence of a cycle is a property of the design, not a finding.
An object of class "nmfkc.ar.latent": a list with
G |
List of |
G.sum |
|
eigenvalues |
The |
spectral.radius |
|
spectral.radius.sum |
|
stationary |
Logical; |
cycle.period |
Period |
alternating |
|
non.oscillatory |
|
theta0 |
Latent intercept |
mu.b, mu.y |
Long-run means |
p.star |
Composition of the long-run mean,
|
colsum |
Column sums |
colsum.max |
|
df |
Effective dimension |
separability |
Per-basis maximum of the row-normalised |
X, Theta |
The basis and the full coefficient matrix the quantities
above were computed from, carried along so that
|
X.restriction |
The constraint |
dims |
Named vector of |
Satoh, K. (2025). Applying non-negative matrix factorization with covariates to multivariate time series data as a vector autoregression model. Japanese Journal of Statistics and Data Science. arXiv:2501.17446. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1007/s42081-025-00314-0")}
plot.nmfkc.ar.latent,
nmfkc.ar.latent.inference,
nmfkc.ar.stationarity, nmfkc.ar,
nmfkc.ar.DOT
d <- AirPassengers
ar_data <- nmfkc.ar(d, degree = 2)
result <- nmfkc(ar_data$Y, ar_data$A, rank = 1)
lat <- nmfkc.ar.latent(result)
lat$G$lag1 # latent transition matrix of lag 1
lat$eigenvalues # all roots of the model
lat # full report
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.