https://github.com/cran/ftsa
Tip revision: 76bcb1ac60fa6c78b0d3b9a33083a98d20706ca4 authored by Han Lin Shang on 25 September 2020, 13:00:09 UTC
version 5.9
version 5.9
Tip revision: 76bcb1a
wpcr.R
wpcr <- function(data, ncomp, method = c("ets", "rw"), h, beta = NULL, median = FALSE, transform = FALSE)
{
n = ncol(data)
q = matrix(,n,1)
for(i in 1:n){
q[i,] = beta * (1 - beta)^(i - 1)
}
weight = diag(rev(q))
newdata = scale(t(data), scale = FALSE)
if(median == TRUE){
mdata = l1median(t(data))
}
if(median == FALSE){
mdata = apply(data, 1, mean)
}
new = weight %*% newdata
load = svd(new)$v[,1:ncomp]
sco = newdata %*% load
fore = matrix(NA, ncomp, h)
if(method == "ets")
{
for(i in 1:ncomp)
{
fore[i,] = forecast(ets(sco[,i]), h = h)$mean
}
}
if(method == "rw")
{
for(i in 1:ncomp)
{
fore[i,] = rwf(sco[,i], h = h, drift = FALSE)$mean
}
}
if(transform == TRUE)
{
forecast = exp(load %*% fore + mdata)
}
if(transform == FALSE)
{
forecast = load %*% fore + mdata
}
return(forecast)
}