# ess_sd: Effective sample size for the standard deviation In posterior: Tools for Working with Posterior Distributions

## Description

Compute an effective sample size estimate for the standard deviation (SD) estimate of a single variable. This is defined as minimum of the effective sample size estimate for the mean and the the effective sample size estimate for the mean of the squared value.

## Usage

 ```1 2 3 4 5 6 7``` ```ess_sd(x, ...) ## Default S3 method: ess_sd(x, ...) ## S3 method for class 'rvar' ess_sd(x, ...) ```

## Arguments

 `x` (multiple options) One of: A matrix of draws for a single variable (iterations x chains). See `extract_variable_matrix()`. An `rvar`. `...` Arguments passed to individual methods (if applicable).

## Value

If the input is an array, returns a single numeric value. If any of the draws is non-finite, that is, `NA`, `NaN`, `Inf`, or `-Inf`, the returned output will be (numeric) `NA`. Also, if all draws within any of the chains of a variable are the same (constant), the returned output will be (numeric) `NA` as well. The reason for the latter is that, for constant draws, we cannot distinguish between variables that are supposed to be constant (e.g., a diagonal element of a correlation matrix is always 1) or variables that just happened to be constant because of a failure of convergence or other problems in the sampling process.

If the input is an `rvar`, returns an array of the same dimensions as the `rvar`, where each element is equal to the value that would be returned by passing the draws array for that element of the `rvar` to this function.

## References

Aki Vehtari, Andrew Gelman, Daniel Simpson, Bob Carpenter, and Paul-Christian Bürkner (2019). Rank-normalization, folding, and localization: An improved R-hat for assessing convergence of MCMC. arXiv preprint `arXiv:1903.08008`.

Other diagnostics: `ess_basic()`, `ess_bulk()`, `ess_quantile()`, `ess_tail()`, `mcse_mean()`, `mcse_quantile()`, `mcse_sd()`, `rhat_basic()`, `rhat()`, `rstar()`
 ```1 2 3 4 5``` ```mu <- extract_variable_matrix(example_draws(), "mu") ess_sd(mu) d <- as_draws_rvars(example_draws("multi_normal")) ess_sd(d\$Sigma) ```