Defaults, one month of daily data
match ← All linear growth benchmarks32 days of history. Weekly seasonality switches on automatically.
Input
benchmark/inputs/v1/linear-small.json: 32 history rows and 16 forecast rows.
Output
Largest difference: 4.4e-8 (< 0.0001% of the input's range).
Every forecast row from both libraries.
| Date | Effect Prophet | Python Prophet | Difference |
|---|---|---|---|
| 2020-02-02 | 23.6093 | 23.6093 | 3.2e-8 |
| 2020-02-03 | 23.4525 | 23.4525 | 4.4e-9 |
| 2020-02-04 | 24.1603 | 24.1603 | 3.6e-8 |
| 2020-02-05 | 25.7297 | 25.7297 | 2.0e-8 |
| 2020-02-06 | 27.4499 | 27.4499 | 8.4e-9 |
| 2020-02-07 | 28.2413 | 28.2413 | 1.5e-8 |
| 2020-02-08 | 27.9103 | 27.9103 | 6.2e-9 |
| 2020-02-09 | 27.2797 | 27.2797 | 2.3e-8 |
| 2020-02-10 | 27.1229 | 27.1229 | 1.3e-8 |
| 2020-02-11 | 27.8307 | 27.8307 | 4.4e-8 |
| 2020-02-12 | 29.4001 | 29.4001 | 2.8e-8 |
| 2020-02-13 | 31.1203 | 31.1203 | 1.7e-8 |
| 2020-02-14 | 31.9116 | 31.9116 | 2.4e-8 |
| 2020-02-15 | 31.5806 | 31.5806 | 2.3e-9 |
| 2020-02-16 | 30.9501 | 30.9501 | 1.5e-8 |
| 2020-02-17 | 30.7933 | 30.7933 | 2.1e-8 |
Timing
Median of all measured repetitions.
| Step | Effect Prophet | Python Prophet | Effect Prophet is |
|---|---|---|---|
| Convert input rows | 6 µs | 437 µs | 74× faster |
| Fit | 18.2 ms | 61.0 ms | 3.3× faster |
| Predict | 203 µs | 3.04 ms | 15× faster |
| Fit and predict | 17.9 ms | 66.6 ms | 3.7× faster |
| Convert, fit and predict | 17.9 ms | 65.9 ms | 3.7× faster |
| First forecast in a new process | 182 ms | 1.58 s | 8.7× faster |
| Save model to JSON | 29 µs | 393 µs | 13× faster |
| Load model from JSON | 162 µs | 2.06 ms | 13× faster |
| Load and predict in a new process | 152 ms | 1.47 s | 9.7× faster |
Settings
The case declaration both libraries ran.
json
{
"kind": "map",
"comparison": {
"kind": "equivalent-objective",
"evidenceId": "linear-output-first-v4"
},
"fitRequest": "growth-only",
"configuration": {
"growth": "linear",
"scaling": "absmax",
"seasonalityMode": "additive",
"holidaysMode": "additive",
"changepoints": {
"mode": "auto",
"count": 25,
"range": 0.8
},
"changepointPriorScale": 0.05,
"seasonalities": [
{
"name": "weekly",
"periodDays": 7,
"fourierOrder": 3,
"priorScale": 10
}
],
"events": [],
"regressors": []
},
"pythonOptimizer": {
"algorithm": "Auto",
"maxIterations": 10000,
"newtonFallback": true
}
}