1.定义
MAD(Median absolute deviation, 中位数绝对偏差)是单变量数据集中样本差异性的稳健度量。mad是一个健壮的统计量,对于数据集中异常值的处理比标准差更具有弹性,可以大大减少异常值对于数据集的影响。
对于单变量集
X={X1,X2,X3,...,Xn}
,MAD的计算公式为:
MAD(X)=median(|Xi−median(X)|)
2.示例代码
double vector_stdv_mad( vector<double> residues)
{
if( residues.size() != 0 )
{
// Return the standard deviation of vector with MAD estimation
int n_samples = residues.size();
sort( residues.begin(),residues.end() );
double median = residues[ n_samples/2 ];
for( int i = 0; i < n_samples; i++)
residues[i] = fabsf( residues[i] - median );
sort( residues.begin(),residues.end() );
double MAD = residues[ n_samples/2 ];
return MAD;
}
else
return 0.0;
}