Применение регрессии для временного ряда

Есть датасет, по строкам даны показатели, по столбцам - численные данные за 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) Как бы вы решали эту задачу? Какие еще мотеды можно использовать?


Ответы (0 шт):