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.
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:
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.
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.
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.
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:
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")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.
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)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.
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.
Esto abrará un cuadro de dialogo (ver Imagen 3) donde una vez
configurada la base de datos se da clic al botón
importar.
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.
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
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:
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"
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 semanauso_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.
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.
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
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)
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)
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
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.
Este proceso te permitirá transformar eficientemente datos cualitativos en cuantitativos para su análisis en R.
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:
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.
NULL a la columnaOtra 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
[ ] con índices negativosTambié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]
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.
Es necesario saber si existe algún valor perdido en el conjunto de datos para ello se puede hacer de dos formas:
summary(ERS_df)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.
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.
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:
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")]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 4Usando 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 columnasUna 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.
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])
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)
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:
raw_alpha: Es el alfa de Cronbach
calculado sin estandarizar los ítems, basado simplemente en las
correlaciones brutas entre los ítems.
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.
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.
average_r: La correlación promedio
entre los ítems, otra forma de evaluar la consistencia interna.
S/N: La razón señal/ruido, que
compara la varianza explicada por los ítems frente a la varianza del
error.
ase: El error estándar de la
estimación del alfa.
mean,
sd: La media y desviación estándar de las
puntuaciones totales para los ítems.
median_r: La mediana de las
correlaciones entre los ítems.
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.
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):
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.
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.
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.
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)