Применение регрессии для временного ряда
Есть датасет, по строкам даны показатели, по столбцам - численные данные за 2015, 2020, 2025, 2030. Т.е каждая строка - это временной ряд. Задача сделать прогноз на 2035 год для каждой строки. Датасет.
Я делал это так:
forecast_2035 = [] #добавил пустой лист для прогнозированных данных
Затем проходился по каждой строке используя функцию iterrows():
for idx, row in df.iterrows():
# Подготовка данных для обучения модели линейной регрессии
X = df.columns[0:].values.reshape(-1, 1) # Входные данные: значения временного ряда
y = row[0:].values.reshape(-1, 1) # Выходные данные: фактические значения
# Обучение модели линейной регрессии
reg = LinearRegression().fit(X, y)
# Прогнозирование значения для 2035 года
forecast_2035.append(reg.predict([[2035]])[0][0])
И добавил в конец исходного датасета, создав столбец 2035:
df['2035_regression'] = forecast_2035
Судя по полученным данным, все более менее норм.
Вопрос:
1) Можно было бы сделать по другому, т.е пройтись по каждой строке и сделать прогноз, помимо функции iterrows?
2) Как бы вы решали эту задачу? Какие еще мотеды можно использовать?