A fellow PhD student has monthly data on temperatures (T) and precipitation levels (P) for a certain agricultural region. He would like to use it to predict total farm revenues (Y) for year t:


Problem: the temperatures and precipitation levels of adjacent months are all highly correlated.

He is thinking about first doing two factor analyses.

  • One with the temperature variables, which yields 3 factors (low, medium and high temperature months).
  • One with the precipitation variables, which yields 2 factors (a dry and a wet season).

He can then run the model:


Where $F_{1,t}^P$, for example, is the first factor of the precipitation variables. The collinearity issue is gone, since the factors are orthogonal.

But he would like to recover the effects of the individual months. Suppose the loadings of the precipitation factors are:



The effect on farm revenues of a unit increase in the precipitation of January would then be:

$(\delta_1\times l_1)+(\delta_2\times l'_1)$

Is there anything wrong with this approach?


A better idea might be assuming the time effect (of temperature, precipitation, ) is smooth. In the following I will only include the precipitation terms in the regression, the other terms can be treated similarly. Write the model as $$ Y_t=\alpha_0+\alpha_{Jan}T_{Jan,t}+...+\alpha_{Dec}T_{Dec,t}+\dotsm $$ or, in matrix form as $ Y=\alpha_0 + T \alpha +\dotsm$. Now, the temperature effects for each month can be assumed to vary slowly (that is, smoothly), for instance, if this is an area snowcovered in winter, agriproduction will be low (or only dependent on stored foreage) so temperature (and precip) should be irrelevant, coefficients close to zero. This can be represented mathematically by spline function (regression splines, natural splines, or in this case maybe periodic splines). That gives a natural way of doing dimension reduction, as part of the modeling and not only as preprocessing.

Assuming $M$ spline basis functions we can represent this as $\alpha=H\theta$ where $H$ is a matrix of spline basis functions of size $12\times M$ and $\theta$ a new coefficient vector of size $M\times 1$. Element $h_{jm}$ of $H$ is basis function $m$ evaluated at month $j$. Inserting this for $\alpha$ above we get $$ Y=\alpha_0 + T H \theta +\dotsm $$ so implementation is easy: Just postmultiply the (temperature) data matrix $T$ with $H$, and then do the usual linear regression.

A full example of this method is in Hastie, Tibshirani & Friedman: The Elements of Statistical Learning second edition, page 148, example of phoneme recognition.


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.