Skip to content
Snippets Groups Projects
Select Git revision
  • f13231e0654d8564b1511da6c83ff66e719713ad
  • master default protected
  • feature/quantileforecast
  • develop
  • add_kseq
5 results

lm_fit.Rd

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    lm_fit.Rd 2.81 KiB
    % Generated by roxygen2: do not edit by hand
    % Please edit documentation in R/lm_fit.R
    \name{lm_fit}
    \alias{lm_fit}
    \title{Fit an onlineforecast model with \code{\link{lm}}}
    \usage{
    lm_fit(
      prm = NA,
      model,
      data,
      scorefun = NA,
      returnanalysis = TRUE,
      printout = TRUE
    )
    }
    \arguments{
    \item{prm}{as numeric with the parameters to be used when fitting.}
    
    \item{model}{object of class forecastmodel with the model to be fitted.}
    
    \item{data}{as data.list with the data to fit the model on.}
    
    \item{scorefun}{Optional. If scorefun is given, e.g. \code{\link{rmse}}, then the value of this is also returned.}
    
    \item{returnanalysis}{as logical determining if the analysis should be returned. See below.}
    
    \item{printout}{Defaults to TRUE. Prints the parameters for model.}
    }
    \value{
    Depends on:
    
        - If \code{returnanalysis} is TRUE a list containing:
    
            * \code{Yhat}: data.frame with forecasts for \code{model$kseq} horizons.
    
            * \code{model}: The forecastmodel object cloned deep, so can be modified without changing the original object.
    
            * \code{data}: data.list with the data used, see examples on how to obtain the transformed data.
    
            * \code{Lfitval}: a character "Find the fits in model$Lfits", it's a list with the lm fits for each horizon.
    
            * \code{scoreval}: data.frame with the scorefun result on each horizon (only scoreperiod is included).
    
        - If \code{returnanalysis} is FALSE (and \code{scorefun} is given): The sum of the score function on all horizons (specified with model$kseq).
    }
    \description{
    Fit a linear regression model given a onlineforecast model, seperately for each prediction horizon
    }
    \examples{
    
    # Take data
    D <- subset(Dbuilding, c("2010-12-15", "2011-01-01"))
    D$y <- D$heatload
    # Define a simple model 
    model <- forecastmodel$new()
    model$output <- "y"
    model$add_inputs(Ta = "lp(Ta, a1=0.9)",
                     mu = "one()")
    
    # Before fitting the model, define which points to include in the evaluation of the score function
    D$scoreperiod <- in_range("2010-12-20", D$t)
    # And the sequence of horizons to fit for
    model$kseq <- 1:6
    
    # Now we can fit the model with RLS and get the model validation analysis data
    fit <- lm_fit(prm=NA, model=model, data=D)
    # What did we get back?
    names(fit)
    class(fit)
    # The one-step forecast