Regressors that track other effects
match ← All flat growth benchmarksTwo years of daily rows. Temperature follows the yearly pattern closely and a constant regressor duplicates the level. The forecast half-year has an unusually warm winter, so the split between temperature and the yearly pattern shows.
Input
benchmark/inputs/v4/flat-correlated-regressors.json: 730 history rows and 180 forecast rows.
Output
Largest difference: 2.8e-11 (< 0.0001% of the input's range).
Every forecast row from both libraries.
| Date | Effect Prophet | Python Prophet | Difference |
|---|---|---|---|
| 2021-12-31 | 49.0310 | 49.0310 | 2.1e-11 |
| 2022-01-01 | 47.9048 | 47.9048 | 2.2e-11 |
| 2022-01-02 | 47.1011 | 47.1011 | 2.3e-11 |
| 2022-01-03 | 47.2331 | 47.2331 | 2.3e-11 |
| 2022-01-04 | 48.1731 | 48.1731 | 2.1e-11 |
| 2022-01-05 | 49.2510 | 49.2510 | 2.0e-11 |
| 2022-01-06 | 49.7018 | 49.7018 | 2.0e-11 |
| 2022-01-07 | 49.1683 | 49.1683 | 2.1e-11 |
| 2022-01-08 | 48.0608 | 48.0608 | 2.2e-11 |
| 2022-01-09 | 47.2788 | 47.2788 | 2.3e-11 |
| 2022-01-10 | 47.4255 | 47.4255 | 2.3e-11 |
| 2022-01-11 | 48.3689 | 48.3689 | 2.1e-11 |
| 2022-01-12 | 49.4429 | 49.4429 | 2.0e-11 |
| 2022-01-13 | 49.8921 | 49.8921 | 2.0e-11 |
| 2022-01-14 | 49.3673 | 49.3673 | 2.1e-11 |
| 2022-01-15 | 48.2789 | 48.2789 | 2.2e-11 |
| 2022-01-16 | 47.5186 | 47.5186 | 2.3e-11 |
| 2022-01-17 | 47.6801 | 47.6801 | 2.2e-11 |
| 2022-01-18 | 48.6266 | 48.6266 | 2.1e-11 |
| 2022-01-19 | 49.6965 | 49.6965 | 2.0e-11 |
| 2022-01-20 | 50.1441 | 50.1441 | 2.0e-11 |
| 2022-01-21 | 49.6279 | 49.6279 | 2.1e-11 |
| 2022-01-22 | 48.5582 | 48.5582 | 2.2e-11 |
| 2022-01-23 | 47.8191 | 47.8191 | 2.3e-11 |
| 2022-01-24 | 47.9944 | 47.9944 | 2.3e-11 |
| 2022-01-25 | 48.9432 | 48.9432 | 2.1e-11 |
| 2022-01-26 | 50.0081 | 50.0081 | 2.0e-11 |
| 2022-01-27 | 50.4532 | 50.4532 | 2.0e-11 |
| 2022-01-28 | 49.9447 | 49.9447 | 2.1e-11 |
| 2022-01-29 | 48.8929 | 48.8929 | 2.2e-11 |
| 2022-01-30 | 48.1737 | 48.1737 | 2.3e-11 |
| 2022-01-31 | 48.3614 | 48.3614 | 2.3e-11 |
| 2022-02-01 | 49.3111 | 49.3111 | 2.2e-11 |
| 2022-02-02 | 50.3697 | 50.3697 | 2.1e-11 |
| 2022-02-03 | 50.8112 | 50.8112 | 2.1e-11 |
| 2022-02-04 | 50.3094 | 50.3094 | 2.2e-11 |
| 2022-02-05 | 49.2743 | 49.2743 | 2.3e-11 |
| 2022-02-06 | 48.5738 | 48.5738 | 2.4e-11 |
| 2022-02-07 | 48.7727 | 48.7727 | 2.3e-11 |
| 2022-02-08 | 49.7218 | 49.7218 | 2.2e-11 |
| 2022-02-09 | 50.7731 | 50.7731 | 2.1e-11 |
| 2022-02-10 | 51.2102 | 51.2102 | 2.1e-11 |
| 2022-02-11 | 50.7146 | 50.7146 | 2.2e-11 |
| 2022-02-12 | 49.6955 | 49.6955 | 2.3e-11 |
| 2022-02-13 | 49.0130 | 49.0130 | 2.4e-11 |
| 2022-02-14 | 49.2221 | 49.2221 | 2.4e-11 |
| 2022-02-15 | 50.1699 | 50.1699 | 2.3e-11 |
| 2022-02-16 | 51.2132 | 51.2132 | 2.1e-11 |
| 2022-02-17 | 51.6456 | 51.6456 | 2.1e-11 |
| 2022-02-18 | 51.1557 | 51.1557 | 2.2e-11 |
| 2022-02-19 | 50.1523 | 50.1523 | 2.4e-11 |
| 2022-02-20 | 49.4871 | 49.4871 | 2.4e-11 |
| 2022-02-21 | 49.7056 | 49.7056 | 2.4e-11 |
| 2022-02-22 | 50.6514 | 50.6514 | 2.3e-11 |
| 2022-02-23 | 51.6862 | 51.6862 | 2.2e-11 |
| 2022-02-24 | 52.1132 | 52.1132 | 2.1e-11 |
| 2022-02-25 | 51.6286 | 51.6286 | 2.2e-11 |
| 2022-02-26 | 50.6403 | 50.6403 | 2.4e-11 |
| 2022-02-27 | 49.9915 | 49.9915 | 2.4e-11 |
| 2022-02-28 | 50.2185 | 50.2185 | 2.4e-11 |
| 2022-03-01 | 51.1611 | 51.1611 | 2.3e-11 |
| 2022-03-02 | 52.1862 | 52.1862 | 2.2e-11 |
| 2022-03-03 | 52.6071 | 52.6071 | 2.2e-11 |
| 2022-03-04 | 52.1268 | 52.1268 | 2.3e-11 |
| 2022-03-05 | 51.1524 | 51.1524 | 2.4e-11 |
| 2022-03-06 | 50.5188 | 50.5188 | 2.5e-11 |
| 2022-03-07 | 50.7526 | 50.7526 | 2.5e-11 |
| 2022-03-08 | 51.6906 | 51.6906 | 2.3e-11 |
| 2022-03-09 | 52.7047 | 52.7047 | 2.2e-11 |
| 2022-03-10 | 53.1181 | 53.1181 | 2.2e-11 |
| 2022-03-11 | 52.6412 | 52.6412 | 2.3e-11 |
| 2022-03-12 | 51.6794 | 51.6794 | 2.5e-11 |
| 2022-03-13 | 51.0596 | 51.0596 | 2.5e-11 |
| 2022-03-14 | 51.2987 | 51.2987 | 2.5e-11 |
| 2022-03-15 | 52.2304 | 52.2304 | 2.4e-11 |
| 2022-03-16 | 53.2322 | 53.2322 | 2.3e-11 |
| 2022-03-17 | 53.6372 | 53.6372 | 2.3e-11 |
| 2022-03-18 | 53.1625 | 53.1625 | 2.4e-11 |
| 2022-03-19 | 52.2124 | 52.2124 | 2.5e-11 |
| 2022-03-20 | 51.6051 | 51.6051 | 2.6e-11 |
| 2022-03-21 | 51.8483 | 51.8483 | 2.5e-11 |
| 2022-03-22 | 52.7727 | 52.7727 | 2.4e-11 |
| 2022-03-23 | 53.7612 | 53.7612 | 2.3e-11 |
| 2022-03-24 | 54.1569 | 54.1569 | 2.3e-11 |
| 2022-03-25 | 53.6837 | 53.6837 | 2.4e-11 |
| 2022-03-26 | 52.7445 | 52.7445 | 2.5e-11 |
| 2022-03-27 | 52.1488 | 52.1488 | 2.6e-11 |
| 2022-03-28 | 52.3950 | 52.3950 | 2.6e-11 |
| 2022-03-29 | 53.3109 | 53.3109 | 2.4e-11 |
| 2022-03-30 | 54.2852 | 54.2852 | 2.3e-11 |
| 2022-03-31 | 54.6709 | 54.6709 | 2.3e-11 |
| 2022-04-01 | 54.1986 | 54.1986 | 2.4e-11 |
| 2022-04-02 | 53.2696 | 53.2696 | 2.5e-11 |
| 2022-04-03 | 52.6843 | 52.6843 | 2.6e-11 |
| 2022-04-04 | 52.9324 | 52.9324 | 2.6e-11 |
| 2022-04-05 | 53.8386 | 53.8386 | 2.5e-11 |
| 2022-04-06 | 54.7977 | 54.7977 | 2.4e-11 |
| 2022-04-07 | 55.1725 | 55.1725 | 2.3e-11 |
| 2022-04-08 | 54.7002 | 54.7002 | 2.4e-11 |
| 2022-04-09 | 53.7801 | 53.7801 | 2.6e-11 |
| 2022-04-10 | 53.2042 | 53.2042 | 2.6e-11 |
| 2022-04-11 | 53.4526 | 53.4526 | 2.6e-11 |
| 2022-04-12 | 54.3478 | 54.3478 | 2.5e-11 |
| 2022-04-13 | 55.2903 | 55.2903 | 2.4e-11 |
| 2022-04-14 | 55.6532 | 55.6532 | 2.4e-11 |
| 2022-04-15 | 55.1798 | 55.1798 | 2.5e-11 |
| 2022-04-16 | 54.2676 | 54.2676 | 2.6e-11 |
| 2022-04-17 | 53.6996 | 53.6996 | 2.7e-11 |
| 2022-04-18 | 53.9469 | 53.9469 | 2.6e-11 |
| 2022-04-19 | 54.8297 | 54.8297 | 2.5e-11 |
| 2022-04-20 | 55.7546 | 55.7546 | 2.4e-11 |
| 2022-04-21 | 56.1045 | 56.1045 | 2.4e-11 |
| 2022-04-22 | 55.6292 | 55.6292 | 2.5e-11 |
| 2022-04-23 | 54.7239 | 54.7239 | 2.6e-11 |
| 2022-04-24 | 54.1627 | 54.1627 | 2.7e-11 |
| 2022-04-25 | 54.4079 | 54.4079 | 2.7e-11 |
| 2022-04-26 | 55.2771 | 55.2771 | 2.6e-11 |
| 2022-04-27 | 56.1835 | 56.1835 | 2.4e-11 |
| 2022-04-28 | 56.5198 | 56.5198 | 2.4e-11 |
| 2022-04-29 | 56.0420 | 56.0420 | 2.5e-11 |
| 2022-04-30 | 55.1430 | 55.1430 | 2.6e-11 |
| 2022-05-01 | 54.5878 | 54.5878 | 2.7e-11 |
| 2022-05-02 | 54.8298 | 54.8298 | 2.7e-11 |
| 2022-05-03 | 55.6848 | 55.6848 | 2.6e-11 |
| 2022-05-04 | 56.5719 | 56.5719 | 2.5e-11 |
| 2022-05-05 | 56.8941 | 56.8941 | 2.4e-11 |
| 2022-05-06 | 56.4133 | 56.4133 | 2.5e-11 |
| 2022-05-07 | 55.5201 | 55.5201 | 2.7e-11 |
| 2022-05-08 | 54.9701 | 54.9701 | 2.7e-11 |
| 2022-05-09 | 55.2081 | 55.2081 | 2.7e-11 |
| 2022-05-10 | 56.0477 | 56.0477 | 2.6e-11 |
| 2022-05-11 | 56.9150 | 56.9150 | 2.5e-11 |
| 2022-05-12 | 57.2225 | 57.2225 | 2.4e-11 |
| 2022-05-13 | 56.7382 | 56.7382 | 2.5e-11 |
| 2022-05-14 | 55.8499 | 55.8499 | 2.7e-11 |
| 2022-05-15 | 55.3043 | 55.3043 | 2.7e-11 |
| 2022-05-16 | 55.5371 | 55.5371 | 2.7e-11 |
| 2022-05-17 | 56.3605 | 56.3605 | 2.6e-11 |
| 2022-05-18 | 57.2070 | 57.2070 | 2.5e-11 |
| 2022-05-19 | 57.4991 | 57.4991 | 2.5e-11 |
| 2022-05-20 | 57.0107 | 57.0107 | 2.6e-11 |
| 2022-05-21 | 56.1267 | 56.1267 | 2.7e-11 |
| 2022-05-22 | 55.5845 | 55.5845 | 2.8e-11 |
| 2022-05-23 | 55.8112 | 55.8112 | 2.7e-11 |
| 2022-05-24 | 56.6175 | 56.6175 | 2.6e-11 |
| 2022-05-25 | 57.4424 | 57.4424 | 2.5e-11 |
| 2022-05-26 | 57.7188 | 57.7188 | 2.5e-11 |
| 2022-05-27 | 57.2258 | 57.2258 | 2.6e-11 |
| 2022-05-28 | 56.3456 | 56.3456 | 2.7e-11 |
| 2022-05-29 | 55.8061 | 55.8061 | 2.8e-11 |
| 2022-05-30 | 56.0261 | 56.0261 | 2.7e-11 |
| 2022-05-31 | 56.8146 | 56.8146 | 2.6e-11 |
| 2022-06-01 | 57.6178 | 57.6178 | 2.5e-11 |
| 2022-06-02 | 57.8782 | 57.8782 | 2.5e-11 |
| 2022-06-03 | 57.3806 | 57.3806 | 2.6e-11 |
| 2022-06-04 | 56.5039 | 56.5039 | 2.7e-11 |
| 2022-06-05 | 55.9669 | 55.9669 | 2.8e-11 |
| 2022-06-06 | 56.1796 | 56.1796 | 2.7e-11 |
| 2022-06-07 | 56.9501 | 56.9501 | 2.6e-11 |
| 2022-06-08 | 57.7313 | 57.7313 | 2.5e-11 |
| 2022-06-09 | 57.9758 | 57.9758 | 2.5e-11 |
| 2022-06-10 | 57.4736 | 57.4736 | 2.6e-11 |
| 2022-06-11 | 56.6004 | 56.6004 | 2.7e-11 |
| 2022-06-12 | 56.0656 | 56.0656 | 2.8e-11 |
| 2022-06-13 | 56.2708 | 56.2708 | 2.7e-11 |
| 2022-06-14 | 57.0229 | 57.0229 | 2.6e-11 |
| 2022-06-15 | 57.7820 | 57.7820 | 2.5e-11 |
| 2022-06-16 | 58.0106 | 58.0106 | 2.5e-11 |
| 2022-06-17 | 57.5039 | 57.5039 | 2.6e-11 |
| 2022-06-18 | 56.6341 | 56.6341 | 2.7e-11 |
| 2022-06-19 | 56.1011 | 56.1011 | 2.8e-11 |
| 2022-06-20 | 56.2983 | 56.2983 | 2.7e-11 |
| 2022-06-21 | 57.0317 | 57.0317 | 2.6e-11 |
| 2022-06-22 | 57.7685 | 57.7685 | 2.5e-11 |
| 2022-06-23 | 57.9812 | 57.9812 | 2.5e-11 |
| 2022-06-24 | 57.4699 | 57.4699 | 2.6e-11 |
| 2022-06-25 | 56.6035 | 56.6035 | 2.7e-11 |
| 2022-06-26 | 56.0721 | 56.0721 | 2.7e-11 |
| 2022-06-27 | 56.2610 | 56.2610 | 2.7e-11 |
| 2022-06-28 | 56.9753 | 56.9753 | 2.6e-11 |
Timing
Median of all measured repetitions.
| Step | Effect Prophet | Python Prophet | Effect Prophet is |
|---|---|---|---|
| Convert input rows | 101 µs | 932 µs | 9.2× faster |
| Fit | 5.10 ms | 25.4 ms | 5.0× faster |
| Predict | 924 µs | 4.55 ms | 4.9× faster |
| Fit and predict | 5.42 ms | 29.6 ms | 5.5× faster |
| Convert, fit and predict | 6.99 ms | 30.4 ms | 4.4× faster |
| First forecast in a new process | 183 ms | 1.45 s | 7.9× faster |
| Save model to JSON | 26 µs | 1.15 ms | 44× faster |
| Load model from JSON | 202 µs | 3.54 ms | 17× faster |
| Load and predict in a new process | 196 ms | 1.40 s | 7.1× faster |
Settings
The case declaration both libraries ran.
json
{
"kind": "map",
"comparison": {
"kind": "equivalent-objective",
"evidenceId": "flat-map-additive-v1"
},
"configuration": {
"growth": "flat",
"scaling": "absmax",
"seasonalityMode": "additive",
"holidaysMode": "additive",
"changepoints": {
"mode": "auto",
"count": 25,
"range": 0.8
},
"changepointPriorScale": 0.05,
"seasonalities": [
{
"name": "yearly-custom",
"periodDays": 365.25,
"fourierOrder": 10,
"priorScale": 10
},
{
"name": "weekly-custom",
"periodDays": 7,
"fourierOrder": 2,
"priorScale": 10
}
],
"events": [],
"regressors": [
{
"name": "temperature",
"priorScale": 10,
"standardization": "auto"
},
{
"name": "baseline",
"priorScale": 10,
"standardization": "never"
}
]
},
"pythonOptimizer": {
"algorithm": "Auto",
"maxIterations": 10000,
"newtonFallback": true,
"sigFigs": 12
}
}