1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#' @export
predict.idpoly <- function(x,data,nahead=1){
y <- outputData(z); u<- inputData(z)
G <- signal::Arma(b=c(rep(0,x$ioDelay),x$B),
a= as.numeric(polynom::polynomial(x$A)*
polynom::polynomial(x$F1)))
if(x$type=="oe" || nahead==Inf){
ypred <- signal::filter(G,u)
} else{
Hden <- as.numeric(polynom::polynomial(x$A)*polynom::polynomial(x$D))
Hinv <- signal::Arma(b=Hden,a=x$C)
}
return(ypred)
}
#' @export
predict.estpoly <- function(x,newdata=NULL,nahead=1){
if(is.null(newdata)&& nahead==1){
return(fitted(x))
} else{
model <- x$sys
if(is.null(newdata)){
y <- fitted(x)+resid(x)
u <- x$input
z <- idframe(y,u,Ts = deltat(y),start=start(y))
} else{
z <- newdata
}
predict(model,z,nahead)
}
}
|