линейная регрессия Python statsmodels - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь создать модель линейной регрессии на основе данных до проекта и, в конечном итоге, пытаюсь рассчитать некоторые смоделированные данные, где я мог бы сравнить данные до / после проекта ... Может кто-нибудь сказать мне, какой лучший метод действий еще у меня может быть?в сорняках где-то ...

Для начала:

import statsmodels.api as sm
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

ng = pd.read_csv('C:/Users/ngDataBaseline.csv',  thousands=',', index_col='Date', parse_dates=True)
ng.head()

Это будет выводить:

    HDD Therm
Date        
2011-10-01  386 498
2011-11-01  663 1810
2011-12-01  972 4263
2012-01-01  1131    5981
2012-02-01  977 6951

И из statsmodels, чтобы соответствовать моей модели, которую я использую:

import statsmodels.formula.api as smf

formula = 'Therm ~ HDD'
model = smf.ols(formula, data=ng)
results = model.fit()
results.summary()

enter image description here

inter = results.params['Intercept']
slope = results.params['HDD']
inter, slope

отпечатков:

(-532.6244255918659, 6.331883644532255)

Так что теперь я думаю, что могу импортировать данные после проекта и использовать некоторыепростая математика в этом формате для расчета смоделированных данных: Y = mX + b

ng_postproject = pd.read_csv('C:/Users/ng_postproject.csv',  thousands=',', index_col='Date', parse_dates=True)

ng_postproject.head()

И это выведет:

    HDD Therm
Date        
2014-10-01  291 663
2014-11-01  545 1413
2014-12-01  1069    6754
2015-01-01  1134    7782
2015-02-01  1415    10285

Это то, что я использую для расчета использования смоделированного терм.

ng_postproject['Therm_modeled'] = ng_postproject['HDD'].apply(lambda x: x * slope + inter)


ng_postproject['Therm_modeled']

Date
2014-10-01    1309.953715
2014-11-01    2918.252161
2014-12-01    6236.159190
2015-01-01    6647.731627
2015-02-01    8426.990931

Теперь, если я не слишком далеко от сорняков, я смог бы добавить заголовок столбца и сравнить данные пост / пред проекта ... Было бы очень хорошо, если бы я мог реализоватьдоверительный интервал также ... Спасибо за любой ответ.

...