Category Archives: SOFTWARE

R y Shiny

Hace muchas lunas y muchos soles o sea hace un chorro de años, en la universidad tuve un maestro que nos enseñaba SPSS (Statistical Package for the Social Sciencies). Ese maestro se presentó ante nosotros de manera muy simpática, nos preguntó cuál era la materia que íbamos a tomar con él; respondimos que era “Metodología de la investigación I”. Acto seguido, respondió que no, que con él aprenderíamos: cómo ganarse la vida I. Y si nos gustaba su materia, en los próximos 3 trimestres, aprenderíamos: cómo ganarse la vida II, cómo ganarse la vida III, y cómo ganarse la vida IV. Después volvió a preguntar: ¿Y se come bien?”, para responder él mismo: “¡Chequen!”. Decía, caminando de perfil y haciendo saltar su panza prominente. Estábamos en los albores de las computadoras personales, en ese entonces lo más avanzado que teníamos eran las XT (Tecnología Extendida). Así que era todo un reto aprender computación y más para estudiantes del área de ciencias sociales; como tu humilde servidor que es psicólogo social. Sin embargo, ese buen maestro logró entusiasmar y motivar a varios de sus alumnos para que aprendieran SPSS.

Ahora, a tantos años luz, creo que aprender SPSS fue una de las mejores cosas que pudo haberme pasado. Sin embargo, esta reflexión me hace recordar que este programa surgió y fue creado para la era PC (Personal Computing) y hoy estamos en la era CC (Cloud Computing). Es decir, en la Internet y las redes sociales que tienen un corazón que hace: like, like, like; llamado “SHARE”. Estamos en un momento en el cual las herramientas que necesitamos son distintas y en unos casos diametralmente opuestas. SPSS y muchos otros programas líderes, están haciendo grandes esfuerzos para no perder su liderazgo. Por ejemplo, SPSS invierte muchos recursos para lograr que programas desarrollados en R, .NET, Python, Java, todos ellos lenguajes de programación, se integren a su software. Tal vez piensa que los investigadores y analistas simplemente no van a cambiar una herramienta tan sencilla como es SPSS, la cual se basa en un menú de opciones que los libera de pensar en el cómo y centrarse en el qué; para meterse a desarrollar en R, Python, Java, etc. En todo caso, si alguien lo hace serán los ingenieros y utilizarán SPSS para trabajar con las aplicaciones desarrolladas por ellos, pero supongo que muchos no están de acuerdo en hacerlo. En otras palabras, SPSS está renunciando al liderazgo para situarse como un simple banco de trabajo. Por otro lado, se pueden correr muchos procedimientos de SPSS en línea, pero la empresa ha olvidado el asunto nodal: Internet no es para alojar o hacer las cosas en línea, es para COMPARTIR, INTERACTUAR y APRENDER.

Hace años que venimos haciendo las cosas en R y hemos advertido de lo que viene. Algunos lectores de este blog no están de acuerdo con lo que decimos y así nos lo han hecho saber en los comentarios al blog. Dicen que le falta mucho a R para competir con el software comercial o que no es mejor. Sin embargo, las cosas se vienen perfilando de una forma diferente; tan solo véase la gráfica de abajo que da cuenta del crecimiento de paquetes que R ha tenido en los últimos años; y es que R tiene paquetes para hacer cualquier cosa que desees. Shiny es uno de tantos paquetes que tiene R, pero en este caso es más que eso porque da al clavo en una de las cosas más anheladas por un investigador de mercados cuantitativo: COMPARTIR los análisis de un estudio en Internet, hacerlo de manera INTERACTIVA y que el analista APRENDA y comprenda.

numero de paquetes de R

Hasta el día de hoy, la gran mayoría de agencias de investigación entregan un reporte con gráficos estáticos hechos principalmente en Power Point o Excel; aunque este programa es reactivo y no tendría porque usar gráficos estáticos. Por ejemplo, algo común en un estudio de conjoint es mostrar la participación que obtiene un producto vs. otros productos en un escenario simulado; los resultados se muestran con gráficas estáticas. Si son 10 escenarios se le muestra al cliente 10 gráficas y aunque algunos programas del tipo CBC de Sawtooth tienen un simulador para hacerlo de forma dinámica, éste no se le proporciona al cliente, por restricciones de derechos de autor o porque el cliente no sabe operarlo. Seguramente no todos lo hacen así. En nuestro caso entregamos un simulador desarrollado en casa con simples herramientas de Excel y R (véase la imagen de abajo). Como cliente, ¿qué tan bien te vendría un simulador en línea donde pudieras jugar con escenarios a tu antojo y estimar la preferencia o participación de los productos? ¿Qué te parece estimar la satisfacción de los clientes metiendo distintas variables de tu programa de satisfacción y verlo por áreas de la empresa? ¿Qué tal observar un DQA o mapa de cuadrantes por los segmentos o regiones que se te ocurran? ¿Qué tal tener tu tablero de mandos de tus esfuerzos en línea y verlo de manera interactiva? Eso, estimado lector, es R combinado con Shiny. Las posibilidades son ilimitadas y el cliente no necesita saber R o Shiny para operar los programas en Internet. Aquí puedes ver algunos ejemplos de aplicaciones desarrolladas con R y Shiny.

