Eu posso estar enganado então me corrijam em caso afirmativo. O leave-ONE-out é mais simples do que imagina. Grosseiramente falando, crie um laço for para deixar um caso de fora e ajuste o modelo. Depois estude uma medida de ajuste. No caso de lm, não requer de fato fazer a exaustiva tarefa de ajustar n modelos (deixando um caso de fora), pois se chega as medidas leave-one-out por projeções matriciais, etc. Mas num caso mais geral é algo como:
da ## seu data.frame
L <- vector(mode="list", length=nrow(da))
for(i in 1:nrow(da)){
L[[i]] <- sua_funcao_R(..., data=da[-i,])
}
## Medidas de deviance leave-one-out.
sapply(L, deviance)
## log-veross leave-one-out.
sapply(L, logLik)
Código não testado.
À disposição.
Walmes.