viernes, 29 de enero de 2016

[BT01-BT02] Actividad 9. Introducción a R


En esta actividad se realiza una introducción al paquete de análisis de datos R. El objetivo es que os familiaricéis con la interfaz de RStudio y los comandos de R a través de un ejemplo en el que realizaréis las siguientes operaciones:
  1. Carga de datos
  2. Filtrado de datos
  3. Representación gráfica
  4. Regresión lineal
  5. Análisis de diferencias entre grupos mediante t-student

1. CARGA DE DATOS
Descargamos el fichero de datos con el que vamos a trabajar: https://www.dropbox.com/s/659ts83ibffk7ty/quantitativeData.csv?dl=0 El fichero es un archivo CSV en el que subyace una estructura tabulada: cada fila representa una muestra u observación (un sujeto) y cada columna un campo de datos; los campos de datos se separan entre sí mediante el carácter ";" Abrimos el fichero en Microsoft Excel y revisamos su estructura y contenido (Importar o exportar archivos de texto (.txt o .csv) - Excel). Tal y como se puede observar, en el fichero constan los datos de 121 estudiantes de los cuales 60 utilizaron un entorno Moodle y 61 utilizaron un entorno PLE. Entre esos datos figuran la calificación final y el tamaño de la red personal de cada estudiante.



Abrimos la interfaz R studio y cargamos el fichero de datos desde la cuadrícula superior derecha: Import Dataset → From text file




A continuación se abre una ventana en cuya parte derecha se muestra, por un lado, el contenido del fichero de texto que deseamos cargar, y por otro lado, la estructura de datos que se va a cargar en R a partir de dicho contenido según las opciones indicadas en la parte izquierda de ventana. Para que la creación de la estructura de datos se realice de forma correcta, debemos indicar a través de dichas opciones si el contenido del fichero de datos incluye una cabecera, cuál es el separador utilizado entre variables, cuál es el carácter utilizado para separar la parte entera de la parte decimal de un número, etc.


Si el proceso se realiza correctamente, la estructura de datos debería aparecer representada en una nueva cuadrícula. El entorno queda compuesto de 4 cuadrículas: la cuadrícula superior derecha se utiliza para cargar datos y visualizar las variables de trabajo; la cuadrícula superior izquierda se utiliza para visualizar el contenido de dichas variables; la cuadrícula inferior izquierda se utiliza para introducir los comandos para procesar y analizar los datos; y la cuadrícula inferior derecha se utilizar para visualizar gráficas.


Los siguientes pasos van dirigidos a la obtención de una figura en la que se representen las calificaciones de los estudiantes en función del tamaño de sus redes personales. En dicha figura se diferenciarán, mediante distintos colores, los estudiantes que utilizaron el entorno Moodle de los que utilizaron el entorno PLE.

2. FILTRADO DE DATOS
Para filtrar los sujetos por tipo entorno, escribimos los siguientes comandos en la consola: 
datosMoodle <- subset(quantitativeData, environment=="Moodle")
datosPLE <- subset(quantitativeData, environment=="PLE")

Al ejecutar estos comandos, se crearán dos nuevas variables: datosMoodle y datosPLE.


3. REPRESENTACIÓN GRÁFICA
En primer lugar, debemos crear el "marco" sobre el que representar los puntos (los estudiantes). Para ello, es necesario definir unos ejes X, Y cuya longitud abarque el rango de valores de las variables que se desea representar (la calificación final y el tamaño de la red personal de cada estudiante). Para ello, introducimos el siguiente comando:
plot(quantitativeData$egonet_size,quantitativeData$grade, ylab="grade", xlab="egonet_size", type="n")


A continuación, dibujamos sobre esos ejes los puntos que representan a los estudiantes de cada grupo (Moodle vs PLE)
points(datosMoodle$grade ~ datosMoodle$egonet_size, col="blue", cex=0.9)
points(datosPLE$grade ~ datosPLE$egonet_size, col="red", cex=0.9)


NOTA: cada punto representa a un estudiante de la tabla "quantitativeData" cargada al inicio

