@Jack00878
2015-03-20T00:34:10.000000Z
字数 1034
阅读 5760
R语言学习
克隆巴赫(Cronbach)系数公式
reliability.function <- function(x)
{
#变量个数
n <- length(x)
#样本个数
m <- length(x[,1])
#将每个样本的变量得分求和,保存向量y1中
y1 <- matrix(nrow=m, ncol=1)
for(i in 1:length(x[,1]))
{
y1[i,1]<- sum(x[i,1:n])
}
#将每个变量得分的方差保存在向量y2中
y2 <- matrix(nrow=1, ncol=n)
for(i in 1:n)
{
y2[1,i] <- var(x[1:m,i])
}
alpha <- n / (n-1) * (1 - sum(y2) / var(y1))
#结果输出
cat("alpha=", alpha, "\n")
}
data <- read.table("C:/attitude.csv",header=TRUE, sep=",")
x <- round(data[,1:16]) #取整
reliability.function(x)
reliability.function(x)
[,1]
[1,] 0.8062546
结果通过SPSS检验,正确。
感谢R语言中文论坛里的@吉利-复变,他提出使用apply函数,简化自定义信度函数:
#自定义信度函数
reliability.function <- function(df)
{
n <- ncol(df)
p <- sum(apply(df, 2, var)) / var(apply(df, 1, sum)) #2为按列处理,1为按行处理
alpha = n / (n-1) * (1-p)
#结果输出
cat("alpha=", alpha, "\n")
}