confidenceInterval95 function

(double, double) confidenceInterval95(
  1. List<num> values, {
  2. double z = 1.96,
})

Approximate 95% CI for mean: (lower, upper). values sample, z e.g. 1.96 for 95%.

Implementation

(double lower, double upper) confidenceInterval95(List<num> values, {double z = 1.96}) {
  if (values.length < 2) return (double.nan, double.nan);
  final double mean = values.fold<double>(0, (s, x) => s + x.toDouble()) / values.length;
  final double variance =
      values.fold<double>(0, (s, x) {
        final d = x.toDouble() - mean;
        return s + pow(d, 2).toDouble();
      }) /
      (values.length - 1);
  final double se = sqrt(variance / values.length);
  return (mean - z * se, mean + z * se);
}