我正在根据包含日期和其他度量(体积)的数据创建线性趋势线。目标是创建一个线性趋势线,以显示交易量随时间的变化趋势。
数据如下:
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)
显然不是正确的趋势线(开始时是非线性的)。
现在我不明白这怎么可能出错,因为我在for循环中所做的就是将常量值添加到一个递增的整数中。我只想看到一条线性趋势线,从截距一直到终点。