Alfa de Cronbach

El alfa de Cronbach, también conocido simplemente como alfa de Cronbach o coeficiente alfa, es una medida de la consistencia interna de un test o escala que se utiliza para evaluar la fiabilidad de instrumentos psicométricos, es decir, la capacidad de un test para producir resultados consistentes y reproducibles bajo condiciones consistentes. Fue desarrollado por Lee Cronbach en 1951, y es uno de los indicadores más comunes para estimar la fiabilidad de escalas compuestas por múltiples ítems.

Conceptos clave del alfa de Cronbach:

  • Consistencia interna: Se refiere a cuán estrechamente relacionados están entre sí los ítems de una prueba. Una alta consistencia interna significa que los ítems están midiendo el mismo constructo subyacente.
  • Fiabilidad: En psicometría, la fiabilidad es la precisión con la que una herramienta mide un atributo psicológico sin error de medición. El alfa de Cronbach estima esta fiabilidad.

Cómo se calcula:

El alfa de Cronbach se calcula mediante la siguiente fórmula: \[ \alpha = \frac{k}{k-1} \left(1 - \frac{\sum_{i=1}^k \sigma_{y_i}^2}{\sigma_x^2} \right) \] donde:

  • \(k\) es el número total de ítems en la escala.
  • \(\sigma_{y_i}^2\) es la varianza de cada ítem individual.
  • \(\sigma_x^2\) es la varianza total de todas las puntuaciones sumadas.

Interpretación del alfa de Cronbach:

  • Valores del alfa de Cronbach: Generalmente, un alfa mayor a 0.7 se considera aceptable, mayor a 0.8 es bueno, y mayor a 0.9 es excelente. Sin embargo, valores muy altos (p. ej., mayor a 0.95) podrían indicar que los ítems son redundantes.
  • Limitaciones: Aunque es ampliamente utilizado, el alfa de Cronbach tiene sus críticos y limitaciones. Por ejemplo, asume que cada ítem de la prueba contribuye igualmente a la variable que se está midiendo y que los ítems están correlacionados positivamente. Además, puede estar influido por el número de ítems en la escala; más ítems pueden llevar a un alfa artificialmente alto.
  • Uso en diferentes tipos de datos: Aunque originalmente diseñado para ítems con respuestas continuas, el alfa de Cronbach también se puede utilizar con datos categóricos (como ítems de tipo Likert), siempre que se interprete con cuidado.

El alfa de Cronbach sigue siendo una herramienta esencial en la investigación educativa, psicológica y de ciencias sociales para asegurar la calidad de las herramientas de medición utilizadas en los estudios. Sin embargo, es importante usarlo junto con otras medidas de fiabilidad y validar los resultados con estudios adicionales.

Alfa de Cronbach en R

Preparando el área de trabajo

En el menú de opciones de RStudio ve a Session/Set Working Directory/Choose Directory (Imagen 1), y se abrirá una ventana emergente para seleccionar el espacio de trabajo, una vez selaccionada la carpeta de trabajo donde se encuentra el archivo de Excel aceptar el cambio.

Imagen 1. Elección de directorio
Imagen 1. Elección de directorio

Cargar base de datos Excel

Para ello existen dos formas: 1) cargar la base de datos por comando desde el directorio de trabajo cargado, 2) cargar el archivo desde el directorio de trabajo y 3) usando el menú de RStudio.

Para los siguientes ejemplos encuesta datos.xlsx será el nombre asigando para cualquier base de datos.

Forma 1

