Helio, bom dia!

Rodei seu script, mas só atentei pra parte do AIC e BIC. O cálculo me parece estar correto.

Acredito que o procedimento também, sendo aplicado AIC e BIC em um objeto resultante de 'lm' (data~predicted oriundos da validação cruzada).

O BIC é uma derivação do AIC. Tanto que:

BIC(x) == AIC(x, k = log(nobs(object))) ou

BIC(reglin_ols) == AIC(reglin_ols, k = log(31)) adaptando para um de seus procedimentos (31 observações).

Fiz o teste com seus dados e está OK...

A diferença entre AIC e BIC é notada com a diferenciação quanto ao número de parâmetros do modelo. No teu caso, você compara um mesmo modelo linear simples sucessivas vezes, não variando o número de parâmetros. Fora isso, por ser um modelo simples não deve haver diferença na penalização por AIC ou BIC, diferindo apenas o cálculo inicial dos índices.

Isso é só um 'palpite' e precisaria dar uma estudada na teoria dos índices pra entender melhor. Talvez algum dos colegas da lista possa contribuir mais nesse sentido...


================================================
Éder Comunello

Ph.D. Student in Agricultural Systems Engineering (USP/ESALQ)
Piracicaba, SP, Brazil [22 42.7'S, 47 37.8'W]

Researcher at Embrapa Western Region Agriculture
Dourados, MS, Brazil [22 16.5'S, 54 49.0'W]
================================================
UTC-03:00