A partir de la observación de las distribuciones de puntos de cada grupo, podemos inferir que conforme aumenta el tamaño de la red personal de los estudiantes, también lo hace la calificación final obtenida por éstos. Para confirmar este hecho, procedemos a ajustar cada una de las distribuciones de puntos a una recta mediante una regresión lineal simple.

4. REGRESIÓN LINEAL
Una regresión lineal simple es un procedimiento estadístico para generar los coeficientes de un modelo (en este caso, una recta) que relaciona una variable predictora (en este caso, el tamaño de red) con una variable respuesta (en este caso, la calificación final). El comando lm calcula los parámetros del modelo:
lmMoodle <- lm(datosMoodle$grade ~ datosMoodle$egonet_size)
lmPLE <- lm(datosPLE$grade ~ datosPLE$egonet_size)


Por lo tanto, la recta de mejor ajuste para la nube de puntos que representa a los estudiantes que utilizaron Moodle es y = 1.96x + 45.17 y la de los estudiantes que utilizaron el PLE es y = 1.041x + 40.956. Quedaría pendiente analizar la significancia de estos coeficientes en cada uno de los modelos, pero no lo vamos a hacer.

Finalmente, representamos cada una de las rectas sobre la gráfica utilizando el comando abline, al cual se le pasan como parámetros los coeficientes de la recta, y el color y el grosor que se desean utilizar para dibujarla.
abline(lmMoodle, col="blue", lwd=2)
abline(lmPLE, col="blue", lwd=2)


5. ANÁLISIS DE DIFERENCIAS ENTRE GRUPOS MEDIANTE t-student
En la figura anterior, podemos observar que la nube de puntos correspondiente al grupo de estudiantes que utilizó el entorno PLE tiene una calificación final y un tamaño de red personal mayor que el grupo de estudiantes que utilizarón el entorno Moodle. Calculamos la medias para hacernos una idea de la medida en que dichos indicadores varian de uno a otro grupo.

Media de la calificación final en cada grupo:
with(quantitativeData, tapply(grade, list(environment), mean))
  Moodle      PLE 
64.67500 68.36885

Por lo tanto, un estudiante que utilizó el entorno PLE obtuvo, de media, 3.7 ptos más (sobre 100) que un estudiante que utilizó el entorno Moodle. No parece una diferencia significativa.

Media del tamaño de red personal en cada grupo:
with(quantitativeData, tapply(egonet_size, list(environment), mean))
 Moodle      PLE 
9.95000 26.32787

Por lo tanto, la red personal de un estudiante que utilizó el entorno PLE es 2.5 veces más grande que la red de un estudiante que utilizó el entorno Moodle. Parece una diferencia significativa.

Al margen de esta percepción acerca de las diferencias basada en las medias, ahora lo que nos interesa saber es en qué medida las diferencias observadas entre grupos se deben o no al azar, porque ello nos permitirá saber si el entorno de aprendizaje es un entorno diferenciador a la hora de que los estudiantes obtengan mejores calificaciones y establezcan redes personales de mayor tamaño. Es decir, queremos saber si las diferencias observadas entre grupos en la calificación final y el tamaño de red personal son ESTADISTICAMENTE significativas.

La t de student es un tipo de test estadístico que analiza la influencia de una variable categórica independiente de dos categorías en una variable continua dependiente. La t de student es un test paramétrico, lo cual significa que su procedimiento se basa en el análisis de un determinado parámetro estadístico (en el ejemplo, la media de las calificaciones) a partir del conocimiento de la distribución que siguen los datos (por ejemplo, si conocemos que las calificaciones de los estudiantes siguen una distribución normal). Cuando no se conoce la distribución que siguen los datos, entonces se utilizan test no paramétricos cuyo procedimiento se basa en analizar los datos en sí, sin asociarlos a ninguna distribución. Mientras que los test paramétricos se utilizan con variables continuas como variables dependientes, los test no paramétricos se utilizan con variables ordinales (por ejemplo, una escala Likert de un cuestionario) como variables dependientes.

