クロンバックのα信頼性係数 Last modified: Oct 02, 2009
目的
クロンバックのα信頼性係数を計算する
psy パッケージには、cronbach 関数がある
使用法
alpha(x, detail=FALSE)
引数
x データ行列(行がケース,列が変数)
detail 詳細な計算結果を返すかどうか
ソース
インストールは,以下の 1 行をコピーし,R コンソールにペーストする
source("http://aoki2.si.gunma-u.ac.jp/R/src/alpha.R", encoding="euc-jp")
# クロンバックのα信頼性係数
alpha <- function( x, # 必要な変数のみからなるデータ行列(データフレームまたは行列)
detail=FALSE) # 詳細情報を計算するかどうか
{
alpha0 <- function(x)
{
k <- ncol(x) # 変数の個数
VarCovMat <- var(x) # 分散共分散行列
Sy2 <- sum(VarCovMat) # 合計点の不偏分散(var(rowSums(x)) と同じ)
Sj2 <- sum(diag(VarCovMat)) # 各変数の不偏分散の和
return(k/(k-1)*(1-Sj2/Sy2))
}
x <- as.matrix(x) # 行列にする
x <- subset(x, complete.cases(x)) # 欠損値を持つケースを除く
k <- ncol(x) # 変数の個数(列数)
if (is.null(colnames(x))) { # 変数名が無いときには仮の名前を付ける
colnames(x) <- paste("X", 1:k, sep="")
}
vnames <- colnames(x) # 変数名を記録
stopifnot(k > 1, # 列数は2列以上であること
nrow(x) > 1) # 行数も2行以上であること…さもなくば,中止
alpha <- alpha0(x)
alpha2 <- cor2 <- R2 <- numeric(k)
if (detail == TRUE && k >= 3) { # print メソッドの注を参照
z <- rowSums(x)
for (i in 1:k) {
x2 <- x[, -i]
alpha2[i] <- alpha0(x2)
cor2[i] <- cor(x[, i], rowSums(x2))
R2[i] <- summary(lm(x[,i] ~ x2))$r.squared
}
result2 <- data.frame(alpha_=alpha2, r_=cor2, R_=R2)
rownames(result2) <- vnames
return(structure(list(alpha=c(alpha=alpha), result2=result2), class="alpha"))
}
else {
class(alpha) <- "alpha"
return(alpha=alpha)
}
}
# print メソッド
print.alpha <- function(obj, digits=5)
{
fmt <- sprintf("alpha = %%.%if\n", digits)
if (length(obj) == 1) {
cat(sprintf(fmt, obj))
}
else {
cat(sprintf(fmt, obj$alpha), "\n")
print(obj$result2, digits=digits)
cat("alpha_ : それぞれの変数を除いたときの alpha\n")
cat("r_ : それぞれの変数とその変数を除いたときの合計値との相関係数\n")
cat("R_ : それぞれの変数をその変数以外の変数で予測したときの決定係数\n")
}
}
使用例
x <- matrix(c( # 8ケース,4変数のデータ行列例(ファイルから読んでも良い)
49, 44, 37, 54,
36, 36, 36, 42,
42, 51, 45, 35,
47, 67, 54, 40,
54, 59, 68, 54,
51, 55, 59, 67,
45, 36, 48, 46,
72, 49, 50, 58
), byrow=TRUE, ncol=4)
alpha(x)
alpha(x, detail=TRUE)
library(psy)
cronbach(x)
出力結果例
> alpha(x)
alpha = 0.74034
> alpha(x, detail=TRUE)
alpha = 0.74034
alpha_ r_ R_
X1 0.66574 0.55994 0.42990
X2 0.73076 0.44440 0.55186
X3 0.59278 0.68019 0.60717
X4 0.72184 0.45892 0.48216
alpha_ : それぞれの変数を除いたときの alpha
r_ : それぞれの変数とその変数を除いたときの合計値との相関係数
R_ : それぞれの変数をその変数以外の変数で予測したときの決定係数
> library(psy)
> cronbach(x)
$sample.size
[1] 8
$number.of.items
[1] 4
$alpha
[1] 0.7403366
解説ページ
直前のページへ戻る
E-mail to Shigenobu AOKI