Learn R Programming

RiskPortfolios (version 2.1.7)

semidevEstimation: Estimation of the semideviation

Description

Function which computes the semideviation.

Usage

semidevEstimation(rets, control = list())

Arguments

rets

a \((T \times N)\) matrix of past returns.

control

control parameters (see *Details*).

Value

A \((N \times 1)\) vector of semideviations.

Details

The argument control is a list that can supply any of the following components:

  • type method used to compute the semideviation vector, among 'naive' and 'ewma' where:

    'naive' is used to compute the simple semideviation.

    'ewma' is used to compute the exponential weighted moving average semideviation. The data must be sorted from the oldest to the latest. See RiskMetrics (1996).

    The semideviation for one stock is computed as follows. First we select the returns which are smaller than the average of the past returns; we get a new vector of dimension \(K \times 1, K \le N\). Then, the weight \(w_i\) for each observation at its corresponding time \(t\) is computed as \(w = \lambda^{t}\). We obtain a \(K \times 1\) vector. The vector of weights is then normalized. Finally, the semideviation is obtained as the weighted standard deviation.

    Default: type = 'naive'.

  • lambda decay parameter. Default: lambda = 0.94.

References

RiskMetrics (1996) RiskMetrics Technical Document. J. P. Morgan/Reuters.

Examples

Run this code
# NOT RUN {
# Load returns of assets or portfolios
data("Industry_10")
rets = Industry_10

# Naive semideviation estimation
semidevEstimation(rets)

# Naive estimation of the semideviation
semidevEstimation(rets, control = list(type = 'naive'))

# Ewma estimation of the semideviation. Default lambda = 0.94
semidevEstimation(rets, control = list(type = 'ewma'))

# Ewma estimation of the semideviation. lambda = 0.9
semidevEstimation(rets, control = list(type = 'ewma', lambda = 0.9))
# }

Run the code above in your browser using DataLab