weightedVarRcpp {carSurv} | R Documentation |
Estimate weighted variance
Description
Efficient C implementation of the sample variance estimator. The denominator is defined as sum of all weights.
Usage
weightedVarRcpp(y, w)
Arguments
y |
Response. The mean of the response contains weights (numeric vector). |
w |
Weights for averaging (numeric vector). |
Value
Weighted variance (numeric scalar).
Note
If all weights are set to 1, the denominator is identical to n. There are no safety checks of input arguments.
Author(s)
Thomas Welchowski
Examples
# Simulate a random vector
set.seed(3975)
x <- rnorm(100)
# Calculate variance with standard implementation
# Rescaling ensures that both calculations use same denominator "n"
varEst <- var(x) * (100-1) / 100
# Calculate weighted variance with equal weights
equalW <- rep(1/100, 100)
weightVarEst <- weightedVarRcpp(y=x, w=equalW)
# Output comparison
all.equal(varEst, weightVarEst)
# Runtime comparison
library(microbenchmark)
microbenchmark(Default=var(x), New=weightedVarRcppN(y=x, w=equalW), times=25)
# -> New method is multiple times faster
[Package carSurv version 1.0.0 Index]