def median_absolute_deviation(data, subject_median=None, axis=0):
"""
Returns the median absolute deviation (MAD) for the given data.
:param data: A DataFrame holding the data to calculate the MAD from.
:param subject_median: If given, these will be used as the medians which the deviation is calculated from. If None
The median of the given data is used.
:param axis: The axis to calculate over.
:return: A Series object with the median absolute deviations over the given *axis* for the *data*.
"""
"""A robust estimate of the standard deviation"""
# The scaling factor for estimating the standard deviation from the MAD
c = scipy.stats.norm.ppf(3 / 4)
if isinstance(data, pd.DataFrame):
if subject_median is None:
subject_median = data.median(axis=axis)
median_residuals = data - subject_median
mad = median_residuals.abs().median(axis=axis)
else:
if subject_median is None:
subject_median = np.median(data, axis=axis)
median_residuals = data - subject_median[:, np.newaxis] # deviation between median and data
mad = np.median(np.abs(median_residuals), axis=axis)
return mad / c
basic_segment_statistics.py 文件源码
python
阅读 22
收藏 0
点赞 0
评论 0
评论列表
文章目录