Cochran.Q.test <- function(x)
{
k <- dim(x)[2]
n <- dim(x)[1]
g <- apply(x, 2, sum)
l <- apply(x, 1, sum)
Q <- ((k-1)*(k*sum(g^2)-sum(g)^2))/(k*sum(l)-sum(l^2))
p <- pchisq(Q, k-1, lower=F)
res <- c(Q, k-1, p)
names(res) <- c("Statistics Q", "d.f.", "p value")
res
}
使用例
cochran.data
0 0 0
0 0 0
0 0 0
0 0 1
0 1 1
0 1 1
0 1 1
1 1 1
1 1 1
1 1 1
x <- matrix(scan("cochran.data"), byrow=TRUE, ncol=3)
Cochran.Q.test(x)
結果
Statistics Q d.f. p value
6.50000000 2.00000000 0.03877421