Comparar 2 grupos
Comparar >2 grupos
Método paramétrico
t de student
ANOVA
Método NO paramétrico
Mann-Whitney
Kruskal-Wallis

Ejemplos de uso en bibliografía:
  • ·       t-student: Casquero, O., Ovelar, R., Romo, J., & Benito, M. (2013). Reviewing the differences in size, composition and structure between the personal networks of high- and lowperforming students. British Journal of Educational Technology, 46(1), 16-31. doi:10.1111/bjet.12110
  • ·       Mann-Whitney: Dawson, S. (2010). “Seeing” the learning community: An exploration of the development of a resource for monitoring online student networking. British Journal of Educational Technology, 41(5), 736–752. doi:10.1111/j.1467-8535.2009.00970.x
  • ·       Kruskal-Wallis: Cabero-Almenara, J., & Marín-Díaz, V. (2014). Educational Possibilities of Social Networks and Group Work. University Students’ Perceptions. Comunicar, 21(42), 2–8. doi:10.3916/C42-2014-16
El test se puede realizar sobre muestras independientes (una observación sobre dos grupos separados) o sobre muestras dependientes (dos observaciones sobre el mismo grupo).

Ejecutamos el comando para realizar el test de t de student.
t.test(datosMoodle$grade, datosPLE$grade)

Y obtenemos los resultados del análisis:
¿Qué nos indican los resultados? En primer lugar, que la media de la variable x (datosMoodle$grade) es de 64.675, mientras que la variable y (datosPLE$grade) tiene una media de 68.36885. Por tanto, como hemos dicho anteriormente, la diferencia entre ambos grupos no parece significativa porque es es tan sólo de 3.7 ptos sobre 100; pero... ¿es esta diferencia ESTADISTICAMENTE significativa? Es decir, ¿la diferencia se debe al factor diferencial entre ambos grupos o se debe al azar? Para saberlo, nos fijamos en el p-value. ¿Qué indica el p-value? Indica que el riesgo a equivocarnos al afirmar "Sí, existe una diferencia estadísticamente significativa entre ambos grupos debida al factor diferencial entre dichos grupos", cuando en realidad dicha diferencia no se debe al factor diferencial entre grupos, sino al azar. En este caso, p-value = 0.2363 =  23.63%

Como vemos, en lo que respecta a la calificación final, el riesgo que corremos al afirmar "Sí, existe una diferencia estadísticamente significativa entre ambos grupos determinada por la plataforma utilizada en cada grupo" es grande. Pero... ¿cuál es el umbral de riesgo? 0.05 → 5%
  • Si p-value < 0.05, o lo que es lo mismo, < 5% --> riesgo a equivocarnos pequeño; por ejemplo, p-value = 0.00345 (0.345%) --> OK
  • Si p-value > 0.05, o lo que es lo mismo, >5% --> riesgo a equivocarnos grande; por ejemplo, p-value = 0.0645 (6.45%) --> NO OK
 Por tanto, en lo que respecta a la calificación final concluimos que:
  • en este estudio concreto no percibimos una diferencia significativa entre los valores de las medias de cada grupo.
  • la diferencia entre las calificaciones de los estudiantes de uno y otro grupo no es estadísticamente significativa.
Repetimos el test de t-student con el indicador tamaño de red personal:
t.test(datosMoodle$egonet_size, datosPLE$egonet_size)

En este caso, p-value = 7.965e-16 = 0.0000000000000007965 → 0.00000000000007965%

Por tanto, en lo que respecta al tamaño de red personal concluimos que:
  • en este estudio concreto percibimos una diferencia significativa entre los valores de las medias de cada grupo.
  • la diferencia entre las calificaciones de los estudiantes de uno y otro grupo es estadísticamente significativa.

1 comentario:

  1. Hola soy Wagner Abreu, estudiante del master del otro año, casi terminando. Estupenda explicación profesores. Me interesa mucho este programa estadistico para mi trabajo de TFM. Gracias a Oskar y Jesús por todo.

    ResponderEliminar