You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:在R中计算双条目求和变量的Spearman-Brown系数可行代码

计算两个条目求和变量的Spearman-Brown系数实现方法

核心原理

Spearman-Brown系数用于评估测验长度调整后的信度,针对两个条目(var1和var2)的场景,计算公式非常直接:

SB = (2 * r) / (1 + r)
其中r是两个条目间的皮尔逊相关系数(计算前需剔除含缺失值的样本)。

手动实现步骤(R语言)

  1. 预处理数据:你的数据是rowwise_df格式,先转成普通数据框,再删除含NA的行:
# 加载你的数据
df <- structure(list(var1 = c(5, 2, NA, 2, 3, 1, 6, 1, 4, 5, 5, 2, 2, 3, 1, 3, 2, NA, 5, 7, 5, 2, 2, 2, NA, 2, NA, 2, 2, 5, 2, 4, 2, 3, 5, 5, 2, 5, 5, 2, 4, NA, 6, 7, 7, 3), var2 = c(2, 1, NA, 2, 2, 1, 1, 1, 2, 2, 3, 1, 2, 2, 1, 2, 2, NA, 3, 2, 1, 2, 2, 1, NA, 1, NA, 1, 1, 2, 1, 1, 2, 2, 2, 4, 2, 3, 2, 2, 1, NA, 2, 2, 4, 1)), class = c("rowwise_df", "tbl_df", "tbl", "data.frame"), row.names = c(NA, -46L), groups = structure(list(.rows = structure(list(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L), ptype = integer(0), class = c("vctrs_list_of", "vctrs_vctr", "list"))), row.names = c(NA, -46L), class = c("tbl_df", "tbl", "data.frame")))

# 转换为普通数据框并剔除缺失值
df_clean <- as.data.frame(df) |> na.omit()
  1. 计算相关系数r:
# 计算var1和var2的皮尔逊相关系数
r <- cor(df_clean$var1, df_clean$var2, method = "pearson")
  1. 计算Spearman-Brown系数:
# 代入公式计算
spearman_brown_coeff <- (2 * r) / (1 + r)

# 输出结果
cat("Spearman-Brown系数:", spearman_brown_coeff, "\n")

使用psych包快速计算

如果偏好现成工具,可以用psych包的spearman.brown函数,直接传入相关系数即可:

# 安装并加载psych包(首次使用需安装)
# install.packages("psych")
library(psych)

# 计算Spearman-Brown系数
sb_result <- spearman.brown(r, n = 2)
# 查看结果
sb_result

注意事项

  • 必须先剔除缺失值,否则相关系数计算会返回NA;
  • 原始的rowwise_df是按行分组的格式,转换为普通数据框后才能正常进行统计运算;
  • 这里的Spearman-Brown系数本质是将单条目信度校正为双条目求和后的信度结果。

内容的提问来源于stack exchange,提问作者Espejito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 19:25:20