Learn R Programming

yuima (version 1.15.27)

pz.test: Podolskij and Ziggel's Test for the Presence of Jumps Using Power Variation with Perturbed Truncation

Description

Performs a test for the null hypothesis that the realized path has no jump following Podolskij and Ziggel (2010).

Usage

pz.test(yuima, p = 4, threshold = "local", tau = 0.05)

Value

A list with the same length as dim(yuima). Each component of the list has class “htest” and contains the following components:

statistic

the value of the test statistic of the corresponding component of yuima.

p.value

an approximate p-value for the test of the corresponding component.

method

the character string “Podolskij and Ziggel jump test”.

data.name

the character string “xi”, where i is the number of the component.

Arguments

yuima

an object of yuima-class or yuima.data-class.

p

a positive number indicating the exponent of the (truncated) power variation to compute test statistic(s). Theoretically, it must be greater than or equal to 2.

threshold

a numeric vector or list indicating the threshold parameter(s). Each of its components indicates the threshold parameter or process to be used for estimating the corresponding component. If it is a numeric vector, the elements in threshold are recycled if there are two few elements in threshold.

Alternatively, you can specify either "PZ" or "local" to automatically select a (hopefully) appropriate threshold. When threshold="PZ", selection is performed following Section 5.1 in Podolskij and Ziggel (2010). When threshold="local", selection is performed following Section 5.1 in Koike (2014). The default is threshold="local".

tau

a probability controlling the strength of perturbation. See Section 2.3 in Podolskij and Ziggel (2010) for details. Podolskij and Ziggel (2010) suggests using a relatively small value for tau, e.g. tau=0.1 or tau=0.05.

Author

Yuta Koike with YUIMA Project Team

References

Dumitru, A.-M. and Urga, G. (2012) Identifying jumps in financial assets: A comparison between nonparametric jump tests. Journal of Business and Economic Statistics, 30, 242--255.

Koike, Y. (2014) An estimator for the cumulative co-volatility of asynchronously observed semimartingales with jumps, Scandinavian Journal of Statistics, 41, 460--481.

Maneesoonthorn, W., Martin, G. M. and Forbes, C. S. (2020) High-frequency jump tests: Which test should we use? Journal of Econometrics, 219, 478--487.

Podolskij, M. and Ziggel, D. (2010) New tests for jumps in semimartingale models, Statistical Inference for Stochastic Processes, 13, 15--41.

Theodosiou, M. and Zikes, F. (2011) A comprehensive comparison of alternative tests for jumps in asset prices. Central Bank of Cyprus Working Paper 2011-2.

See Also

bns.test, lm.jumptest, minrv.test, medrv.test

Examples

Run this code
if (FALSE) {
set.seed(123)

# One-dimensional case
## Model: dXt=t*dWt+t*dzt, 
## where zt is a compound Poisson process with intensity 5 and jump sizes distribution N(0,1).

model <- setModel(drift=0,diffusion="t",jump.coeff="t",measure.type="CP",
                  measure=list(intensity=5,df=list("dnorm(z,0,sqrt(0.1))")),
                  time.variable="t")

yuima.samp <- setSampling(Terminal = 1, n = 390) 
yuima <- setYuima(model = model, sampling = yuima.samp) 
yuima <- simulate(yuima)
plot(yuima) # The path seems to involve some jumps

#lm.jumptest(yuima) # p-value is very small, so the path would have a jump
#lm.jumptest(yuima, K = floor(sqrt(390))) # different value of K
pz.test(yuima) # p-value is very small, so the path would have a jump
pz.test(yuima, p = 2) # different value of p
pz.test(yuima, tau = 0.1) # different value of tau

# Multi-dimensional case
## Model: Bivariate standard BM + CP
## Only the first component has jumps

mod <- setModel(drift = c(0, 0), diffusion = diag(2),
                jump.coeff = diag(c(1, 0)),
                measure = list(intensity = 5, 
                               df = "dmvnorm(z,c(0,0),diag(2))"),
                jump.variable = c("z"), measure.type=c("CP"),
                solve.variable=c("x1","x2"))

samp <- setSampling(Terminal = 1, n = 390) 
yuima <- setYuima(model = model, sampling = yuima.samp)
yuima <- simulate(object = mod, sampling = samp)
plot(yuima)

pz.test(yuima) # test is performed component-wise
}

Run the code above in your browser using DataLab