I've been fitting some time series data using a Poisson general additive model using SAS's <code>PROC GAM</code>. Generally speaking, I've been having it's built-in generalized cross-validation procedure generate at least a decent "starting point" for my single spline, which is a non-linear function of time along with a single parametric term (the one I'm actually interested in). So far, it's worked rather swimmingly, with the exception of one of my data sets. There are 132 observations in that data set, and GCV suggests a spline of 128 degrees of freedom. That seems...wrong. Very wrong. More importantly, it's also not at all stable. I tried a second approach, using something like a "Change in Estimate" criteria to stop adding degrees of freedom when the estimate of the parametric term stops changing because why continue to add control if nothing's different? The problem is that the estimate isn't at all stable. I tried the following degrees of freedom, and as you can see, the parametric term bounces around wildly: DF: Parametric Estimate: 1 -0.76903 2 -0.56308 3 -0.47103 4 -0.43631 5 -0.33108 6 -0.1495 7 0.0743 8 0.33459 9 0.62413 10 0.92161 15 1.88763 20 1.98869 30 2.5223 40-60 had convergence issues 70 7.5497 80 7.22267 90 6.71618 100 5.83808 110 4.61436 128 1.32347 I've no intuition at all about what I should be using in terms of df for this particular bit of data. Any other ideas for how to choose a df? Should I be looking at the significance of the spline? Doing some more looking between df = 10 and df = 15, it looks like df = 12 is the closest you can come to the estimate generated by 128 and still be in the single-digit numbers. Along with the linear term, the intercept and the single parametric term, that feels like a pretty heavily saturated model. Is it justifiable to just go with 12? As a second update, changing the smoothing from <code>spline(t)</code> to <code>loess(t)</code> is resulting in much more well-behaved df estimates - should I just switch to loess smoothing?