R - 序数Alpha可靠性ERR

时间:2016-06-26 16:25:08

标签: r alpha reliability

我是一名目前居住在新德里的研究员,我帮助调整和验证心理测量问卷。为此,我需要帮助修复错误,使用 psych 包计算R中的序数alpha

修复错误

问卷是 7分李克特式量表(从最不可能的'到最有可能')有30个项目和6个子秤。对于这些子尺度,我有兴趣计算他们的 序数 alphas ,据我所知,使用 polychoric相关矩阵而不是Chronbach's alpha中使用的 pearson相关矩阵来计算alpha分数。

为实现这一目标,我使用 R ,特别是 psych 包和实用指南中列出的步骤,"估算序数可靠性对于李克特型和序数项目回复数据......" (Gadderman et al, 2012)。计算序数alpha分数基本上发生在两个命令中:

  1. data.pc <- polychoric(data)为&#39; data.pc&#39;
  2. 创建多重相关矩阵
  3. alpha(data.pc$rho),为数据集&#39;数据提供序数 alpha分数
  4. 对于我的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;以这种方式适当(即得到的序数α分数是否准确估计)?如果没有:还有其他解决方案吗?

1 个答案:

答案 0 :(得分:0)

两个问题:

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

  2. 提供的数据集中有太多缺失值。即使数据集不包含任何NA s,也不会表示所有序数类别。它无法生成您正在寻找的估计数,而是提供了大量的信息。

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

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