Детерминированный факторный анализ - это метод исследования влияния факторов на результативный показатель.  Предполагается, что связь факторов с результативным показателем носит функциональный характер, которая  выражена математической формулой. Например, выручку логистической компании можно представить так: Это мультипликативный вариант модели. Мы хотим проследить изменение выручки за период: за счет чего изменилась выручка в рублях в отчетном месяце по отношению к предыдущему.  В отчетном месяце: выручка - 250 руб, [𝑥1] цена - 50 руб/шт, [𝑦1] объем - 5 шт; в предыдущем месяце: выручка - 120 руб, [𝑥0] цена - 40 руб/шт, [𝑦0] объем - 3 шт. Выручка увеличилась на 130 рублей за счет увеличение цены на 10 руб/шт (+25%) и увеличение объема на 2 шт (+66%). Влияние этих изменений на выручку можно посчитать следующим образом: Влияние цены: разница цены, умноженная на текущий объем = (50 - 40) * 5 = 50 руб.Влияние объема  = 130 - 50 = 80 руб.Или посчитаем сначала изменение объема, Влияние объема: разница объема, умноженная на текущую цену = (5 - 3) * 50 = 100 руб.Влияние цены = 130 - 100 = 30 руб.Размер влияния факторов в зависимости от порядка расчета отличается, поэтому этот метод называется цепным (первый вариант - индекс Пааше, второй - Ласпейреса). Проблему дисбаланса легче проследить на экстремальных задачах:Например, цена и объем изменились симметрично:Цена: 10 руб/шт +10% >> 11 руб/шт.Объем: 10 шт +10% >> 11 шт.Выручка: 100 руб +21% >> 121 руб.Логично предполагать, что и изменения цены и объема одинаково повлияли на размер выручки. Посчитаем цепным методом. Влияние объема: (11 - 10) * 10 = 10 руб, влияние цены = 21 - 10 = 11 руб. При одинаковом изменении цены иобъема, влияние цены на изменение выручки на 10% больше, чем влияние объема.Цена: 10 руб/шт >> 11 руб/шт.Объем: 10 шт >> 10 000 шт.Выручка: 100 руб  >> 110 000  Влияние цены: (11 - 10) * 10 000 = 10 000 руб - первым способом и (11 - 10) * 10 = 10 руб - вторым.Влияние объема: (10 000 - 10) * 10 = 99 900 руб - первым способом и (10 000 - 10) * 11  = 109 890 руб - вторым.Для цены размер влияния на выручку в рублях уже отличается на порядки.Также при добавления новых показателей в модель, все совместные эффекты влияния будут добавлятся к первому показателю, чтобы этого избежать будем использовать интегральный способ. Данное изменение можно изобразить прямоугольником: 𝑆0=𝑥0∙𝑦0, 𝑆1=(𝑥1−𝑥0)∙𝑦0, 𝑆2=𝑥0∙(𝑦1−𝑦0), 𝑆3=(𝑥1−𝑥0)∙(𝑦1−𝑦0),𝑆4=𝑆0+𝑆1+𝑆2+𝑆3=𝑥1∙𝑦1 Изменение выручки:𝑆4 - 𝑆0 = 𝑆1+𝑆2+𝑆3 Изменение выручки за счет цены:𝑆1+𝑆3/2Изменение выручки за счет объема:𝑆2+𝑆3/2 Изменение выручки: (250 - 120) = 130Изменение выручки за счет цены: (50 - 40) * 3 + [(50 - 40) * (5 - 3)]/2 = 30 + [10 * 2]/2 = 40Изменение выручки за счет объема: 40 * (5 - 3) + [(50 - 40) * (5 - 3)]/2 = 80 + [10 * 2]/2 = 90Проверим: 130 = 40 + 90 (верно). Выручка в предыдущем месяце составляла 120 руб. Уменьшение цены на 10 руб/шт увеличило выручку на 40 рублей, при этом увеличение объема на 2 шт. увеличило выручку на 90 руб. Выручка в текущем месяце – 250 руб. Для двумерного случая можно использовать данные формулы, но с увеличением размерности модели, подобрать формулы становится проблематично. Автоматизируем данный процесс. Допустим, что наша модель усложнилась и теперь: В отчетном месяце: выручка - 250 руб, [𝑥1] цена - 5 руб/кг, [𝑦1] объем - 5 шт, [𝑧1] вес - 10 кг/шт; в предыдущем месяце: выручка - 96 руб, [𝑥0] цена - 4  руб/шт, [𝑦0] объем - 3 шт [𝑧2] вес - 8 кг/шт. Так как система имеет два состояния A и B, то фигуру необходимо разбить на 2𝑛 частей, где 𝑛 – количество измерений.Так для 3 измерений необходимо 23 = 8 частей. Изменение выручки за счет цены-и-объема необходимо поделить пополам,также необходимо поделить пополам изменение выручки за счет цены-и-веса и веса-и-объема. Изменение выручки за счет цены-веса-и-объема необходимо разделить на 3 части: Составим таблицу, 𝑥 - цена, 𝑦 - вес, 𝑧 - объем: Где Δ𝑥=(𝑥1−𝑥0),Δ𝑦=(𝑦1−𝑦0), Δ𝑧=(𝑧1−𝑧0),1 – наличие Δ. Дельта (Δ) показывает за счет какого фактора происходит изменение.  Кол-во Δ в строке показывает на сколько частей необходимо делить фигуру, для этого необходимо вывести дополнительный столбец с количеством Δ (𝒌Δ). Суммы по столбцу 𝑆𝑥, 𝑆𝑦, 𝑆𝑧 – это значение влияния фактора.В итоге: A → 𝑆0+𝑆𝑥+𝑆𝑦+𝑆𝑧 = B Для нашего примера:Выручка в предыдущем месяце составляла 120 руб. Увеличение цены на 1 руб/кг увеличило выручку на 36,3 руб, при этом увеличение веса на 2 кг/шт. увеличило выручку на 36,3 руб., также увеличение объема на 2 шт. увеличило выручку на 81,3 руб. Выручка в текущем месяце – 250 руб. Теперь код: Или return в одну строку: PyPI: https://pypi.org/project/detfa/