Линейная линия тренда появляется нелинейно - PullRequest
0 голосов
/ 05 июля 2018

Я работаю над созданием линейной линии тренда из данных, которые содержат даты и другую меру (объем). Цель состоит в том, чтобы создать линейную линию тренда, которая показывает, как объем меняется со временем.

Данные выглядят следующим образом:

          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, - это добавление постоянных значений к растущему целому числу. Все, что я хотел бы видеть - это линейная линия тренда, идущая прямо от точки пересечения до конца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...