Compute the confidence level associated with a nonparametric prediction interval that should contain at least \(k\) out of the next \(m\) future observations for a continuous distribution.

predIntNparConfLevel(n, k = m, m = 1, lpl.rank = ifelse(pi.type == "upper", 0, 1), 
    n.plus.one.minus.upl.rank = ifelse(pi.type == "lower", 0, 1), 
    pi.type = "two.sided")

Arguments

n

vector of positive integers specifying the sample sizes. Missing (NA), undefined (NaN), and infinite (Inf, -Inf) values are not allowed.

k

vector of positive integers specifying the minimum number of future observations out of m that should be contained in the prediction interval. The default value is k=m.

m

vector of positive integers specifying the number of future observations. The default value is m=1.

lpl.rank

vector of positive integers indicating the rank of the order statistic to use for the lower bound of the prediction interval. If pi.type="two-sided" or
pi.type="lower", the default value is lpl.rank=1 (implying the minimum value is used as the lower bound of the prediction interval). If pi.type="upper", this argument is set equal to 0.

n.plus.one.minus.upl.rank

vector of positive integers related to the rank of the order statistic to use for the upper bound of the prediction interval. A value of n.plus.one.minus.upl.rank=1 (the default) means use the first largest value, and in general a value of
n.plus.one.minus.upl.rank=\(i\) means use the \(i\)'th largest value. If
pi.type="lower", this argument is set equal to 0.

pi.type

character string indicating what kind of prediction interval to compute. The possible values are "two.sided" (the default), "lower", and "upper".

Details

If the arguments n, k, m, lpl.rank, and n.plus.one.minus.upl.rank are not all the same length, they are replicated to be the same length as the length of the longest argument.

The help file for predIntNpar explains how nonparametric prediction intervals are constructed and how the confidence level associated with the prediction interval is computed based on specified values for the sample size and the ranks of the order statistics used for the bounds of the prediction interval.

Value

vector of values between 0 and 1 indicating the confidence level associated with the specified nonparametric prediction interval.

References

See the help file for predIntNpar.

Author

Steven P. Millard (EnvStats@ProbStatInfo.com)

Note

See the help file for predIntNpar.

Examples

  # Look at how the confidence level of a nonparametric prediction interval 
  # increases with increasing sample size:

  seq(5, 25, by = 5) 
#> [1]  5 10 15 20 25
  #[1] 5 10 15 20 25 

  round(predIntNparConfLevel(n = seq(5, 25, by = 5)), 2) 
#> [1] 0.67 0.82 0.87 0.90 0.92
  #[1] 0.67 0.82 0.87 0.90 0.92

  #---------

  # Look at how the confidence level of a nonparametric prediction interval 
  # decreases as the number of future observations increases:

  round(predIntNparConfLevel(n = 10, m = 1:5), 2) 
#> [1] 0.82 0.68 0.58 0.49 0.43
  #[1] 0.82 0.68 0.58 0.49 0.43

  #----------

  # Look at how the confidence level of a nonparametric prediction interval 
  # decreases with minimum number of observations that must be contained within 
  # the interval (k):

  round(predIntNparConfLevel(n = 10, k = 1:5, m = 5), 2) 
#> [1] 1.00 0.98 0.92 0.76 0.43
  #[1] 1.00 0.98 0.92 0.76 0.43

  #----------

  # Look at how the confidence level of a nonparametric prediction interval 
  # decreases with the rank of the lower prediction limit:

  round(predIntNparConfLevel(n = 10, lpl.rank = 1:5), 2) 
#> [1] 0.82 0.73 0.64 0.55 0.45
  #[1] 0.82 0.73 0.64 0.55 0.45

  #==========

  # Example 18-3 of USEPA (2009, p.18-19) shows how to construct 
  # a one-sided upper nonparametric prediction interval for the next 
  # 4 future observations of trichloroethylene (TCE) at a downgradient well.  
  # The data for this example are stored in EPA.09.Ex.18.3.TCE.df.  
  # There are 6 monthly observations of TCE (ppb) at 3 background wells, 
  # and 4 monthly observations of TCE at a compliance well.

  # Look at the data
  #-----------------

  EPA.09.Ex.18.3.TCE.df
