facebook / facebook/prophet

[QUESTION] Specifying forecast horizon for cross validation

Open
#1,992 0 comments 0 reactions 0 assignees View on GitHub
question
Dominant language
Python
Stars
20.4k
Forks
4.6k
Avg merge
19h 52m
Merged PRs (30d)
1

Description

I have some high frequency data where I have a data point coming every 5 minutes.

Now, I am interested in obtaining performance metrics where I need to see how it performs when I predict one day, one week and one month in advance.

I am struggling to figure out how I should setup the cross validation. So, if I do something like:

```
df_cv = perform_cross_validation(initial='730 days',
period='35 days',
horizon='1 days')
```

So, if I understand correctly, I can get the performance metric for the day in advance, using something like:

`model.compute_performance_metrics(df_cv, rolling_window=1)`

as this would use all the data to compute the metric for that day.

To see how this performs one week in advance, do I need to something like:

```
df_cv = perform_cross_validation(initial='730 days',
period='35 days',
horizon='8 days')
```

and then filter out the data points for the last day and compute the performance metric on that filtered data frame and do something similar for one month in advance?

I wonder if there is a better way to do this as I am running CV 3 times. Another thing I thought about was something like:

```
df_cv = model.perform_cross_validation(initial='730 days',
period='35 days',
horizon='31 days')
```

and then filter out the relevant days and compute the metrics on that. However, I wonder if I am using this correctly and if there is a better way to do this from within Prophet?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.