aboutsummaryrefslogtreecommitdiff
path: root/R/lod.R
diff options
context:
space:
mode:
authorranke <ranke@5fad18fb-23f0-0310-ab10-e59a3bee62b4>2006-05-16 19:49:08 +0000
committerranke <ranke@5fad18fb-23f0-0310-ab10-e59a3bee62b4>2006-05-16 19:49:08 +0000
commit49eff36596275b1dbb5e07c97fb93db182baa27e (patch)
treedee5073b7ef48bee7e6fa9fc593408f2ad3d2736 /R/lod.R
parent0973370a6e27952df81aaae2a05104195e3bf633 (diff)
- Took loq and lod apart again. lod is now an implemantation of Massart, loq is
an own variant of DIN 32645 (relative error on x axis). - Partly make functions work on models where x and y are named different from "x" and "y" (loq to be done). git-svn-id: http://kriemhild.uft.uni-bremen.de/svn/chemCal@11 5fad18fb-23f0-0310-ab10-e59a3bee62b4
Diffstat (limited to 'R/lod.R')
-rw-r--r--R/lod.R23
1 files changed, 15 insertions, 8 deletions
diff --git a/R/lod.R b/R/lod.R
index 1bb7981..73f5353 100644
--- a/R/lod.R
+++ b/R/lod.R
@@ -10,18 +10,25 @@ lod.default <- function(object, ..., alpha = 0.05, beta = 0.05)
lod.lm <- function(object, ..., alpha = 0.05, beta = 0.05)
{
- y0 <- predict(object, data.frame(x = 0), interval="prediction",
- level = 1 - alpha)
+ xname <- names(object$model)[[2]]
+ newdata <- data.frame(0)
+ names(newdata) <- xname
+ y0 <- predict(object, newdata, interval="prediction",
+ level = 1 - 2 * alpha )
yc <- y0[[1,"upr"]]
xc <- inverse.predict(object,yc)[["Prediction"]]
f <- function(x)
{
- # Here I need the variance of y values as a function of x or
- # y values
- # Strangely, setting the confidence level to 0.5 does not result
- # in a zero confidence or prediction interval
+ newdata <- data.frame(x)
+ names(newdata) <- xname
+ pi.y <- predict(object, newdata, interval = "prediction",
+ level = 1 - 2 * beta)
+ yd <- pi.y[[1,"lwr"]]
+ (yd - yc)^2
}
- lod.x <- optimize(f,interval=c(0,max(object$model$x)))$minimum
- lod.y <- predict(object, data.frame(x = lod.x))
+ lod.x <- optimize(f,interval=c(0,max(object$model[[xname]])))$minimum
+ newdata <- data.frame(x = lod.x)
+ names(lod.x) <- xname
+ lod.y <- predict(object, data.frame(lod.x))
return(list(x = lod.x, y = lod.y))
}

Contact - Imprint