首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >likert数据分析

likert数据分析
EN

Stack Overflow用户
提问于 2017-05-02 16:35:29
回答 1查看 98关注 0票数 0

我试图用R(平均值、sd、var)计算以下数据框架的基本统计数据(本表中的数字是响应的频率):

代码语言:javascript
复制
Question Strongly disagree Disagree Don't know Agree Strongly agree
    A             1            1        15       4          25
    B             1            1        18       3          23
    C             0            0        19       1          26 

我如何计算我上面提到的内容,并可视化这些数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-02 17:02:02

在这种情况下,获得简要统计数据的唯一方法是强烈假设答复之间的差异是相同的(例如,“强烈不同意”和“不同意”之间的区别与“不同意”和“不知道”之间的区别相同)。如果你愿意做这个假设,那么你就可以计算加权平均值。

代码语言:javascript
复制
tt <- read.table(header=TRUE,textConnection("
 Question Strongly_disagree Disagree Dont_know Agree Strongly_agree
 A             1            1        15       4          25
 B             1            1        18       3          23
 C             0            0        19       1          26"))

 tt2 <- tt[,-1]  ## scores only
 ss <- sweep(tt2,MARGIN=2,FUN="*",1:5) ## weight by numeric equivalent

平均值:计算分数的加权平均值。

代码语言:javascript
复制
 (meanvals <- rowSums(ss)/rowSums(tt2))
 ## [1] 4.108696 4.000000 4.152174

这些对应的选择等于或略比“同意”更积极。

或者,您可以使用apply(tt2,1,weighted.mean,x=1:5)

标准差:

代码语言:javascript
复制
 devs <- outer(-meanvals,1:5,"+")
 sqrt(rowSums(devs^2*tt2)/rowSums(tt2))    

(您可能需要用rowSums(tt2)-1除以获得样本标准差)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43743051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档