a (non-empty) numeric vector of data values, or an
object of class sr, containing a scalar sample Sharpe estimate.
y
an optional (non-empty) numeric vector of data values, or
an object of class sr, containing a scalar sample Sharpe estimate.
Only an unpaired test can be performed when at least one of x and y are
of class sr
alternative
a character string specifying the alternative hypothesis,
must be one of "two.sided" (default), "greater" or
"less". You can specify just the initial letter.
zeta
a number indicating the null hypothesis offset value, the
S value.
ope
the number of observations per 'epoch'. For convenience of
interpretation, The Sharpe ratio is typically quoted in 'annualized'
units for some epoch, that is, 'per square root epoch', though returns
are observed at a frequency of ope per epoch.
The default value is 1, meaning the code will not attempt to guess
what the observation frequency is, and no annualization adjustments
will be made.
paired
a logical indicating whether you want a paired test.
conf.level
confidence level of the interval.
...
further arguments to be passed to or from methods.
Details
Given n observations xi from a normal random variable,
with mean mu and standard deviation sigma, tests
H0: mu/sigma = S
against two or one sided alternatives.
Can also perform two sample tests of Sharpe ratio. For paired observations
xi and yi, tests
H0: mu_x sigma_y = mu_y sigma_x
against two or one sided alternative, via
sr_equality_test.
For unpaired (and independent) observations, tests
H0: mu_x / sigma_x - mu_y / sigma_y = S
against two or one-sided alternatives via the upsilon distribution.
Value
A list with class "htest" containing the following components:
statistic
the value of the t- or Z-statistic.
parameter
the degrees of freedom for the statistic.
p.value
the p-value for the test.
conf.int
a confidence interval appropriate to the specified alternative hypothesis. NYI for some cases.
estimate
the estimated Sharpe or difference in Sharpes depending on whether it was a one-sample test or a two-sample test. Annualized
null.value
the specified hypothesized value of the Sharpe or difference of Sharpes depending on whether it was a one-sample test or a two-sample test.
alternative
a character string describing the alternative hypothesis.
method
a character string indicating what type of test was performed.
data.name
a character string giving the name(s) of the data.
Other sr: as.sr, confint.sr,
dsr, is.sr,
plambdap, power.sr_test,
predint, print.sr,
reannualize, se,
sr_equality_test,
sr_unpaired_test, sr_vcov,
sr, summary
Examples
# should reject null
x <- sr_test(rnorm(1000,mean=0.5,sd=0.1),zeta=2,ope=1,alternative="greater")
x <- sr_test(rnorm(1000,mean=0.5,sd=0.1),zeta=2,ope=1,alternative="two.sided")
# should not reject null
x <- sr_test(rnorm(1000,mean=0.5,sd=0.1),zeta=2,ope=1,alternative="less")
# test for uniformity
pvs <- replicate(128,{ x <- sr_test(rnorm(1000),ope=253,alternative="two.sided")
x$p.value })
plot(ecdf(pvs))
abline(0,1,col='red')
# testing an object of class sr
asr <- as.sr(rnorm(1000,1 / sqrt(253)),ope=253)
checkit <- sr_test(asr,zeta=0)
Results
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(SharpeR)
Attaching package: 'SharpeR'
The following object is masked from 'package:base':
summary
> png(filename="/home/ddbj/snapshot/RGM3/R_CC/result/SharpeR/sr_test.Rd_%03d_medium.png", width=480, height=480)
> ### Name: sr_test
> ### Title: test for Sharpe ratio
> ### Aliases: sr_test
> ### Keywords: htest
>
> ### ** Examples
>
> # should reject null
> x <- sr_test(rnorm(1000,mean=0.5,sd=0.1),zeta=2,ope=1,alternative="greater")
> x <- sr_test(rnorm(1000,mean=0.5,sd=0.1),zeta=2,ope=1,alternative="two.sided")
> # should not reject null
> x <- sr_test(rnorm(1000,mean=0.5,sd=0.1),zeta=2,ope=1,alternative="less")
>
> # test for uniformity
> pvs <- replicate(128,{ x <- sr_test(rnorm(1000),ope=253,alternative="two.sided")
+ x$p.value })
> plot(ecdf(pvs))
> abline(0,1,col='red')
> # testing an object of class sr
> asr <- as.sr(rnorm(1000,1 / sqrt(253)),ope=253)
> checkit <- sr_test(asr,zeta=0)
>
>
>
>
>
>
> dev.off()
null device
1
>