Для заданного y найти значения x

Рейтинг: 0Ответов: 1Опубликовано: 08.02.2023

Помогите, пожалуйста, найти подход к решению следующей задачи:

Пусть есть матрица X = (x1,…,xn), состоящая из временных рядов xi и вектор y. Суть задачи в том, чтобы научиться косвенно управлять парамeтром y с помощью изменения параметров xi-x.

  1. Для предсказания значений из y натренируем какую-л. модель, для интерпретируемости возьмем линейную регрессию. Получим y = f(X).
  2. Нужно для любого произвольного значения y_0 найти Х_0, при котором достигается это значение.

Первая мысль была перебирать значения для X, вторая мысль взять коэф. лин рег-ии и решить систему уравнений, получив искомый x_0. Но в общем, как я понимаю, нужно решить уравнение F(X) - y_0 = 0, но никак не могу подступиться к решению. Подскажите, какие существуют способы решения такого рода задач? Возможно здесь имеет место применение какого-л. метода из пакета scipy.optimize, просветите меня, пожалуйста.

Прилагаю пример имеющихся данных.

d = pd.DataFrame({'x1': [70, 75, 80, 65, 60, 55, 105, 55], 'x2': [85.2, 92.9, 91.0, 85.8, 78.0, 80.0, 75.0, 124.0],
                  'x3': [113, 114, 139, 97, 107, 122, 60, 72], 'x4': [39, 62, 72, 17, 14, 21, 12, 35],
                  'y': [136, 105, 108, 98, 68, 93, 91, 115]})
d.index.name = 'time'

Ответы

▲ 2

Давайте подумаем. Если вы говорите о временном ряде и о предсказании значения, то это означает, что на исторических данных вы строите модель - любую, линейную, нелинейную регрессии, ARIMA, Хольта-Винтерса и пр. а потом продолжаете эту модель на будущие периоды. Это и есть ваше предсказание. В такой постановке "для любого произвольного значения y_0 найти Х_0, при котором достигается это значение" означает, что такое Х может быть только в "будущем". Имея модель, и подставляя в нее последовательно "будущие" значения тиков времени вы соответственно и делаете предсказания значения у. До тех пор пока не найдете либо заданное Y, либо число задвно близкое к Y, либо.... никогда не найдете такого Y, например, потому что вышли из зоны адекватности прогноза. При этом не надо "решать" уравнение, надо просто перебирать тики времени.

Вот если бы вы рассматривали не временной ряд, а обычную регрессионную модель, не зависящую от времени, вот в такой постановке под термином "предсказание" также понимают задачу нахождения значений Y при значении Х, которого не было в обучающей выборке. И тогда - получив ур-ние регрессии и ее коэффициенты - к задаче F(X) - y_0 = 0. Такие задачи относительно просто решаются хорошо известными численными методами, часто - простейшими, из вузовской программы.

Пока приал, вы там пример подкинули. Но из него не ясно, у вас временнОй ряд или "чистая" регрессия? Зависит-ли значение Y от времени или только от значений ваших x1....x2. Это невозможно статистически понять, это определяется только семантически из вашей задачи. Но если - как мне кажется - зависимости от времени как такового нет (просто последовательность замерянных в последовательные моменты времени данных - это НЕ временной ряд) - то задача сводиться к многомерной регрессии и второму из описанных выше подходов в чистом виде, с которым прекрасно умеют справляться численные методы.