% robustly estimate sigma from residuals squared s = sugr_estimate_robust_scale_from_residuals(r,d) r = vector of absolute residuals assumtption: at least 10 % inliers chi^2_d distributed d = degrees of freedom of residuals s = robust sigma estimate see adaptive least Kth-order squares estimator by Lee et al. (1998) adapted to magnitude of multi-dimensional residuals Wolfgang Förstner 2/2012 wfoerstn@uni-bonn.de
0001 %% robustly estimate sigma from residuals squared 0002 % 0003 % s = sugr_estimate_robust_scale_from_residuals(r,d) 0004 % 0005 % r = vector of absolute residuals 0006 % assumtption: at least 10 % inliers chi^2_d distributed 0007 % d = degrees of freedom of residuals 0008 % s = robust sigma estimate 0009 % 0010 % see adaptive least Kth-order squares estimator by Lee et al. (1998) 0011 % adapted to magnitude of multi-dimensional residuals 0012 % 0013 % Wolfgang Förstner 2/2012 0014 % wfoerstn@uni-bonn.de 0015 0016 function s0 = sugr_estimate_robust_scale_from_residuals(r,d) 0017 0018 N = length(r); % # data 0019 p = 0.1; % minimum percentage of inliers 0020 0021 s0 = kth_element(r,N,p*N)/icdf('chi2',p,d); % initial estimate 0022 0023 % b = 1.06*s0/N^(1/5); % bandwidth 0024 0025