Calculating Median Absolute Deviation in C#
我需要对一个数字集执行许多统计计算,而我需要计算的一件事是中位数绝对偏差。我提供了一个ISO标准,它告诉我的是
我不知道该如何处理该信息,因为我没有进行任何统计数学培训。因此,我无法将以上内容转换为C#函数。
中位数是已排序数组的中间元素(如果数组有偶数项,则为两个中间项的平均值):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | double[] source = new double[] { 1, 2, 3, 4, 5 }; Array.Sort(source); double med = source.Length % 2 == 0 ? (source[source.Length / 2 - 1] + source[source.Length / 2]) / 2.0 : source[source.Length / 2]; double[] d = source .Select(x => Math.Abs(x - med)) .OrderBy(x => x) .ToArray(); double MADe = 1.483 * (d.Length % 2 == 0 ? (d[d.Length / 2 - 1] + d[d.Length / 2]) / 2.0 : d[d.Length / 2]); |
如何编程一个函数,该函数将计算中位数,您将在这里找到
然后您的函数应如下所示:
1 2 3 4 5 6 7 8 |
进行简单的步骤:
1.查找
2.用中位数构建绝对差的数组
3.查找
4.计算MADe