inference {SharpeR} | R Documentation |
Inference on noncentrality parameter of F-like statistic
Description
Estimates the non-centrality parameter associated with an observed statistic following an optimal Sharpe Ratio distribution.
Usage
inference(z.s, type = c("KRS", "MLE", "unbiased"))
## S3 method for class 'sropt'
inference(z.s, type = c("KRS", "MLE", "unbiased"))
## S3 method for class 'del_sropt'
inference(z.s, type = c("KRS", "MLE", "unbiased"))
Arguments
z.s |
an object of type |
type |
the estimator type. one of |
Details
Let F
be an observed statistic distributed as a non-central F with
\nu_1
, \nu_2
degrees of freedom and non-centrality
parameter \delta^2
. Three methods are presented to
estimate the non-centrality parameter from the statistic:
an unbiased estimator, which, unfortunately, may be negative.
the Maximum Likelihood Estimator, which may be zero, but not negative.
the estimator of Kubokawa, Roberts, and Shaleh (KRS), which is a shrinkage estimator.
The sropt distribution is equivalent to an F distribution up to a square root and some rescalings.
The non-centrality parameter of the sropt distribution is
the square root of that of the Hotelling, i.e. has
units 'per square root time'. As such, the 'unbiased'
type can be problematic!
Value
an estimate of the non-centrality parameter, which is the maximal population Sharpe ratio.
Author(s)
Steven E. Pav shabbychef@gmail.com
References
Kubokawa, T., C. P. Robert, and A. K. Saleh. "Estimation of noncentrality parameters." Canadian Journal of Statistics 21, no. 1 (1993): 45-57. https://www.jstor.org/stable/3315657
Spruill, M. C. "Computation of the maximum likelihood estimate of a noncentrality parameter." Journal of multivariate analysis 18, no. 2 (1986): 216-224. https://www.sciencedirect.com/science/article/pii/0047259X86900709
See Also
F-distribution functions, df
.
Other sropt Hotelling:
sric()
Examples
# generate some sropts
nfac <- 3
nyr <- 5
ope <- 253
# simulations with no covariance structure.
# under the null:
set.seed(as.integer(charToRaw("determinstic")))
Returns <- matrix(rnorm(ope*nyr*nfac,mean=0,sd=0.0125),ncol=nfac)
asro <- as.sropt(Returns,drag=0,ope=ope)
est1 <- inference(asro,type='unbiased')
est2 <- inference(asro,type='KRS')
est3 <- inference(asro,type='MLE')
# under the alternative:
Returns <- matrix(rnorm(ope*nyr*nfac,mean=0.0005,sd=0.0125),ncol=nfac)
asro <- as.sropt(Returns,drag=0,ope=ope)
est1 <- inference(asro,type='unbiased')
est2 <- inference(asro,type='KRS')
est3 <- inference(asro,type='MLE')
# sample many under the alternative, look at the estimator.
df1 <- 3
df2 <- 512
ope <- 253
zeta.s <- 1.25
rvs <- rsropt(128, df1, df2, zeta.s, ope)
roll.own <- sropt(z.s=rvs,df1,df2,drag=0,ope=ope)
est1 <- inference(roll.own,type='unbiased')
est2 <- inference(roll.own,type='KRS')
est3 <- inference(roll.own,type='MLE')
# for del_sropt:
nfac <- 5
nyr <- 10
ope <- 253
set.seed(as.integer(charToRaw("fix seed")))
Returns <- matrix(rnorm(ope*nyr*nfac,mean=0.0005,sd=0.0125),ncol=nfac)
# hedge out the first one:
G <- matrix(diag(nfac)[1,],nrow=1)
asro <- as.del_sropt(Returns,G,drag=0,ope=ope)
est1 <- inference(asro,type='unbiased')
est2 <- inference(asro,type='KRS')
est3 <- inference(asro,type='MLE')