Правильная обработка еженедельного шаблона в моделировании TimeSeries PythonPython

Программы на Python
Anonymous
Правильная обработка еженедельного шаблона в моделировании TimeSeries Python

Сообщение Anonymous »

В настоящее время я работаю над моделированием данных TimeSeries с использованием библиотеки Python и darts. В качестве примера рассмотрим модель TiDE (но я к ней никак не привязан). Важно то, что мои данные имеют определенный недельный график. Значение меняется с понедельника по пятницу и остается постоянным в выходные дни. Я загружаю свои данные из файла, но вы можете использовать любой тип данных, соответствующий этому еженедельному шаблону. Более простой пример — цены на акции, поскольку большинство фондовых бирж работают по еженедельному графику:

Код: Выделить всё

series = TimeSeries.from_dataframe(df_single, "Date", varName)
days = pd.date_range(start=df_single["Date"][0], periods=len(df_single), freq='D')

# Create a binary covariate: 0 for weekdays, 1 for weekends
weekend_covariate = [1 if day.weekday() in [5, 6] else 0 for day in days]
extended_covariate = TimeSeries.from_times_and_values(days, weekend_covariate)

# Split data into training and validation sets
train_series = series[:-14]  # Train on all but the last 14 days
val_series = series[-14:]  # Validate on the last 14 days
covariates_train = extended_covariate[:-14]
covariates_val = extended_covariate  # Covariates must cover both past and future

# Define TFTModel (supports future covariates)
model = TiDEModel(
input_chunk_length=92,  # Number of past days to look at
output_chunk_length=14,  # Forecast horizon
n_epochs=50,
random_state=42
)

# Fit the model on training data and future covariates
model.fit(series=train_series, future_covariates=covariates_train)

# Make predictions
prediction = model.predict(n=14, future_covariates=covariates_val)
Я ожидал, что двоичная ковариата, дающая 1 для выходных и 0 для рабочего дня, поможет модели распознать закономерность. Но кажется, что это не имеет значения, он все еще не может распознать корреляцию и имеет тенденцию изменять значение смоделированных данных по выходным. См. график ниже, на котором сравниваются реальные данные с прогнозом модели. Я отметил выходные в охватывающем диапазоне:
Изображение

Итак, мой вопрос: как правильно добавить ограничения в модель, чтобы правильно распознавать выходные дни?

Подробнее здесь: https://stackoverflow.com/questions/790 ... s-modeling

Вернуться в «Python»