目录
饱和的预测(Forecasting Growth)
饱和最低(Saturating Minimum)
饱和的预测(Forecasting Growth)
默认情况下,Prophet使用线性模型进行预测。在预测增长时,通常有一个最大可达点:总市场规模、总人口规模等。这就是所谓的承载能力,预测应该在这一点饱和。
Prophet允许您使用具有指定承载能力的逻辑增长趋势模型进行预测。我们用维基百科上R(编程语言)页面的访问量日志来说明这一点:
# Python
df = pd.read_csv('https://raw.githubusercontent.com/facebook/prophet/main/examples/example_wp_log_R.csv')
我们必须在列上限中指定承载能力。这里我们将假设一个特定的值,但这通常是根据关于市场规模的数据或专业知识来设置的。
# Python
df['cap'] = 8.5
需要注意的重要事项是,必须为数据帧中的每一行指定cap,并且它不必是常量。如果市场规模在增长,那么上限可以是一个递增的序列。
然后我们像以前一样拟合模型,除了传入一个额外的参数来指定逻辑增长:
# Python
m = Prophet(growth='logistic')
m.fit(df)
和前面一样,我们为未来的预测制作了一个数据框架,只是我们还必须指定未来的容量。这里我们将容量保持在与历史相同的值,并预测未来5年:
# Python
future = m.make_future_dataframe(periods=1826)
future['cap'] = 8.5
fcst = m.predict(future)
fig = m.plot(fcst)
逻辑函数的隐式最小值为0,它在0处饱和的方式与在容量处饱和的方式相同。也可以指定不同的饱和最小值。
饱和最低(Saturating Minimum)
逻辑增长模型还可以处理饱和最小值,它由一个列下限指定,与cap列指定最大值的方式相同:
# Python
df['y'] = 10 - df['y']
df['cap'] = 6
df['floor'] = 1.5
future['cap'] = 6
future['floor'] = 1.5
m = Prophet(growth='logistic')
m.fit(df)
fcst = m.predict(future)
fig = m.plot(fcst)
要使用具有饱和最小值的逻辑增长趋势,还必须指定最大容量。