目的 二次データに基づいて,分散の均一性の検定(バートレットの方法)を行う 注: 一次データが利用できる場合には,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 解説ページ