R/calc.sigsq.R

Defines functions calc.sigsq

############################
# Written by: Stephanie Chen (stchen3@ncsu.edu)
# Purpose: Calculates the error variance based on a covariance estimate (input: C)
# Updated: Aug 4, 2018

calc.sigsq <- function(data, C, times) {
  ymat <- irreg2mat.mod(data, times) # dense mat
  nsubj <- nrow(ymat)

  Rii <- t(sapply(1:nsubj, function(x) ymat[x, ]^2)) # Yij * Yij
  diag.cov <- colMeans(Rii, na.rm = T) # diag of sample cov
  diag.cov[is.nan(diag.cov)] <- 0
  ind.low <- which(abs(times - quantile(times, 0.25)) == min(abs(times - quantile(times, 0.25))))
  ind.high <- which(abs(times - quantile(times, 0.75)) == min(abs(times - quantile(times, 0.75))))

  return(max(0, Bolstad::sintegral(times[ind.low:ind.high], (diag.cov - diag(C))[ind.low:ind.high])$value))
}
ZhuolinSong/Goodness-of-fit-test-for-sparse-functional-data documentation built on April 4, 2022, 7:14 a.m.