R/int_get_normal_noise_classifier.R

Defines functions transform_normal_sensitivity_to_accuracy transform_normal_accuracy_to_sensitivity get_normal_noise_classifier

get_normal_noise_classifier <- function(sensitivity = NULL,
                                       accuracy    = NULL){
  if (is.null(sensitivity))
    sensitivity <- transform_normal_accuracy_to_sensitivity(accuracy)

  if (is.null(accuracy))
    accuracy <- transform_normal_sensitivity_to_accuracy(sensitivity)

  prior <- c(.5, .5)
  if (sensitivity == 0)         return(as.matrix(prior))
  if (is.infinite(sensitivity)) return(diag(prior))

  x  <- seq(-7 - sensitivity, 7 + sensitivity, length.out = 5000)
  delta <- x[2] - x[1]
  f1 <- dnorm(x, mean = -sensitivity/2) * delta * 1/2
  f2 <- dnorm(x, mean = +sensitivity/2) * delta * 1/2

  classifier <- rbind(f1, f2)
  classifier
}

transform_normal_accuracy_to_sensitivity <- function(accuracy){
  sensitivity <- 2 * qnorm(accuracy)
  sensitivity
}

transform_normal_sensitivity_to_accuracy <- function(sensitivity){
  accuracy <- pnorm(sensitivity / 2)
  accuracy
}

Try the statConfR package in your browser

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

statConfR documentation built on April 3, 2025, 5:35 p.m.