simulador de conjoint

Para dejarlo más claro, ahí les va una explicación breve de lo que es R y Shiny. R es un lenguaje de programación estadística que nació por allá de los años de 1993. Se compone de paquetes que al día de hoy suman 8,011 y tiene más cada día. Es un lenguaje de tipo funcional; en un momento más explico que es eso. Por su parte, Shiny es uno de esos 8,011 paquetes que tiene R. Se utiliza para desarrollar aplicaciones web; es decir, que corre en Internet. No obstante, no se requiere de conocimientos en HTML, CSS o Java, lenguajes de programación en Internet, para desarrollar aplicaciones. Posiblemente, su mejor atributo es que es reactivo. De acuerdo, funcional y reactivo, ¿cómo se traducen estos conceptos en términos de R y Shiny? Todos conocemos Excel, ¿sí? La hoja de cálculo más popular que existe. Y hemos hecho cálculos con él, los hacemos utilizando funciones preconstruidas. Por ejemplo, supón que quieres sumar 2, columna A1 (véase la figura de abajo), con otro 2, columna B1, y al resultado sacarle raíz cuadrada. Por supuesto, nadie utiliza Excel para una operación tan infantil, pero es sólo para mostrar mi punto. El resultado de esos sesudos cálculos es 2; como puedes apreciar en la columna C1, que es donde decidimos introducir las funciones.

programacion funcional

Si observas, sobre la celda C1 hay dos funciones:

  1. La función suma: SUMA(A1,B1). Fíjate que esta función no afecta las columnas A1 y B1, únicamente toma de ellas los valores que va a sumar. En programación, a los valores que se introducen en la función, para que haga lo que se le pide, se les llama argumentos o parámetros*; y no necesariamente tienen que ser números. Ahora, presta atención al paréntesis que contiene a los argumentos, todas las funciones tanto en Excel como en R los utilizan, en otras palabras siempre vas a ver algo así como Función(Argumentos, Argumentos…). Una función puede tener muchos argumentos, los cuales van separados por comas. Con lo que sigue te debe quedar más claro.
  2. En la función raíz cuadrada: RAIZ(SUMA(A1,B1)); el argumento es otra función, que no es sino la suma de las columnas A1 y B1. La cosa se ve más o menos compleja, porque se están utilizando dos funciones para obtener un solo resultado; pero eso es precisamente lo que le da poder a la programación en Excel y R, que funcionan de manera similar. Por eso se llaman lenguajes funcionales, porque son como maquinas que funcionan a través de cualesquier valores válidos que se le de, transformándolos y devolviendo un resultado u objeto que puede ser manipulado por otra(s) función(es).

Habrás notado que en cuanto cambias un valor de cualquier celda que sirve de argumento para alguna función, el resultado cambia ipso-facto; sin que tengas que darle el OK o enter. En este caso, si cambias, en la celda A1, el 2 por el 7, el resultado de C1 se actualiza automáticamente. Sin embargo, la función o fórmula no cambia; sigue siendo la misma (véase imagen de abajo). A eso se le llama reactivo, y es distinto a la mayoría de los programas estadísticos que requieren que les declares explícitamente que deben correr el análisis. Posiblemente, por eso se dice que Excel es el programa más sorprendente y completo que hay. Si ves los ejemplos de Shiny, te darás cuenta que opera de la misma forma: cambias los valores y el resultado se actualiza.

programacion reactiva

Se dice que R es difícil de aprender y/o se necesita mucho tiempo, es posible. Pero déjame decirte que es peor hacer una y otra vez el mismo análisis, parte por parte, año tras año; no importa que sólo sea cosa de darle clic a tu programa favorito. Con el paso de los años, te das cuenta del tiempo que te habrías ahorrado con tan solo construir las funciones que necesitabas correr comúnmente, con la ayuda de R y Shiny. ¿Es difícil R? No más que Excel y VBA juntos y, sin embargo, su uso es generalizado; al menos el de Excel. No importa tu postura, es claro que estamos viviendo un nuevo paradigma. No te resistas al cambio, este es inevitable.

