李克特分析:使用wilcoxon来确定R中调查前和调查后数据之间的重要性

时间:2016-05-19 07:08:40

标签: r survey

我对统计数据的经验很少,非常感谢任何帮助。我目前正在使用R来执行此操作。

我正在尝试确定Likert分析数据的重要性。我的每个前后调查都有一个问题,有25个问题(专栏),有59个学生(行)的答复。

我正在使用Wilcoxon签名等级测试,即。通过比较调查前数据的第一列和调查后数据的第一列,然后是第二个问题,依此类推,测试第一个问题的重要性。

如何编写for循环以在所有问题的回答中运行Wilcoxon测试?

到目前为止我已经发现了这个,但是还没有能够正确运行它。甚至帮助理解一些语法也会很棒。

test.fun <- function(dat, col) { 

 c1 <- combn(unique(dat$group),2)  sigs <- list()  for(i in 1:ncol(c1)) {
    sigs[[i]] <- wilcox.test(
                   dat[dat$group == c1[1,i],col],
                   dat[dat$group == c1[2,i],col]
                 )
    }
    names(sigs) <- paste("Group",c1[1,],"by Group",c1[2,])

 tests <- data.frame(Test=names(sigs),
                    W=unlist(lapply(sigs,function(x) x$statistic)),
                    p=unlist(lapply(sigs,function(x) x$p.value)),row.names=NULL)

 return(tests) }


tests <- lapply(colnames(dat)[-1],function(x) test.fun(dat,x)) names(tests) <- colnames(dat)[-1]

提前非常感谢你。

1 个答案:

答案 0 :(得分:0)

以下是根据您所描述的内容运行wilcoxon测试的示例:

示例数据:假设响应评级为1到5,前后调查将分别单独保存,并具有匹配的列名称。

pre <- replicate(25, sample(1:5, 59, replace=T))
post <- replicate(25, sample(1:5, 59, replace=T))
colnames(pre) <- colnames(post) <- paste0("Q", 1:25)

要运行wilcoxon测试,请使用lapply函数循环每个列名称(x),该列名称将插入所选的pre [,x]和post [,x]数据以进行测试。所有25个测试的结果都以列表(all.test)的形式返回:

all.test <- lapply(colnames(post), function(x) wilcox.test(pre[,x], post[,x]))

要一次性提取所有测试的统计数据和p.value,请使用sapply循环每个wilcoxon测试并提取(&#39; [&#39;)两个&#34;统计数据&#34;和&#34; p.value&#34;并作为矩阵返回。

sapply(all.test, '[', c("statistic", "p.value"))
          [,1]      [,2]    [,3]     [,4]      [,5]      [,6]      [,7]      [,8]       [,9]      [,10]    
statistic 1556.5    1931    1718     1894.5    1659      1785      1652.5    2066.5     1912.5    1658     
p.value   0.3122574 0.29259 0.903439 0.3976938 0.6555535 0.8086088 0.6301387 0.07366355 0.3451189 0.6523042
          [,11]     [,12]     [,13]    [,14]      [,15]     [,16]     [,17]      [,18]     [,19]     [,20]    
statistic 1605.5    1723      1678.5   1368       1810      1813      2082        1595      1862.5    1588     
p.value   0.4591325 0.9254467 0.735141 0.04035589 0.7040117 0.6920512 0.06084165 0.4222573 0.5027951 0.4028304
          [,21]     [,22]     [,23]     [,24]     [,25]    
statistic 1986.5    1816.5    1854      1819.5    1859.5   
p.value   0.1772745 0.6779568 0.5344984 0.6661272 0.5147567