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))}