我是一名目前居住在新德里的研究员,我帮助调整和验证心理测量问卷。为此,我需要帮助修复错误,使用 psych 包计算R中的序数alpha 。
问卷是 7分李克特式量表(从最不可能的'到最有可能')有30个项目和6个子秤。对于这些子尺度,我有兴趣计算他们的 序数 alphas ,据我所知,使用 polychoric相关矩阵而不是Chronbach's alpha中使用的 pearson相关矩阵来计算alpha分数。
为实现这一目标,我使用 R ,特别是 psych 包和实用指南中列出的步骤,"估算序数可靠性对于李克特型和序数项目回复数据......" (Gadderman et al, 2012)。计算序数alpha分数基本上发生在两个命令中:
data.pc <- polychoric(data)
为&#39; data.pc&#39; alpha(data.pc$rho)
,为数据集&#39;数据提供序数 alpha分数对于我的6个分量表中的5个,在步骤1 中出现多个错误 - 创建多重相关矩阵。我在下面提供了两个例子,其中有40个响应,但来自两个不同的子量表。对于第一个具有3个项目(ABC)的子量表,在计算polychoric()
时出现了一堆错误。对于具有3个项目(DEF)的第二个子量表,在计算polychoric
时不会出现错误,我随后可以计算alpha()
(最终为0.81 - 一个好的得分了!)。什么经历了什么?
数据
ABC <- " A B C
1 7 7 7
2 2 7 1
3 2 2 1
4 3 3 1
5 2 3 1
6 3 4 5
7 1 1 1
8 1 1 1
9 4 1 2
10 1 3 1
11 3 1 1
12 5 2 2
13 1 1 1
14 1 1 1
15 1 1 1
16 4 7 1
17 5 1 2
18 4 1 7
19 6 2 1
20 7 7 7
21 3 1 1
22 1 1 1
23 1 1 1
24 1 7 1
25 1 1 1
26 1 1 1
27 1 4 1
28 2 1 1
29 4 7 1
30 7 7 7
31 1 1 7
32 1 1 1
33 1 1 1
34 7 2 2
35 1 2 2
36 6 7 7
37 2 7 5
38 1 2 1
39 1 1 3
40 1 1 1"
ABC <- read.table(text=ABC, header=TRUE) # Dataset with errors
ABC.pc <- polychoric(ABC)
alpha(ABC.pc$rho)
DEF <- " D E F
1 7 7 7
2 7 7 1
3 1 1 1
4 1 1 4
5 1 6 1
6 5 2 2
7 1 3 1
8 1 1 1
9 3 2 3
10 7 4 7
11 2 1 1
12 1 2 1
13 1 1 1
14 4 5 7
15 1 2 2
16 1 1 1
17 4 7 5
18 7 7 1
19 6 6 4
20 7 7 7
21 7 7 1
22 3 3 1
23 4 3 1
24 1 1 1
25 1 1 1
26 1 1 1
27 1 1 4
28 7 7 1
29 4 4 1
30 7 7 4
31 7 2 6
32 1 1 1
33 1 3 1
34 7 2 2
35 2 1 2
36 1 4 4
37 1 1 1
38 1 1 1
39 1 1 5
40 1 1 1"
DEF <- read.table (text=DEF, header= TRUE) #Dataset without errors
DEF.pc <- polychoric(DEF)
alpha(DEF.pc$rho)
方案吗
如Gadderman等人的指南中的数据输入部分(第7页)所述,这些项目应具有连续数字的序数数据。&#34;这可能是我的问题所在,因为我的受访者经常忽略一个或多个值(例如,数据集ABC省略值&#39; 5&#39;以及&#39; 6&#39;项目&#39; B&#39 ; - 构成ABC子量表的三个中的一个)。我已经删除了多变量异常值,但我确实认为响应具有很高的偏差。我不能再收集数据来填补这些空白。
我发现的唯一的潜在解决方案是a thread与某个问题非常相似的人。根据我的理解,统计学家(约翰福克斯,Dep.Sociology,麦克马斯特大学)建议的是重新排列答案:例如,如果受访者没有回应“5”。和&#39; 6&#39;然后回复&#39; 7&#39;将被重新编码为&#39; 5,以便它与答案&1,2,4,3,4&#39;串联。我意识到这里的包 polychor 与我使用的包不同,但我认为原理是一样的。
我的问题是:正在重新排名&#39;以这种方式适当(即得到的序数α分数是否准确估计)?如果没有:还有其他解决方案吗?
答案 0 :(得分:0)
两个问题:
帮助信息似乎认为最大类别数为5.可能没有必要使用此方法来估算具有7个类别的Likert类型项目的可靠性。
提供的数据集中有太多缺失值。即使数据集不包含任何NA
s,也不会表示所有序数类别。它无法生成您正在寻找的估计数,而是提供了大量的信息。
您可以编辑数据,以说明预期其运行的条件。例如:
# read in data like above
ABC <- read.table(text = ABC, header = TRUE)
# restrict upper range to 5
ABC[ABC > 5] <- 5
# fill in missing values (scale value 4 on variable C)
ABC[1, 3] <- 4
library(psych)
ABC.pc <- polychoric(ABC)
alpha(ABC.pc$rho)
进行这些更改(1-5级,没有丢失的间隔)后,我估计这些程序没有错误。