Я работаю над созданием линейной линии тренда из данных, которые содержат даты и другую меру (объем). Цель состоит в том, чтобы создать линейную линию тренда, которая показывает, как объем меняется со временем.
Данные выглядят следующим образом:
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](https://i.stack.imgur.com/7Lqvm.png)
Что явно не является правильной линией тренда (видно, что начало нелинейно).
Теперь я не понимаю, как это может пойти не так, поскольку все, что я делаю в цикле for, - это добавление постоянных значений к растущему целому числу. Все, что я хотел бы видеть - это линейная линия тренда, идущая прямо от точки пересечения до конца.