★ R -- 分散・共分散行列の同等性の検定 ★

 387 R -- 分散・共分散行列の同等性の検定  青木繁伸  2002/01/26 (土) 22:53


387. R -- 分散・共分散行列の同等性の検定  青木繁伸  2002/01/26 (土) 22:53
# 分散・共分散行列の同等性の検定
# x,y は多変量データ行列
eq.cov <- function(x, y)
{
    p <- ncol(x1)
    s1 <- var(x1)
    s2 <- var(x2)
    n1 <- nrow(x1)-1
    n2 <- nrow(x2)-1
    sa <- (n1*s1+n2*s2)/(n1+n2)
    
    chi <- (1-(1/n1+1/n2-1/(n1+n2))*(2*p^2+3*p-1)/(6*p+6))*((n1+n2)*log(det(sa))-n1*log(det(s1))-n2*log(det(s2)))
    df <- p*(p+1)/2
    result <- c(chi, df, pchisq(chi, df, lower=F))
    names(result) <- c("Statistics", "d.f.", "P value")
    result
}

# 使用例

x1 <- matrix(c(
2.9,161.7,120.8,
2.3,114.8,85.2,
2,128.4,92,
3.2,149.2,97.3,
2.7,126,81.1,
4.4,133.8,107.6,
4.1,161.3,114,
2.1,111.5,77.3
), byrow=TRUE, ncol=3)

x2 <- matrix(c(
4.8,198.7,172.9,
3.6,199.3,157.9,
2,188.4,152.7,
4.9,183.6,164.2,
3.9,173.5,172.2,
4.4,184.9,163.2
), byrow=TRUE, ncol=3)

eq.cov(x, y)

# Statistics       d.f.    P value 
#  6.9947058  6.0000000  0.3213371


● 「統計学関連なんでもあり」の過去ログ--- 017 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る