CURSOS DE VERANO 2014 GEOGEBRA COMO RECURSO PARA UNAS NUEVAS MATEMÁTICAS AMPLIANDO GEOGEBRA CON R VIRGILIO GÓMEZ RUBIO, MARÍA JOSÉ HARO DELICADO Geogebra y R ● ● ● ● R es el software estadístico más utilizado en el mundo académico (http://www.r-project.org) Gran capacidad de análisis y visualización de datos Se podría utilizar para incrementar las rutinas estadísticas de Geogebra Los desarrolladores de Geogebra ya han planteado la posibilidad de integrar R en Geogebra: https://dev.geogebra.org/trac/wiki/GeoGebraStatistics Integración de Geogebra y R ● Conseguimos una primera integración usando la Ventana de Python, pero sólo funciona hasta la versión 4.9.247 ● http://www.uclm.es/profesorado/vgomez/GeogebraR/ ● Basado en el paquete Rserve ● R se ejecuta como un servidor ● Se puede llamar a R desde Geogebra ● En la actualidad, este no es el enfoque recomendado Geogebra y R en la web ● ● ● ● El desarrollo de Geogebra se encamina hacia el uso de Geogebra en la web, con HTML5 La Ventana de Python parece que desaparecerá en Geogebra 5 La integración ha de hacerse pensando en ejecutarlo todo en el navegador Enfoque completamente distinto al anterior GeogebraR ● ● ● ● Hemos desarrollado un paquete de R llamado GeogebraR, que integra Geogebra y R en una web Basado en el paquete de R opencpu, que permite que R se comporte como un servidor web opencpu incluye una API en Javascript para llamar a R Además, es posible hacer disponibles los ejemplos en una web http://becarioprecario.ocpu.io/GeogebraR/www/ ● También se pueden ejecutar localmente instalando el paquete GeogebraR Estructura ● ● ● ● ● Código en Javascript para llamar a R Código en R que es visible desde Javascript (no se permite el acceso directo a los paquetes de R) Posibilidad de enviar y recibir datos entre Geogebra y R Opciones para el desarrollo de gráficos con R y mostrarlos en la web Geogebra también proporciona una API para manipular objectos desde Javascript Ejemplo: Simulación de Puntos ● El primer ejemplo simplemente permite llamar a R para simular 10 puntos y mostraros en Geogebra ● Hay parte en Javascript y parte en R ● Las función importante en Javascript es ocpu.rpc Ejemplo: Código HTML <!-- OCPU lib and depends --> <script type="text/javascript" src="opencpu/jquery-1.10.2.min.js"></script> <script type="text/javascript" src="opencpu/resize.js"></script> <script type="text/javascript" src="opencpu/opencpu-0.4.js"></script> <form> <input type="button" value="Sample 5 points with R" onclick="checkR();"> </form> <form> <input type="button" value="Create polygon" onclick="createpoly();"> </form> Ejemplo: Código Javascript (I) function checkR() { var nsims = 5; var req = ocpu.rpc("simpts",{ n : nsims }, function(output){ //Add points for(var i=0;i<nsims;i++) { var cmd= "A"+(i+1)+"=("+output[i]+")"; document.ggbApplet.evalCommand(cmd); } }); } Ejmplo: Código Javascript (II) function createpoly() { var cmd="poly1=Polygon[A1, A2, A3, A4, A5]"; document.ggbApplet.evalCommand(cmd); } Ejemplo: Código R #Sample coordinates for points simpts<-function(n=1, seed=NULL) { if(!is.null(seed)){set.seed(seed)} xx<-cbind(rnorm(n), rnorm(n)) return(xx) } Ejemplo: Navegador Ejemplo: Navegador Más ejemplos Disponibles en el paquete GeogebraR http://becarioprecario.ocpu.io/GeogebraR/www/ Teorema Central del Límite Control de Calidad Mapas Procesos puntuales (casos y controles) Ajuste de curvas no lineales Ejemplo: Teorema Central de Límite Estudio del comportamiento de la media de observaciones de una distribución Para una determinada distribución, ¿cómo cambia la distribución de la media al aumentar el tamaño muestral? Para un mismo tamaño muestral, ¿cómo varía la distribución de la media con la distribución de la población? Ejemplo: Control de Calidad Estudio de la sensibilidad de las bandas de control de calidad para el estudio de la media del proceso Ejemplo interactivo ¿Cómo cambian las bandas al mover uno de los valores hacia adentro? ¿Y hacia afuera? ¿Qué ocurriría si tuviésemos un valor muy atípico? ¿Puede ocurrir que todos los valores estén fuera de las bandas? Ejemplo: Mapas Visualización de información geográfica en Geogebra Sabiendo que cada unidad de Geogebra representa 50 km, calcula las distancias en línea recta entre: – Albacete y Baeza – Granada y Jaén – Albacete y Granada Ejemplo: Procesos puntuales Estudio de la intensidad de un conjunto de casos de una enfermedad con respecto a un conjunto de controles Se calcula el cociente entre la intensidad de los casos y los controles ¿En qué regiones es más prevalente la enfermedad? Ejemplo: Ajuste de Curvas Ajuste de curvas no lineales a un conjunto de puntos Lowess, spline y polinomio de grado 5 Ejemplo interactivo ¿Cómo ajustan las distintas curvas a cada uno de los 3 conjuntos de datos? ¿Qué diferencias observas? ¿Qué ocurriría si tuviéramos uno o varios valores extremos? ¿Por dónde empiezo? Nociones de creación de paquetes de R Nociones de Javascript Revisar la documentación de la API de Geogebra para Javascript Para poder poner los ejemplos en la web de opencpu Crear el paquete en github Configurar la cuenta según se indica en la web de opencpu ¡¡Lo más sencillo es coger los ejemplos de GeogebraR y modificarlos!! Se pueden ejecutar localmente Algunos consejos Asignar nombres a todos los objetos de Geogebra: listas de puntos, líneas, etc. Eliminar los objetos existentes antes de añadir otros nuevos … Trabajo Pendiente Explorar otras opciones para enlazar Geogebra y R (¿Shiny?) Explorar de qué manera se pueden usar los gráficos de R con Geogebra de manera eficiente (p.ej., de manera que se actualicen al modificar objetos en Geogebra) Ver de qué manera se puede usar este enlace para incluir algunos de los métodos que aparecen en la lista de desarrollos futuros en la web de Geogebra: https://dev.geogebra.org/trac/wiki/GeoGebraStatistics Lista de Recursos Desarrollo de métodos estadísticos en Geogebra: https://dev.geogebra.org/trac/wiki/GeoGebraStatistics Nuestra página sobre Geogebra y R: http://www.uclm.es/profesorado/vgomez/GeogebraR/ Ejemplos del paquete GeogebraR: http://becarioprecario.ocpu.io/GeogebraR/www/ API de Javascript para Geogebra http://wiki.geogebra.org/en/Reference:JavaScript Web del paquete opencpu: https://www.opencpu.org/