线性趋势线出现非线性

时间:2018-07-05 18:59:37

标签: python pandas matplotlib

我正在根据包含日期和其他度量(体积)的数据创建线性趋势线。目标是创建一个线性趋势线,以显示交易量随时间的变化趋势。

数据如下:

          date  typeID  lowPrice  highPrice  avgPrice  volume  orders  \
0   2003-11-30    22.0   9000.00    9000.00   9000.00     5.0     1.0   
1   2003-12-31    22.0   9000.00    9000.00   9000.00     2.0     1.0   
2   2004-01-31    22.0  15750.00   15750.00  15750.00     9.5     1.0   
3   2004-02-29    22.0   7000.00    7000.00   7000.00    11.0     1.0   
4   2004-03-31    22.0   7000.00    7000.00   7000.00     8.0     1.0   
6   2004-05-31    22.0  15000.00   15000.00  15000.00    16.0     1.0   
10  2004-09-30    22.0   6500.00    6500.00   6500.00    27.0     1.0

问题在于,在某些月份(存储日期的间隔)中,没有可用的体积数据,如上所示,因此,以下是我目前从可用日期创建趋势线的方法。

x = df2["date"]

df2["inc_dates"] = np.arange(len(x))

y = df2["ln_vold"]

plt.subplot(15, 4, count)
plt.plot_date(x, y, xdate = True)

model = smf.ols('ln_vold ~ inc_dates', missing = "drop", data = df2).fit()
intercept, coef = model.params

l = [intercept]

for i in range(len(x) -1):
    l.append(intercept + coef*i)

plt.plot_date(x, l, "r--", xdate = True)

但是当前的输出显示为:Plot

显然不是正确的趋势线(开始时是非线性的)。

现在我不明白这怎么可能出错,因为我在for循环中所做的就是将常量值添加到一个递增的整数中。我只想看到一条线性趋势线,从截距一直到终点。

0 个答案:

没有答案