View source: R/covlmc_predict.R
predict.covlmc | R Documentation |
This function computes one step ahead predictions for a discrete time series based on a VLMC with covariates.
## S3 method for class 'covlmc'
predict(
object,
newdata,
newcov,
type = c("raw", "probs"),
final_pred = TRUE,
...
)
object |
a fitted covlmc object. |
newdata |
a time series adapted to the covlmc object. |
newcov |
a data frame with the new values for the covariates. |
type |
character indicating the type of prediction required. The default
|
final_pred |
if |
... |
additional arguments. |
Given a time series X
, at time step t
, a context is computed using
observations from X[1]
to X[t-1]
(see the dedicated section). The
prediction is then the most probable state for X[t]
given this logistic
model of the context and the corresponding values of the covariates. The time
series of predictions is returned by the function when type="raw"
(default
case).
When type="probs"
, the function returns of the probabilities of each state
for X[t]
as estimated by the logistic models. Those probabilities are
returned as a matrix of probabilities with column names given by the state
names.
A vector of predictions if type="raw"
or a matrix of state
probabilities if type="probs"
.
As explained in details in loglikelihood.covlmc()
documentation and in
the dedicated vignette("likelihood", package = "mixvlmc")
, the first
initial values of a time series do not in general have a proper context for
a COVLMC with a non zero order. In order to predict something meaningful
for those values, we rely on the notion of extended context defined in the
documents mentioned above. This follows the same logic as using
loglikelihood.covlmc()
with the parameter initial="extended"
. All
covlmc functions that need to manipulate initial values with no proper
context use the same approach.
pc <- powerconsumption[powerconsumption$week == 10, ]
dts <- cut(pc$active_power, breaks = c(0, quantile(pc$active_power, probs = c(0.2, 0.7, 1))))
dts_cov <- data.frame(day_night = (pc$hour >= 7 & pc$hour <= 17))
m_cov <- covlmc(dts, dts_cov, min_size = 5, alpha = 0.5)
dts_probs <- predict(m_cov, dts[1:144], dts_cov[1:144, , drop = FALSE], type = "probs")
dts_preds <- predict(m_cov, dts[1:144], dts_cov[1:144, , drop = FALSE],
type = "raw", final_pred = FALSE
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.