分散の均一性の検定(バートレットの方法)     Last modified: Aug 20, 2009

目的

二次データに基づいて,分散の均一性の検定(バートレットの方法)を行う

注: 一次データが利用できる場合には,R に本来用意されている bartlett.test を使うことができる

使用法

my.bartlett.test(n, u)

引数

n	各群のデータ個数のベクトル
u	各群の不偏分散のベクトル

ソース

インストールは,以下の 1 行をコピーし,R コンソールにペーストする
source("http://aoki2.si.gunma-u.ac.jp/R/src/my_bartlett_test.R", encoding="euc-jp")

# バートレット検定(分散の均一性の検定)
my.bartlett.test <- function(        n,                                      # 各群のデータ個数のベクトル
                                u)                                      # 各群の不偏分散のベクトル
{
        stopifnot(      length(n) == length(u),                         # 入力データのチェック
                        n > 1,
                        u > 0,
                        floor(n) == n)
        data.name <- sprintf("%s for sample sizes and %s for variances",
                deparse(substitute(n)), deparse(substitute(u)))
        method <- "バートレット検定(分散の均一性の検定)"
        ng <- length(n)                                                      # 群の個数
        temp1 <- n-1
        temp2 <- sum(temp1)
        chi.sq0 <- temp2*log(sum(temp1*u)/temp2) - sum(temp1*log(u)) # 検定統計量
        co <- 1+(sum(1/temp1)-1/temp2)/(3*ng-3)                              # 修正項
        chi.sq <- chi.sq0/co                                         # 検定統計量(カイ二乗分布に従う)
        df <- ng-1
        p <- pchisq(chi.sq, df, lower.tail=FALSE)                    # P 値
        return(structure(list(statistic=c("X-squared"=chi.sq),
                parameter=c(df=df), p.value=p, method=method,
                data.name=data.name), class="htest"))
}


使用例

> my.bartlett.test(c(11, 25, 22), c(23.7, 25.7, 24.1))

	バートレット検定(分散の均一性の検定)

data:  c(11, 25, 22) for sample sizes and c(23.7, 25.7, 24.1) for variances 
X-squared = 0.0329, df = 2, p-value = 0.9837

・ 解説ページ


・ 直前のページへ戻る  ・ E-mail to Shigenobu AOKI

Made with Macintosh