Skip to contents

The generic function meanProbs produces expected confidence bands under either the t distribution or the normal sampling distribution. This uses qnorm() or qt() with the mean and standard deviation.

Usage

meanProbs(x, ...)

# S3 method for default
meanProbs(
  x,
  probs = seq(0, 1, 0.25),
  na.rm = FALSE,
  names = TRUE,
  useT = TRUE,
  onlyProbs = TRUE,
  pred = FALSE,
  n = 0L,
  ...
)

Arguments

x

numeric vector whose mean and probability based confidence values are wanted, NA and NaN values are not allowed in numeric vectors unless ‘na.rm’ is ‘TRUE’.

...

Arguments passed to default method, allows many different methods to be applied.

probs

numeric vector of probabilities with values in the interval from 0 to 1 .

na.rm

logical; if true, any NA and NaN's are removed from x before the quantiles are computed.

names

logical; if true, the result has a names attribute.

useT

logical; if true, use the t-distribution to calculate the confidence-based estimates. If false use the normal distribution to calculate the confidence based estimates.

onlyProbs

logical; if true, only return the probability based confidence interval estimates, otherwise return

pred

logical; if true use the prediction interval instead of the confidence interval

n

integer/integerish; this is the n used to calculate the prediction or confidence interval. When n=0 (default) use the number of non-NA observations.

Value

By default the return has the probabilities as names (if named) with the points where the expected distribution are located given the sampling mean and standard deviation. If onlyProbs=FALSE then it would prepend mean, variance, standard deviation, minimum, maximum and number of non-NA observations.

Details

For a single probability, p, it uses either:

mean + qt(p, df=n)*sd/sqrt(n)

or

mean + qnorm(p)*sd/sqrt(n)

The smallest observation corresponds to a probability of 0 and the largest to a probability of 1 and the mean corresponds to 0.5.

The mean and standard deviation of the sample is calculated based on Welford's method for a single pass.

This is meant to perform in the same way as quantile() so it can be a drop in replacement for code using quantile() but using distributional assumptions.

Author

Matthew L. Fidler

Examples


quantile(x<- rnorm(1001))
#>           0%          25%          50%          75%         100% 
#> -3.403225585 -0.642325341 -0.001837139  0.656154718  2.780013343 
meanProbs(x)
#>           0%          25%          50%          75%         100% 
#> -3.403225585 -0.023025596 -0.002431956  0.018161685  2.780013343 

# Can get some extra statistics if you request onlyProbs=FALSE
meanProbs(x, onlyProbs=FALSE)
#>          mean           var            sd           min           max 
#> -2.431956e-03  9.324674e-01  9.656435e-01 -3.403226e+00  2.780013e+00 
#>             n            0%           25%           50%           75% 
#>  1.001000e+03 -3.403226e+00 -2.302560e-02 -2.431956e-03  1.816168e-02 
#>          100% 
#>  2.780013e+00 

x[2] <- NA_real_

meanProbs(x, onlyProbs=FALSE)
#> mean  var   sd  min  max    n   0%  25%  50%  75% 100% 
#>   NA   NA   NA   NA   NA   NA   NA   NA   NA   NA   NA 

quantile(x<- rnorm(42))
#>         0%        25%        50%        75%       100% 
#> -2.1838542 -0.8532155  0.1476959  0.8088171  1.5847511 

meanProbs(x)
#>          0%         25%         50%         75%        100% 
#> -2.18385418 -0.18647291 -0.07532481  0.03582330  1.58475107 

meanProbs(x, useT=FALSE)
#>          0%         25%         50%         75%        100% 
#> -2.18385418 -0.18548788 -0.07532481  0.03483827  1.58475107