Построить регрессию с использованием экзогенных переменных в т - PullRequest
0 голосов
/ 07 октября 2019

У меня есть некоторые данные с десятками переменных за последние 48 месяцев, и я хотел бы построить модель для оценки одной из них (после проверки трендов, стационарности и т. Д.). Я делал это в прошлом с моделями, где:

y_t = a1*y_t-1 + a2*x1_t-1 + a3*x2_t-2 + ...

и закодирован как:

from sklearn.linear_model import LinearRegression

df_test = df.loc['2019-01-01':'2019-07-01']
df_data = df.loc['2015-11-01':'2018-12-01']

lr = LinearRegression()
lr.fit(df_data[['var1', 'var2', 'var3']], df_data['y'])

, где df - это DataFrame, например:

                   y     var1       var2      var3  
Date                                                                         
2015-07-01  112430.0  25873.0          4        31
2015-08-01  109866.0  36673.0          5        31
2015-09-01   88647.0  35319.0          6        30
2015-10-01   74082.0  24746.0          7        31
2015-11-01   67425.0  26319.0          8        30
2015-12-01   71349.0  21716.0          9        31
2016-01-01   80720.0  21643.0         10        31
2016-02-01   69123.0  18856.0         11        29
2016-03-01   74491.0  26388.0         12        31
2016-04-01   61918.0  30519.0         13        30
2016-05-01   66051.0  36994.0         14        31
2016-06-01   66285.0  37337.0         15        30
2016-07-01   64584.0  38950.0         16        31
2016-08-01   62490.0  44390.0         17        31
2016-09-01   66021.0  43602.0         18        30
2016-10-01   59548.0  49723.0         19        31
2016-11-01   83873.0  49123.0         20        30

Поэтому здесь я строю модель для оценки на основе предыдущих месяцев.

Теперь я хотел бы построить модель, используя значения времени t для нескольких переменных, скажем, var1 и var3 поскольку, например, var2 является подмножеством y . Как я могу передать эту информацию в модель, чтобы она не жаловалась на значения NaN в DF на дату, которую я оцениваю в столбцах с подмножеством y ?

y_t = a11*var1_t + a12*var1_t-1 + a2*var2_t-1 + a31*var3_t + a32*var3_t_1 + ...

Надеюсь, я все прояснил

...