分散の均一性の検定(バートレットの方法) 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