test.ji2.vero<-
function(a) {a1 <- array(0, c(nrow(a), ncol(a)))
    resi <- array(0, c(nrow(a), ncol(a)))
    for(i in 1:nrow(a)) {
        for(j in 1:ncol(a)) {
            a1[i, j] <- (sum(a[i,  ]) * sum(a[, j]))/sum(a)
            resi[i, j] <- (a[i, j] - a1[i, j])/sqrt(a1[i, j] * (1 -
                sum(a[i,  ])/sum(a)) * (1 - sum(a[, j])/sum(a)))
                            }
                         }
    ji2 <- sum((a1 - a)^2/a1)
    gl <- (nrow(a) - 1) * (ncol(a) - 1)
    p.value.ji2 <- round(1 - pchisq(ji2, gl), 4)
    vero <- 2 * sum(a * log(a/a1))
    p.value.vero <- round(1 - pchisq(vero, gl), 4)
    list(frec.observadas = a, frec.esperadas = a1, residuales.est = resi,
        gl = gl, ji2 = ji2, p.value.ji2 = round(p.value.ji2, 4), vero
         = vero, p.value.vero = round(p.value.vero, 4))}