Por favor, no te reprimas y déjanos tus comentarios.

Gracias por leernos.

* Te aconsejo que no emplees el vocablo parámetro, porque este tiene un significado distinto en estadística del que tiene en programación.

SOFTWARE LIBRE

“No me alegra que esté muerto, pero me alegra que se haya ido”. Eso escribió Richard Stallman un día después del fallecimiento de Steve Jobs; la gran mayoría de la gente no conoce a Richard Stallman pero si a Jobs y por si te lo preguntas, Stallman es el padre fundador del software libre, es decir, tiene una filosofía contraria a Jobs y Gates, por hablar de los nombres más representativos del negocio del software. Por supuesto, que no podemos alegrarnos de que Jobs ya no esté con nosotros pues el legado que nos ha dejado es maravilloso y eso sin contar los iPhones, iPads, iPods, Mac’s, etc. pero si podemos alegrarnos de que haya personas como Stallman.

Los que tenemos más de 20 años en este negocio, todavía podemos recordar programas distintos a Excel, SPSS, Word y los otros paquetes que hoy dominan el mercado; asimismo, vimos la rapidez con la que estos programas desplazaron a aquéllos y cómo para bien o para mal fueron las herramientas que se empezaron a enseñar en las escuelas. Con el tiempo el software se volvió caro, muy caro y estúpidamente caro (hace apenas un mes me mostraron un software de investigación de mercados que vale 100 mil dólares). También recuerdo que en la empresa donde inicié, el software se guardaba bajo llave junto con los manuales debido a lo cual aprender era medio complicado pues si tu jefe no lo permitía simplemente no tenías acceso a estas herramientas informáticas. Obviamente, para muchos de nosotros que deseábamos salir adelante, la alternativa era el software pirata.

Actualmente, además del precio, existe otro problema con el software comercial y no me refiero a que se haya borrado totalmente mi agenda de mi iPad con la actualización automática del software operativo vía WiFi, sino a la falta de desarrollo que empieza a ser acuciante en muchas empresas, pongamos de ejemplo al gigante IBM/SPSS, hay muchos procedimientos que simplemente no existen en este software y paradójicamente son de los más solicitados en la actualidad: análisis de estructuras de clases latentes (segmentación), análisis de selecciones discretas (conjoint, maxdiff o diferencias máximas), análisis de rasgos latentes (calibración de reactivos o modelos de rasch y escalas) o simplemente, estadística bayesiana, la cual jamás nos enseñaron en la escuela no obstante que es igual de importante que la estadística clásica. ¿La alternativa? comprar más software y tal vez muy bueno como Latent Gold pero caro.

Otras variantes que en lo personal no me agradan mucho del software comercial que se utiliza para hacer los tipos de análisis antes mencionados son:

1. El software no te lo venden, te lo prestan o rentan por un año.
2. Y al igual que los coches, si quieres con aire acondicionado tanto, con quemacocos otro tanto, con asientos de piel otro tanto más y como si se tratara de artículos suntuarios hay le vas subiendo y subiendo el precio por cada cosa más que necesites.
3. Con el esquema anterior, el precio del software más baratito está arriba de los mil dólares. ¡Ah! pero recuerda eso es cada año.
4. Como están programados para trabajar con comandos discretos sólo puedes pedir tortas de las que hay en el menú, no puedes inventarte tu propia torta con los ingredientes que a ti se te antojen.

Y claro está que estas empresas tienen todo el derecho del mundo a fijar sus precios y vender su software como se les pegue su regalada gana. Pero ¿qué pasaría si como dicen los chinos hubieran opciones yauh peng yauh leng (bonitas y baratas)?

Mucha gente asocia software libre con el sistema operativo GNU/Linux y no es que estén equivocadas pero en la actualidad el software libre abarca prácticamente todas las áreas donde hay software comercial. Por ejemplo, hasta hace algunos años, prácticamente la única que repartía el queso en cierto tipo de estudios (Conjoint Based Choice y MaxDiff) era la empresa Sawtooth Software hoy hay varios que compiten por el mercado como Latent Gold Choice, Statwizards, SurveyAnalytics, pero a la par también hay opciones de software libre como LEM (este programa pertenece a Jeroen Vermunt uno de los creadores de Latent Gold y para obtener una copia hay que solicitarla) o R, en particular, este software, es simplemente lo mejor que nos haya pasado a los que vivimos de las estadísticas y así como GNU/Linux es infinitamente superior a windows, R es mucho, pero mucho mejor que SPSS o SAS; otro ejemplo, sobresaliente de un software libre que es mejor que las versiones comerciales es Gephi que sirve para analizar redes sociales.

