Subscribe Bookmark RSS Feed

Nonlinear regression with unequally spaced data

I am trying to fit a nonlinear function to data that is only a function of time but the time spacing between points is not constant. These are voltage measurements that were collected with a short time interval at first because the voltage was changing rapidly. This was followed by three other time periods where the time spacing between points was constant within each time period but the spacing got progressively larger as the voltage became more stable. All of the data has similar error bars in voltage.

My question is: will the nonlinear regression algorithm in JMP 8.0.2 work properly with unequally spaced data?

I have used it for fitting some data and it works fairly well. However, it sometimes will not fit the data with the largest time interval very well. It seems to me that the shorter time intervals will effectively be weighted more than the long time intervals because there are more data points per unit time. So I have tried compensating for this by using a weighting function that is 1 for the first interval and then progressively gets larger in proportion to the time interval. This seems to give a better fit (although the SSE is larger) but I haven't analyzed much data yet this way. I am just wondering if I am on the right track?
There's no requirement for the time points to be equally spaced, any more than there is in an ordinary linear regression: the only drawback will be that the regression is likely to be more heavily influenced by any time points that are positioned well away from the majority, i.e. in your case the ones to the right of the graph. You might be able to mitigate the effects of that by logging your time variable before performing the analysis so that the points are more evenly spaced along your time axis; that is, you'd end up with a nonlinear equation relating voltage to log(t) as opposed to just t. It needn't necessarily be a log: any transformation that linearized the scale would do, so for example if you were recording data at 1, 4, 9, 16, 25, 36 etc seconds, a square root would be the obvious one. You might also want to consider transforming your dependent variable (i.e. the voltage) if its variability seems to be dependent upon time in some way, however you've already noted that the error bars don't seem to be changing much, so that probably isn't necessary.