У меня есть некоторые данные с десятками переменных за последние 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 + ...
Надеюсь, я все прояснил