library(psych)
# Leemos y guardamos la base de datos en el objeto big5
<- read.csv("https://david-ti.github.io/introstats/data/big_five.csv")
big5
# Podemos crear dos nuevas variables en la base de datos
$n2i <- (5 + 1) - big5$n2
big5$n4i <- (5 + 1) - big5$n4
big5
# Creamos una sub base que contiene solamente las preguntas de neuroticismo
<- big5[,c("n1","n2i","n3","n4i","n5","n6","n7","n8","n9","n10")] neuro
Apuntes de R
Apunte 13: Alfa de Cronbach
Estimación de la confiabilidad de un instrumento
La confiabilidad o precisión de un instrumento es definida por los Estándares de la APA, AERA y NCME como la consistencia de los puntajes entre realizaciones de un procedimiento de medición, independientemente de cómo esta consistencia sea calculada o reportada.
La confiabilidad es un aspecto fundamental al momento de considerar el uso de un instrumento de medición, pero siempre debe ser considerada de la mano de la validez. No tiene sentido el intentar aumentar la precisión de puntajes si se sacrifica su validez de las inferencias que se espera hacer con estos.
Como vimos en clase, el principal desafío en ciencias sociales respecto al cálculo de la confiabilidad/precisión es la dificultad de hacer mediciones repetidas en ciencias sociales.
Producto de la restricción que enfrentamos de realizar múltiples mediciones repetidas se han desarrollado múltiples métodos para estimar la precisión de un instrumento, cada uno de ellos capturando distintas posibles fuentes de error.
Una de las formas más comunes de estimar confiabilidad es en base a la consistencia interna de los ítems o preguntas que componen el instrumento. El alfa de Cronbach es probablemente el indicador más usado para estimar la consistencia interna, pero es importante recordar que (a) no es el único indicador de consistencia interna, y (ii) que la consistencia interna no es la unica forma de estimar la confiabilidad/precisión de un instrumento.
Usando Alfa de Cronbach
En la clase vimos una presentación detallada de la forma en que se calcula este indicador. Aquí nos concentraremos en ver cómo podemos usar R para calcular el alfa de Cronbach para un instrumento de medición.
Para calcular el alfa vamos a usar el comando alpha
de la librería psych
.
Ejemplo 1
En nuestro primer ejemplo examinaremos la consistencia interna de la escala de neuroticismo en un cuestionario de personalidad.
Las 10 preguntas asociadas al factor de neuroticismo en esta base de datos están nombradas con las letras n
(n1, n2, …, n10) y corresponden a estas preguntas:
- N1 Me estreso con facilidad.
- N2 Estoy relajado la mayor parte del tiempo.
- N3 Me preocupo por las cosas.
- N4 Rara vez me siento triste.
- N5 Me altero fácilmente.
- N6 Me altero con facilidad.
- N7 Cambio mucho de humor.
- N8 Tengo frecuentes cambios de humor.
- N9 Me irrito fácilmente.
- N10 A menudo me siento triste.
Podemos ver que las preguntas N2 y N4 están invertidas en relación al resto de la escala, por lo que antes de calcular un promedio de toda la escala debemos “invertir” estas respuestas.
De forma general las respuestas pueden ser invertidas siguiendo la fórmula:
(valor máximo de respuesta + 1) - valor de la respuesta
De esta forma, en una escala de 1 a 5 como es el caso en este instrumento, una respuesta 2
a un ítem invertido correspondería a una respuesta de 4
en el sentido “correcto” (5 + 1 - 2).
El alfa de Cronbach es calculado directamente sobre las respuestas a las preguntas del instrumento que queremos analizar, en este caso, hemos guardado estas respuestas a las 10 preguntas de la escala de neuroticismo en el objeto neuro
.
alpha(neuro)
Reliability analysis
Call: alpha(x = neuro)
raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
0.86 0.85 0.86 0.37 5.9 0.0093 3 0.84 0.38
95% confidence boundaries
lower alpha upper
Feldt 0.84 0.86 0.88
Duhachek 0.84 0.86 0.88
Reliability if an item is dropped:
raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
n1 0.84 0.84 0.84 0.36 5.1 0.0104 0.019 0.38
n2i 0.86 0.85 0.86 0.39 5.8 0.0095 0.017 0.40
n3 0.84 0.84 0.85 0.36 5.1 0.0104 0.020 0.36
n4i 0.86 0.86 0.87 0.41 6.2 0.0091 0.012 0.40
n5 0.85 0.85 0.86 0.38 5.5 0.0099 0.018 0.38
n6 0.84 0.83 0.84 0.36 5.0 0.0108 0.017 0.36
n7 0.84 0.83 0.84 0.36 5.0 0.0107 0.014 0.38
n8 0.83 0.83 0.83 0.35 4.9 0.0109 0.014 0.37
n9 0.84 0.83 0.84 0.36 5.0 0.0108 0.016 0.36
n10 0.84 0.84 0.85 0.36 5.1 0.0105 0.020 0.37
Item statistics
n raw.r std.r r.cor r.drop mean sd
n1 500 0.70 0.70 0.66 0.60 3.2 1.3
n2i 500 0.52 0.53 0.45 0.41 2.7 1.2
n3 500 0.68 0.69 0.65 0.60 3.7 1.2
n4i 500 0.43 0.44 0.34 0.31 3.1 1.2
n5 500 0.60 0.60 0.53 0.49 2.9 1.2
n6 500 0.73 0.73 0.70 0.65 3.0 1.3
n7 500 0.72 0.71 0.70 0.63 3.1 1.3
n8 500 0.76 0.75 0.74 0.67 2.7 1.4
n9 500 0.74 0.73 0.70 0.65 3.1 1.4
n10 500 0.70 0.70 0.66 0.61 2.8 1.3
Non missing response frequency for each item
1 2 3 4 5 miss
n1 0.13 0.24 0.20 0.23 0.20 0
n2i 0.16 0.31 0.27 0.18 0.08 0
n3 0.06 0.12 0.16 0.34 0.32 0
n4i 0.10 0.21 0.29 0.28 0.12 0
n5 0.13 0.27 0.25 0.22 0.12 0
n6 0.15 0.26 0.21 0.20 0.18 0
n7 0.13 0.21 0.24 0.22 0.20 0
n8 0.24 0.25 0.20 0.17 0.14 0
n9 0.17 0.19 0.20 0.26 0.18 0
n10 0.19 0.25 0.24 0.19 0.12 0
Ejemplo 2
En nuestro segundo ejemplo examinaremos la consistencia interna de la escala de autoestima en un cuestionario de polivictimización.
Recordamos que el factor autoestima se compone de 10 preguntas:
- AU1 Siento que soy una persona valiosa, al menos igual que los demás
- AU2 Siento que tengo cualidades positivas
- AU3 En general, tiendo a sentir que soy un fracaso
- AU4 Soy capaz de hacer las cosas tan bien como la mayoría de las otras personas
- AU5 Siento que no tengo mucho de lo que sentirme orgulloso
- AU6 Tengo una actitud positiva hacia mí mismo
- AU7 Considerando todas las cosas, estoy satisfecho conmigo mismo
- AU8 Me gustaría tener más respeto conmigo mismo
- AU9 Me siento inútil a veces
- AU10 Algunas veces pienso que no soy bueno en absoluto
#Cargamos la base de datos
<- read.csv("https://david-ti.github.io/introstats/data/datos_poli_2017.csv")
poli
#Invertimos los puntajes de aquellas preguntas en donde corresponde
$au3i <- (5 + 1)-poli$au3
poli$au5i <- (5 + 1)-poli$au5
poli$au8i <- (5 + 1)-poli$au8
poli$au9i <- (5 + 1)-poli$au9
poli$au10i <- (5 + 1)-poli$au10
poli
# Creamos un objeto para almacenar las 10 preguntas
<- NA
auto <- poli[,c("au1","au2","au3i","au4","au5i","au6","au7","au8i","au9i","au10i")] auto
El alfa de Cronbach es calculado directamente sobre las respuestas a las preguntas del instrumento que queremos analizar, en este caso, hemos guardado estas respuestas a las 10 preguntas de la escala de autoestima en el objeto auto
.
alpha(auto)
Reliability analysis
Call: alpha(x = auto)
raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
0.85 0.85 0.87 0.36 5.6 0.0016 3.5 0.77 0.35
95% confidence boundaries
lower alpha upper
Feldt 0.84 0.85 0.85
Duhachek 0.84 0.85 0.85
Reliability if an item is dropped:
raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
au1 0.83 0.83 0.85 0.35 4.8 0.0018 0.041 0.36
au2 0.83 0.83 0.85 0.35 4.8 0.0018 0.040 0.36
au3i 0.82 0.82 0.86 0.34 4.7 0.0019 0.048 0.32
au4 0.83 0.83 0.86 0.36 5.0 0.0018 0.043 0.35
au5i 0.84 0.84 0.87 0.36 5.2 0.0017 0.050 0.37
au6 0.82 0.82 0.85 0.34 4.6 0.0019 0.041 0.33
au7 0.82 0.82 0.85 0.34 4.6 0.0019 0.041 0.32
au8i 0.87 0.87 0.89 0.43 6.9 0.0014 0.019 0.41
au9i 0.83 0.83 0.85 0.35 4.9 0.0018 0.047 0.34
au10i 0.82 0.83 0.85 0.34 4.7 0.0019 0.048 0.34
Item statistics
n raw.r std.r r.cor r.drop mean sd
au1 19227 0.67 0.69 0.661 0.571 3.9 1.10
au2 19258 0.66 0.69 0.671 0.581 4.0 0.99
au3i 19098 0.73 0.72 0.688 0.648 3.4 1.21
au4 19214 0.64 0.66 0.611 0.542 3.9 1.05
au5i 19147 0.62 0.60 0.530 0.501 3.4 1.26
au6 19278 0.74 0.75 0.739 0.659 3.8 1.15
au7 19248 0.73 0.74 0.728 0.650 3.7 1.16
au8i 19085 0.24 0.22 0.093 0.087 2.5 1.17
au9i 19207 0.71 0.69 0.657 0.607 3.0 1.32
au10i 19304 0.74 0.72 0.690 0.642 3.2 1.32
Non missing response frequency for each item
1 2 3 4 5 miss
au1 0.05 0.05 0.15 0.37 0.37 0.02
au2 0.04 0.05 0.12 0.46 0.33 0.02
au3i 0.07 0.16 0.26 0.27 0.23 0.03
au4 0.04 0.07 0.19 0.39 0.31 0.02
au5i 0.08 0.19 0.23 0.25 0.24 0.03
au6 0.06 0.09 0.19 0.35 0.31 0.02
au7 0.06 0.10 0.20 0.34 0.30 0.02
au8i 0.22 0.37 0.23 0.10 0.08 0.03
au9i 0.14 0.27 0.22 0.19 0.19 0.02
au10i 0.11 0.21 0.23 0.21 0.24 0.02