PerformanceAnalytics (version 1.1.0)

kurtosis: Kurtosis

Description

compute kurtosis of a univariate distribution

Usage

kurtosis(x, na.rm = FALSE,
    method = c("excess", "moment", "fisher", "sample", "sample_excess"),
    ...)

Arguments

na.rm
a logical. Should missing values be removed?
method
a character string which specifies the method of computation. These are either "moment", "fisher", or "excess". If "excess" is selected, then the value of the kurtosis is computed by the "
x
a numeric vector or object.
...
arguments to be passed.

Details

This function was ported from the RMetrics package fUtilities to eliminate a dependency on fUtilties being loaded every time. This function is identical except for the addition of checkData and additional labeling.

$$Kurtosis(moment) = \frac{1}{n}*\sum^{n}_{i=1}(\frac{r_i - \overline{r}}{\sigma_P})^4$$ $$Kurtosis(excess) = \frac{1}{n}*\sum^{n}_{i=1}(\frac{r_i - \overline{r}}{\sigma_P})^4 - 3$$ $$Kurtosis(sample) = \frac{n*(n+1)}{(n-1)*(n-2)*(n-3)}*\sum^{n}_{i=1}(\frac{r_i - \overline{r}}{\sigma_{S_P}})^4$$ $$Kurtosis(fisher) = \frac{(n+1)*(n-1)}{(n-2)*(n-3)}*(\frac{\sum^{n}_{i=1}\frac{(r_i)^4}{n}}{(\sum^{n}_{i=1}(\frac{(r_i)^2}{n})^2} - \frac{3*(n-1)}{n+1})$$ $$Kurtosis(sample excess) = \frac{n*(n+1)}{(n-1)*(n-2)*(n-3)}*\sum^{n}_{i=1}(\frac{r_i - \overline{r}}{\sigma_{S_P}})^4 - \frac{3*(n-1)^2}{(n-2)*(n-3)}$$

where $n$ is the number of return, $\overline{r}$ is the mean of the return distribution, $\sigma_P$ is its standard deviation and $\sigma_{S_P}$ is its sample standard deviation

References

Carl Bacon, Practical portfolio performance measurement and attribution, second edition 2008 p.84-85

See Also

skewness.

Examples

Run this code
## mean -
## var -
   # Mean, Variance:
   r = rnorm(100)
   mean(r)
   var(r)

## kurtosis -
   kurtosis(r)

data(managers)
kurtosis(managers[,1:8])

data(portfolio_bacon)
print(kurtosis(portfolio_bacon[,1], method="sample")) #expected 3.03
print(kurtosis(portfolio_bacon[,1], method="sample_excess")) #expected -0.41
print(kurtosis(managers['1996'], method="sample"))
print(kurtosis(managers['1996',1], method="sample"))

Run the code above in your browser using DataLab