| Vocero |
Transcripción |
| Jeff Perkinson |
Cuando se trata de desarrollar funcionalidades para JMP, John Sall, nuestro próximo ponente, tiene una forma interesante de pensar sobre cómo priorizar. Tenemos que priorizar qué funcionalidades... |
| |
¿En qué características queremos invertir? Entonces, ¿cómo determinamos qué es lo más importante? ¿Debemos centrarnos en las características que hacen que nuestro producto sea más potente? |
| |
¿Qué tal si le añadimos características que lo hagan más atractivo o sexy, o características que se centren en el alivio del dolor, facilitando así el análisis? |
| |
John opina que el alivio del dolor debería ser la principal motivación de nuestro equipo de I+D. John es cofundador de SAS y arquitecto principal de JMP, empresa que fundó hace más de 30 años. |
| |
Para los científicos e ingenieros que tienen datos y necesitan una forma de explorarlos... necesitan una forma de explorarlos fácilmente de forma visual en el escritorio. |
| |
Va a hablar sobre los factores clave que impulsan el desarrollo de JMP y cómo descubrimos las funcionalidades en las que queremos trabajar. Dicho esto, le doy la bienvenida, John. Gracias. |
| Juan Hall |
Gracias, Jeff. Y aquí estamos, en directo desde el nuevo centro de conferencias digital en Cary, Carolina del Norte, donde podemos acoger a mucha más gente. |
| |
Así que bajemos un poco las luces. |
| |
Bueno, en realidad no estoy aquí en un centro de conferencias virtual. Estoy en casa. Así que tengo una oficina en casa. Ups. No esa. |
| |
Como todos nosotros, estoy en casa impartiendo esta conferencia. Pero cambiemos a un entorno corporativo y comencemos. |
| |
¿De qué debería hablar entonces? |
| |
Bueno, cuando tenemos lanzamientos de JMP, en los años en que la alianza de la conferencia coincide con los lanzamientos de JMP, hablamos de eso, pero en los años alternos siempre elijo un tema. Así que un año elegí grandes estadísticas, al año siguiente datos fantasma o características secretas. |
| |
Hace dos años. Hoy mi tema son las palabras largas que empiezan con la letra A. |
| |
Bueno, estas son palabras que caracterizan los temas para desarrollar JMP. Así que permítanme compartir mi pantalla. |
| |
Y |
| |
minimizar |
| |
Aquí. Comparte. |
| |
Entonces, ¿cuál es el tema más importante? Y aquí están las tres palabras que empiezan con... las palabras grandes que empiezan con la letra A. |
| |
Como Jeff acaba de mencionar, lo primero es el anabólico. Bueno, el anabólico se trata de hacer crecer el músculo, lo que hace que JMP sea más potente. |
| |
Los procesos anabólicos construyen órganos y tejidos, y estos procesos producen el crecimiento y la diferenciación de las células para aumentar el tamaño corporal. |
| |
Entonces, aumentar la potencia de JMP sería la oportunidad y eso es, por supuesto, muy importante, pero lo siguiente |
| |
Afrodisíaco, que hace que JMP sea más sexy, más emocionante, la emoción del descubrimiento. Así que queremos que eso también sea un atributo. |
| |
Pero también nos importa tu progreso durante el proceso de trabajo, por lo que la tercera palabra es analgésico, y eso significa alivio del dolor. |
| |
alivio del dolor. |
| |
Así que quiero que la gente exprese cosas como las siguientes citas imaginarias: "¡La versión 15 me ha servido... me ha ahorrado horas o incluso días de trabajo que antes tenía que dedicarle!". Eso supone un gran alivio. |
| |
O "¡Antes tenía que hacerlo todo individualmente y ahora lo hago todo de una vez!". ¡Menudo alivio! O "¡Antes tenía que usar varias herramientas para hacer todo, pero ahora puedo hacerlo todo en JMP!". |
| |
O "¡Les mostré a mis colegas lo fácil que lo hice y quedaron asombrados!" O "¡Antes tenía que programar todo esto manualmente, y ahora solo son unos clics del ratón y listo!" |
| |
O "¡JMP me mantiene concentrado, manteniendo mi atención en el análisis de los datos en lugar de desviarla demasiado hacia detalles operativos!" Estas son las expresiones de alivio que queremos escuchar. |
| |
Ahora bien, el dolor y la frustración son verdaderos desmotivadores. El estado de flujo es importante. Cuando estás en flujo, no te distraes. Cuando estás en flujo, es más probable que aprendas algo de los datos y hagas descubrimientos. |
| |
Ahora bien, empoderar también es importante, pero las nuevas funciones tienden a ser utilizadas solo por unos pocos y las antiguas por muchos. Por lo tanto, queremos mejorar el funcionamiento de las funciones antiguas. |
| |
para reducir las molestias al usarlas. Y, por supuesto, la productividad depende enormemente de la eficacia de nuestras herramientas en cuanto al uso del tiempo. Así que, si podemos hacer que sea más fácil y rápido obtener resultados, eso es un gran logro. Veamos muchos ejemplos. |
| |
Primero, los scripts que vienen con las tablas de datos. Aquí pueden ver, uno al lado del otro, un ejemplo de una versión anterior de JMP. Creo que es JMP 14 o 13, donde |
| |
donde antes tenías que mantener pulsado el botón del ratón y entonces aparecía un elemento de menú y luego encontrabas un botón de ejecución para ejecutar ese script. |
| |
Pero la nueva versión simplemente tiene un botón de reproducción justo al lado del guion. Así que solo tienes que hacer clic en ese botón y te ahorras tener que abrir un menú. |
| |
Bueno, eso no es una gran victoria, uno piensa que la diferencia entre hacer clic en un botón y desplegar un menú no es mucha. Pero también es una gran victoria para los nuevos usuarios, porque los nuevos usuarios ya no tienen que entender |
| |
que un botón de acceso rápido tendrá una ejecución debajo. Pero ahí está el botón de reproducción junto con el script. Y así se entiende mejor que se trata de scripts. |
| |
Y la capacidad de almacenar scripts con tus datos es muy importante en JMP y queremos que la gente lo aprenda de inmediato. |
| |
y no tener que rebuscar entre dos o mirar un consejo para saber que así es como funciona. Y es muy práctico poder guardar todos tus scripts. |
| |
dentro de la propia tabla de datos y no buscar otros lugares para almacenarlos. Así que para los nuevos usuarios, el botón de reproducción. Eso supone un alivio considerable con tan solo ese simple cambio. |
| |
Y lamentamos no haber realizado este cambio mucho antes en JMP. |
| |
Hablemos de la preparación de datos. Una de las cosas más importantes que hay que hacer al preparar datos es combinar datos de múltiples fuentes. |
| |
Ahora bien, JMP, incluso desde su primera versión, requería una utilidad de integración. Pero esto aún implica diálogos complejos y el trabajo con múltiples tablas de datos. |
| |
Aquí tenemos el ejemplo clásico donde alquilo películas y tenemos nuestra tabla de transacciones de alquiler de películas. |
| |
que tiene el cliente, el número de artículo, la fecha del pedido, el año del pedido, y luego tenemos nuestro inventario de películas para alquilar, detalles sobre cada película. Y luego tenemos los clientes... información sobre los clientes y así sucesivamente. Y queremos hacer preguntas, involucrar las tres tablas como |
| |
¿Qué géneros predominan en qué géneros de películas? Bueno, eso implica |
| |
recorriendo las tres tablas, y por supuesto, el comando join es la forma de hacerlo. Tomo los datos de las transacciones y |
| |
fusionarlo con los clientes. Y, por supuesto, el ID del cliente es el que coincide. |
| |
columna y quiero incluir los no coincidentes del lado de la transacción. Entonces, si no tengo datos del cliente, aún no pierdo mis datos de transacción. Y eso se llama unión externa izquierda, y eso crea la nueva tabla de datos. Y ahora a esa tabla de datos, quiero unir eso |
| |
a los datos del inventario. Entonces, los uno por el número de artículo que luego hago coincidir y también quiero una unión externa izquierda y ahora tengo |
| |
otra tabla. Y ahora, en lugar de tener tres tablas, tengo cinco tablas, los resultados de esa unión, pero ahora puedo analizar la respuesta a la pregunta de género por género, que |
| |
¿Qué tipo de película tiende a alquilarse más según el género? |
| |
Y también implicó la creación de todas estas nuevas tablas de datos intermedias. |
| |
Resulta que hay una forma mucho más sencilla de hacerlo y la molestia de estos pasos y tablas adicionales se puede reducir enormemente. Así que permítanme deshacer esta tabla en esta otra. |
| |
Y quiero señalar que, dentro del comando de tablas, hay un comando llamado JMP query builder, y este abre la función Sequel. |
| |
Para unir tablas, es mucho más fácil que todos esos cuadros de diálogo de unión, pero aún así crea una nueva tabla de datos. |
| |
Pero hace un par de versiones, lanzamos algo aún mejor que reduce aún más el dolor y eso es la unión virtual. Entonces, si miro esta tabla de transacciones, |
| |
Me di cuenta de que ya se ha unido. |
| |
Entonces, lo que ha sucedido es que cuando preparé la tabla de inventario de la película, se identifica de forma única por el número de artículo. Y entonces le doy el número de artículo. |
| |
un ID de enlace que dice que se identifica de forma única por eso y esa es la forma en que puedo indexar esa tabla. Y de manera similar, tengo un ID de artículo para identificar los datos del cliente. Y cuando preparo mis datos de transacción, tengo estos dos que, en cierto sentido, son claves foráneas, |
| |
una referencia de enlace y hace referencia a diferentes tablas de datos por el... el ID de identificación entre ellas. Y entonces, lo enlaza automáticamente y ya tengo todo lo que necesito para responder a esa pregunta. Así que puedo hacerlo. |
| |
para cada |
| |
género, puedo |
| |
encontrar el género de la película que quiero hacer. Y así puedo ver aquí que las películas de acción gustan más a los hombres y las películas familiares a las mujeres y |
| |
comedia romántica más protagonizada por mujeres y demás. Así que he respondido a mi pregunta sobre tres tablas sin necesidad de realizar todas las uniones, porque virtualmente se unen al hacer coincidir esas columnas de ID en todas las tablas. |
| |
Así que he hecho |
| |
Me alivió mucho el dolor. Así que, de hecho, demos por terminado el tema. |
| |
Creo que la unión de tablas de datos ha supuesto un gran alivio a lo largo de las versiones. |
| |
Recodificación, |
| |
Esa es una de las principales cosas que hacemos cuando preparamos conjuntos de datos. |
| |
Comenzamos con una recodificación muy simple hace muchas versiones, donde solo teníamos un campo para el valor antiguo y el nuevo valor, y el nuevo valor comenzaba con el mismo valor que el antiguo, y luego podía cortar y pegar o editar esos valores para recodificar. |
| |
en una columna nueva o en la columna existente. |
| |
Y cada versión de Recode ha experimentado mejoras drásticas y estamos muy entusiasmados con su estado actual. Así que veamos este conjunto de datos de hospitales, hospitales de distrito. Y ahora Recode está justo en el |
| |
botón derecho o menú contextual en el encabezado de la columna. Y puedo revisar y simplemente |
| |
Seleccione un conjunto de elementos y agrúpelos bajo un nuevo valor, como clínica. |
| |
Pero creo que también hay muchos atajos. Y uno de mis atajos favoritos es |
| |
para agrupar valores similares. Así que puedo establecer un umbral para el número de diferencias de caracteres, etc., y automáticamente agrupará todos esos elementos. Por ejemplo, agrupará todos los hospitales de distrito con ortografías ligeramente diferentes en uno solo. |
| |
Y aún puedo... |
| |
Parece que falta uno. Pero está bien, ahora puedo agruparlo con los demás y |
| |
Todos los hospitales rurales se han agrupado automáticamente según las coincidencias y parece que puedo encontrar uno más aquí. |
| |
Y ahora, de repente, tengo algo. Me he ahorrado mucho esfuerzo al no tener que recodificar todo eso. |
| |
Y por supuesto, en JMP 15 agregamos nuevas características, que no mostraré aquí, pero quiero señalarlas. Si tiene otro conjunto de datos con todos los |
| |
...demostró que...los mejores nombres de categoría para esas categorías, puedo realizar un proceso de coincidencia y hacer que elija la coincidencia más cercana cuando encuentre una coincidencia para todas esas cosas. Así que |
| |
Así que Recode ha evolucionado mucho a lo largo de las versiones para simplificar esa operación. Y, por supuesto, piénsalo. ¿Cuánto tiempo dedicamos a preparar los datos en comparación con analizarlos? |
| |
A menudo, entre el 70 y el 90% de nuestro tiempo se dedica a preparar los datos. Por lo tanto, reducir las dificultades y el tiempo que esto implica se convierte en una gran ventaja. En resumen, se trata de aliviar las dificultades de la recodificación. |
| |
Haciendo clic en los valores. Aquí está |
| |
el conjunto de datos de las ciudades. |
| |
Y supongamos que cuando estoy viendo los detalles de algunas de estas cosas, como que podría ser un valor atípico para algo, quiero verlo con mayor detalle. Y entonces puedo convertir eso en un enlace. Así que vamos a |
| |
Vamos a convertirlo en una página wiki, una página de Wikimedia. Voy a copiar ese texto y luego ir a la información de la columna y convertirlo en un enlace, que es el controlador de expresiones. |
| |
Y ahora puedo tomar |
| |
este |
| |
tabla y convertirla en una web |
| |
dirección. Entonces |
| |
Voy a ir a wikipedia.org y luego tomar el |
| |
el nombre de esa ciudad y cambiarlo a mayúsculas iniciales y puedo probarlo en esa fila y me muestra Albany. |
| |
Y ahora diré... |
| |
Ah, OK. |
| |
Y ahora puedo hacer clic en cualquier ciudad y luego obtener el artículo de Wikipedia sobre esa ciudad. O puede cambiarlo a coordenadas de mapa. Entonces puedo... copiemos ese texto y vayamos a la información de la columna y ahora en lugar de eso, haré |
| |
Haz un caso de título sobre eso. |
| |
Veamos si se analiza correctamente. Ahora puedo hacer clic en Denver y consultará Denver en Google Maps. |
| |
Vale, entonces he convertido las cosas en enlaces para hacer... puedo hacer búsquedas, puedo hacer solicitudes de mapas, etc. Incluso puedo... |
| |
Pega este texto y haz clic para que diga el nombre de la ciudad. Creo que esto nos da mucha potencia para poder almacenar enlaces en nuestras tablas de datos. |
| |
Esos enlaces a páginas web o cualquier otra acción que puedas expresar con ACL, puedes hacerlo con esos controladores de eventos. Así que eso puede simplificar mucho las cosas. |
| |
Una de mis técnicas favoritas para reducir el dolor es la difusión, y aquí es donde mantienes presionada la tecla Comando o la tecla Control para hacer múltiples, donde tienes muchos análisis que son similares. Bien, entonces |
| |
Esto funciona no solo para los comandos del menú, sino también para muchos botones, para redimensionar los marcos de los gráficos y para realizar otras acciones, como pegar elementos en los gráficos, etc. |
| |
Veamos un ejemplo. Hagamos clic en... o simplemente distribuyamos los datos en todas estas columnas. |
| |
Y digamos que quisiera deshacerme de |
| |
este diagrama de caja. |
| |
Y si tan solo me mantuviera presionado |
| |
Para ese elemento del menú, eliminaría el diagrama de caja. Pero lo que quiero hacer es eliminar el diagrama de caja para todos los elementos. Así que voy a mantener presionada la tecla Comando y desmarcar el diagrama de caja, y ahora está desmarcado para todos esos elementos. Ahora puedo desmarcar los cuantiles. |
| |
y desmarcará todo, porque ha tomado ese comando y lo ha transmitido a todos los objetos activos en esa ventana, y para aquellos objetos activos que entienden ese comando, el comando quantiles por ejemplo, entonces obedecerá ese comando. |
| |
Ahora bien, esto funciona incluso para algunas cosas relacionadas con los diálogos de solicitud. Así que veamos las estadísticas de resumen. Permítanme mantener presionada la tecla Comando y personalizar las estadísticas de resumen. |
| |
Y digamos que no quiero los límites de confianza, pero sí quiero el número de valores faltantes. Y diré, de acuerdo, y se aplicará a todos... |
| |
todas las cosas. Para hacer eso, ha tenido que |
| |
Toma los resultados de ese diálogo, crea un guion a partir de ellos y luego transmite ese guion a todos los demás lugares de esa ventana. |
| |
Ahora bien, eso no sucede siempre. A veces, cuando recibes una solicitud, recibirás una solicitud para cada análisis. Para cada lanzamiento que intentamos |
| |
para implementar algunos detalles más, donde el diálogo se realiza antes de la transmisión para que transmita el mismo diálogo a todos los lugares disponibles. Y por supuesto, todo lo demás puedo transmitir un cambio y cambiará, ya sabes, el tamaño de todos estos elementos, o puedo transmitir |
| |
Cambiando el color de fondo, puedo cambiar todos los colores de fondo a naranja en todos los gráficos. |
| |
que eso parece relevante para ese cuadro de diálogo. Así que esta transmisión se convierte en una herramienta muy poderosa. |
| |
Entonces, |
| |
Eso nos ha ahorrado mucho sufrimiento a la mayoría, pero aún hay casos en los que puedes tener 40.000 grupos, como ocurrió a principios de este año, y él quiere hacer una predicción inversa en los 40.000 y te lo pide 40.000 veces. |
| |
Eso se solucionará en la versión 16. Eso supone un gran alivio para ese usuario. |
| |
Guardar columnas de fórmulas. |
| |
Me encantan las columnas de fórmulas. Cuando ajustas un modelo, puedes guardar una columna de predicciones. Pero en esa predicción, hay una fórmula en vivo para que puedas examinarla, modificarla y aplicarla a los nuevos datos que lleguen. Puedes perfilarla con la fórmula guardada. |
| |
si tienes |
| |
JMP Pro, puedes ir al repositorio de fórmulas y hacer muchas otras cosas. Puedes generar código a partir de él, etc. Por lo tanto, la capacidad de guardar fórmulas es algo importante, pero a veces |
| |
Si, por ejemplo, se utilizan grupos, guardar fórmulas tiene muchos matices adicionales. |
| |
Por ejemplo, ajustemos, estos son los datos de diabetes, donde ajustamos la respuesta |
| |
frente a todos estos predictores y pero queremos hacerlo por separado para cada género. |
| |
Así que hagámoslo. |
| |
Y entonces tenemos dos grupos para el género uno y el género dos. Y ahora digamos que queremos guardar |
| |
el valor previsto, de hecho, para ambos. Ahora |
| |
En los viejos tiempos, antes de someternos a esto, recurríamos a muchos métodos para aliviar el dolor. |
| |
Lo que sucedería al guardarlo es que iría a una tabla de datos local. Si miras la ventana de la tabla de datos en la sección de rehacer, verás la tabla por grupo. |
| |
Entonces, realmente para género=1, hay 235 en esta tabla de datos virtual de aquí, que puedes mostrar para género=1. Hay una variable de tabla aquí que muestra por grupo para ello. |
| |
Y lo guardaría en esta tabla temporal en lugar de en la tabla real que tienes guardada. |
| |
Pero |
| |
Hace algún tiempo, cuando guardaste la fórmula de predicción, la guardamos en la tabla de datos reales. Y si miro esto, la acabo de guardar para género=1, |
| |
y si miro la fórmula para eso, muestra que si género=1, esa era la cláusula por grupo, entonces tiene esta combinación lineal que forma una predicción para esa variable. |
| |
Y luego, si luego hago gender=2 o si mantengo presionada la tecla Comando para transmitir la fórmula de predicción, ahora tiene ambos y tengo ambas cláusulas disponibles para género 1 y género 2. Entonces está agregando una cláusula cada vez a esa salida por grupo. |
| |
Por cierto, sucede lo mismo cuando guardas otras cosas, cuando guardo una columna de residuos, y esta vez mantengo presionada la tecla Comando. |
| |
Si guardo una columna de residuos, se guardará para cada grupo, y se guardará el residuo correspondiente a ese grupo. Es como si restaras la fórmula predicha de la respuesta original, pero esta vez sin que sea una columna de fórmula. |
| |
En casi todos los lugares de JMP, no lo hemos hecho en todos, pero sí en la mayoría, guardando en un grupo. |
| |
o en algunos casos a través de una cláusula where, lo guardará en la tabla de datos original con la condición en la instrucción if. Bien, entonces eso tiene |
| |
ahorró mucho esfuerzo. Si eso no hubiera estado disponible, tt se guardaba en una tabla temporal y luego habría que cortar y pegar esa fórmula y hacer tablas if en la tabla original. Así que hemos resuelto estos problemas. Ahora supongamos que lo guardé de nuevo, hice todo ese proceso de nuevo, |
| |
y |
| |
e hice otra cosa, digamos con variables diferentes, algunas de ellas eliminadas, |
| |
y ahora lo guardé de nuevo. |
| |
Entonces, |
| |
Guardo la fórmula de predicción, esta vez manteniendo presionada la tecla de transmisión, pero en lugar de guardarla en la anterior, crea una nueva y le agrega un 2 al final. ¿Cómo sabe que no debe guardarla en la anterior? |
| |
Bueno, cada ajuste tiene un ID. Y si miro las propiedades |
| |
por ID, tiene el número, un número único que se regenera para cada ajuste, y mientras tenga un ID diferente, |
| |
Los diferentes grupos tendrán el mismo ID con una partición. Pero mientras tenga el mismo ID, se guardará en el mismo lugar. De lo contrario, se creará un nuevo espacio para guardarlo. |
| |
Además, siempre que hablamos de valores predictivos, |
| |
especialmente fórmulas de predicción, |
| |
Se creará un atributo, el creador y, en algunos casos, otra información. En este caso, tiene la variable objetivo y, que es la que se predice, y el creador ajusta los mínimos cuadrados. |
| |
Y luego, cuando uses otras plataformas, como la comparación de modelos de JMP Pro, esta entenderá qué valores predichos corresponden a cada creador y a qué plataforma objetivo. De esta forma, podrá realizar un seguimiento de toda esa información para esas plataformas de valor añadido. |
| |
Entonces, |
| |
Las columnas de fórmula funcionan agregando nuevas cláusulas y se utilizan otras propiedades, incluido el ID. |
| |
Y las cláusulas de predicción, si se guardan como variables categóricas, guardan un amplio rango de variables con las probabilidades para cada nivel de respuesta, incluyendo todos los metadatos y requisitos. Esto debería ahorrar muchos problemas. |
| |
Entonces, |
| |
eliminando efectos de los modelos. |
| |
Bueno, veamos un ejemplo. |
| |
de ajuste |
| |
simplemente ajustando la altura por peso. |
| |
Bueno, aquí hay un ejemplo de un polinomio de alto grado. Este es un polinomio de séptimo orden. |
| |
eso encaja mejor que |
| |
polinomios de sexto orden y así sucesivamente. Pero, ¿confiarías en ese ajuste? |
| |
Resulta que si se le da al modelo mucha flexibilidad introduciendo términos polinómicos altos o simplemente introduciendo más variables, ofrece muchas más oportunidades para ajustarse. Y en este caso es |
| |
Esto ha permitido la flexibilidad de realizar un análisis exhaustivo entre los datos anteriores y el último punto de datos, simplemente para ajustar mejor ese último punto de datos. |
| |
Y por eso se está produciendo un sobreajuste. Es... está utilizando ese parámetro para ajustar el ruido en lugar de ajustar el... |
| |
los datos en sí. |
| |
Y el sobreajuste es un problema siempre que se tienen modelos grandes. |
| |
Quieres ajustar la señal, no el ruido. De acuerdo, los modelos grandes tienden a introducir más variación en la predicción, porque la predicción, después de todo, es |
| |
una función de la variable y que están usando, pero también esa variable y es una parte sistemática de esa variable más la parte de error de esa variable si esa parte de la variable |
| |
es aleatorio, entonces tu predicción implica esa aleatoriedad. Y si le permites demasiada flexibilidad, terminará siendo |
| |
un problema de sobreajuste que se va a predecir mucho peor al incluir todas las variables en ese modelo. |
| |
Entonces, la solución es reducir el modelo, disminuir el tamaño del modelo o disminuir el tamaño de los coeficientes en el modelo, |
| |
para que se transmita menos variación del término aleatorio del modelo al valor predicho. Y así |
| |
En problemas de diseño de experimentos (DOE) pequeños, esto no representa un problema, ya que los datos son escasos y están bien equilibrados para ajustarse con precisión al modelo deseado. Sin embargo, en modelos de gran tamaño, el sobreajuste a los datos observacionales sí constituye un problema real. |
| |
Por lo tanto, los usuarios a menudo no apreciaban eso hasta que introdujimos la validación cruzada en JMP Pro. Entonces, si tiene JMP Pro, puede configurar una columna de validación, |
| |
lo que retendrá algunos de los datos para estimar el error en ese conjunto de datos retenidos. Y aquí hay un ejemplo donde tengo... estoy tratando de predecir las propiedades concretas. |
| |
dependiendo de todos estos ingredientes en el concreto, y tengo un modelo enorme para ello. Y si simplemente ejecuto ese modelo, pero retengo algunos de los datos y miro el R cuadrado en eso, |
| |
En SLUMP, tengo un ajuste excelente. Tengo un R cuadrado de 79, pero en el conjunto de validación que ajusté, tengo un R cuadrado negativo. |
| |
Cualquier R cuadrado negativo significa que se ajusta peor que simplemente ajustar la media. Entonces, si ajustara la media, tendría un R cuadrado de cero. Si ajusto todo este modelo, tengo un R cuadrado mucho peor que eso. Entonces, con modelos grandes, puedes ir peor que simplemente ajustar la media, es peor que |
| |
Resulta poco informativo porque el modelo es muy grande y no nos esforzamos por reducir su tamaño. El ruido ha dominado el modelo, no la señal. Por lo tanto, este es un problema al que deberían prestar atención. |
| |
Por lo tanto, lo importante es poder reducir el tamaño del modelo. |
| |
Y ahora hemos introducido un comando de diálogo modelo para hacer eso. |
| |
Vamos a adentrarnos en la diabetes con nuestro modelo. |
| |
Puedo ejecutar este modelo y si, digamos que quiero eliminar muchas de estas cosas, no son muy significativas. Ya sabes, la edad. |
| |
tiene una contribución totalmente insignificante al modelo, por lo que quiero eliminar la edad. Bueno, entonces podría volver a ajustar el modelo y |
| |
recuérdalo o y luego elimina la edad. O bien, puedo volver directamente al diálogo del modelo aquí y ajustar la edad y eliminarla, pero puede que tenga una larga lista de modelos aquí y tener que ir y venir para hacer estas cosas es bastante trabajo. |
| |
Y por eso, en lugar de hacer eso... |
| |
Veamos, ¿qué hago yo aquí? |
| |
Hace varias versiones, presentamos un nuevo informe llamado resumen de efectos. |
| |
Y con el resumen de effacts, resulta trivialmente fácil subconjuntar el modelo para que prediga mejor, |
| |
darle menos flexibilidad. |
| |
Así que puedo decir, bueno, la edad, puedo eliminar eso. |
| |
O bueno, hay muchas variables. Eliminemos tres más. |
| |
LDL, bueno, eso parece más significativo. Así que puedo guardar ese modelo. |
| |
Vamos a guardarlo en la tabla de datos. |
| |
Y luego vuelvo y digo, bueno, déjame recordar ese modelo que tiene esto. |
| |
De hecho, puedo deshacer lo anterior. Así que puedo deshacer eso y vuelve a aparecer. |
| |
tres de las variables y puedo deshacer eso y vuelve a traer la edad. Así que en realidad almacena, cuando uso el resumen de efectos para editar el modelo, en realidad almacena un recuerdo de todas esas cosas. Y si miro ese script, |
| |
Puedo ver este historial. Cada vez que aplico un efecto al modelo, se guarda una cláusula del historial. Y cuando deshago la acción, se vuelve a ese historial. |
| |
Así que quitar es fácil. También puedo añadir cosas. Si restara estas dos cosas, podría volver a sumarlas. Podría volver a sumar, por ejemplo, la edad. |
| |
No es algo bueno que hacer, pero puedo hacerlo. También puedo editar el modelo trayendo de vuelta una versión pequeña del modelo y |
| |
del diálogo del modelo y agregar efectos compuestos, etc. |
| |
Ahora bien, otra cosa que sucede con los modelos grandes y |
| |
(Déjame deshacer esto). |
| |
Con modelos grandes, |
| |
Estás realizando muchas pruebas de hipótesis. |
| |
Entonces, si tiene una gran cantidad de pruebas de hipótesis, hay algunos ajustes que debe considerar y uno de ellos se llama tasa de falsos descubrimientos. Y entonces, en lugar de tratar todos estos valores p como si fueran pruebas independientes, |
| |
Quiero aplicar un ajuste para que esos valores p se ajusten al sesgo de pruebas múltiples, al sesgo de selección involucrado en el subconjunto del modelo. Y así puedo aplicar una tasa de falsos descubrimientos. |
| |
corrección a eso. Entonces, en lugar del valor p regular, tengo el valor p ajustado de falso descubrimiento para eso. Y ahora estoy siendo más realista. Así que esto me va a ayudar con el problema de sobreajuste y la hipótesis... el problema del sesgo de selección al hacer muchas pruebas múltiples |
| |
cosas. |
| |
Entonces, |
| |
ahora |
| |
vamos |
| |
Haz el siguiente tema y ese es transformaciones. |
| |
Suponer |
| |
quieres hacer un modelo, |
| |
pero |
| |
En lugar de y, quieres ajustar el logaritmo de y. |
| |
Bueno, antes de eso, lo que harías sería crear una nueva columna en el conjunto de datos, |
| |
Log y, |
| |
y luego para Log y, usted |
| |
especificar un... |
| |
hacer una fórmula. |
| |
Y puedo tomar |
| |
un registro de ello. |
| |
Y ahora puedo volver a la especificación de mi modelo y hacer eso Log y |
| |
y entonces me puse en forma. |
| |
Oh, falta, ¿qué hice? |
| |
Olvidé ingresar el |
| |
objetivo, el argumento. |
| |
Y ahora puedo |
| |
ajustar el logaritmo de Y |
| |
Y ahora |
| |
Ya lo hice. Pero vamos a hacer el perfilador. |
| |
Mi perfilador está en términos del logaritmo de Y. Permítanme guardar el valor predicho. Mi fórmula de predicción está en términos del logaritmo de y, |
| |
y ahora voy a tener que ir y editar eso a mano... |
| |
esa fórmula y tomar la exponencial de eso |
| |
para devolverlo a su escala original. Así que es mucho dolor hacer transformaciones de esa manera. |
| |
Bueno, hace varios lanzamientos |
| |
Introdujimos transformaciones. |
| |
Entonces puedo tomar esa transformación y |
| |
transformarlo en el registro |
| |
Ahora se utiliza directamente como una transformación, y no forma parte de la tabla de datos. Es una variable virtual con una fórmula, pero no se agrega a la tabla de datos. |
| |
Y ahora puedo ajustar mi modelo al logaritmo de y. Vamos |
| |
Quita la edad para que encaje un poco mejor. |
| |
¡Ups! |
| |
También lo tenía seleccionado. |
| |
Y ahora he ajustado la respuesta Log y. |
| |
Entonces, si hago ese perfil, ¿qué obtengo? |
| |
Análisis factorial, analizador. En lugar de analizar el logaritmo de y, analiza y. El analizador lo interpreta como una transformación y piensa: «Puedo invertir esa transformación y volver a la escala original». Y eso es precisamente lo que hace. |
| |
Él |
| |
Destransforma, vuelve a transformar a través del logaritmo de y para tomar la predicción y ponerla en la escala original. |
| |
Y lo hará para la mayoría de las transformaciones que se pueden desenrollar. Si una transformación involucra múltiples variables, etc., no puede hacerlo y simplemente hará las transformaciones. Entonces, el original |
| |
Lo mismo ocurre cuando guardo una columna. Cuando guardo la fórmula de predicción, |
| |
Guarda una fórmula de predicción en la escala de y en lugar del logaritmo de y. |
| |
Por lo tanto, estas cosas ahorran muchísimo tiempo y esfuerzo al usar transformaciones. |
| |
Entonces hay... |
| |
Déjame |
| |
volver a la diabetes |
| |
y haga otra... considere otra transformación. |
| |
Cuando estás haciendo variables, |
| |
Existe una transformación Box-Cox que puedes conseguir. |
| |
Y |
| |
Entre los perfiles de factores, la opción Box-Cox |
| |
te dice si transformaste toda una gama de funciones de potencia, |
| |
¿Qué, qué sería lo mejor que se podría hacer? ¿Debería ser simplemente destransformar? Eso daría un valor lambda de Box-Cox de uno. |
| |
Si el resultado fue cero, eso sería equivalente a calcular su logaritmo. Si el resultado fue -1, eso sería equivalente a calcular su recíproco. |
| |
La potencia de -1. Si hicieras alrededor de 0.5, eso sería equivalente a sacar la raíz cuadrada de eso. |
| |
Y te está diciendo que este modelo se ajustaría mejor a una escala de transformación ajustada para esa transformación, si estuviera más cerca de la transformación de raíz cuadrada, donde lambda era 0,453. Ese es el valor óptimo en esa transformación de Box-Cox. |
| |
Y puedes hacer zoom en esto. |
| |
con una lupa para obtener |
| |
para obtenerlo con mayor precisión. |
| |
Entonces, |
| |
Así que ahora puedo transformarme, y hace varias versiones |
| |
Puedo... He añadido varias columnas. Una de ellas se ajusta con la transformación, lo que creará una nueva ventana con la respuesta de la transformación. |
| |
Y otra es reemplazar la transformación y voy a hacer eso. Y en lugar de .453, voy a tomar la transformación de raíz cuadrada (.5) y ahora ajusto el modelo con esa transformación. |
| |
Y ahora lambda best está alrededor de 1, que es donde debería estar, porque ya se ha transformado de una vez mediante la transformación de Box-Cox. Y ahora puedo guardar el valor predicho de eso y |
| |
perfilarlo y demás. E incluso puedo deshacerlo. Así que si no me gusta esa transformación y quiero volver al original, puedo volver al original y reajustarlo. |
| |
Entonces, |
| |
Hemos hecho mucho por salvar el dolor |
| |
en la transformación de las respuestas. |
| |
Así que ahora |
| |
Existe un dolor especial, un dolor particular, cuando se tienen muchos datos. |
| |
Y nos hemos esforzado mucho por intentar resolver los grandes problemas con el menor dolor posible. |
| |
Ya sea que tenga muchas filas, muchas columnas, muchos grupos, muchos modelos para probar, |
| |
En el mundo actual vivimos en un mundo de macrodatos con grandes problemas. |
| |
Por lo tanto, si tenemos análisis que fueron diseñados originalmente para manejar problemas pequeños, puede que no sean apropiados para problemas grandes, y el problema central con los problemas grandes es que hay demasiados resultados que procesar. |
| |
Si al ajustar el mismo modelo a 1000 variables, tengo 1000 informes que clasificar. Si estoy buscando valores atípicos entre 1000 columnas, solo hay valores atípicos, ya sabes, informes separados para cada columna y así sucesivamente. Quiero poder |
| |
procesar de manera más eficiente grandes conjuntos de datos. Por eso desarrollamos el menú de filtrado, |
| |
que está diseñado para resolver este tipo de problemas complejos. Además, existen muchas otras funciones en JMP que resuelven mejor los problemas complejos. Por ejemplo, las series temporales. La nueva plataforma de pronóstico de series temporales pronosticará múltiples series temporales, en lugar de solo una. |
| |
Entonces, los elementos en la plataforma de detección exploran valores atípicos, exploran valores faltantes, exploran patrones. Estos son para hacer comprobaciones de datos y luego cosas que buscan asociaciones, detección de respuestas, |
| |
Selección de procesos, selección de predictores. Y, por supuesto, la previsión de series temporales es una novedad. No aparece en el menú de selección, pero está organizada para abordar problemas de gran envergadura. |
| |
Y todas estas cosas se benefician, no solo de formas más compactas de representar los resultados para que no tenga que generar miles de informes, sino que también son computacionalmente eficientes. Utilizan multihilo para aprovechar su |
| |
los múltiples |
| |
núcleos en tu CPU para que sea muy rápido. |
| |
Digamos que tienes muchos datos de proceso; tienes 568 variables. Entonces, ¿cuáles de estas variables parecen saludables? Bueno, el análisis de procesos está diseñado para responder a eso. Y por lo tanto puede ordenar por estabilidad o ordenar por capacidad (Ppk) o cuáles están mal o ordenar por |
| |
Medidas de gráficos de control, cuentas fuera de control, etc. |
| |
Pero lo que es aún... incluso me gusta más, son algunas de las herramientas que muestran todos los procesos en un solo gráfico. Y hay dos de ellas que me encantan. Una es la |
| |
el gráfico de objetivos que muestra |
| |
cómo se comporta cada proceso con respecto a los límites de especificación y si es un proceso capaz, está en esta zona verde. |
| |
Si es marginal, está en la zona amarilla. Si no lo es, está en la zona roja, y si es alta, tiene demasiada varianza. Si está a un lado de la otra, entonces hay un problema. |
| |
Con... |
| |
Está descentrado, no da en el blanco. |
| |
Pero si está en la zona verde, entonces es un buen proceso, y con la versión 15 introducimos el |
| |
Graphlets, la ayuda emergente |
| |
para que puedas ver cada proceso al pasar el cursor sobre él. Y luego el otro |
| |
El gráfico que me encanta para resumir todo esto y reducir la tediosa tarea de revisar todos estos informes es este gráfico de rendimiento del proceso. En el eje vertical, indica si se está dentro de los límites de especificación según la capacidad Ppk. |
| |
Si te encuentras por encima de esta línea, en 1.33, entonces la distribución de valores con respecto a los límites de especificación está bien. Estás dentro de los límites de especificación. |
| |
Si... entonces el índice de estabilidad está en el eje x. Entonces, si es un proceso bastante inestable, incluso si puede ser capaz pero inestable. Entonces, si miras ese proceso, podría tener algunos |
| |
cosa de estabilidad que vaga por ahí un poco. Y si estás en la zona amarilla, estás |
| |
capaz pero inestable, y así sucesivamente. La zona roja es la zona mala donde eres incapaz e inestable a la vez. Por lo tanto, revisar cientos o miles de procesos ahora es fácil, cuando antes era una tarea muy complicada. |
| |
La pregunta es, ¿qué fue lo que más cambió? Aquí hay algunos datos de la encuesta donde |
| |
Durante muchos años diferentes, usted hizo una pregunta sobre sus actividades. ¿Lo hizo? |
| |
¿Ir de camping? ¿O apostar en un casino? ¿O tuviste un resfriado? Ya sabes, todas estas actividades y quieres saber cuál de todas estas actividades (y hay |
| |
Creo que, de 95 actividades diferentes, ¿cuál de estas marcó la mayor diferencia? Así que estás buscando, ya sabes... una cosa que podrías hacer es revisarlas una por una. |
| |
y ajustar esa actividad al año de la encuesta. |
| |
En lugar de mirar uno por uno, puedo mirar la evaluación de respuesta. |
| |
y basta con mirar un gráfico para ver qué fue lo que más cambió. |
| |
Y así se muestra un gráfico para los 95 elementos. Primero, la significancia en términos del logaritmo negativo del valor P, |
| |
que llamamos valor logarítmico, que se ajusta a la tasa de falsos descubrimientos. Y así se corrige parte de ese sesgo de selección porque se ordenan todos esos valores p. |
| |
y seleccionando lo que está detrás... los valores P bajos. Y descubro que alquilar una cinta de vídeo fue lo que más cambió, la cinta de vídeo, y por supuesto que quedaron obsoletas. Así que, por supuesto, cambió. |
| |
Otra cinta de vídeo cambió mucho, recoger cosas para reciclar cambió mucho, entretener a la gente en mi casa cambió mucho. |
| |
Y aquí está la que es menos significativa, pero con un gran tamaño de efecto: ¿usted usa internet? Y por supuesto, esta encuesta se inició antes de que existiera internet. Así que cambió mucho. Entonces, la pregunta sobre qué cambió más fue |
| |
Ahora es fácil, cuando antes era difícil. |
| |
Otra pregunta que hiciste sobre big data, ¿dónde están los valores faltantes? Aquí están |
| |
280 variables. |
| |
¿Dónde están los valores faltantes? ¿Debo preocuparme por ellos? Y puedo mirar el informe de exploración de valores faltantes y ver que, bueno, solo hay cinco de estas variables con valores faltantes. |
| |
Y algunos de ellos solo tienen una variable, un valor faltante, pero algunos de ellos tienen muchos. Entonces, cuando hago un análisis, un análisis multivariado, probablemente no quiero incluir |
| |
376 de 452 variables. O si quiero incluir J, puedo pasar |
| |
y imputar esos valores faltantes |
| |
Haciendo eso, de acuerdo. |
| |
Entonces, |
| |
La siguiente pregunta es: ¿los datos contienen valores atípicos? |
| |
Bueno, tengo 387 mediciones, lo hago en este proceso. Y quiero averiguar si hay valores atípicos. Así que ahora tenemos una función para hacerlo en el menú de filtrado. Puedo |
| |
hacerlo más o menos sensible. |
| |
Hagámoslo más sensible |
| |
por lo que hay menos valores atípicos y se vuelve a escanear. |
| |
Puedo mirar |
| |
en |
| |
Los nueves. Con frecuencia, se usa una secuencia de nueves para representar un valor faltante, y esos nueves pueden ser reales, pero también pueden ser solo un indicador de un valor faltante. Entonces, para esos casos, puedo agregar esos nueves a los códigos de valores faltantes y ahora la memoria ha cambiado. |
| |
Y ahora puedo |
| |
Vuelve a subir (aquí hay muchas variables) y vuelve a escanear, y habrá menos valores faltantes de los que preocuparse. |
| |
Por eso, analizar los valores atípicos solía ser un engorro. |
| |
Aún puede ser un trabajo arduo, pero es mucho más fácil que antes. |
| |
Ahora, en la versión 15, agregamos otra plataforma de detección. ¿Los datos presentan patrones sospechosos? Aquí hay algunos datos de laboratorio de un ensayo clínico. Estos son datos de patrones de laboratorio de nicardipina. Hay 27 resultados de laboratorio que podría querer revisar. Así que invoco |
| |
La nueva plataforma explora los valores faltantes. Y esto me mostrará si tengo una secuencia de valores. Tengo el valor 0.03536, pero hay siete seguidos, comenzando en la fila. |
| |
2065. Puedo colorear esas celdas y puedo observar esos valores, y tal vez sea el último valor arrastrado, lo cual puede no ser sospechoso. En este caso, es el... |
| |
Es la misma persona. Así que quizás conservar el último valor sea una opción razonable, pero es un evento muy, muy raro si has distribuido estas cosas... |
| |
si, si se asume una distribución aleatoria para estas cosas. |
| |
También la secuencia duplicada más larga. Entonces, para esta variable y estamos comenzando en la fila 2816 y también comenzando en la fila 3034, hay cuatro en una fila que tenían los mismos valores. Entonces, si coloreo esas cosas, hay cuatro en una fila allí. Y si |
| |
Ve a la siguiente secuencia; hay cuatro seguidas con los mismos valores. Esto podría ser un síntoma de copiar y pegar los mismos valores de un lugar a otro. |
| |
Así que explorar patrones es buscar esas cosas. Y hay muchas otras cosas que puedes examinar en detalle en cada una de esas 27 variables y buscar síntomas de cosas sospechosas o |
| |
efectos negativos de la forma en que procesaste los datos, etc. |
| |
Entonces, |
| |
Explorar patrones es parte de la solución de grandes problemas. |
| |
Entonces, |
| |
Alivio del dolor. Gran parte de nuestro desarrollo se centra en hacer que el flujo de análisis sea más fluido, menos engorroso, menos laborioso y menos doloroso. Analgésicos. |
| |
Ahora no siempre sabemos qué es doloroso. Por lo tanto, dependemos de la retroalimentación para saber en qué debemos centrarnos. Cuando recibimos esos correos electrónicos a los que tuve que responder una solicitud cientos de veces, |
| |
Escuchamos eso y sentimos el dolor y lo arreglamos para que ahora puedas transmitir en un grupo con miles de cosas. |
| |
y transmitir los resultados de un diálogo en lugar de dialogar varias veces. Así que enviarlo fue mejor para todos, porque no lo detectamos la primera vez. Por favor, envíennos sus comentarios. |
| |
Con todas las mejoras que ya hemos realizado, creemos que el proceso de preparación y análisis de datos se ha vuelto mucho más fluido, con muchas menos interrupciones y un flujo de trabajo más continuo. |
| |
Entonces, |
| |
En lugar de dedicar tu tiempo a superar obstáculos, dedica tu tiempo a aprender de tus datos, a comprender tus datos. |
| |
análisis. Uno se preguntaría si provienen de la misma raíz, claro, no nos gusta abreviar esas dos palabras. |
| |
La palabra "analytics" proviene del griego "analyein", y no sé cómo pronunciarla. |
| |
Pero en griego, significa romper, liberar o dejar en libertad. Se trata de tomar algo complicado y dividirlo en partes para que podamos entenderlo. |
| |
Y eso es, por supuesto, exactamente lo que hacemos con el análisis de datos, la ciencia de datos. Y la palabra "analgésico" proviene de una combinación diferente de palabras: "an-", que significa "sin", y "algesia", que es la sensación de dolor. Así que el prefijo es el mismo, pero las raíces son un poco diferentes. |
| |
Y no las abrevieses. |
| |
Anabólico y afrodisíaco. Nos importa el poder. |
| |
Gran parte de nuestro trabajo consiste en proporcionarle herramientas más potentes para el análisis de datos, muchas de ellas en JMP Pro, así como en JMP. |
| |
Y esperamos que los datos lo hagan emocionante, ya saben, la emoción del descubrimiento. |
| |
Nos entusiasma aprender a usar las funciones avanzadas de JMP, y creemos que es emocionante. Es como un afrodisíaco. |
| |
Por lo tanto, la potencia y la emoción también son valiosas para nosotros. No se trata solo de aliviar el dolor. |
| |
¿Y qué vamos a hacer el año que viene? |
| |
Bueno, palabras largas que empiezan con la letra B. |
| |
Empieza con A, luego B, ¿verdad? |
| |
Bueno, el año que viene llega JMP 16. Así que de eso hablaremos. Quién sabe de qué hablaremos el año siguiente. Muchas gracias. Esperamos que el análisis de sus datos les resulte lo más sencillo posible. |
| Jeff Perkinson |
Muchas gracias, John. Lo apreciamos. Fue una charla fantástica y habiendo presenciado mucho dolor a lo largo de los años, |
| |
Es, es, todo lo que dices es absolutamente cierto. El alivio del dolor es algo importante para nosotros. |
| |
De hecho, recibimos una pregunta, en realidad varias; hemos respondido algunas en la sección de preguntas y respuestas, pero lo que quería plantearles es... |
| |
¿Aliviaba el dolor y, además, proporcionaba cierta atracción e hacía que JMP fuera más poderoso? |
| Juan Hall |
Bueno, creo que la mayor alegría de todos es Graph Builder. |
| |
Resulta increíblemente práctico simplemente arrastrar esas variables, hacer unos cuantos clics más y obtener el gráfico deseado, que además se puede modificar con muchísima facilidad. |
| |
Así que es emocionante. Es una función potente y alivia el dolor; antes era más difícil de conseguir. Creo que es lo que más le gusta a todo el mundo. |
| |
Pero por supuesto que hay... JMP es un producto completo y estamos orgullosos de todo lo que contiene. Diseño de experimentos, todo |
| |
el gran poder que hay en juego y hemos intentado que ese proceso sea sencillo también. Y me vienen a la mente muchas cosas. |
| Jeff Perkinson |
Muy bien. Muchas gracias, John, lo aprecio. Si has disfrutado de esta charla, tengo dos sugerencias para ti. Primero, publicaremos esto |