#>    Month Well  Well.type TCE.ppb.orig TCE.ppb Censored
#> 1      1 BW-1 Background           <5     5.0     TRUE
#> 2      2 BW-1 Background           <5     5.0     TRUE
#> 3      3 BW-1 Background            8     8.0    FALSE
#> 4      4 BW-1 Background           <5     5.0     TRUE
#> 5      5 BW-1 Background            9     9.0    FALSE
#> 6      6 BW-1 Background           10    10.0    FALSE
#> 7      1 BW-2 Background            7     7.0    FALSE
#> 8      2 BW-2 Background          6.5     6.5    FALSE
#> 9      3 BW-2 Background           <5     5.0     TRUE
#> 10     4 BW-2 Background            6     6.0    FALSE
#> 11     5 BW-2 Background           12    12.0    FALSE
#> 12     6 BW-2 Background           <5     5.0     TRUE
#> 13     1 BW-3 Background           <5     5.0     TRUE
#> 14     2 BW-3 Background           <5     5.0     TRUE
#> 15     3 BW-3 Background         10.5    10.5    FALSE
#> 16     4 BW-3 Background           <5     5.0     TRUE
#> 17     5 BW-3 Background           <5     5.0     TRUE
#> 18     6 BW-3 Background            9     9.0    FALSE
#> 19     1 CW-4 Compliance                   NA    FALSE
#> 20     2 CW-4 Compliance                   NA    FALSE
#> 21     3 CW-4 Compliance          7.5     7.5    FALSE
#> 22     4 CW-4 Compliance           <5     5.0     TRUE
#> 23     5 CW-4 Compliance            8     8.0    FALSE
#> 24     6 CW-4 Compliance           14    14.0    FALSE

  #   Month Well  Well.type TCE.ppb.orig TCE.ppb Censored
  #1      1 BW-1 Background           <5     5.0     TRUE
  #2      2 BW-1 Background           <5     5.0     TRUE
  #3      3 BW-1 Background            8     8.0    FALSE
  #...
  #22     4 CW-4 Compliance           <5     5.0     TRUE
  #23     5 CW-4 Compliance            8     8.0    FALSE
  #24     6 CW-4 Compliance           14    14.0    FALSE


  longToWide(EPA.09.Ex.18.3.TCE.df, "TCE.ppb.orig", "Month", "Well", 
    paste.row.name = TRUE)
#>         BW-1 BW-2 BW-3 CW-4
#> Month.1   <5    7   <5     
#> Month.2   <5  6.5   <5     
#> Month.3    8   <5 10.5  7.5
#> Month.4   <5    6   <5   <5
#> Month.5    9   12   <5    8
#> Month.6   10   <5    9   14

  #        BW-1 BW-2 BW-3 CW-4
  #Month.1   <5    7   <5     
  #Month.2   <5  6.5   <5     
  #Month.3    8   <5 10.5  7.5
  #Month.4   <5    6   <5   <5
  #Month.5    9   12   <5    8
  #Month.6   10   <5    9   14


  # If we construct the prediction limit based on the background well
  # data using the maximum value as the upper prediction limit, 
  # the associated confidence level is only 82%.  
  #-----------------------------------------------------------------

  predIntNparConfLevel(n = 18, m = 4, pi.type = "upper")
#> [1] 0.8181818
  #[1] 0.8181818

  # We would have to collect an additional 18 observations to achieve a 
  # confidence level of at least 90%:

  predIntNparN(m = 4, pi.type = "upper", conf.level = 0.9)
#> [1] 36
  #[1] 36

  predIntNparConfLevel(n = 36, m = 4, pi.type = "upper")
#> [1] 0.9
  #[1] 0.9