ABCD является разновидностью ABC-анализа. Отличительная чертой данного вида анализа является наличие дополнительного сегмента D с самыми минимальными значениями.
Решение для ABCD-анализа
Первых 2 шага решения аналогичны ABC-анализу.
Шаг 3
В отличии от ABC-анализа на этом шаге нужно присвоить каждому значению одну из четырех категорий. К категории A следует отнести значения с долей с нарастающим итогом до 0,5 или 50%. К категории B отнести значения с долей нарастающим итогом до 0,75 или 75%. Значения менее 0,95 или 95% — это категория C. Оставшиеся значения следует отнести к категории D.
Решение в Excel
//D3... D9
=ЕСЛИ(D3<0,5;"A";ЕСЛИ(D3<0,75;"B";ЕСЛИ(D3<0,95;"C";"D")))
Результат:
A | B | C | D | E | |
1 | Переменная | Значение | Доля | Нараст. итогом | ABCD |
2 | Всего | 308 | |||
3 | G7 | 77 | 0,25 | 0,25 | A |
4 | F6 | 66 | 0,2143 | 0,4643 | A |
5 | E5 | 55 | 0,1786 | 0,6429 | B |
6 | D4 | 44 | 0,1429 | 0,7858 | C |
7 | C3 | 33 | 0,1071 | 0,8929 | C |
8 | B2 | 22 | 0,0714 | 0,9643 | D |
9 | A1 | 11 | 0,0357 | 1 | D |
Пример ABCD-анализа в файле Excel.
Решение в PostgreSQL
WITH abcd_step_1 AS (SELECT *,
CAST(value AS FLOAT) / SUM(value) OVER () AS fraction
FROM abcd),
abcd_step_2 AS (SELECT *,
COALESCE(SUM(fraction) OVER (ORDER BY fraction
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW),
0) AS cumulative
FROM abcd_step_1
ORDER BY value DESC)
SELECT *,
CASE
WHEN cumulative < .5 THEN 'A'
WHEN cumulative < .75 THEN 'B'
WHEN cumulative < .95 THEN 'C'
ELSE 'D'
END AS abcd
FROM abcd_step_2;
Результат:
variable | value | fraction | cumulative | abcd | |
0 | G7 | 77 | 0.25 | 0.25 | A |
1 | F6 | 66 | 0.2143 | 0.4643 | A |
2 | E5 | 55 | 0.1786 | 0.6429 | B |
3 | D4 | 44 | 0.1429 | 0.7858 | C |
4 | C3 | 33 | 0.1071 | 0.8929 | C |
5 | B2 | 22 | 0.0714 | 0.9643 | D |
6 | A1 | 11 | 0.0357 | 1 | D |