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 | 5 µs | 437 µs | 96× faster |
| Fit | 18.2 ms | 61.2 ms | 3.4× faster |
| Predict | 204 µs | 3.15 ms | 15× faster |
| Fit and predict | 18.4 ms | 64.1 ms | 3.5× faster |
| Convert, fit and predict | 18.1 ms | 64.9 ms | 3.6× faster |
| First forecast in a new process | 191 ms | 1.50 s | 7.8× faster |
| Save model to JSON | 28 µs | 390 µs | 14× faster |
| Load model from JSON | 140 µs | 2.06 ms | 15× faster |
| Load and predict in a new process | 164 ms | 1.44 s | 8.8× 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
}
}