Para trabajar con datos de Excel en RStudio, puedes seguir estos pasos. Usaremos el paquete readxl para leer archivos de Excel y el paquete writexl para escribir archivos de Excel. Aquí te detallo el proceso, comenzando con la generación de un archivo de Excel ficticio:

  1. Instalación de paquetes necesarios

    Abre RStudio y asegúrate de tener instalados los paquetes readxl y writexl. Si no los tienes, puedes instalarlos usando:

    install.packages("readxl")
    install.packages("writexl")
  2. Leer los datos de Excel

    Utiliza el paquete readxl para cargar los datos del archivo Excel:

    library(readxl)
    datos_encuesta <- read_excel("encuesta_datos.xlsx")

    Este código leerá el archivo encuesta_datos.xlsx y almacenará los datos en el data frame datos_encuesta.

  3. Trabajar con los datos

    Una vez que los datos están en R, puedes manipularlos, analizarlos o visualizarlos como lo necesites. Por ejemplo, para ver las primeras filas de los datos, puedes usar:

    head(datos_encuesta)
  4. Crear un nuevo archivo de Excel

    Si modificas los datos o generas nuevos datos y quieres guardarlos en un nuevo archivo de Excel, puedes usar el paquete writexl:

    library(writexl)
    write_xlsx(datos_encuesta, "nuevo_encuesta_datos.xlsx")

    Esto creará un archivo llamado nuevo_encuesta_datos.xlsx con los datos del data frame datos_encuesta.

Siguiendo estos pasos, podrás trabajar eficientemente con archivos de Excel en RStudio, desde la lectura de los datos hasta la escritura de nuevos archivos de Excel tras realizar tus análisis o manipulaciones.

Forma 2

En el espacio de utilidades, en la pestaña Files da clic sobre el archivo y desplegará dos opciones (ver Imagen 2), selecciona Import Dataset.

Imagen 2. Selección de archivo de Excel
Imagen 2. Selección de archivo de Excel

Esto abrará un cuadro de dialogo (ver Imagen 3) donde una vez configurada la base de datos se da clic al botón importar.

Imagen 3. Configuración de importación de base de datos de Excel
Imagen 3. Configuración de importación de base de datos de Excel

Forma 3

Desde el menú de RStudio se sigue la siguiente ruta File/Import Dataset/From Excel.. (ver Imagen 4) esto mostrará la ventana emergenete como en la Imagen 3.

Imagen 4. Ruta para importar archivo desde Excel
Imagen 4. Ruta para importar archivo desde Excel

Limpieza de los datos

Por lo general los datos suelen tener una serie de elementos que no son considerados, para el siguiente ejemplo se hará uso de una hoja de cálculo con variables cualitativasy cuantitativas como se muestra a continuación algunas de las variables que contiene el archivo de Excel a trabajar.

##   Edad    Género Nivel de Estudios Uso de Redes Sociales Uso de Facebook
## 1   56 Masculino      Preparatoria             Raramente              Sí
## 2   46  Femenino        Secundaria        Frecuentemente              No
## 3   32  Femenino          Maestría                 Nunca              Sí
## 4   25  Femenino        Secundaria                 Nunca              Sí

El archivo para trabajar se puede descargar desde el siguiente enlace: Encuesta_Redes_Sociales.xlsx

Renombrar variables

Como ya se observó algunas de las variables usadas son largas o dificiles de recordar, para ello es necesario crear códigos para las variables a trabajar

Para realizar este poroceso más simple converte tus datos en un data frame, para ello realiza lo sdiguiente con el archivo:

ERS_df <- as.data.frame(ERS)

Para cambiar el nombre de una columna en un data frame en R antes o después de exportar los datos, puedes usar varias funciones. Una de las formas más comunes y sencillas de hacerlo es utilizando la función colnames() o names() si trabajas con data frames. También puedes utilizar el paquete dplyr para una sintaxis más limpia y descriptiva.

Aquí veremos ambos métodos:

Usando names() o colnames()

Puedes cambiar el nombre de las columnas directamente accediendo a los nombres de las columnas y asignándoles nuevos valores. Por ejemplo, si quieres cambiar el nombre de la primera columna a “nuevo_nombre1” y el de la segunda columna a “nuevo_nombre2”, harías lo siguiente:

# Suponiendo que 'ERS_df' es tu data frame
names(ERS_df)[1] <- "nuevo_nombre1"
names(ERS_df)[2] <- "nuevo_nombre2"

