几个统计学函数

计算标准差函数

点击查看代码
public static double Mean(this List<double> values) {
            return values.Count == 0 ? 0 : values.Mean(0, values.Count);
        }

        public static double Mean(this List<double> values, int start, int end) {
            double s = 0;

            for (int i = start; i < end; i++) {
                s += values[i];
            }

            return s / (end - start);
        }

计算方差

点击查看代码
public static double Variance(this List<double> values) {
            return values.Variance(values.Mean(), 0, values.Count);
        }

        public static double Variance(this List<double> values, double mean) {
            return values.Variance(mean, 0, values.Count);
        }

        public static double Variance(this List<double> values, double mean, int start, int end) {
            double variance = 0;

            for (int i = start; i < end; i++) {
                variance += Math.Pow((values[i] - mean), 2);
            }

            int n = end - start;
            if (start > 0) n -= 1;

            return variance / (n);
        }

计算标准差

点击查看代码
public static double StandardDeviation(this List<double> values) {
            return values.Count == 0 ? 0 : values.StandardDeviation(0, values.Count);
        }

        public static double StandardDeviation(this List<double> values, int start, int end) {
            double mean = values.Mean(start, end);
            double variance = values.Variance(mean, start, end);

            return Math.Sqrt(variance);
        }

posted @ 2021-10-31 16:07  忍者叮叮叮  阅读(29)  评论(0编辑  收藏  举报