Skip to content

Defaults, irregular dates ​

match flagged ← All linear growth benchmarks

192 rows spread unevenly over 228 days with two real trend breaks.

Input ​

benchmark/inputs/v1/map-irregular-medium.json: 192 history rows and 48 forecast rows.

Output ​

Largest difference: 0.079 (0.11% of the input's range).

Every forecast row from both libraries.

DateEffect ProphetPython ProphetDifference
2020-08-1784.443184.41570.027
2020-08-1884.725084.69510.030
2020-08-1985.295985.26290.033
2020-08-2085.872685.84200.031
2020-08-2286.656486.62830.028
2020-08-2387.070487.04550.025
2020-08-2487.451687.41780.034
2020-08-2587.733487.69710.036
2020-08-2688.304488.26490.039
2020-08-2788.881088.84400.037
2020-08-2889.127389.09060.037
2020-08-3090.078990.04750.031
2020-08-3190.460090.41980.040
2020-09-0190.741990.69910.043
2020-09-0291.312891.26700.046
2020-09-0391.889591.84610.043
2020-09-0492.135792.09260.043
2020-09-0693.087393.04960.038
2020-09-0893.750393.70120.049
2020-09-0994.321394.26900.052
2020-09-1094.898094.84810.050
2020-09-1195.144295.09470.049
2020-09-1295.681895.63440.047
2020-09-1396.095896.05160.044
2020-09-1496.477096.42390.053
2020-09-1697.329797.27100.059
2020-09-1797.906497.85010.056
2020-09-1898.152698.09670.056
2020-09-1998.690298.63650.054
2020-09-2099.104399.05360.051
2020-09-2199.485499.42590.060
2020-09-2299.767399.70520.062
2020-09-24100.9149100.85220.063
2020-09-25101.1611101.09870.062
2020-09-26101.6987101.63850.060
2020-09-27102.1127102.05570.057
2020-09-29102.7757102.70730.068
2020-09-30103.3467103.27510.072
2020-10-01103.9233103.85420.069
2020-10-03104.7071104.64050.067
2020-10-04105.1212105.05770.063
2020-10-05105.5023105.43000.072
2020-10-06105.7842105.70930.075
2020-10-07106.3551106.27710.078
2020-10-08106.9318106.85620.076
2020-10-09107.1780107.10280.075
2020-10-11108.1296108.05970.070
2020-10-12108.5108108.43200.079

Internal fit differences ​

The forecasts match, so this case passes. Both libraries search for the best-fitting parameters and stop when they are close enough. On this input they stopped at slightly different points, so these internal numbers differ by more than the threshold where we take a closer look.

CheckEffect ProphetPython ProphetThreshold
Fitting objective (lower is a better fit)-745.4706-744.87590.01

Timing ​

Median of all measured repetitions.

StepEffect ProphetPython ProphetEffect Prophet is
Convert input rows30 µs497 µs17× faster
Fit6.83 ms13.3 ms2.0× faster
Predict355 µs3.12 ms8.8× faster
Fit and predict6.45 ms16.7 ms2.6× faster
Convert, fit and predict6.47 ms17.3 ms2.7× faster
First forecast in a new process177 ms1.44 s8.2× faster
Save model to JSON36 µs525 µs15× faster
Load model from JSON142 µs2.34 ms17× faster
Load and predict in a new process159 ms1.43 s9.0× 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
  }
}

Inspired by Prophet from Meta. Not affiliated with Meta.