# O usando colnames(), que es específico para columnas
colnames(ERS_df)[1] <- "nuevo_nombre1"
colnames(ERS_df)[2] <- "nuevo_nombre2"

Usando el paquete dplyr

El paquete dplyr proporciona una manera más legible y flexible para manipular data frames, incluido el cambio de nombres de columnas a través de la función `rename(). Aquí te muestro cómo usarlo:

# Asegúrate de tener dplyr instalado y cargado
if (!require(dplyr)) install.packages("dplyr")
library(dplyr)

# Cambiar nombres de columnas
ERS_df <- ERS_df %>%
  rename(
    nuevo_nombre1 = nombre_antiguo1,
    nuevo_nombre2 = nombre_antiguo2
  )

En este ejemplo, nombre_antiguo1 y nombre_antiguo2 son los nombres actuales de las columnas que quieres cambiar. nuevo_nombre1 y nuevo_nombre2 son los nombres nuevos que deseas asignar.

Para esto se cambiarán algunas de las viables quedando así los siguientes códigos

  • edad: Edad de los participantes (años cumplidos)
  • genero: Género (Masculino, Femenino, Otro)
  • niv.est: Nivel de estudios (Secundaria, Preparatoria, Licenciatura, Maestría, Doctorado)
  • uso_redes: Frecuencia del uso de las redes sociales (Nunca, Raramente, A veces, Frecuentemente, Siempre)
  • tiempo: Percepción en el tiempo del uso de las redes sociales (Muy poco, Poco, Moderado, Mucho, Demasiado)
  • h_sueño: Horas de sueño a la semana
  • uso_F: Afirmación o negación del uso de Facebook (Sí, No)
  • uso_T: Afirmación o negación del uso de Tiktok (Sí, No)
  • sat_F: Nivel de satisfacción con el uso de la plataforma Facebook (1-5)
  • sat_T: Nivel de satisfacción con el uso de la plataforma Tiktok (1-5)
  • pers_RD: Percepción de las redes sociales (1-5)
# Instalando paquete dplyr
install.packages("dplyr")
library(dplyr)
# Cambiar nombres de columnas
ERS_df <- ERS_df %>%
  rename(
    genero = Género,
    niv.est = `Nivel de Estudios`,
    uso_redes = `Uso de Redes Sociales`,
    tiempo = `Tiempo en Redes Sociales`,
    h_sueño = `Horas de Sueño Semanales`,
    uso_F = `Uso de Facebook`,
    uso_T =`Uso de Tiktok`,
    sat_F =`Escala  satisfacción Facebook`,
    sat_T =`Escala  satisfacción Tiktok`,
    pers_RD =`Persepcion de las Redes Sociales`
  )

Quedando la salida de los datos como se muestra en la Imagen 5.

Imagen 5. Datos con códigos en variables
Imagen 5. Datos con códigos en variables

Cambio de variables cualitativas a cuantitativas.

Algunas de las preguntas son meramente para obtener información de la población como la Edad y el Género, pero existen otras que hay que cambiar a valores númericos ya que es necesario para validar el instrumento, como por ejempo aquellas variables con una escala Likert o bien tipo dicotóimicas.

1. Inspeccionar los datos cualitativos

Primero, es esencial entender las características de tus datos cualitativos. Supongamos que tienes una variable cualitativa llamada respuesta que incluye categorías como “Muy de acuerdo”, “De acuerdo”, “Neutral”, “En desacuerdo”, “Muy en desacuerdo”.

Si acaso se desconoce el tipo de respuestas a una pregunta en especifico, se puede generar la tabla de los datos con el tipo de respuesta que contiene:

table(ERS_df$`Uso de Redes Sociales`)  # Esto mostrará la frecuencia de cada categoría
## 
##        A veces Frecuentemente          Nunca      Raramente        Siempre 
##             10              9             18              8              5

2. Crear un factor con niveles ordenados

Para asegurarte de que las categorías tengan un orden lógico cuando se conviertan a números (especialmente importante en escalas Likert), puedes convertir la variable en un factor ordenado. Esto también facilita la interpretación y el análisis posterior.

ERS_df$uso_redes_factor <- factor(ERS_df$`Uso de Redes Sociales`, 
      levels = c("Nunca", "Raramente", "A veces", "Frecuentemente", "Siempre"),
      ordered = TRUE)

3. Convertir factores a numéricos

Una vez que tienes un factor ordenado, puedes convertirlo fácilmente en valores numéricos. Los niveles del factor se asignarán a números comenzando desde 1 hasta el número de niveles.

ERS_df$uso_redes_num <- as.numeric(ERS_df$uso_redes_factor)

4. Verificar la conversión

Es buena práctica verificar que la conversión se haya realizado correctamente. Puedes hacer esto revisando los primeros registros o utilizando tablas de contingencia para comparar las categorías originales con sus códigos numéricos.

head(ERS_df[c("uso_redes_factor", "uso_redes_num")])
##   uso_redes_factor uso_redes_num
## 1        Raramente             2
## 2   Frecuentemente             4
## 3            Nunca             1
## 4            Nunca             1
## 5            Nunca             1
## 6            Nunca             1
table(ERS_df$uso_redes_factor, ERS_df$uso_redes_num)
##                 
##                   1  2  3  4  5
##   Nunca          18  0  0  0  0
##   Raramente       0  8  0  0  0
##   A veces         0  0 10  0  0
##   Frecuentemente  0  0  0  9  0
##   Siempre         0  0  0  0  5

5. Uso de la nueva variable

Ahora que tienes la variable respuesta_num, puedes usarla para análisis estadísticos que requieran datos cuantitativos, como correlaciones, regresiones, análisis de varianza, etc.

Consideraciones adicionales

  • Validación: Asegúrate de que la conversión tenga sentido desde una perspectiva analítica y que los números asignados reflejen adecuadamente la jerarquía o la distancia entre las categorías, si es relevante.
  • Datos faltantes: Decide cómo manejarás los datos faltantes en tu variable cualitativa antes de la conversión. Puedes optar por asignarles un código específico o simplemente excluir esos casos del análisis.
  • Interpretación: Recuerda que aunque los números facilitan el análisis, las interpretaciones deben seguir considerando el significado original de las categorías cualitativas.

Este proceso te permitirá transformar eficientemente datos cualitativos en cuantitativos para su análisis en R.

Eliminar una variable

Para eliminar una variable (columna) de un dataframe en R, puedes utilizar diferentes métodos dependiendo de tu preferencia y de la situación específica. Aquí te muestro varios métodos comunes para hacerlo:

1. Usando la función subset()

Puedes usar la función subset() para seleccionar solo las columnas que quieres mantener en tu dataframe:

# Supongamos que quieres eliminar una columna llamada 'respuesta_num'
datos <- subset(datos, select = -respuesta_num)

El signo - antes del nombre de la columna indica que esa columna debe ser excluida del nuevo dataframe.

2. Asignando NULL a la columna

Otra manera de eliminar una columna es asignándole el valor NULL. Esto efectivamente elimina la columna del dataframe:

# Eliminar la columna 'respuesta_num'
datos$respuesta_num <- NULL

3. Usando la función [ ] con índices negativos

También puedes utilizar índices negativos dentro de corchetes para excluir columnas del dataframe:

# Eliminar la columna 'respuesta_num' suponiendo que sabes su posición
# Por ejemplo, si es la quinta columna:
datos <- datos[ , -5]

Consideraciones finales

  • Cuidado al eliminar: Asegúrate de que realmente deseas eliminar la columna, ya que esta operación no es reversible a menos que vuelvas a cargar o recrear los datos.
  • Actualización del entorno de trabajo: Si estás trabajando en un entorno interactivo como RStudio, y haces cambios como estos, es bueno revisar que tu espacio de trabajo y tu entorno reflejen estos cambios adecuadamente.

Cualquiera de estos métodos te permitirá eliminar una columna de tu dataframe en R. El método a elegir puede depender de tus preferencias personales o de características específicas de tu proyecto, como el tamaño del dataset o si ya estás utilizando ciertos paquetes.

Valores perdidos

Es necesario saber si existe algún valor perdido en el conjunto de datos para ello se puede hacer de dos formas:

  1. summary(ERS_df)
  2. colSums(is.na(df))

Con cualquiera de estos comandos arroja que existen dos variables con NA que son: sat_T y pers_RD, el primer comando arrija las veces (frecuencia) que están presentes los NA´s y el segundo sólo arroja información de en qué variables existen estos NA´s.

Creando un subconjunto para el análisis del alfa de Cronbach

Para calcular el alfa de Cronbach en R, primero necesitas seleccionar las columnas (variables) que quieres incluir en el análisis. Este coeficiente es comúnmente usado para evaluar la confiabilidad (consistencia interna) de un conjunto de ítems (preguntas, por ejemplo) en un cuestionario o prueba.

Selección de Columnas

Antes de calcular el alfa de Cronbach, asegúrate de seleccionar solo las columnas relevantes de tu data frame. Puedes hacer esto de varias maneras, dependiendo de cómo estén organizados tus datos y de tus preferencias:

  1. Seleccionando Columnas por Nombres: Si conoces los nombres de las columnas, puedes seleccionarlas directamente utilizando el operador de selección [].

    # Supongamos que tu data frame se llama datos
    # Y las columnas a analizar son "item1", "item2", "item3"
    subconjunto <- datos[c("item1", "item2", "item3")]
  2. Seleccionando Columnas por Índice: Si prefieres seleccionar columnas por índice, puedes hacerlo especificando los números de columna.

    subconjunto <- datos[, c(2, 3, 4)]  # Selecciona las columnas 2, 3 y 4
  3. Usando dplyr para Seleccionar Columnas: Si tienes muchas columnas y deseas una forma más flexible y legible de seleccionarlas, puedes usar dplyr:

    library(dplyr)
    
    subconjunto <- datos %>%
      select(item1, item2, item3)  # Reemplaza por los nombres de tus columnas

Cálculo del Alfa de Cronbach

Una vez que tienes las columnas seleccionadas, puedes proceder a calcular el alfa de Cronbach. Puedes usar la función alpha() del paquete psych, que es uno de los paquetes más comunes para análisis psicométricos en R:

# Instala el paquete psych si aún no está instalado
if (!require(psych)) install.packages("psych")
library(psych)

# Calcular el alfa de Cronbach
resultado_alfa <- alpha(subconjunto)
print(resultado_alfa$total$std.alpha)

Este código calculará el alfa de Cronbach para las columnas seleccionadas y mostrará el resultado. El objeto resultado_alfa contiene mucha más información que puedes explorar, como estadísticas de ítem individuales y estimaciones si se elimina cada ítem.

Este procedimiento te ayudará a preparar tus datos y a calcular el alfa de Cronbach, asegurando que solo las columnas relevantes sean incluidas en el análisis.

Una serie de variables a utilizar

Si el instrumento ya esta en su forma cuantitativa y solo se requiere analizar un cierto numero de variables consecutivas por ejemplo item 2 al item 5, esto puede ser posible con:

resultado_alfa <- alpha(datos[, 2:5])

Correlaciones negativas o con valores faltantes

Si no es necesario excluir aquellos datos que tienen un valor NA, se pueden omitir estos valores y que se analice todo el conjunto de datos

resultado_alfa <- alpha(subconjunto, na.rm = TRUE)

Resultados

Cuando ejecutas print(resultado_alfa$total$alpha) y no obtienes un resultado para alpha, pero sí ves opciones como raw_alpha, std_alpha, G6(smc), average_r, S/N, ase, mean, sd, y median_r, esto indica que la estructura del objeto resultado_alfa podría ser ligeramente diferente de lo que esperábamos o la versión del paquete psych podría haber actualizado la forma en que presenta los resultados. Aquí te explico qué significa cada uno de estos términos y cómo puedes acceder al alfa de Cronbach correcto:

Explicación de los términos:

  1. raw_alpha: Es el alfa de Cronbach calculado sin estandarizar los ítems, basado simplemente en las correlaciones brutas entre los ítems.

  2. std_alpha: Es el alfa de Cronbach calculado con todos los ítems estandarizados. Este es generalmente más relevante si los ítems tienen diferentes escalas.

  3. G6(smc): Una medida alternativa de la consistencia interna, similar al alfa pero utilizando la media de las correlaciones múltiples cuadradas de cada ítem con todos los otros ítems.

  4. average_r: La correlación promedio entre los ítems, otra forma de evaluar la consistencia interna.

  5. S/N: La razón señal/ruido, que compara la varianza explicada por los ítems frente a la varianza del error.

  6. ase: El error estándar de la estimación del alfa.

  7. mean, sd: La media y desviación estándar de las puntuaciones totales para los ítems.

  8. median_r: La mediana de las correlaciones entre los ítems.

Cómo acceder al alfa de Cronbach:

Si lo que deseas es obtener el alfa de Cronbach estándar, deberías usar std_alpha si tus ítems están en diferentes escalas o si simplemente prefieres una medida que considere la estandarización de ítems. Puedes acceder a este valor con el siguiente comando:

print(resultado_alfa$total$std_alpha)

Este comando debería darte el valor del alfa de Cronbach estandarizado, que es comúnmente usado en la mayoría de los análisis para medir la consistencia interna de una escala con ítems que podrían no estar originalmente en la misma escala.

Si continuas teniendo dificultades para encontrar la información correcta o si los resultados no parecen coherentes, podrías considerar revisar la documentación del paquete psych para asegurarte de que estás utilizando la función y los parámetros correctamente, dado que las funciones y sus salidas pueden cambiar con nuevas versiones del paquete.

Consistencia entre items

Cuando utilizas la función alpha() del paquete psych en R y luego exploras los estadísticos de los ítems individuales con resultado_alfa$item.stats, te encuentras con varias columnas que proporcionan información detallada sobre cómo cada ítem contribuye al alfa de Cronbach general. Aquí te explico el significado de cada una de las columnas mencionadas (raw.r, std.r, r.cor, r.drop):

  1. raw.r: Esta columna muestra la correlación bruta de cada ítem con la suma total de todos los otros ítems. Es una medida de cómo cada pregunta individual está correlacionada con la suma de las respuestas a todas las demás preguntas, sin ningún ajuste.

  2. std.r: Esta es la correlación de cada ítem con la suma total de los otros ítems, pero con cada ítem estandarizado antes de calcular la correlación. La estandarización implica ajustar los datos para que tengan una media de cero y una desviación estándar de uno. Esto es útil para comparar ítems que pueden estar en diferentes escalas.

  3. r.cor: Esta columna muestra la correlación de cada ítem con la suma total de los otros ítems después de corregir por la superposición de ítems y el efecto de cualquier ítem en particular. Esencialmente, ajusta la correlación para los efectos de otros ítems en la escala, proporcionando una medida de la correlación única de cada ítem con el total que es independiente de los efectos de otros ítems en la escala.

  4. r.drop: Refleja la correlación entre cada ítem y la suma total de los otros ítems cuando el ítem en cuestión es excluido. Esta estadística es particularmente útil para evaluar cómo cambiaría el alfa de Cronbach si se eliminara el ítem. Si esta correlación es baja, indica que el ítem está contribuyendo significativamente a la coherencia de la escala; si es alta, puede sugerir que el ítem no está alineado bien con el conjunto.

Estos valores te ayudan a evaluar la consistencia interna de tu escala y a identificar qué ítems podrían estar afectando negativamente la fiabilidad de la misma. Al revisar estos valores, puedes tomar decisiones informadas sobre si necesitas modificar o eliminar ciertos ítems para mejorar el alfa de Cronbach de tu escala.

Ejecuta:

print(resultado_alfa$item.stats)