The Pooled Standard Deviation is a weighted average of standard deviations for two or more groups, assumed to have equal variance. It represents the common deviation among the groups, around each of their respective means.

sd_pooled(x, y = NULL, data = NULL, verbose = TRUE, ...)

mad_pooled(x, y = NULL, data = NULL, constant = 1.4826, verbose = TRUE, ...)

cov_pooled(x, y = NULL, data = NULL, verbose = TRUE, ...)

Arguments

x, y

A numeric vector, or a character name of one in data. Any missing values (NAs) are dropped from the resulting vector. x can also be a formula (see stats::t.test()), in which case y is ignored.

data

An optional data frame containing the variables.

verbose

Toggle warnings and messages on or off.

...

Arguments passed to or from other methods. When x is a formula, these can be subset and na.action.

constant

scale factor.

Value

Numeric, the pooled standard deviation. For cov_pooled() a matrix.

Details

The standard version is calculated as: $$\sqrt{\frac{\sum (x_i - \bar{x})^2}{n_1 + n_2 - 2}}$$ The robust version is calculated as: $$1.4826 \times Median(|\left\{x - Median_x,\,y - Median_y\right\}|)$$

Examples

sd_pooled(mpg ~ am, data = mtcars)
#> [1] 4.902029
mad_pooled(mtcars$mpg, factor(mtcars$am))
#> [1] 4.52193

cov_pooled(mpg + hp + cyl ~ am, data = mtcars)
#>             mpg         hp       cyl
#> mpg   24.029887 -269.13174 -5.991498
#> hp  -269.131741 4570.24588 89.247233
#> cyl   -5.991498   89.24723  2.395682