Debido a que la mayor parte del software libre es el resultado de la cooperación y entusiasmo de muchos profesionistas su desarrollo está garantizado y normalmente tiende a escalarse mediante módulos llamados plugins, addins, paquetes, etc., que aquéllos van desarrollando y que complementan el alcance del software, de esta forma puedes tener un coche con quemacocos sin que te cueste un centavo más o más bien dicho sin que te haya costado. Por otro lado, como en el caso de R o Gephi, como dice Arjona: “lo que nos pidan podemos, si no podemos no existe y si no existe lo inventamos”. Así de picudo te puedes poner si aprendes a manejar bien estas herramientas.

Recientemente, apareció una estadística sobre los españoles que menciona que 8 de cada 10 personas usan software libre y que están satisfechos con él; no conozco las estadísticas de México pero sé que se encuentra entre los países que menos usa software libre. Es bien contradictorio que siendo un país con tantas carencias se utilice más el software comercial que el libre pero parece ser que la historia del software libre a nivel mundial apenas comienza a escribirse y seguramente el nombre de Richard Stallman no será desconocido por las siguientes generaciones o por lo menos no será menos conocido que el de Steve Jobs o Bill Gates.

Una reflexión para terminar: Si algún día la escuela desea educar para crear individuos libres deberá enseñarles software libre también.

Nota. Este blog es posible gracias al software libre de WordPress.

¡YA PÁRENLE!

Aproximadamente hace un cuarto de siglo, cuando iba a la universidad, tenía un maestro que escribía los recados en papel estraza. Decía que debíamos ahorrar papel y yo pensaba que estaba exagerando, ¿qué tanto papel podría ahorrar un sujeto escribiendo los recados en papel reciclado? Sigo pensando que no significaba gran cosa el papel que ahorraba. Sin embargo, hoy me doy cuenta que la intención de él no era ahorrar grandes cantidades de papel, su propósito era despertar nuestras conciencias. No cabe duda que las pequeñas cosas hacen grandes diferencias.

Según la AMAI en el 2009 se hicieron 6.4 millones de entrevistas cuantitativas. Es difícil saber cuantas de esas fueron por medios digitales, pero según mis colegas de campo la gran mayoría sigue haciendo entrevistas a papel y lápiz ¿Qué te parece si estimamos de forma conservadora que el 70% de esas entrevistas se hace a papel y que cada cuestionario tiene en promedio 5 hojas? Eso significa 22,400,000 hojas o en otras palabras un chingo de árboles.

Hace unos meses escribí sobre software para encuestas y animaba a que investigaran sobre otras soluciones para encuestas además de las que les proponía. No hay pretexto para seguir haciendo las encuestas a papel y lápiz, a nadie beneficia eso. Pierde la sociedad, pierden los pobres árboles, porque aunque no lo creas sienten y piensan, eso ya se sabe desde hace mucho tiempo; los árboles se estrezan cuando se dan cuenta que van a ser derribados; y pierde la agencia de investigación. Actualmente, puedes tener una cuenta, por ejemplo, con Polldaddy por sólo 200 dólares al año, este software resuelve casi todas la necesidades de cualquier empresa y existen muchos otros (creo que Surveymonkey es bueno pero no lo conozco).

No es lógico que pudiendo hacer tu trabajo más fácil, rápido y a bajo costo (puedes conseguir iPods usados hasta en $1,200 pesos) e incluso con tus resultados al instante prefieras seguir haciendo encuestas en papel ¿Cuál es el problema? realmente quisiéramos saberlo.

Entendemos perfectamente que en México eso significa perdida de fuentes de empleo para capturistas y muy pronto para gente que procesa información (tabulares estadísticos), pero eso no es ninguna tragedia, todo en la vida, tiene su propio ciclo de vida para dar paso a cosas mejores (sí, aunque no lo creas).

Compañeros de investigación de mercados ¡ya párenle! Háganse un favor a ustedes mismos y hagánselo a los árboles.

¿Están de acuerdo?

Por cierto es más difícil manejar tu progama de Word que el software para encuestas en línea.