May-27-2020, 06:11 AM
Hello,
I got a non-stationary Time Series and I want to predict the target variable in the future. For simplicity, let's say that the target variable is simply a price and the features are economic factors that have an impact on that price. Currently, I am utilizing Random Forest and so far my code looks like that ( nothing special )
y = y_(t+1) - y(t)
in order to remove the trend of the time series. However, I also want to inverse this operation after training, so I have a MEA I can interpret, Because the MEA will be obviously much lower when caluclating with only the differences. Does anyone know how I can do that conveniently? I don't even know if its possible because the predictions result from forecasting and not differencing itself (i.e. there is no "original" time series for inverse differencing). Thanks in advance !
I got a non-stationary Time Series and I want to predict the target variable in the future. For simplicity, let's say that the target variable is simply a price and the features are economic factors that have an impact on that price. Currently, I am utilizing Random Forest and so far my code looks like that ( nothing special )
# Load Dataset df = pd.read_csv("C:FINAL.csv") df["Date"] = pd.to_datetime(df['Date']) df = df.set_index('Date') df.index.freq = 'MS' # Lag variables z = df z = z.shift(4) z = z.iloc[4:] df = df.iloc[4:] # Define variables y = df["price"].values X = z.drop(["price"], axis = 1).values # Train - Test Split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, shuffle=False) # RF rf = RandomForestRegressor(bootstrap=False, max_depth=150, max_features="sqrt", min_samples_leaf=2, min_samples_split=8, n_estimators=100) rf.fit(X_train, y_train) y_pred = rf.predict(X_test) R2 = r2_score(y_test, y_pred) print('Mean Absolute Error:', mean_absolute_error(y_test, y_pred)) print("R2:", R2)The results are reasonable, but now I want to take the first difference of the target variable, so
y = y_(t+1) - y(t)
in order to remove the trend of the time series. However, I also want to inverse this operation after training, so I have a MEA I can interpret, Because the MEA will be obviously much lower when caluclating with only the differences. Does anyone know how I can do that conveniently? I don't even know if its possible because the predictions result from forecasting and not differencing itself (i.e. there is no "original" time series for inverse differencing). Thanks in advance !