Построение функции тренда в Excel. Быстрый прогноз без учета сезонности
Глядя на любой набор данных распределенных во времени (динамический ряд), мы можем визуально определить падения и подъемы показателей, которые он содержит. Закономерность подъемов и падений называется трендом, который может говорить о том, увеличиваются или уменьшаются наши данные.
Пожалуй, цикл статей о прогнозировании я начну с самого простого — построении функции тренда. Для примера возьмем данные о продажах и построим модель, которая опишет зависимость продаж от времени.
Базовые понятия
Думаю, еще со школы все знакомы с линейной функцией, она как раз и лежит в основе тренда:
Y — это объем продаж, та переменная, которую мы будем объяснять временем и от которого она зависит, то есть Y(t);
t — номер периода (порядковый номер месяца), который объясняет план продаж Y;
a0 — это нулевой коэффициент регрессии, который показывает значение Y(t), при отсутствии влияния объясняющего фактора (t=0);
a1 — коэффициент регрессии, который показывает, на сколько исследуемый показатель продаж Y зависит от влияющего фактора t;
E — случайные возмущения, которые отражают влияния других неучтенных в модели факторов, кроме времени t.
Построение модели
Итак, мы знаем объем продаж за прошедшие 9 месяцев. Вот, что из себя представляет наша табличка:
Следующее, что мы должны сделать — это определить коэффициенты a0 и a1 для прогнозирования объема продаж за 10-ый месяц.
Определение коэффициентов модели
Строим график. По горизонтали видим отложенные месяцы, по вертикали объем продаж:
В Google Sheets выбираем Редактор диаграмм -> Дополнительные и ставим галочку возле Линии тренда. В настройках выбираем Ярлык — Уравнение и Показать R^2.
Если вы делаете все в MS Excel, то правой кнопкой мыши кликаем на график и в выпадающем меню выбираем «Добавить линию тренда».
По умолчанию строится линейная функция. Справа выбираем «Показывать уравнение на диаграмме» и «Величину достоверности аппроксимации R^2».
Вот, что получилось:
На графике мы видим уравнение функции:
y = 4856*x + 105104
Она описывает объем продаж в зависимости от номера месяца, на который мы хотим эти продажи спрогнозировать. Рядом видим коэффициент детерминации R^2, который говорит о качестве модели и на сколько хорошо она описывает наши продажи (Y). Чем ближе к 1, тем лучше.
У меня R^2 = 0,75. Это средний показатель, он говорит о том, что в модели не учтены какие-то другие значимые факторы помимо времени t, например, это может быть сезонность.
Прогнозируем
Чтобы рассчитать продажи за 10-ый месяц, подставляем в функцию тренда 10 вместо x. То есть,
y = 4856*10 + 105104
Получаем 153664 продажи в следующем месяце. Если добавим новую точку на график, то сразу видим, что R^2 улучшился.
Таким образом вы можете спрогнозировать данные на несколько месяцев вперед, но без учета других факторов ваш прогноз будет лежать на линии тренда и будет не таким информативным как хотелось бы. К тому же, долгосрочный прогноз, сделанный таким способом будет очень приблизительным.
Повысить точность модели можно добавлением сезонности к функции тренда, что мы и сделаем в следующей статье.
ТЕНДЕНЦИЯ (функция ТЕНДЕНЦИЯ)
Функция TREND возвращает значения по линейному тренду. Он соответствует прямой линии (с использованием метода наименьшего квадрата) к known_y массива и known_x в. TREND возвращает y-значения вдоль этой строки для массива new_x что вы указываете.
Примечание: Если у вас есть текущая версия Microsoft 365, то вы можете ввести формулу в верхнем левом диапазоне выходных данных (ячейка E16 в этом примере), а затем нажмите ENTER, чтобы подтвердить формулу в качестве динамической формулы массива. В противном случае формула должна быть введена в качестве устаревшей формулы массива, сначала выбрав диапазон выходных данных (E16:E20), введите формулу в верхнем левом элементе выходного диапазона (E16), а затем нажмите CTRL-SHIFT-ENTER, чтобы подтвердить это. Excel автоматически вставляет фигурные скобки в начале и конце формулы. Дополнительные сведения о формулах массива см. в статье Использование формул массива: рекомендации и примеры.
«TREND (known_y,«known_x’s», «new_x»,« «конст»)
Аргументы функции ТЕНДЕНЦИЯ описаны ниже.
Набор y-значений, которые вы уже знаете в отношениях y и mx b
Если массив "известные_значения_y" содержит один столбец, каждый столбец массива "известные_значения_x" интерпретируется как отдельная переменная.
Если массив "известные_значения_y" содержит одну строку, каждая строка массива "известные_значения_x" интерпретируется как отдельная переменная.
Дополнительный набор x-значений, которые вы, возможно, уже знаете в отношениях y и mx b
Массив известные_значения_x может включать одно или более множеств переменных. Если используется только одна переменная, то аргументы "известные_значения_y" и "известные_значения_x" могут быть диапазонами любой формы при условии, что они имеют одинаковую размерность. Если используется более одной переменной, то аргумент "известные_значения_y" должен быть вектором (то есть диапазоном высотой в одну строку или шириной в один столбец).
Если аргумент "известные_значения_x" опущен, то предполагается, что это массив <1;2;3;. >того же размера, что и "известные_значения_y".
Новые x-значения, для которых вы хотите, чтобы TREND вернул соответствующие по-значения
Аргумент "новые_значения_x", так же как и аргумент "известные_значения_x", должен содержать по одному столбцу (или строке) для каждой независимой переменной. Таким образом, если "известные_значения_y" — это один столбец, то "известные_значения_x" и "новые_значения_x" должны иметь одинаковое количество столбцов. Если "известные_значения_y" — это одна строка, то аргументы "известные_значения_x" и "новые_значения_x" должны иметь одинаковое количество строк.
Если аргумент "новые_значения_x" опущен, то предполагается, что он совпадает с аргументом "известные_значения_x".
Если опущены оба аргумента — "известные_значения_x" и "новые_значения_x", — то предполагается, что это массивы <1;2;3;. >того же размера, что и "известные_значения_y".
Логическое значение, определяющее, следует ли принудать константе b равной 0
Если аргумент "конст" имеет значение ИСТИНА или опущен, то b вычисляется обычным образом.
Если аргумент "конст" имеет значение ЛОЖЬ, то b полагается равным 0 и значения m подбираются таким образом, чтобы выполнялось условие y = mx.
Для получения информации о том Microsoft Excel соответствует строке данных, см.
Функцию ТЕНДЕНЦИЯ можно использовать для аппроксимации полиномиальной кривой, проводя регрессионный анализ для той же переменной, возведенной в различные степени. Например, пусть столбец A содержит значения y, а столбец B содержит значения x. Можно ввести значение x^2 в столбец C, x^3 в столбец D и т. д., а затем провести регрессионный анализ столбцов от B до D со столбцом A.
Формулы, которые возвращают массивы должны быть введены в качестве массива формулы с Ctrl’Shift-Enter, если у вас есть текущая версия Microsoft 365, и тогда вы можете просто нажать Введите.
При вводе константы массива для аргумента (например, "известные_значения_x") следует использовать точки с запятой для разделения значений в одной строке и двоеточия для разделения строк.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.