Wagner, boa tarde!
Eu não recomendo usar splinefun() porque a calibração do modelo feita na execução de mnimput() é bem mais sofisticada. O objeto imput é o próprio objeto miss2 com as falhas preenchidas com base na covariância e comportamento temporal das séries. Já é o produto final, não precisa ajustar por splinefun().
Se você fizer imput-miss2 verá que a diferença é 0 para todos valores iniciais e um novo valor será imputado para todos os casos onde havia NA.
O procedimento que postei faz uma avaliação geral da qualidade do ajuste pras 5 séries porque exige menor quantidade de pontos de teste. Daria pra fazer uma avaliação de cada série, mas teria que reservar uma quantidade significativa de pontos de cada série, o que pode impactar no modelo.
Além do mais, se você utilizar splinefun() pra predizer valores utilizados na calibração, vai retornar os próprios valores utilizados...
fun <- splinefun(sel.obs, sel.pre)
all.equal(fun(sel.obs), sel.pre) ### [1] TRUE
Notar que:
args(splinefun)
### function (x, y = NULL, method = c("fmm", "periodic", "natural",
### "monoH.FC", "hyman"), ties = mean)
A forma que segue é coerente, mas os resultados não são tão animadores quanto os retornados por mtsdi::mnimput()
fun2 <- splinefun(miss[notNA]) ### ajusta uma spline em função dos dados disponíveis
sel.pre2 <- fun2(sel.obs) ### usa a splinefun pra estimar os dados reservados
ggof(sel.pre2,sel.obs) ### avalia predições comparando com dados reservados ("verdade")