我们可以根据单列数字预测序列中的下一个数字吗?
Can we predict the next number in a sequence, based on a single column of numbers?
我正在尝试寻找一种方法来预测数字序列中的下一个数字。通常我会为此使用线性回归,但如您所见,有日期和一列数据。没有因变量,只有一个自变量(贷款)。有没有一种简单的方法可以根据已知的数字序列来预测下一个数字可能是什么,或者可能是两个数字的范围?另外,有没有办法得到结果的概率,比如 90% 或 95% 的置信度?
这是我的数据。
Account Loans
2019 Aug 393.3
2020 Feb 383.2
2020 Mar 455.4
2020 Apr 542.0
2020 May 510.0
2020 Jun 483.5
2020 Jul 465.5
2020 Aug 448.2
Aug 12 451.1
Aug 19 447.5
Aug 26 442.3
Sep 02 444.7
最终我希望看到这样的结果:443 到 445,置信度为 95%。这可能吗?
解决方案
选项 1 - 滚动平均值
取最后 n 个值的平均值 (a)。从最后一个数字 (l) 中减去 a
作为 (s)。最终结果应该是 l-s
或 l+s
.
例子
def predict(arr, n):
l = arr[-1]
a = sum(arr[:n]) / n
s = abs(a - l)
lower_bounds = l - s
upper_bounds = l + s
return (upper_bounds, lower_bounds)
选项 2 - 指数平滑
考虑使用来自统计模型的指数平滑
例子
from statsmodels.tsa.api import SimpleExpSmoothing
def predict(arr, sl)
return SimpleExpSmoothing(arr).fit(smoothing_level=sl).fitted_values
参考资料
statsmodels(简单指数平滑):https://www.statsmodels.org/stable/examples/notebooks/generated/exponential_smoothing.html
calculate exponential moving average in python
首先,您需要进行一些预处理,将自变量转换为某种数字尺度。也许是 2019 年 8 月 1 日的天数。然后你可以进行回归。
我正在尝试寻找一种方法来预测数字序列中的下一个数字。通常我会为此使用线性回归,但如您所见,有日期和一列数据。没有因变量,只有一个自变量(贷款)。有没有一种简单的方法可以根据已知的数字序列来预测下一个数字可能是什么,或者可能是两个数字的范围?另外,有没有办法得到结果的概率,比如 90% 或 95% 的置信度?
这是我的数据。
Account Loans
2019 Aug 393.3
2020 Feb 383.2
2020 Mar 455.4
2020 Apr 542.0
2020 May 510.0
2020 Jun 483.5
2020 Jul 465.5
2020 Aug 448.2
Aug 12 451.1
Aug 19 447.5
Aug 26 442.3
Sep 02 444.7
最终我希望看到这样的结果:443 到 445,置信度为 95%。这可能吗?
解决方案
选项 1 - 滚动平均值
取最后 n 个值的平均值 (a)。从最后一个数字 (l) 中减去 a
作为 (s)。最终结果应该是 l-s
或 l+s
.
例子
def predict(arr, n):
l = arr[-1]
a = sum(arr[:n]) / n
s = abs(a - l)
lower_bounds = l - s
upper_bounds = l + s
return (upper_bounds, lower_bounds)
选项 2 - 指数平滑
考虑使用来自统计模型的指数平滑
例子
from statsmodels.tsa.api import SimpleExpSmoothing
def predict(arr, sl)
return SimpleExpSmoothing(arr).fit(smoothing_level=sl).fitted_values
参考资料
statsmodels(简单指数平滑):https://www.statsmodels.org/stable/examples/notebooks/generated/exponential_smoothing.html
calculate exponential moving average in python
首先,您需要进行一些预处理,将自变量转换为某种数字尺度。也许是 2019 年 8 月 1 日的天数。然后你可以进行回归。