8.4 统计特征
本节讲解常见的数值统计特征的求取方法。
8.4.1 平均值、中值
使用mean、median、nanmedian、geomean、harmmean函数可以分别求取数据的平均值、中位数、忽略NaN的中位数、几何平均数及调和平均数。这些函数的使用很简单,本书不再进行讲解,下面以示例说明。
例8-7:计算矩阵的平均值、中位数、忽略NaN的中位数、几何平均数及调和平均数示例。
在命令行窗口中输入:
A = magic(5) M1 = mean(A) M2 = median(A) M3 = nanmedian(A) M4 = geomean(A) M5 = harmmean(A)
输出结果:
A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 M1 = 13 13 13 13 13 M2 = 11 12 13 14 15 M3 = 11 12 13 14 15 M4 = 11.1462 10.9234 8.4557 9.8787 10.7349 M5 = 9.2045 9.1371 3.8098 6.2969 8.0767
8.4.2 数据比较
数据比较是指由数据比较引发的各种数据操作,常见的操作包括普通排序、按行排序和求解值域大小等,可以通过sort、sortrows和range函数实现。各个函数的使用较为简单,下面以示例说明。
例8-8:随机矩阵的普通排序、按行排序和求解值域大小示例。
在命令行窗口中输入以下命令:
A = rand(5) Y1 = sort(A) Y2 = sortrows(A) Y3 = range(A)
输出结果:
A = 0.1806 0.3839 0.7458 0.5301 0.8044 0.0451 0.6273 0.8131 0.2751 0.9861 0.7232 0.0216 0.3833 0.2486 0.0300 0.3474 0.9106 0.6173 0.4516 0.5357 0.6606 0.8006 0.5755 0.2277 0.0871 Y1 = 0.0451 0.0216 0.3833 0.2277 0.0300 0.1806 0.3839 0.5755 0.2486 0.0871 0.3474 0.6273 0.6173 0.2751 0.5357 0.6606 0.8006 0.7458 0.4516 0.8044 0.7232 0.9106 0.8131 0.5301 0.9861 Y2 = 0.0451 0.6273 0.8131 0.2751 0.9861 0.1806 0.3839 0.7458 0.5301 0.8044 0.3474 0.9106 0.6173 0.4516 0.5357 0.6606 0.8006 0.5755 0.2277 0.0871 0.7232 0.0216 0.3833 0.2486 0.0300 Y3 = 0.6781 0.8889 0.4298 0.3023 0.9561
8.4.3 期望
期望即平均值,其计算方式见8.4.1节。
8.4.4 方差和标准差
MATLAB使用var和std函数分别计算方差和标准差,还可以使用skewness函数求解三阶统计量斜度。下面以示例说明这3个函数的使用方法。
例8-9:求解随机数矩阵的方差、标准差和斜度示例。
在命令行窗口中输入:
X = randn(2, 8) DX = var(X') DX1 = var(X', 1) S = std(X', 1) S1 = std(X') SK = skewness(X') SK1 = skewness(X', 1)
输出结果:
X = 1.3025 -1.6625 -1.0847 1.0989 2.2957 0.1383 -0.3650 -0.7648 1.4099 1.9437 0.2268 0.1472 2.7526 -1.9071 -0.8481 -1.1277 DX = 1.8196 2.6000 DX1 = 1.5922 2.2750 S = 1.2618 1.5083 S1 = 1.3489 1.6125 SK = 0.2911 0.1470 SK1 = 0.2911 0.1470
8.4.5 协方差与相关系数
MATLAB使用cov和corrcoef函数分别计算数据的协方差和相关系数。
例8-10:计算数据的协方差和相关系数示例。
在命令行窗口中输入:
x = ones(1, 5) r = rand(5, 1) X = ones(5) A = magic(5) C1 = cov(x) C2 = cov(r) C3 = cov(x, r) C4 = cov(X) C5 = cov(A) C6 = corrcoef(x, r) C7 = corrcoef(X, A) C8 = corrcoef(A)
输出结果:
x = 1 1 1 1 1 r = 0.6164 0.9397 0.3545 0.4106 0.9843 X = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 C1 = 0 C2 = 0.0852 C3 = 0 0 0 0.0852 C4 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C5 = 52.5000 5.0000 -37.5000 -18.7500 -1.2500 5.0000 65.0000 -7.5000 -43.7500 -18.7500 -37.5000 -7.5000 90.0000 -7.5000 -37.5000 -18.7500 -43.7500 -7.5000 65.0000 5.0000 -1.2500 -18.7500 -37.5000 5.0000 52.5000 C6 = NaN NaN NaN 1 C7 = NaN NaN NaN 1 C8 = 1.0000 0.0856 -0.5455 -0.3210 -0.0238 0.0856 1.0000 -0.0981 -0.6731 -0.3210 -0.5455 -0.0981 1.0000 -0.0981 -0.5455 -0.3210 -0.6731 -0.0981 1.0000 0.0856 -0.0238 -0.3210 -0.5455 0.0856 1.0000