R/CVS_limits.R

#' Limites de références
#' 
#' Limites de références selon un CVS de référence.
#'
#' @param x data.
#' @param obs Nom de la colonne indiquant le nombre d'observations.
#' @param cvs CVS de référence.
#'
#' @return liste avec la valeur de la limite inférieure et de la limite supérieure.
#' @keywords internal
#' @import data.table
#' @export
CVS_limits <- function(x, obs, cvs){
  
  dt <- as.data.table(x)
  cols <- c(obs, "expj", "RTj")  # nom des colonnes à sélectionner
  dt <- dt[, ..cols]  # sélection des colonnes
  setnames(dt, obs, "obsj")  # renommer colonne des obs
  dt <- x[, .(obsj, expj, RTj)]  # sélection des colonnes
  
  cvs <- cvs / 100  # convertir en pourcentage : 3 = 0.03
  alpha <- mean(dt$RTj) / cvs
  nu <- mean(x$RTj) * alpha
  for(i in 1:30){
    set(dt, NULL, "theta", (nu + dt$obsj) / (alpha + dt$expj))
    var <- (1 + (alpha / dt$expj)) * (dt$theta - mean(dt$theta))^2
    alpha <- mean(dt$theta) / cvs
    nu <- mean(dt$theta) * alpha
  }
  
  limits <- list(
    liminf = qgamma(0.025, nu, alpha),  # limite inférieure
    limsup = qgamma(0.975, nu, alpha)  # limite supérieure
  )
  return(limits)
}
INESSSQC/variation documentation built on July 3, 2019, 11:33 a.m.