I have a problem where I have to predict a variable X that is dependent on several other variables a,b,c,d... I have the data containing the values of these variables a,b,c,d.. and also X up to a certain point in time T. I do not have an explicit relationship between a,b,c,d... and X but I have managed to fit the dependencies using a linear regression model. My goal is to predict X into the future beyond time point T. How do I approach this?. I had considered auto regression but then I would have to disregard the variables a,b,c,d.. as it would be based solely upon the past values of X. Would this cause a problem in accuracy? I had also thought of using auto regression separately on the variables a,b,c,d... and then using those projections and the original linear regression model to predict X at various points in time. Which would be a better model? Also is there any other way to implement this? And what are some good python libraries that I can use for these models and any you may suggest? Any help would be appreciated. Thanks!
-
2$\begingroup$ It sounds like you have a time series data. If the data are time series in nature then you may have to look for VAR (Vector Auto Regressive) or VARMA models. $\endgroup$– Blain WaanCommented Nov 25, 2012 at 7:52
-
$\begingroup$ VAR sounds good. I will give it a try . Thanks. I had found a library named statsmodels that supports it $\endgroup$– user17151Commented Nov 25, 2012 at 8:03
2 Answers
Some examples of possible starting points:
regression model with ARMA errors
transfer function models (Box and Jenkins)
state space models with regression terms (e.g. see Harvey's Forecasting, Structural Time Series Models and the Kalman Filter)
You could run VARs but that would be equivalent to running univariate predictive regressions rather that contemporaneous i.e. run $$y_{t}=\beta_1+\beta_2x^1_{t-1}+\beta_3x^2_{t-1}+...+\beta_kx^k_{t-1} +\epsilon_{t}$$ to predict you simple need to fit the model and project i.e. a conditional expectation $$ E(y_{t+1} | I_t) $$ which just means to fit the regression with data at time $t$.