I am building a predictive model (binary target variable) in the financial services industry. One of the (many) potential predictors I am adding to the model is related to the customers checking account balance trend (longitudinal balance).

I'd like to capture if the balance is increasing or decreasing and how much. I have access to end of month balances going back a ways. One of the things I was considering is to, for each customer - fit a polynomial regression and include the coefficients into my predictive model.

In R, an example of a single customer:

balances <- c(657709,620729,713637,619224,558238,572402,536548,0,0,0)
time <- seq(1:10)
mod <- lm(balances~time+I(time*time))

time          I(time * time) 
61239.99      -13317.43 


  1. Thoughts? Of course the fit can be very poor, but as a global process to include into a predictive model does it have merit? Is there a better way?

  2. It seems I have seen description of these coefficients in terms of velocity and acceleration, but I cant find it anywhere. Is this a true interpretation of them?

  • $\begingroup$ Your customer seems to have closed her account by time 8. $\endgroup$ – Henry Sep 20 '11 at 0:14
  • $\begingroup$ Yes, and that can happen. I would include the current month balance, min, max, avg balance etc as other predictors. $\endgroup$ – B_Miner Sep 20 '11 at 0:40

Explanation at UCLA

Another link

I think the general answer is : not that easily. There are ways to interpret the derivative, talk about which way the curve opens, etc. But nothing simple and clear like in the linear model. My hunch is that you shouldn't be modeling this as a quadratic, tho.

I would also chuck out the zeros and call your model 'Balances of accounts which have not been closed'.


Like other polynomial models, your model is likely to be worse an a linear model if you extrapolate outside the time for which you have data as the time * time term is likely to dominate and the sign of its coefficient will determine whether you predict a large positive or large negative balances, when for many people balances are rather more stable.


As Henry politely/correctly said the problem with this dated approach of fitting linear, squares, cubics, et cetera is that you are forcing/fitting using potentially ( always in my opinion ) unwarranted deterministic structure onto the model. You "pay" for the fitting when you either interpolate or predict. Consider what happens when you fit a cubic to 4 data points. The fit is perfect / all coefficients are significant / the r-square is 1.00 but the forecast is more than likely ridiculous. A simpler and much more correct approach is to model the y variable as a function of it's past and as a function of user-suggested input series ( including any necessary lags ) and also to incorporate any empirically identified Intervention Series such as Pulses, Level Shifts, Seasonal Pulses and or Local Time Trends. This is known by many names e.g. Transfer Function and ARMAX to name two.

  • $\begingroup$ I am looking for a way to "summarize" trending in balances to include this information into a subsequent model (with a binary target). Would your description above produce something that can be used in this fashion? $\endgroup$ – B_Miner Sep 20 '11 at 14:13
  • $\begingroup$ @B_Miner The forecast using the approach I suggested would be a real number which you could then convert to a binary e.g. if forecast is less than $10,000 set = 0 ELSE set =1 . If you wish to post an actual data matrix containing nob observations on N Series AND k predictions ( length of forecast ) for each of the user-specified input/causal series . Alternatively if you don't have future values for your user-specified causals one could develop (ARIMA) forecasts for these supposedly exogenous series and then use them in the Transfer Function to obtain forecasts for the dependent series. $\endgroup$ – IrishStat Sep 20 '11 at 14:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.