【问题标题】:R - Ordinal Alpha Reliability ERRR - 序数 Alpha 可靠性 ERR
【发布时间】: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 分数基本上发生在两个命令中:

  1. data.pc <- polychoric(data)为“data.pc”创建多变量相关矩阵
  2. 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


【解决方案1】:

两个问题:

  1. 帮助信息似乎认为最大类别数为 5。可能没有必要使用此方法来估计具有 7 个类别的李克特类型项目的可靠性。

  2. 提供的数据集中缺失值过多。即使数据集不包含任何NAs,也不是所有的序数类别都被表示出来。由于提供的信息量很少,它无法生成您正在寻找的估计值。

您可以编辑您的数据,以说明预期的运行条件。示例:

# 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 级,没有丢失间隔)之后,这些程序对我来说估计没有错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 2013-04-01
    相关资源
    最近更新 更多