📜  统计-算术中位数(1)

📅  最后修改于: 2023-12-03 15:27:37.012000             🧑  作者: Mango

统计-算术中位数

介绍

算术中位数是给定一组数值中间的值。具体来说,它是这组数据中所有数值排列后在正中间的值,如果数据为偶数个,那么算术中位数是中间两个数的平均值。

在统计学中,算术中位数常常用作比平均数更为稳健和鲁棒的统计指标,特别是当存在异常值时。

实现

计算一个数值序列的算术中位数通常采用以下步骤:

  1. 将序列中的数值按照升序排序。

  2. 如果序列中的数值个数是奇数,算术中位数是序列中间的那个数;如果是偶数,算术中位数是中间两个数的平均值。

实现这个算法的代码片段如下:

def median(nums):
    sorted_nums = sorted(nums)
    n = len(sorted_nums)
    if n % 2 == 0:
        # 如果序列长度为偶数
        mid = n // 2
        return (sorted_nums[mid - 1] + sorted_nums[mid]) / 2
    else:
        # 如果序列长度为奇数
        mid = n // 2
        return sorted_nums[mid]

这个函数接受一个列表 nums,返回它的算术中位数。首先将 nums 排序,然后判断序列长度是奇数还是偶数,再分别计算出中位数。这个算法的时间复杂度是 $O(n \log n)$,因为排序需要这么长时间。

示例

以下是使用示例:

>>> nums = [1, 2, 3, 4, 5]
>>> median(nums)
3

>>> nums = [1, 2, 3, 4, 5, 6]
>>> median(nums)
3.5

>>> nums = [4, 1, 3, 2, 5]
>>> median(nums)
3
总结

算术中位数是一种用于描述一组数据的集中趋势的统计指标。它比平均数更为稳健和鲁棒,因为它受异常值的影响较小。在实现计算算术中位数的算法时,需要先将数据排序,再根据序列长度的奇偶性计算出中位数。