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

基于计数的Likert量表均值计算异常问题求助

修正Likert量表均值计算错误的方案

问题根源

你第三步的计算逻辑完全错误。正确的Likert加权均值应该是所有(同意等级编码值 × 对应选择人数)的总和除以总参与人数,而你用agreement_numeric的均值除以其总和,这种计算方式会把数值无意义地缩小,导致所有结果都为0.05这类异常值。

正确计算步骤与R代码示例

假设你的数据集结构包含问题项,以及各同意等级的选择人数列(比如Strongly_disagree到Strongly_agree),以下是修正后的代码:

1. 模拟/加载数据集

# 模拟你的Likert数据集(替换成你实际的数据集)
library(tibble)
likert_data <- tibble(
  item = c("用户体验满意度", "功能实用性", "界面友好度"),
  Strongly_disagree = c(4, 6, 3),
  Disagree = c(9, 11, 7),
  Neutral = c(16, 19, 22),
  Agree = c(21, 24, 18),
  Strongly_agree = c(10, 10, 10)
)

2. 计算加权均值

library(dplyr)

likert_summary <- likert_data %>%
  rowwise() %>%
  mutate(
    # 计算加权总和:编码值1-5分别对应各选项人数
    weighted_total = 1*Strongly_disagree + 2*Disagree + 3*Neutral + 4*Agree + 5*Strongly_agree,
    # 计算该问题的总参与人数
    total_people = sum(c_across(Strongly_disagree:Strongly_agree)),
    # 核心:加权均值 = 加权总和 / 总人数
    avg_score = weighted_total / total_people
  ) %>%
  ungroup() %>%
  select(item, avg_score) # 保留需要的列

# 查看计算结果
print(likert_summary)

3. 可视化均值

用ggplot2将结果展示为图表:

library(ggplot2)

ggplot(likert_summary, aes(x = item, y = avg_score)) +
  geom_col(fill = "#2E86AB", alpha = 0.8) +
  geom_text(aes(label = round(avg_score, 2)), vjust = -0.3, size = 4) +
  ylim(1, 5) + # 匹配Likert量表的1-5评分范围
  labs(title = "Likert量表各维度均值", x = "评估项", y = "加权均值") +
  theme_bw()

关键说明

  • 编码逻辑保持你的设定:Strongly disagree=1,Strongly agree=5,无需调整
  • 加权均值的核心是用人数加权各评分值,最终结果会落在1-5之间,符合Likert量表的预期范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:56:02