Cho mảng số. Nhiệm vụ: tính Mean Absolute Deviation (MAD).
Các bước
- Tính Mean (trung bình).
- Tính độ lệch tuyệt đối của mỗi phần tử: |xᵢ - mean|.
- Tính trung bình của các độ lệch đó.
Công thức:
$$MAD = \frac{1}{n} \sum_{i=1}^n |x_i - \bar{x}|$$
Ví dụ 1
Input – arr[] = {34, 21, 56, 76, 45, 11}
Output – MAD = 18.5
Ví dụ 2
Input – arr[] = {10, 15, 15, 17, 18, 21}
Output – MAD = 2.666...
Ví dụ code
#include <bits/stdc++.h>
using namespace std;
double mean(const vector<double>& arr) {
double sum = 0;
for (double x : arr) sum += x;
return sum / arr.size();
}
double meanAbsoluteDeviation(const vector<double>& arr) {
double m = mean(arr);
double sum = 0;
for (double x : arr) sum += abs(x - m);
return sum / arr.size();
}
int main() {
vector<double> arr = {34, 21, 56, 76, 45, 11};
cout << "Mean Absolute Deviation: " << meanAbsoluteDeviation(arr) << endl;
return 0;
}
Kết quả
Mean Absolute Deviation: 18.5
Ý nghĩa: MAD đo lường độ phân tán dữ liệu quanh trung bình. Khác với Standard Deviation (dùng bình phương), MAD dùng giá trị tuyệt đối, ít nhạy cảm với outlier hơn.