Skip to content

Explicit floor with a regressor, absmax scaling ​

match ← All logistic growth benchmarks

96 daily rows between a floor of about 12 and a ceiling of about 60, with a weekly pattern and a multiplicative promotion regressor.

Input ​

benchmark/inputs/v1/logistic-explicit-floor.json: 96 history rows and 24 forecast rows.

Output ​

Largest difference: 1.4e-11 (< 0.0001% of the input's range).

Every forecast row from both libraries.

DateEffect ProphetPython ProphetDifference
2020-04-0665.832765.83271.4e-11
2020-04-0766.248166.24811.3e-11
2020-04-0867.285467.28541.3e-11
2020-04-0967.569967.56991.3e-11
2020-04-1067.957067.95701.3e-11
2020-04-1168.003368.00331.3e-11
2020-04-1267.897767.89771.2e-11
2020-04-1367.942967.94291.2e-11
2020-04-1468.695668.69561.2e-11
2020-04-1568.934868.93481.1e-11
2020-04-1669.549369.54931.1e-11
2020-04-1769.895269.89521.1e-11
2020-04-1869.901669.90161.1e-11
2020-04-1969.757269.75721.1e-11
2020-04-2070.155670.15561.0e-11
2020-04-2170.099070.09909.5e-12
2020-04-2270.685170.68519.1e-12
2020-04-2371.265471.26548.9e-12
2020-04-2471.578371.57838.9e-12
2020-04-2571.552871.55289.0e-12
2020-04-2671.775971.77599.0e-12
2020-04-2771.355471.35548.4e-12
2020-04-2871.660771.66077.9e-12
2020-04-2972.219072.21907.4e-12

Timing ​

Median of all measured repetitions.

StepEffect ProphetPython ProphetEffect Prophet is
Convert input rows38 µs480 µs13× faster
Fit21.4 ms32.1 ms1.5× faster
Predict339 µs3.46 ms10× faster
Fit and predict21.5 ms35.9 ms1.7× faster
Convert, fit and predict21.2 ms36.2 ms1.7× faster
First forecast in a new process192 ms1.44 s7.5× faster
Save model to JSON37 µs481 µs13× faster
Load model from JSON103 µs2.43 ms24× faster
Load and predict in a new process153 ms1.44 s9.4× faster

Settings ​

The case declaration both libraries ran.

json
{
  "kind": "map",
  "comparison": {
    "kind": "equivalent-objective",
    "evidenceId": "logistic-map-v1"
  },
  "configuration": {
    "growth": "logistic",
    "scaling": "absmax",
    "seasonalityMode": "additive",
    "holidaysMode": "additive",
    "changepoints": {
      "mode": "explicit",
      "timestamps": [
        "2020-02-10T00:00:00.000Z"
      ]
    },
    "changepointPriorScale": 0.2,
    "seasonalities": [
      {
        "name": "weekly-custom",
        "periodDays": 7,
        "fourierOrder": 2,
        "priorScale": 10
      }
    ],
    "events": [],
    "regressors": [
      {
        "name": "promotion",
        "priorScale": 10,
        "standardization": "never",
        "mode": "multiplicative"
      }
    ]
  },
  "pythonOptimizer": {
    "algorithm": "Auto",
    "maxIterations": 10000,
    "newtonFallback": true,
    "sigFigs": 12
  }
}

Inspired by Prophet from Meta. Not affiliated with Meta.