题目

编写程序,对一组包含偏态极值(离群点)的测试数据集,分别计算均值(mean)、中位数(median)、无偏样本方差(var)、标准差(std)及四分位数(prctile),对比均值与中位数对离群点的鲁棒性差异。

输入格式:无需外部输入。

输出格式:输出各项描述性统计指标值。

数据范围与约定:描述性统计。

思路与算法

1. 中位数 median 的抗干扰性
当数据中混入极端异常值(如 9999)时,均值会被严重拉高,而中位数几乎不受影响,是稳健统计(Robust Statistics)的基石。

2. 方差 var 与标准差 std
默认分母除以 $N-1$ 做无偏修正;若需要除以总体容量 $N$,传第二个参数 var(x, 1)。

3. 分位数
四分位数将有序数据分为四等份,是绘制箱线图(Boxplot)的数据来源。

完整程序

% Octave / MATLAB 第89题:样本统计量与抗噪性
% 包含一个极端离群点 1000 的数据集
data = [12, 14, 15, 15, 16, 18, 19, 1000];

m_mean = mean(data);
m_med  = median(data);
m_var  = var(data);
m_std  = std(data);

fprintf("样本数据: %s\n", mat2str(data));
fprintf("样本均值 mean:   %.2f (受 1000 极端值影响严重失真)\n", m_mean);
fprintf("样本中位数 median: %.2f (不受离群点干扰,反映中心位置)\n", m_med);
fprintf("样本方差 var:    %.2f\n", m_var);
fprintf("样本标准差 std:   %.2f\n", m_std);

运行示例

输出:

样本数据: [12 14 15 15 16 18 19 1000]
样本均值 mean:   138.62 (受 1000 极端值影响严重失真)
样本中位数 median: 15.50 (不受离群点干扰,反映中心位置)
样本方差 var:    121142.27
样本标准差 std:   348.05