【问题标题】:predicting y values of time series data in python using linear regression使用线性回归预测python中时间序列数据的y值
【发布时间】:2018-07-22 02:26:37
【问题描述】:

我想使用线性回归预测代表# of A-type clients/ time 的 Y 值,其中 X 值是时间序列数据。

代码是

 df1 = pd.DataFrame({'time': past_time_array, 'A_clients': client_A_array})
        x_a = np.arange(len(past_time_array))
        fit_A = np.polyfit(x_a, df1['A_clients'], 1)
        fit_fn_A = np.poly1d(fit_A)


        print df1
        print "fitness function = %s" %fit_fn_A

print df1 的结果是

   A_clients                time
0           0 2018-02-09 14:45:00
1           0 2018-02-09 14:46:00
2           1 2018-02-09 14:47:00
3           4 2018-02-09 14:48:00
4           4 2018-02-09 14:49:00
5           2 2018-02-09 14:50:00
6           2 2018-02-09 14:51:00
7           2 2018-02-09 14:52:00
8           2 2018-02-09 14:53:00
9           4 2018-02-09 14:54:00
10          1 2018-02-09 14:55:00
11          3 2018-02-09 14:56:00
12          4 2018-02-09 14:57:00
13          2 2018-02-09 14:58:00
14          4 2018-02-09 14:59:00
15          3 2018-02-09 15:00:00
16          1 2018-02-09 15:01:00
17          1 2018-02-09 15:02:00
18          0 2018-02-09 15:03:00
19          4 2018-02-09 15:04:00
20          1 2018-02-09 15:05:00
21          1 2018-02-09 15:06:00
22          4 2018-02-09 15:07:00
23          4 2018-02-09 15:08:00

print "fitness function = %s" %fit_fn_A 的结果是

0.0001389 x + 2.213

问题是当我尝试预测值时

predicted_ta = fit_fn_A(x_a[10])
print "predicted values = %f"%predicted_ta

它总是给我2.213,这是cy = mx+c的值

最佳拟合线如下所示

编辑 1

当我每 2 分钟而不是 1 分钟计算 #clietns 时,回归线有一些斜率

【问题讨论】:

  • 会不会是x_a[10] 只是零?
  • 使用像 predicted_ta = fit_fn_A(10) 这样的值也会得到相同的结果。
  • 您能否将fit_A 包含在您的问题中?请更正代码中的缩进。
  • 使用您发布的数据,适合 0.03913 x + 1.8系数array([ 0.03913043, 1.8 ]);和np.polyval(coefficients, 4)fit(4) 产生相同的、正确的值。无法复制
  • 散点图的目视检查(目测)表明没有要建模的关系,所以你的结果是正确的。

标签: python pandas linear-regression data-science


【解决方案1】:

值被正确预测,但在我计算 number of clients/ minute 之前,该图是线性的,如上所示。因此,当我计算 number of clients/ 2 minutes 的回归线时,适应度函数给出了正确的结果。

【讨论】:

    【解决方案2】:

    你不能在这里应用他的模型。完全没有依赖关系。

    尝试计算汇总的客户端数量(value[x] = sum(value[: x])。通常它非常适合 log() 模型。

    【讨论】:

      猜你喜欢
      • 2016-08-26
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      • 2020-09-30
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      相关资源
      最近更新 更多