kurtosis function

double? kurtosis(
  1. List<double> data
)

Computes the kurtosis of a distribution.

Implementation

double? kurtosis(List<double> data) {
  if (data.length < 4) return null;

  final n = data.length;

  double sum = 0;
  for (final x in data) {
    sum += x;
  }
  final mean = sum / n;

  double m2 = 0, m4 = 0;
  for (final x in data) {
    final d = x - mean;
    final d2 = d * d;
    m2 += d2;
    m4 += d2 * d2;
  }
  m2 /= n;
  m4 /= n;

  if (m2 == 0) return null;

  return m4 / (m2 * m2) - 3; // Excess kurtosis
}