Tal vez es solo que estoy cansado, pero tengo problemas para tratar de entender el algoritmo de Regresión progresiva por etapas. De "Elementos del aprendizaje estadístico" página 60:
La regresión progresiva hacia adelante (FS) está aún más restringida que la regresión progresiva hacia adelante. Comienza como una regresión progresiva, con una intersección igual a [la media de] y, y predictores centrados con coeficientes inicialmente todos 0.
En cada paso, el algoritmo identifica la variable más correlacionada con el residual actual. Luego calcula el coeficiente de regresión lineal simple del residual en esta variable elegida, y luego lo agrega al coeficiente actual para esa variable. Esto continúa hasta que ninguna de las variables tenga correlación con los residuos, es decir, los mínimos cuadrados se ajustan cuando N> p.
Entonces, ¿es este el algoritmo ?:
b[1]=mean(y)
b[2..n]=0
r=(y-X*b)
index, maxCorr = max(transpose(r)*X)
while(abs(maxCorr) > someThreshold)
b[index]=b[index]+regress(r,X[1..n][index])
r=(y-X*b)
index, maxCorr = max(transpose(r)*X)
Donde b es un vector columna de los coeficientes, X es una matriz de entradas e y es un vector columna de salidas. Es decir y = X * b + error.
Preguntando porque este algoritmo me da solo unos pocos coeficientes distintos de cero en el conjunto de datos en el que lo estoy probando (con umbral = .0001), y la precisión de la predicción no es muy buena.