【发布时间】:2016-06-26 16:25:08
【问题描述】:
我是一名研究员,目前在新德里工作,我正在帮助调整和验证心理测量问卷。为此,我在使用包 psych 计算 R 中的 ordinal alpha 时需要修复错误方面的帮助。
修复错误
问卷是 7 点李克特式量表(从“最不可能”到“最可能”),包含 30 个项目和 6 个子量表。对于这些子量表,我有兴趣计算它们的 ordinal alphas,据我所知,它使用 polychoric 相关矩阵 而不是 皮尔逊相关矩阵用于Chronbach's alpha计算alpha分数。
为了实现这一点,我使用 R,特别是包 psych 以及实用指南“估计 Likert 类型的序数可靠性和序数项目响应数据......”(Gadderman et al, 2012)。计算序数 alpha 分数基本上发生在两个命令中:
-
data.pc <- polychoric(data)为“data.pc”创建多变量相关矩阵 -
alpha(data.pc$rho)提供数据集“数据”的 序数 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 页)所述,“项目应具有带有连续数字的序数数据。”这可能是我的问题所在,因为我的受访者经常省略一个或多个值(例如,数据集 ABC 在项目“B”中省略了值“5”和“6”——构成 ABC 子量表的三个值之一)。我已经删除了多元异常值,但我确实希望响应具有高偏差。我也无法再收集数据来填补这些空白。
我发现的唯一潜在解决方案是在a thread 中与遇到非常相似问题的人一起使用。据我了解,统计学家(约翰福克斯,麦克马斯特大学社会学系)建议对回答重新排序:例如,如果受访者没有回答“5”和“6”,那么“7”的回答将是重新编码为“5”,使其与答案“1,2,3,4”串联。我意识到这里的包polychor和我现在用的包是不一样的,但是我觉得原理是一样的。
我的问题是:以这种方式“重新排名”是否合适(即,由此产生的序数 alpha 分数是否是准确的估计)?如果没有:还有其他解决方案吗?
【问题讨论】:
-
你能
dput你的数据并显示你的错误吗? -
我认为jugRu 包中的
ordinal_alpha()函数可以解决问题
标签: r alpha reliability