检查数据绘图时,您可能会发现某些点似乎从其他数据中略有不同。在某些情况下,考虑这些点是合理的异常值或似乎与其余数据不一致的数据值。
以下示例说明了如何从24×3矩阵中的三个数据集中删除异常值数数
。在这种情况下,异常值被定义为远离平均值的三个标准偏差的值。
警告
除非您相信您了解您想要纠正的问题的来源,否则对更改数据持谨慎态度。删除异常值对标准偏差的效果大于数据的平均值。删除一个这样的点导致较小的新标准偏差,这可能导致一些剩余点似乎是异常值!
%导入示例数据加载count.dat;%计算矩阵mu =均值(count)sigma = std(count)中每个数据列的平均值和标准偏差%
命令窗口显示
Mu = 32.0000 46.5417 65.5833 Sigma = 25.3703 41.4057 68.0281
当AN.异常值被认为是超过三个标准偏差远离平均值,使用以下语法来确定每列中的异常值的数量数数
矩阵:
[n,p] =大小(计数);%通过%复制MU向量为n行的%创建平均值的矩阵意味着mu = repmat(mu,n,1);%通过%复制n rows sigmamat = Repmat(Sigma,N,1)的ΣVep%的标准偏差值矩阵。%创建零矩阵,其中表示异常值异常值= abs(count - meanmat)> 3 * sigmamat;%计算每列Nout = sum(异常值)中的异常值的数量
该过程返回每列中的以下异常值:
nout = 1 0 0
第一个数据列中有一个异常值数数
而不是另外两列。
删除包含异常值的整行数据,类型
数(任何(异常值,2),:) = [];
这里,任何(异常值,2)
返回A.1
当任何元素中异常值
矢量是非零。争论2
指定任何
沿着计数矩阵的第二个维度 - 它的列。