gofPIOSRn tests a 2 or 3 dimensional dataset with the approximate PIOS test for a copula. The possible copulae are "normal", "t", "gumbel", "clayton" and "frank". The parameter estimation is performed with pseudo maximum likelihood method. In case the estimation fails, inversion of Kendall's tau is used. The approximate p-values are computed with a semiparametric bootstrap, which computation can be accelerated by enabling in-build parallel computation.
gofPIOSRn(copula, x, M = 1000, param = 0.5, param.est = T, df = 4, df.est = T, margins = "ranks", dispstr = "ex",execute.times.comp = T, processes = 1)"normal", "t", "clayton", "gumbel" and "frank".
TRUE or FALSE. TRUE means that param will be estimated with a maximum likelihood estimation.
"t"-copula.
df shall be estimated. Has to be either FALSE or TRUE, where TRUE means that it will be estimated.
"ranks", which is the standard approach to convert data in such a case. Alternatively can the following distributions be specified: "beta", "cauchy", Chi-squared ("chisq"), "f", "gamma", Log normal ("lnorm"), Normal ("norm"), "t", "weibull", Exponential ("exp").
copula.
M is at least 100.
class gofCOP with the components
gofCOP with the componentswith $l$ the log likelihood function, the pseudo observations $U[ij]$ for $i = 1, ...,n$; $j = 1, ...,d$ and $$\theta_n = \arg \min_{\theta} \sum_{i=1}^n l(U_i; \theta)$$ and $$\theta_n^{-b} = \arg \min_{\theta} \sum_{b^{'} \neq b}^M \sum_{k=1}^m l(U_k^{b^{'}}; \theta), b=1, \dots, M.$$
By defining two information matrices $$S(\theta) = - E_0 [\frac{\partial^2}{\partial \theta \partial \theta^{\top}}l \{U_1; \theta \} ],$$ $$V(\theta) = - E_0 [\frac{\partial}{\partial \theta} l \{U_1; \theta \} l^{\top} \{U_1; \theta \} ]$$ where $S(.)$ represents the negative sensitivity matrix, $V(.)$ the variability matrix and $E0$ is the expectation under the true copula $C0$. Under suitable regularity conditions, given in Zhang et al. (2015), holds then in probability, that $$T = tr\{S(\theta^{*})^{-1} - V(\theta^{*}) \}$$ as $n -> infinity.$
The approximate p-value is computed by the formula $$\sum_{b=1}^M \mathbf{I}(|T_b| \geq |T|) / M,$$ For more details, see Zhang et al. (2015). The applied estimation method is the two-step pseudo maximum likelihood approach, see Genest and Rivest (1995).
For small values of M, initializing the parallization via processes does not make sense. The registration of the parallel processes increases the computation time. Please consider to enable parallelization just for high values of M.
data(IndexReturns)
gofPIOSRn("normal", IndexReturns[c(1:100),c(1:2)], M = 20)
Run the code above in your browser using DataLab