diff options
Diffstat (limited to 'R')
-rw-r--r-- | R/lod.R | 20 | ||||
-rw-r--r-- | R/loq.R | 20 |
2 files changed, 29 insertions, 11 deletions
@@ -1,24 +1,22 @@ -lod <- function(object, ..., alpha = 0.05, k = 1, n = 1, w = "auto") +lod <- function(object, ..., alpha = 0.05, beta = 0.05, n = 1, w = "auto") { UseMethod("lod") } -loq <- function(object, ..., alpha = 0.05, k = 3, n = 1, w = "auto") -{ - lod(object = object, alpha = alpha, k = k, n = n, w = w) -} - -lod.default <- function(object, ..., alpha = 0.05, k = 1, n = 1, w = "auto") +lod.default <- function(object, ..., alpha = 0.05, beta = 0.05, + n = 1, w = "auto") { stop("lod is only implemented for univariate lm objects.") } -lod.lm <- function(object, ..., alpha = 0.05, k = 1, n = 1, w = "auto") +lod.lm <- function(object, ..., alpha = 0.05, beta = 0.05, n = 1, w = "auto") { f <- function(x) { - y <- predict(object, data.frame(x = x)) - p <- inverse.predict(object, rep(y, n), ws = w, alpha = alpha) - (p[["Prediction"]] - k * p[["Confidence"]])^2 + y1 <- predict(object, data.frame(x = 0), interval="prediction", + level = 1 - alpha) + y2 <- predict(object, data.frame(x = x), interval="prediction", + level = 1 - beta) + (y2[[1,"lwr"]] - y1[[1,"upr"]])^2 } tmp <- optimize(f,interval=c(0,max(object$model$x))) return(tmp$minimum) @@ -0,0 +1,20 @@ +loq <- function(object, ..., alpha = 0.05, k = 3, n = 1, w = "auto") +{ + UseMethod("loq") +} + +loq.default <- function(object, ..., alpha = 0.05, k = 3, n = 1, w = "auto") +{ + stop("lod is only implemented for univariate lm objects.") +} + +loq.lm <- function(object, ..., alpha = 0.05, k = 3, n = 1, w = "auto") +{ + f <- function(x) { + y <- predict(object, data.frame(x = x)) + p <- inverse.predict(object, rep(y, n), ws = w, alpha = alpha) + (p[["Prediction"]] - k * p[["Confidence"]])^2 + } + tmp <- optimize(f,interval=c(0,max(object$model$x))) + return(tmp$minimum) +} |