Skip to content

Weekly pattern, automatic changepoints ​

match ← All logistic growth benchmarks

The same history with two automatic changepoints instead of a hand-picked one.

Input ​

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

Output ​

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

Every forecast row from both libraries.

DateEffect ProphetPython ProphetDifference
2020-04-0664.908064.90802.4e-11
2020-04-0765.351565.35152.3e-11
2020-04-0865.970365.97032.3e-11
2020-04-0966.656166.65612.2e-11
2020-04-1067.131167.13112.1e-11
2020-04-1167.224767.22472.0e-11
2020-04-1267.179867.17982.0e-11
2020-04-1367.323867.32382.0e-11
2020-04-1467.709367.70931.9e-11
2020-04-1568.271968.27191.8e-11
2020-04-1668.903068.90301.8e-11
2020-04-1769.324969.32491.7e-11
2020-04-1869.367169.36711.6e-11
2020-04-1969.272369.27231.6e-11
2020-04-2069.367969.36791.6e-11
2020-04-2169.706869.70681.5e-11
2020-04-2270.224070.22401.5e-11
2020-04-2370.811570.81151.4e-11
2020-04-2471.191171.19111.4e-11
2020-04-2571.192471.19241.3e-11
2020-04-2671.058371.05831.3e-11
2020-04-2771.115971.11591.2e-11
2020-04-2871.418171.41811.2e-11
2020-04-2971.900071.90001.2e-11

Timing ​

Median of all measured repetitions.

StepEffect ProphetPython ProphetEffect Prophet is
Convert input rows19 µs494 µs26× faster
Fit19.2 ms30.6 ms1.6× faster
Predict237 µs3.35 ms14× faster
Fit and predict18.9 ms32.6 ms1.7× faster
Convert, fit and predict18.7 ms34.0 ms1.8× faster
First forecast in a new process184 ms1.45 s7.9× faster
Save model to JSON36 µs500 µs14× faster
Load model from JSON103 µs2.33 ms23× faster
Load and predict in a new process155 ms1.42 s9.1× 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": "auto",
      "count": 2,
      "range": 0.8
    },
    "changepointPriorScale": 0.2,
    "seasonalities": [
      {
        "name": "weekly-custom",
        "periodDays": 7,
        "fourierOrder": 2,
        "priorScale": 10
      }
    ],
    "events": [],
    "regressors": []
  },
  "pythonOptimizer": {
    "algorithm": "Auto",
    "maxIterations": 10000,
    "newtonFallback": true,
    "sigFigs": 12
  }
}

Inspired by Prophet from Meta. Not affiliated with Meta.