Skip to content

Explicit floor with a regressor, minmax scaling ​

match ← All logistic growth benchmarks

The same floor, regressor and weekly pattern under minmax scaling.

Input ​

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

Output ​

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

Every forecast row from both libraries.

DateEffect ProphetPython ProphetDifference
2020-04-0665.832765.83271.1e-11
2020-04-0766.248166.24811.1e-11
2020-04-0867.285467.28541.1e-11
2020-04-0967.569967.56991.1e-11
2020-04-1067.957067.95701.1e-11
2020-04-1168.003368.00331.0e-11
2020-04-1267.897767.89771.0e-11
2020-04-1367.942967.94299.9e-12
2020-04-1468.695668.69569.4e-12
2020-04-1568.934868.93489.5e-12
2020-04-1669.549369.54939.3e-12
2020-04-1769.895269.89528.9e-12
2020-04-1869.901669.90168.7e-12
2020-04-1969.757269.75728.5e-12
2020-04-2070.155670.15567.9e-12
2020-04-2170.099070.09908.1e-12
2020-04-2270.685170.68517.9e-12
2020-04-2371.265471.26547.7e-12
2020-04-2471.578371.57837.4e-12
2020-04-2571.552871.55287.2e-12
2020-04-2671.775971.77596.6e-12
2020-04-2771.355471.35546.8e-12
2020-04-2871.660771.66076.7e-12
2020-04-2972.219072.21906.5e-12

Timing ​

Median of all measured repetitions.

StepEffect ProphetPython ProphetEffect Prophet is
Convert input rows39 µs524 µs14× faster
Fit17.5 ms26.7 ms1.5× faster
Predict376 µs3.62 ms9.6× faster
Fit and predict18.5 ms30.1 ms1.6× faster
Convert, fit and predict17.1 ms30.7 ms1.8× faster
First forecast in a new process181 ms1.44 s8.0× faster
Save model to JSON30 µs446 µs15× faster
Load model from JSON96 µs2.49 ms26× faster
Load and predict in a new process154 ms1.39 s9.0× faster

Settings ​

The case declaration both libraries ran.

json
{
  "kind": "map",
  "comparison": {
    "kind": "equivalent-objective",
    "evidenceId": "logistic-map-v1"
  },
  "configuration": {
    "growth": "logistic",
    "scaling": "minmax",
    "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.