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")

Imagem inline 1


Éder Comunello <comunello.eder@gmail.com>
Dourados, MS - [22 16.5'S, 54 49'W]

Em 5 de maio de 2015 13:57, Wagner Wolff <wwolff@usp.br> escreveu:
Olá Éder vou tentar esclarecer com seu exemplo, minhas modificações estão em negrito.

require(mtsdi)
data(miss)
notNA   <- which(!is.na(miss), arr.ind=T)  ### valores presentes
set.seed(333); sel.pos <- notNA[sample(nrow(notNA), 20),] ### reservando 20 valores
sel.obs <- miss[sel.pos]                   ### valores reservados

miss2 <- miss
miss2[sel.pos] <- NA                       ### "exclui" valores reservados
f <- ~c31+c32+c33+c34+c35
i <- mnimput(f,miss2,eps=1e-3,ts=TRUE, method="spline",sp.control=list(df=c(7,7,7,7,7)))
summary(i)
imput <- data.frame(predict(i))
sel.pre <- imput[sel.pos]                  ### predição referente aos 20 valores reservados

cbind(sel.pre, sel.obs)                    ### comparação
library(hydroGOF)
ggof(sel.pre,sel.obs)

fun.cal <- splinefun(sel.pre,sel.obs)
     ## função para calibrar
sel.pre.cal <- fun.cal(sel.obs)
           ## calcular valores preditos após calibração

## Assim usaria a função fun.cal para calibrar outros valores imputados do mesmo banco de dados.
Entretanto, não foi útil, pois quando uso para outros valores imputados houve aumento no erro

Em 5 de maio de 2015 10:40, Éder Comunello <comunello.eder@gmail.com> escreveu:
Wagner, bom dia!

Não entendi exatamente o que você está buscando. Teria dados pra um exemplo mais prático?

Por exemplo, você quer completar dados de uma série de chuva  em particular e dispõe dados de quatro estações próximas, assumindo algum grau de correlação/covariância entre elas? Sua preocupação é saber quão "boa" foi a predição ou algo assim?


Éder Comunello <comunello.eder@gmail.com>
Dourados, MS - [22 16.5'S, 54 49'W]



_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.


_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.