armaResiduals function

List<double> armaResiduals(
  1. List<double> y,
  2. List<double> ar,
  3. List<double> ma,
  4. double mu,
)

============================== Basit ARMA CSS residual & loss

Implementation

List<double> armaResiduals(
    List<double> y, List<double> ar, List<double> ma, double mu) {
  final p = ar.length, q = ma.length, n = y.length;
  final resid = List<double>.filled(n, 0.0);
  for (int t = 0; t < n; t++) {
    double arPart = 0.0, maPart = 0.0;
    for (int i = 1; i <= p; i++) {
      final idx = t - i;
      if (idx >= 0) arPart += ar[i - 1] * (y[idx] - mu);
    }
    for (int j = 1; j <= q; j++) {
      final idx = t - j;
      if (idx >= 0) maPart += ma[j - 1] * resid[idx];
    }
    resid[t] = (y[t] - mu) - arPart - maPart;
  }
  return resid;
}