R/pval_chisq.R

#' @title P-value for proposed standard deviation (variance) of a population
#' @description Calculates the p-value for a proposed standard deviation (variance) of a population (ChiSquare distribution).
#' @param s Sample standard deviation
#' @param n Sample size
#' @param sigma Population standard deviation
#' @param side To either get a two-tail or one-tail p-value (Default is "two")
#' @export
#' @return P-value
#' @examples
#' s <- 0.535
#' n <- 10
#' sig <- 1
#' pval_chisq(s, n, sig)
#'
pval_chisq <- function (s, n, sigma, side = c("two", "one")){
  v = n-1
  chi = (v * s^2) / sigma^2
  if (chi < v) {
    pval = stats::pchisq(chi, v, lower.tail = T) * 2
  } else {
    pval = stats::pchisq(chi, v, lower.tail = F) * 2
  }
  if (any(side == "two")) {
    pval = signif(pval, 3)
  } else {
    pval = signif(pval/2, 3)
  }
  return(pval)
}
maxgav13/GMisc documentation built on June 12, 2022, 3:48 a.m.