Learn R Programming

CompQuadForm (version 1.4.3)

liu: Liu's method

Description

Distribution function (survival function in fact) of quadratic forms in normal variables using Liu et al.'s method.

Usage

liu(q, lambda, h = rep(1, length(lambda)),
    delta = rep(0, length(lambda)))

Arguments

q
value point at which the survival function is to be evaluated
lambda
distinct non-zero characteristic roots of \(A\Sigma\), i.e. the \(\lambda_i\)'s
h
respective orders of multiplicity \(h_i\)'s of the \(\lambda\)'s
delta
non-centrality parameters \(\delta_i\)'s (should be positive)

Value

Qq
\(P[Q>q]\)

Details

New chi-square approximation to the distribution of non-negative definite quadratic forms in non-central normal variables. Computes \(P[Q>q]\) where \(Q=\sum_{j=1}^n\lambda_j\chi^2(h_j,\delta_j)\). This method does not work as good as the Imhof's method. Thus Imhof's method should be recommended.

References

P. Duchesne, P. Lafaye de Micheaux, Computing the distribution of quadratic forms: Further comparisons between the Liu-Tang-Zhang approximation and exact methods, Computational Statistics and Data Analysis, Volume 54, (2010), 858-862 H. Liu, Y. Tang, H.H. Zhang, A new chi-square approximation to the distribution of non-negative definite quadratic forms in non-central normal variables, Computational Statistics and Data Analysis, Volume 53, (2009), 853-856

Examples

Run this code
# Some results from Liu et al. (2009)
# Q1 from Liu et al.
round(liu(2, c(0.5, 0.4, 0.1), c(1, 2, 1), c(1, 0.6, 0.8)), 6)
round(liu(6, c(0.5, 0.4, 0.1), c(1, 2, 1), c(1, 0.6, 0.8)), 6)
round(liu(8, c(0.5, 0.4, 0.1), c(1, 2, 1), c(1, 0.6, 0.8)), 6)

# Q2 from Liu et al.
round(liu(1, c(0.7, 0.3), c(1, 1), c(6, 2)), 6)
round(liu(6, c(0.7, 0.3), c(1, 1), c(6, 2)), 6)
round(liu(15, c(0.7, 0.3), c(1, 1), c(6, 2)), 6)

# Q3 from Liu et al.
round(liu(2, c(0.995, 0.005), c(1, 2), c(1, 1)), 6)
round(liu(8, c(0.995, 0.005), c(1, 2), c(1, 1)), 6)
round(liu(12, c(0.995, 0.005), c(1, 2), c(1, 1)), 6)

# Q4 from Liu et al.
round(liu(3.5, c(0.35, 0.15, 0.35, 0.15), c(1, 1, 6, 2), c(6, 2, 6, 2)),
6)
round(liu(8, c(0.35, 0.15, 0.35, 0.15), c(1, 1, 6, 2), c(6, 2, 6, 2)), 6)
round(liu(13, c(0.35, 0.15, 0.35, 0.15), c(1, 1, 6, 2), c(6, 2, 6, 2)), 6)

Run the code above in your browser using DataLab