def gen_X(self, X, lags, start): factors = np.asanyarray(self.factors.loc[X.index]) # remove factors that have nulls values # factors = factors.ix[:, factors.isnull().sum(axis=0)==0] # print(factors[:,~np.all(np.isnan(factors), axis=0)]) factors = factors[:, ~np.any(np.isnan(factors), axis=0)] # print(np.isnan(factors)) # center and standardise f_mean = factors.mean() f_std = factors.std() factors = (factors - f_mean) / f_std if start == 0: # train # fit PCA projection self.pca = PCA(n_components=self.n_pc) self.pca.fit(factors) # else, test: reuse factor projection f = pd.DataFrame(self.pca.transform(factors), index=X.index) # add factors after the usual columns X = pd.concat([X, f], axis=1) return VAR.gen_X(X, lags, start)
def gen_y(y, start): y = VAR.gen_y(y, lags, start) return y
def gen_x(X, start): X = VAR.gen_X(X, lags, start) # X = X[:, 1:] # remove constant return X
def gen_y(self, y, lags, start): return VAR.gen_y(y, lags, start)