Data Smoothing by Interpolating Cubic Splines

We construct the explicit form of clamped cubic interpolating spline (both uniform - knots are equidistant and non-uniform - knots are arbitrary). Using this form, we propose a linear regression model suitable for real data smoothing.


ICSsmoothing

Library for data smoothing using interpolating splines

Basic usage examples

Load the library if installed.

library("ICSsmoothing")

The library consists one testing dataframe with two numeric columns x and y.

  • CERN, where CERN$x = [1, 2, ..., 277],

and five public functions

  • cics_unif_explicit(...) - create and plot the uniform explicit spline,

    cics_unif_explicit(
      uumin = CERN$x[1], # start spline at this x-coordinate
      uumax = CERN$x[10], # finish spline at this x-coordinate
      yy = CERN$y[1:10], # y-coordinates for spline control points
      d = c(0,0), # derivateves at points (uumin, yy[1]) and (uumax, yy[length(yy)])
      xlab="X axis", # x-axis label
      ylab="Y axis" # y-axis label
    )
    
  • cics_unif_explicit_smooth(...) - create and plot the uniform explicit spline as smoothing curve,

    cics_unif_explicit_smooth(
      xx = CERN$x, # x-coordinates to smooth
      yy = CERN$y, # y-coordinates to smooth
      k = 21, # number of components of a smoothing spline
      d = c(0, 1), # derivateves at points (uumin, yy[1]) and (uumax, yy[length(yy)])
      xlab = "X axis", # x-axis label
      ylab = "Y axis"
    )
    
  • cics_explicit(...) - create and plot the explicit spline,

    cics_explicit(
      uu = c(1, 2.2, 3, 3.8, 7), # x-coordinates for spline control points
      yy = CERN$y[1:5], # y-coordinates for spline control points
      d = c(0,0), # derivateves at points (uu[1], yy[1]) and (uu[length(uu)], yy[length(yy)])
      xlab="X axis", # x-axis label
      ylab="Y axis" # y-axis label
    )
    
  • cics_explicit_smooth(...) - create and plot the explicit spline as smoothing curve,

    cics_explicit_smooth(
      xx = CERN$x, # x-coordinates to smooth
      yy = CERN$y, # y-coordinates to smooth
      uu = c(1, 4, 7, 20, 41, 57, 86, 92, 101, 121, 220, 245, 261, 277), # # x-coordinates for spline control points. uu[1] == xx[1] and uu[length(uu)] == xx[length(xx)]
      d = c(0, 1), # derivateves at points (uumin, yy[1]) and (uumax, yy[length(yy)])
      xlab = "X axis", # x-axis label
      ylab = "Y axis"
    )
    
  • forecast_demo() - demo showing a usage of an explicit spline to forecast some data. See the commented source code of the function for more details about the functionality.

Building from source

Prerequisites

  • [Rtools]
  • LaTeX

Depends on R packages

  • devtools
  • roxygen2
  • ggplot2

Installation

On Windows Windows run in R console (or RStudio)

install.packages("Rtools", force = TRUE)
library("Rtools")

On Linux (Ubuntu) install first these packages

sudo apt install libxml2-dev libssl-dev libcurl4-openssl-dev libopenblas-dev r-base r-base-dev

In both cases then run in R console

devtools::install_github("klutometis/roxygen", force = TRUE)
library(roxygen2)
install.packages("digest")
library(digest)
install.packages("polynom")
library(polynom)
install.packages("ggplot2")
library(ggplot2)

Open system terminal in the parent directory of the package and type

R CMD build ICSsmoothing
R CMD install ICSsmoothing_1.2.8.tar.gz

OR Open RStudio and install this library using top menu button Build->Install and Restart.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("ICSsmoothing")

1.2.10 by Lubomir Antoni, 10 months ago


Browse source code at https://github.com/cran/ICSsmoothing


Authors: Juraj Hudak [aut] , Csaba Torok [aut] , Viliam Kacala [aut] , Lubomir Antoni [aut, cre]


Documentation:   PDF Manual  


GPL-2 license


Depends on polynom, ggplot2

Suggests knitr, rmarkdown, testthat


See at CRAN