[关闭]
@Jack00878 2015-03-20T00:34:10.000000Z 字数 1034 阅读 5760

用R语言实现Cronbach α值的计算

R语言学习


克隆巴赫(Cronbach)系数公式

αn/n1(1Si2/St2)

α 为信度系数,n为测验题目数,Si2为每题各被试得分的方差,St2为所有被试所得总分的方差。一般来说,该系数愈高,即工具的信度愈高。在基础研究中,信度至少应达到 0.80才可接受,在探索性研究中,信度只要达到 0.70 就可接受,介于0.70-0.98均属高信度,而低于 0.35则为低信度,必须予以拒绝。
本算例的数据结构为200×16的矩阵,即量表共设置了16个变量,调查了200个样本。缺省数值已用变量均值进行代替。

1.自定义信度函数

  1. reliability.function <- function(x)
  2. {
  3. #变量个数
  4. n <- length(x)
  5. #样本个数
  6. m <- length(x[,1])
  7. #将每个样本的变量得分求和,保存向量y1中
  8. y1 <- matrix(nrow=m, ncol=1)
  9. for(i in 1:length(x[,1]))
  10. {
  11. y1[i,1]<- sum(x[i,1:n])
  12. }
  13. #将每个变量得分的方差保存在向量y2中
  14. y2 <- matrix(nrow=1, ncol=n)
  15. for(i in 1:n)
  16. {
  17. y2[1,i] <- var(x[1:m,i])
  18. }
  19. alpha <- n / (n-1) * (1 - sum(y2) / var(y1))
  20. #结果输出
  21. cat("alpha=", alpha, "\n")
  22. }

2.数据计算

  1. data <- read.table("C:/attitude.csv",header=TRUE, sep=",")
  2. x <- round(data[,1:16]) #取整
  1. reliability.function(x)
  1. reliability.function(x)
  2. [,1]
  3. [1,] 0.8062546

3.结果检验

结果通过SPSS检验,正确。

4.程序改进

感谢R语言中文论坛里的@吉利-复变,他提出使用apply函数,简化自定义信度函数:

  1. #自定义信度函数
  2. reliability.function <- function(df)
  3. {
  4. n <- ncol(df)
  5. p <- sum(apply(df, 2, var)) / var(apply(df, 1, sum)) #2为按列处理,1为按行处理
  6. alpha = n / (n-1) * (1-p)
  7. #结果输出
  8. cat("alpha=", alpha, "\n")
  9. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注