wtd.var | R Documentation |
Generic function for calculating weighted variance or standard deviation of a vector.
wtd.var(x, weights, na.rm = FALSE)
wtd.sd(x, weights, na.rm = FALSE)
x |
Numerical or logical vector. |
weights |
Vector of non-negative weights. |
na.rm |
Logical indicating whether |
The weighted variance is defined as
(n / (n - 1)) * sum(weights * (x - xbar)^2) / sum(weights)
where n
is the number of observations with non-zero weights, and xbar
is the weighted mean computed via the wtd.mean
function.
The weighted standard deviation is the square root of the weighted variance.
Returns the weighted variance or standard deviation.
If weights
are missing, the weights are defined to be a vector of ones (which is the same as the unweighted variance or standard deviation).
Nathaniel E. Helwig <helwig@umn.edu>
wtd.mean
for weighted mean calculations
wtd.quantile
for weighted quantile calculations
# generate data and weights
set.seed(1)
x <- rnorm(10)
w <- rpois(10, lambda = 10)
# weighted mean
xbar <- wtd.mean(x, w)
# weighted variance
wtd.var(x, w)
(10 / 9) * sum(w * (x - xbar)^2) / sum(w)
# weighted standard deviation
wtd.sd(x, w)
sqrt((10 / 9) * sum(w * (x - xbar)^2) / sum(w))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.