Illustration of the simulations"

knitr::opts_chunk$set(echo = TRUE, eval = FALSE)

Load packages and auxiliary functions

library("fdaPOIFD")

# auxiliary functions to generate Gaussian processes
Cov_exponential <- function(X1, X2, alpha = NULL, beta = NULL){
  x.aux <- expand.grid(i = X1, j = X2)

  cov <- alpha*exp(-beta*abs(x.aux$i - x.aux$j))

  Sigma <- matrix(cov, nrow = length(X1))
  return(Sigma)
}

Cov_Periodic <- function(X1, X2, sigma = NULL, p = NULL, l = NULL) {
  #p = period, l = wiggles, sigma = noise
  Sigma <- matrix(rep(0, length(X1)*length(X2)), nrow=length(X1))
  for (i in 1:nrow(Sigma)) {
    for (j in 1:ncol(Sigma)) {
      Sigma[i,j] <- sigma*exp(-(2*(sin(pi*abs(X1[i]-X2[j])/(p)))^2)/(l^2))
    }
  }
  return(Sigma)
}

Generate data

n <- 100
p <- 200

#parameters
time_grid <- seq(0, 1, length.out = p)
sigmaPeriodic <- Cov_Periodic(time_grid, time_grid, sigma = 3, p = 1 , l = 0.5)
sigmaExpo <- Cov_exponential(time_grid, time_grid, alpha = 0.5, beta = 5)

# Generate the random mean
centerline <- MASS::mvrnorm(1, rep(0, p), sigmaPeriodic)

# Generate the random sample
dataY <- FastGP::rcpp_rmvnorm(n, sigmaExpo, centerline)
data <- t(dataY)
colnames(data) <- as.character(c(1:n))
rownames(data) <- round(time_grid, digits=5)


dataPOFD <- intervalPOFD(data, observability = 0.5, ninterval = 4, pIncomplete = 0.75)

Depth computations

Depth on fully observed data

depth_complete <- POIFD(dataPOFD$fd, type = "MBD")

Notice that the function POIFD on fully observed data coincides with the unweighted IFD.

POIFD

depth_POIFD <- POIFD(dataPOFD$pofd, type = "MBD")

Depth with reconstructed curves by Goldsmith (2013)

Install and load the Rpackage refund.

library("refund")

Fit.IV <- ccb.fpc(t(dataPOFD$pofd))

goldsmith_reconstruction <- t(Fit.IV$Yhat)
depth_goldsmith <- POIFD(goldsmith_reconstruction, type = "MBD")

Notice that the function POIFD on reconstructed data coincides with the unweighted IFD.

Depth with reconstructed curves by Kraus (2015)

Kraus (2015) was implemented using the function pred.missfd obtained from the code at https://is.muni.cz/www/david.kraus/web_files/papers/partial_fda_code.zip.

Depth with reconstructed curves by Liebl (2020)

Liebl (2020) was implemented using the function reconstructKneipLiebl obtained from the code at https://github.com/lidom/ReconstPoFD



Try the fdaPOIFD package in your browser

Any scripts or data that you put into this service are public.

fdaPOIFD documentation built on May 16, 2022, 5:05 p.m.