| calc_var | R Documentation | 
RcppArmadillo.Calculate the dispersion (variance) of the columns of a time series
or a matrix using RcppArmadillo.
calc_var(timeser, method = "moment", confl = 0.75)
| timeser | A time series or a matrix of data. | 
| method | A character string specifying the type of the
dispersion model (the default is  | 
| confl | The confidence level for calculating the quantiles of
returns (the default is  | 
The function calc_var() calculates the dispersion of the
columns of a time series or a matrix of data using
RcppArmadillo C++ code.
The dispersion is a measure of the variability of the data. Examples of dispersion are the variance and the Median Absolute Deviation (MAD).
If method = "moment" (the default) then calc_var()
calculates the dispersion as the second moment of the data (the variance).
Then calc_var() performs the same calculation as the function
colVars() from package
matrixStats,
but it's much faster because it uses RcppArmadillo C++ code.
If method = "quantile" then it calculates the dispersion as the
difference between the quantiles as follows:
    \sigma = q_{\alpha} - q_{1-\alpha}
  
Where \alpha is the confidence level for calculating the quantiles.
If method = "nonparametric" then it calculates the dispersion as the
Median Absolute Deviation (MAD):
    MAD = median(abs(x - median(x)))
  
It also multiplies the MAD by a factor of 1.4826, to make it
comparable to the standard deviation.
If method = "nonparametric" then calc_var() performs the
same calculation as the function stats::mad(), but it's much faster
because it uses RcppArmadillo C++ code.
If the number of rows of timeser is less than 3 then it
returns zeros.
A row vector equal to the dispersion of the columns of the matrix
timeser.
## Not run: 
# Calculate VTI and XLF returns
retp <- na.omit(rutils::etfenv$returns[, c("VTI", "XLF")])
# Compare HighFreq::calc_var() with standard var()
all.equal(drop(HighFreq::calc_var(retp)), 
  apply(retp, 2, var), check.attributes=FALSE)
# Compare HighFreq::calc_var() with matrixStats
all.equal(drop(HighFreq::calc_var(retp)), 
  matrixStats::colVars(retp), check.attributes=FALSE)
# Compare the speed of RcppArmadillo with matrixStats and with R code
library(microbenchmark)
summary(microbenchmark(
  Rcpp=HighFreq::calc_var(retp),
  matrixStats=matrixStats::colVars(retp),
  Rcode=apply(retp, 2, var),
  times=10))[, c(1, 4, 5)]  # end microbenchmark summary
# Compare HighFreq::calc_var() with stats::mad()
all.equal(drop(HighFreq::calc_var(retp, method="nonparametric")), 
  sapply(retp, mad), check.attributes=FALSE)
# Compare the speed of RcppArmadillo with stats::mad()
summary(microbenchmark(
  Rcpp=HighFreq::calc_var(retp, method="nonparametric"),
  Rcode=sapply(retp, mad),
  times=10))[, c(1, 4, 5)]  # end microbenchmark summary
## End(Not run)  # end dontrun
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.