autoSarima static method
Small-grid Auto-SARIMA (AIC/BIC minimum)
Implementation
static SarimaFit autoSarima(
List<double> series, {
int d=1, int D=1, required int s,
int pMax=2, int qMax=2, int PMax=1, int QMax=1,
bool includeMean=true, bool useBIC=false,
}
){
SarimaFit? best;
double bestScore = double.infinity;
for (int p=0; p<=pMax; p++){
for (int q=0; q<=qMax; q++){
for (int P=0; P<=PMax; P++){
for (int Q=0; Q<=QMax; Q++){
if (p==0 && q==0 && P==0 && Q==0) continue;
try {
final fit = Sarima.fit(series, SarimaOrder(p,d,q,P,D,Q,s), includeMean: includeMean);
final score = useBIC ? fit.bic : fit.aic;
if (score < bestScore) { bestScore = score; best = fit; }
} catch (_) {
// kısa seri / başarısız optim / s uyuşmazlıkları -> geç
}
}
}
}
}
best ??= Sarima.fit(series, SarimaOrder(1,d,0, 0,D,0, s), includeMean: includeMean);
return best;
}