[BT01-BT02] Tarea evaluable T2. Introducción a R

En esta segunda tarea, se pide realizar los ejercicios 1 y 3 y reproducir los ejercicios 2 y 4



El caso es: "Unos investigadores desarrollan un nuevo entorno virtual de aprendizaje basado en Google Apps. Para evaluar la incidencia de la utilización de este nuevo entorno en las calificaciones de los estudiantes, durante dos años (2016 y 2017) se realiza un estudio de caso con dos grupos de estudiantes: un grupo de control que utiliza Moodle y un grupo experimental que utiliza Google Apps."



El registro del caso se recoge en los siguientes ficheros:

NOTA: no se pude modificar el contenido de los ficheros.



SE PIDE: realizar los ejercicios 1 y 3 y reproducir los ejercicios 2 y 4.



1.- Para cada uno de los años, analizar si existen diferencias estadísticamente significativas entre las calificaciones de ambos grupos. ¿Cómo presentarías los resultados en un artículo científico?


SOLUCIÓN:
Lo primero que debemos hacer es bajar los archivos (ficheros), en mi caso, los transformé a columnas en Excel, puesto que el R en mi computadora (Apple), tiene algunas opciones más limitadas:


Lo primero, al importar el fichero desde el Excel, lo selecciono después de bajarlo del link de la tarea, lo importo como un archivo .csv para luego transformarlo en un archivo .xls para trabajarlo con el R.

Paso 1: Importación de archivo .csv, ver imagen del paso:




Paso 2: Cambiar el separador de texto en columnas o "delimitador", por ";", como se muestra en la imagen a continuación: 



Paso 3: Completar la transformación del archivo y guardar, como se muestra en la figura siguiente, ya tenemos nuestros datos ordenados en columnas para poder trabajarlos en R:




Paso 4: Ahora, desde la aplicación RStudio e importamos los dos archivos Excel (también es posible abrirlos desde RStudio directamente del formato .csv pero acá preferimos la opción desde Excel):







Ahora, comparamos los resultados y evaluamos si existen diferencias significativas del punto de vista estadístico:


Los resultados en un artículo científico, los presentaría de la siguiente manera:

Resumen
Estudio de Caso: Análisis del impacto en las calificaciones de estudiantes de un nuevo entorno virtual de aprendizaje basado en Google Apps.

Hipótesis
El nuevo entorno virtual de aprendizaje, basado en Google Apps, mejora los resultados de los estudiantes, estudio de caso durante dos años.

Metodología y Resultados
Detallar la metodología utilizada y los resultados

Bibliografía y Referencias
Citar de acuerdo a norma APA



2.- Crear una nueva variable de datos (data frame) que agrupe la información de los dos ficheros. 



SOLUCIÓN:



Primero añadimos una nueva columna ("anio") en el data frame correspondiente a cada año:


> Notas_2grupos_v1["anio"] <- "2016"
> Notas_2grupos_v2["anio"] <- "2017" 

El resultado podemos visualizarlo acá:





A continuación, creamos el nuevo data frame: 
> new_data_frame <- rbind(Notas_2grupos_v1, Notas_2grupos_v2)


Visualizar el contenido de la nueva variable.

Acá observamos una captura de una fracción de la pantalla, en donde se puede observar la creación del new_data_frame con 80 observaciones de 4 variables:




Detalle de la incorporación de los datos, en una captura parcial de la pantalla:


Acá mostramos una captura total de pantalla, con los comandos utilizados:





3.- Partiendo de la nueva variable, analizar si existen diferencias estadísticamente significativas entre las calificaciones de ambos años, teniendo en cuenta que, en este caso, la comparación se realiza sobre muestras dependientes (dos observaciones sobre los mismos sujetos: una en 2016 y otra en 2017). ¿Qué opción hay que añadir al comando "t.test()" para tener en cuenta este aspecto?


SOLUCIÓN:


Dos medias son dependientes o pareadas cuando proceden de grupos o muestras dependientes, esto es, cuando existe una relación entre las observaciones de las muestras. Este escenario ocurre a menudo cuando los resultados se generan a partir de los mismos individuos bajo dos condiciones distintas. 

R contiene la función t.test() que realiza un t.test con datos pareados si se le indica en el argumento. R calcula automáticamente las diferencias para cada evento, asumiendo que se las posiciones de cada vector se corresponden a los datos de un mismo individuo. Está función calcula además el intervalo de confianza para la diferencia de medias.


Realizamos la siguiente operación:

> x = rnorm (Notas_Grupo_1)
> y = rnorm (Notas_grupo_2)
> t.test (x,y)



Acá una vista ampliada del resultado:

Con este resultado, dado que el "p" (p-value = 0.8125) es mayor a 0.05, las muestras difieren en sus medias.

Gráficamente, a través de los siguientes comandos:

> boxplot(x,y, names = c("x","y"))
> mediaas<-c(mean(x), mean(y))
> points(medias,pch=18, col="red")

Las medias indicadas con un punto rojo, obtenemos el siguiente resultado gráfico:





4.- Comprobar que los datos siguen una distribución normal (https://es.wikipedia.org/wiki/Distribuci%C3%B3n_normal).

SOLUCIÓN:

Calculamos las diferencias entre las calificaciones de uno y otro año.
> diferencias = datos2017$nota - datos2016$nota

Para visualizar, trabajamos con la herramienta "view":



Representamos los datos en una figura. En este caso, omitiremos la coordenada X de los datos, por lo que la función "plot()" coge el índice del dato dentro del vector como abcisa:
> plot(diferencias, ylab="diferencias (2017-2016)")
> abline(0,0, col="blue", lwd=2) 

Ejecutando en el R, obtenemos el siguiente resultado :




Para completar la figura, añadiremos una etiqueta a cada punto. Como el comando "textxy()" que permite hacer esto no está disponible por defecto en R, antes deberemos bajar el módulo, paquete o librería  "calibrate" que incluye dicho comando e instalar la librería (conclusión: la funcionalidad básica de R se puede extender gracias a paquetes de terceros):
> install.packages("calibrate")
> library(calibrate)
> textxy(as.numeric(row.names(datos2016)), diferencias, datos2016$sujeto, cex=0.5, offset=0.6)

El paso a paso lo mostramos acá, en capturas parciales de pantalla:


> install.packages("calibrate")



> library(calibrate)
Este paso requirió la instalación de un paquete adicional MASS:



A continuación, representamos el histograma de las diferencias:
> hist(diferencias, col="gray", main="histograma", xlab="diferencias") 






A partir de la información mostrada en el histograma, ¿afirmarías que los datos siguen una distribución normal? Vamos a comprobarlo formalmente. Representamos la función de densidad de las diferencias:
> plot(density(diferencias))




Sobre esta figura, superponemos una curva representando una función de densidad normal con la media y la desviación estandar de los datos de diferencias:
> m <- mean(diferencias)
> std <- sqrt(var(diferencias)) 
> curve(dnorm(x, mean=m, sd=std), col="darkblue", lwd=2, add=TRUE)




Por lo tanto, podemos afirmar que los datos siguen una distribución normal.


NOTA: durante la realización de los ejercicios, se recomienda consultar la documentación acerca de cada comando.




Comentarios

Entradas populares de este blog

[BT01-BT02] Tarea evaluable T1. Memoria del Proceso Formativo

Uso Educativo de los Blogs

Trabajo de fin de Master