Pregunta: Estoy probando funciones en un paquete que estoy desarrollando y me gustaría saber si puede sugerir algunas pautas generales sobre cómo hacerlo. Las funciones incluyen una amplia gama de modelos estadísticos, transformaciones, subconjuntos y trazado. ¿Hay una prueba "estándar" o suficiente?directrices para probar una función estadística en R?
Un ejemplo: la prueba que me impulsó esta pregunta,
La función dtheta:
dtheta <- function(x) {
## find the quantile of the mean
q.mean <- mean(mean(x) >= x)
## find the quantiles of ucl and lcl (q.mean +/- 0.15)
q.ucl <- q.mean + 0.15
q.lcl <- q.mean - 0.15
qs <- c(q.lcl, q.mean, q.ucl)
## find the lcl, mean, and ucl of the vector
c(quantile(x,qs), var(x), sqrt(var(x))/mean(x))
}
Paso 1: hacer que los datos de prueba:
set.seed(100) # per Dirk's recommendation
test <- rnorm(100000,10,1)
Paso 2: compare la salida esperada de la función con la salida real de la función:
expected <- quantile(test, c(0.35, 0.65, 0.5))
actual <- dtheta(test)[1:3]
signif(expected,2) %in% signif(actual,2)
Paso 3: tal vez hacer otra prueba
test2 <- runif(100000, 0, 100)
expected <- c(35, 50, 65)
actual <- dtheta(test2)
expected %in% signif(actual,2)
Paso 4: si es verdad, considere la función 'funcional'
+1 Joris para la entrada de prueba. Yo agregaría para probar la * salida * también. La salida de sus funciones debe ser * predecible * y * definida con precisión *. Desafortunadamente en este punto, la funcionalidad básica de R a veces solo apesta. Nunca se sabe exactamente a qué devuelve la función a menos que vaya a la documentación de nuevo, y nuevamente, y nuevamente ... – VitoshKa