jarqueBera function
Implementation
JBResult jarqueBera(List<double> resid) {
final n = resid.length;
final m = mean(resid);
var s2 = 0.0;
for (final v in resid) {
final d = v - m;
s2 += d * d;
}
s2 /= n;
var m3 = 0.0, m4 = 0.0;
for (final v in resid) {
final z = v - m;
m3 += z * z * z;
m4 += z * z * z * z;
}
m3 /= n;
m4 /= n;
final skew = m3 / math.pow(s2, 1.5);
final kurt = m4 / (s2 * s2);
final JB = n / 6.0 * (skew * skew + 0.25 * (kurt - 3) * (kurt - 3));
final p = chiSquareSF(JB, 2);
return JBResult(JB, p);
}