Skip to content

Everything at once, two years ​

match flagged ← All linear growth benchmarks

768 daily rows with automatic changepoints, two seasonal patterns, six events and four regressors.

Input ​

benchmark/inputs/v1/map-mixed-features-automatic-large.json: 768 history rows and 128 forecast rows.

Output ​

Largest difference: 0.0069 (0.015% of the input's range).

Every forecast row from both libraries.

DateEffect ProphetPython ProphetDifference
2022-02-0746.588446.58520.0033
2022-02-0847.306947.30370.0032
2022-02-0947.540547.53700.0035
2022-02-1047.935347.93170.0036
2022-02-1149.517649.51440.0033
2022-02-1249.594549.59110.0034
2022-02-1350.573850.56910.0046
2022-02-1449.648149.64330.0048
2022-02-1550.377250.37220.0050
2022-02-1649.383549.37950.0041
2022-02-1749.453149.44900.0041
2022-02-1849.299149.29500.0041
2022-02-1948.893348.88950.0038
2022-02-2048.162648.15890.0038
2022-02-2146.170746.16680.0040
2022-02-2248.649248.64410.0051
2022-02-2350.340250.33500.0052
2022-02-2451.067851.06250.0053
2022-02-2549.787949.78380.0041
2022-02-2650.173450.16940.0040
2022-02-2749.927349.92350.0038
2022-02-2849.168549.16490.0036
2022-03-0149.751049.74720.0037
2022-03-0250.849550.84570.0038
2022-03-0353.103653.09900.0046
2022-03-0451.838251.83350.0047
2022-03-0551.956551.95170.0048
2022-03-0649.462249.45850.0037
2022-03-0749.179849.17600.0038
2022-03-0849.930149.92620.0039
2022-03-0951.189351.18540.0039
2022-03-1055.554055.54920.0048
2022-03-1152.148752.14430.0044
2022-03-1255.195555.18850.0069
2022-03-1357.633757.62780.0059
2022-03-1452.384452.37950.0048
2022-03-1551.311651.30770.0039
2022-03-1652.180152.17590.0042
2022-03-1750.882950.87870.0043
2022-03-1850.697050.69260.0044
2022-03-1950.692550.68810.0045
2022-03-2049.406249.40170.0044
2022-03-2150.596850.59150.0053
2022-03-2251.047951.04250.0053
2022-03-2351.197651.19200.0056
2022-03-2449.632749.62820.0045
2022-03-2549.849649.84510.0045
2022-03-2650.094350.08980.0045
2022-03-2749.879549.87500.0045
2022-03-2849.267149.26280.0044
2022-03-2949.947649.94340.0043
2022-03-3050.522550.51760.0049
2022-03-3148.792648.78890.0037
2022-04-0152.272052.26670.0052
2022-04-0250.208350.20450.0038
2022-04-0349.269349.26560.0038
2022-04-0448.747448.74360.0039
2022-04-0549.343349.33930.0040
2022-04-0650.562950.55870.0042
2022-04-0751.140751.13640.0042
2022-04-0853.704553.69920.0054
2022-04-0953.963253.95800.0052
2022-04-1052.439652.43420.0053
2022-04-1149.755849.75160.0042
2022-04-1250.246250.24240.0038
2022-04-1351.311151.30710.0039
2022-04-1451.647251.64310.0041
2022-04-1551.742351.73800.0043
2022-04-1652.041552.03700.0045
2022-04-1752.857052.85130.0057
2022-04-1851.750251.74440.0058
2022-04-1951.957051.95110.0059
2022-04-2051.705551.70090.0046
2022-04-2152.134752.13010.0046
2022-04-2251.255451.25060.0048
2022-04-2351.279151.27430.0048
2022-04-2450.951450.94650.0048
2022-04-2548.993548.98870.0048
2022-04-2651.721051.71500.0059
2022-04-2753.183353.17740.0059
2022-04-2854.255354.24940.0059
2022-04-2952.842852.83820.0046
2022-04-3053.036353.03180.0045
2022-05-0152.315552.31100.0044
2022-05-0251.715551.71140.0041
2022-05-0352.214052.20980.0042
2022-05-0453.303853.29950.0043
2022-05-0555.606955.60130.0056
2022-05-0656.332156.32640.0057
2022-05-0756.663956.65820.0058
2022-05-0852.918952.91440.0045
2022-05-0952.340052.33560.0044
2022-05-1052.656052.65150.0045
2022-05-1153.714653.71000.0046
2022-05-1255.061155.05680.0043
2022-05-1355.232955.22860.0043
2022-05-1457.435557.43000.0055
2022-05-1556.532656.52690.0057
2022-05-1655.542055.53610.0059
2022-05-1754.023954.01890.0050
2022-05-1855.129255.12400.0052
2022-05-1955.099455.09420.0053
2022-05-2055.108555.10350.0050
2022-05-2153.714553.70960.0050
2022-05-2252.197152.19200.0051
2022-05-2352.916952.91070.0063
2022-05-2453.344253.33790.0063
2022-05-2554.463554.45710.0064
2022-05-2653.544353.53890.0054
2022-05-2753.945053.93960.0054
2022-05-2854.229854.22460.0053
2022-05-2953.555153.55000.0051
2022-05-3053.097453.09250.0049
2022-05-3153.562353.55740.0049
2022-06-0156.240956.23510.0058
2022-06-0256.413656.40780.0058
2022-06-0355.383555.37780.0058
2022-06-0453.557153.55230.0047
2022-06-0552.774252.76940.0048
2022-06-0652.051452.04650.0049
2022-06-0753.107653.10260.0050
2022-06-0854.346954.34200.0050
2022-06-0954.174454.16930.0050
2022-06-1056.080456.07420.0062
2022-06-1157.386457.38060.0058
2022-06-1256.553656.54780.0058
2022-06-1353.833153.82840.0047
2022-06-1454.270654.26570.0049

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
Stationarity residual (lower is closer to the best fit)176.1731173.45600.01

Timing ​

Median of all measured repetitions.

StepEffect ProphetPython ProphetEffect Prophet is
Convert input rows182 µs1.11 ms6.1× faster
Fit11.7 ms37.3 ms3.2× faster
Predict957 µs5.99 ms6.3× faster
Fit and predict12.9 ms43.1 ms3.3× faster
Convert, fit and predict11.6 ms44.5 ms3.8× faster
First forecast in a new process207 ms1.45 s7.0× faster
Save model to JSON24 µs1.71 ms71× faster
Load model from JSON269 µs5.75 ms21× faster
Load and predict in a new process171 ms1.41 s8.3× faster

Settings ​

The case declaration both libraries ran.

json
{
  "kind": "linear-map",
  "comparison": {
    "kind": "equivalent-objective",
    "evidenceId": "linear-output-first-v4"
  },
  "configuration": {
    "effectMap": "omitted",
    "changepoints": {
      "mode": "auto",
      "count": 25,
      "range": 0.8
    },
    "changepointPriorScale": 0.05,
    "seasonalities": [
      {
        "name": "weekly-shared",
        "periodDays": 7,
        "fourierOrder": 2,
        "priorScale": 10
      },
      {
        "name": "monthly-active",
        "periodDays": 30.5,
        "fourierOrder": 3,
        "priorScale": 8,
        "conditionName": "active"
      }
    ],
    "events": [
      {
        "name": "release",
        "date": "2020-04-10",
        "lowerWindowDays": -1,
        "upperWindowDays": 2,
        "priorScale": 10
      },
      {
        "name": "release",
        "date": "2020-10-27",
        "lowerWindowDays": -1,
        "upperWindowDays": 2,
        "priorScale": 10
      },
      {
        "name": "release",
        "date": "2022-03-11",
        "lowerWindowDays": -1,
        "upperWindowDays": 2,
        "priorScale": 10
      },
      {
        "name": "campaign",
        "date": "2020-04-11",
        "lowerWindowDays": -1,
        "upperWindowDays": 0,
        "priorScale": 6
      },
      {
        "name": "campaign",
        "date": "2021-05-15",
        "lowerWindowDays": -1,
        "upperWindowDays": 0,
        "priorScale": 6
      },
      {
        "name": "campaign",
        "date": "2022-03-31",
        "lowerWindowDays": -1,
        "upperWindowDays": 0,
        "priorScale": 6
      }
    ],
    "regressors": [
      {
        "name": "binary-auto",
        "priorScale": 10,
        "standardization": "auto"
      },
      {
        "name": "numeric-auto",
        "priorScale": 10,
        "standardization": "auto"
      },
      {
        "name": "numeric-always",
        "priorScale": 7,
        "standardization": "always"
      },
      {
        "name": "numeric-never",
        "priorScale": 5,
        "standardization": "never"
      }
    ]
  },
  "effectOptimizer": {
    "algorithm": "auto",
    "maxIterations": 10000,
    "fallback": "newton",
    "lbfgs": {
      "historySize": 5,
      "initAlpha": 0.001,
      "tolObj": 1e-12,
      "tolRelObj": 10000,
      "tolGrad": 1e-8,
      "tolRelGrad": 10000000,
      "tolParam": 1e-8
    }
  },
  "pythonOptimizer": {
    "algorithm": "Auto",
    "maxIterations": 10000,
    "newtonFallback": true,
    "sigFigs": 12
  }
}

Inspired by Prophet from Meta. Not affiliated with Meta.