R

Tres fracasos y medio con R

Hoy, mientras Raúl departía en el cuarto de al lado —él os dirá por qué y para qué— y hacía tiempo para saludarlo, me he entretenido fracasando tres veces y media en lo que abajo desarrollo. No pensaba publicarlo hasta que, reflexionando, he considerado que, a veces, más útil es una buena pregunta que algunas certezas. Inconcluso —o fracasado— puede no significar inútil o imperfecto.

Veamos en qué han consistido mis fraccionarios fracasos.

Dos páginas con recursos para introducirse en R

R

En la lista de ayuda de R se han anunciado recientemente dos páginas más con recursos para aprender R. Específicamente, se trata de páginas que contienen webminars. Aunque también tratan otros asuntos de manera menos peliculera.

Son éste y éste otro.

Espero resulten de provecho.

Una fabulilla (sobre PRIM) con múltiples moralejas

–Érase una vez un banco…
–¿Me cuenta Vd. un cuento?
–Mismamente, señora.
–¿Quiérese, pues, decir que cuanto Vd. relate es pura ficción, no pareciéndose ni las personas (físicas o jurídicas) ni los lances de su aún inaudita historia a personas (físicas o jurídicas, respectivamente) y lances reales, casualidades éstas que pudieran derivar, según la naturaleza de su exposición, en responsabilidades legales, políticas o de otra imprevisible índole y gravedad?
–Considere para la totalidad de los efectos mi respuesta afirmativa a su más que retórica pregunta, un, como gusta decir a los eruditos en la materia, solemnísimo disclaimer.
–Prosiga entonces, que lo escucho con asombrado interés.
–Con su venia, señora. Érase pues un banco…
–¿Banco, caja de ahorros o sucursal de una entidad de crédito foránea?
–No entre en distingos, señora, que me echa a perder el disclaimer. Digamos que banco y sigamos adelante.
–Ea pues… y disculpe.
–Tal banco (aunque, para el caso, bien pudiera haber sido una caja de ahorros o, como bien puntualizaba, la sucursal de una entidad de crédito extranjera) tenía clientes que usaban tarjetas de crédito y débito para sus habituales fines. Cada que la usaban para comprar en un comercio o similar, la tal entidad se quedaba un cacho. Pero cuando sacaban con ella dinero de un cajero, la entidad debía abonar un pico.
–¿Y no cobraban las tan habituales comisiones?
–No, dado que sus fines eran benéficos para con sus depositantes.
–Permítame, si no le importa, anotar en mi PDA (o papel de apuntar) esto que me participa como ejemplo sin parangón de oxímoron.
–Tómese su tiempo y guárdelo en el sostén, que ahí quedará calentito, al socaire de las inclemencias del invierno mesetario y no se le traspapelará.
–Mullidamente archivado queda. Prosiga.
–Pues la tal benéfica institución financiera (me complazco, como ve, en reiterar la tan atinadamente identificada figura literaria) no sólo quería ganarse el cielo al que aspiran, cuando fenecen, las personas jurídicas sino que, además, no siendo tonta, quería retrasar el tránsito hasta el ulterioriorísimo de los anaqueles.
–Para lo que, sospecho, hay que facturar pasta gansa.
–No se le escapa una, señora. Efectivamente, a facturar y no ser facturada aspiraba.
–Como las no tan benéficas, ¿verdad?
–Como tales, mas con una no pequeña salvedad. En lugar de azuzar (incentivar, dicen ahora los pedagogos de nueva generación) a sus clientes mediante la introducción de siempre jugosas comisiones para que desdeñasen los cajeros, quisieron proceder de otra manera.
–Me intriga Vd. Soy toda orejas. ¿Qué novedoso plan urdieron?
–Pues plantearon el cultivar de alguna manera esas inercias a las que tan dados somos los homínidos superiores cuando menos gala hacemos de nuestro manido epíteto de racionales. No sé si me explico o si, por lo contrario, he dejado los conceptos como colgando y revoloteando en el sutil aire.
–Muy bien no se explica, pero le adivino la intención: zanahoria y no palo. ¿Es así?
–Equilicuá.
–Y eso, ¿cómo se hace?
–Hay maneras.
–¿Cuáles?
–Ahí llegaremos. Lo relevante del punto es que no las conocían.
–¿Entonces?
–Llamaron por teléfono.
–Ay, Dios mío, esto se acelera: abandonamos el planteamiento, nos adentramos precipitadamente en el nudo y preveo un galopante desenlace no apto para cardíacos y epilépticos (tales como mi difunto).
–Tranquilícese, señora, que no le va en ello el pan y hágase cargo que me escucha por falta de otro más simpático entretenimiento.
–¿A quién llamaron? ¡Dígame sin asomo de demora!
–A unos señores que entraron en el mundo de la consultoría como el uno y el dos en el país de los ceros.
–¿Para medrar y hacer dinero?
–Bien conoce Vd. el fabulario español.
–Aquí donde me ve, cursé bachillerato con aplicación y provecho.
–Eso la honra: quedan ya pocas como Vd.
–Y, dígame, ¿se parecían más al uno o al dos?
–En su estilo y, salvando las distancias, eran pura raíz de cuatro.
–Me hago cargo. ¿Y qué hicieron?
–No se lo puedo contar.
–¿Me va a dejar así, toda ganosa?
–Si me deja sobarle la PDA, puede.
–¿En la Renfe y cabe impúberes? No hay trato.
–¿Ve?
–¿Entonces?
–Le hablaré de PRIM.
–¿El de Reus?
–No, ése es Prim. Fíjese que yo he usado mayúsculas por doquier.
–Ya decía yo. Ya nadie se acuerda del general.
–Es que metió a los borbones en el tren de Irún.
–¡Falta aún hacen gentes de su temple y calibre!
–¿Sabe, ya que lo menciona, que tiene calle en el DF?
–¿Donde las putillas?
–¿Putillas? Verdaderos putones verbeneros. Pero, eso sí, aseadas: se asperjan el chumino con ladillol. Y algo de inglés hablan.
–Es de ley, teniendo la embajada de los Estados Unidos de Norteamérica a tiro de piedra.
–¿Conoce Vd.? Me sorprende.
–¡Mundo tuve! Atropellaron tanto gringo rijoso cruzando Reforma que tuvieron que poner un semáforo.
–Nos aleja tanto circunloquio del meollo de nuestra conversa. Déjeme hablarle de PRIM con mayúsculas por doquier, que del otro ya se ocuparon a trabucazos y no hay remedio.
–Siga pues. ¿Quién es ese otro PRIM?
–No es un quién sino un cómo. PRIM quiere decir Patient Rule Induction Method
–Madre mía, ¡en inglés y !
–Es que nació a medio camino de Stanford, que fue México y ahora no, y Australia. Y algún nombre había que ponerle.
–¿Y cuál es su naturaleza o condición?
–Pues verá: se trata de un algoritmo (palabra de origen árabe, para que luego digan y maldigan) de minería de datos que permite encontrar zonas del espacio muestral donde una variable objetivo tiene un comportamiento singular y sobresaliente respecto a la media.
–Su cuento está cada vez menos claro y tendrá que dignarse a ofrecerme un ejemplo meridiano.
–Para eso comencé mi historia hablándole de bancos y tarjetas. Digamos que tal banco tiene x clientes y asociadas a cada uno de ellos, tropecientasmil variables (edad, ingresos anuales, dirección, cuotas satisfechas a la Real Asociación Colombófila de la Alpujarra, etc.). Por otro lado, una variable que mide en qué grado usa, por decir algo, su tarjeta de crédito…
–Lo sigo con más interés que aprovechamiento y más perplejidad que ninguna de las anteriores…
–Pues verá, mete todas esas variables a un ordenador, así, tal cual, sin mayores contemplaciones, pulsa el pley , se toma unas cañas, regresa… ¿y qué se encuentra?
–¡Ay, qué emoción…! ¿Qué? Dígamelo, que me reconcome la intriga…
–Pues se encuentra unos hiperrrectangulillos.
–¡Nunca lo hubiese imaginado! ¿De qué pasta y hechura son los tales?
–No tienen pasta ni hechura: los hiperrectangulillos son, hablando de manera más vecina al común entender, grupos de clientes que, por una parte, son similares respecto a ciertas variables descriptivas y, por la otra, tienen un comportamiento homogéneo en cuanto a la medida objetivo, siendo ésta, a su vez, muy distinta de la media.
–Sigo sin verlo claro.
–A ver, imagine que la tal variable objetivo es el ratio o cociente entre el dinero que sacan los clientes de los cajeros y la suma de sus compras con tarjeta…
–Eh…
–Es decir, pintamos una rayica (que significa dividir), ponemos arriba la plata del cajero y abajo lo que paga con la tarjetica. Y nos fijamos en si pesa más lo de arriba que lo de abajo.
–Claro, ahora me apercibo: lo de arriba son liabilitis y lo de abajo, asets
–¡Me sorprende Vd.! Gasta un spanglish tan cacofónico como impreciso. ¡Y sin saber de lo que habla, como si fuese toda una consultora yunior con ambiciones!
Desespabilada que es una. Y sin hacer la mili, ¡fíjese!
–No es enteramente así, pero como si lo fuese. En resumen, si el cocientico es alto, el cliente es un pesado que le hace agujeros al banco (o caja de ahorros…). Si es bajo, lo contrario; y al cliente habría que darle besos en la frente.
–Cargo me hago.
–Entonces, un hiperrectangulillo contiene, pongamos por caso, a clientes de lo que otrora fue el Reino de Aragón, que ganan menos de 100.000 pesetillas al mes, que viven en casa alquilada y no tienen churrumbeles. Y resulta que éstos son, de entre los pesados, los que más.
–¡Menuda cuadrilla! Seguro que Botín los ponía tiesos a comisiones.
–Puf, ése (note que acentúo según la gramática vieja) les mandaba los sicilianos a casa…
–Bueno, ¿y qué hace un banco (o caja…) benéfico con tal hiperrectangulillo?
–Vaya por orden y no queme etapas en falso, que el diablo se nutre de ambigüedades: los consultores dan al pley , sacan los rectangulillos, los imprimen en cuartillas, clavan éstas con chinchetas en una corchera y luego, en peticomité , junto con los resabidillos del banco acuerdan qué hacer con los sujetos que contiene cada uno.
–¡A los mañicos de su ejemplo les podían rifar unos botes de malocotón en almíbar si usaban menos el cajero!
–Ahí tiene Vd. toda la razón del mundo y me quita las palabras de la boca y las ideas de las intrincadas convoluciones frontales de mi cerebro. Pero bueno, tampoco me enfado con Vd. porque con lo que iba a ilustrarla es todo viejo y reconocido de casi todos: conoce, primero, a tus clientes (y ayúdate de PRIM para tal fin) y, después, mira a ver qué haces con ellos (la rifa de los que Vd. llama malocotones es una estupenda idea propia de un avezado mercadólogo).
–¿No me diga que en la tal entindad bancaria (o…) no procedieron de tal guisa?
–Podría decirle si no fuese porque Cide Hamete Benengelí, de cuyos desorganizados papeles aprendí el cuentecillo que le relato, llegado al punto que contestaba su pregunta, derramó café sobre el legajo y se corrió la tinta. Es como si yo le contestase con la boca llena de polvorones: oiría ruido, se le llenaría el escote de migas, pero no se enteraría de nada. Además, gana Vd. con eso que, de confesarle la verdad, luego habría de matarla para que no divulgase el secreto.
–Mejor, pues, permanecer sumida en la contumaz ignorancia. Pero, dígame, eso de PRIM, siendo cosa tan fina, ¿cómo es que no se conoce más y mejor y se aplica con más diligencia y oportunidad? ¿Es acaso una de esas teorías…?
–¿Teoría? Es teoría y praxis, señora. Una praxis la mar de práctica. Tanto que puede descargársela a su computadora sin aflojar un ochavo.
–Y usarse, ¿se usa?
–¡Y tanto! Allá en París…
–¡Tierra de masones! No me vale ejemplo alguno allende los Pirineos. ¡En París! Lo que no es tradición…
–Pues sí, señora, sí, en París hay una empresa que gana dinero a espuertas con una variante de PRIM.
–Y Vd. que parece tan gabachuzo, ¿por qué no se va con viento fresco a trabajar con ellos?
–No me tiente, señora, no me tiente ni me salga con carpetovenicidades extemporáneas, que me lío la manta a la cabeza… ¡No estoy de humor!
–Tampoco se me ponga así… Disculpe, pero es que cuando me acuerdo de lo que les hicieron a Daoiz y Velarde me hierve la sangre… ¡Y eso que han pasado ya 201 años y pico de aquello!
–Dispensada… y, ¿por dónde íbamos?
–No me acuerdo, pero déjeme que le haga una pregunta: si la cosa es tan buena, ¿por qué no se la conoce más?
–Por lo de siempre: la idea está encriptada.
–¿Encriptada?
–Sí, en párrafos llenos de texto y en inglés.
–¿Sólo se encuentra en ese enlace?
–¡Qué va! De hecho, la idea aparece explicada de manera sustancialmente más accesible en la biblia de la minería de datos. Pero igualmente encriptada por el mismo y arcano procedimiento.
–¿Llama Vd. encriptar a escribir de manera ordenada y lógica?
–¿Con letras? Sí. La gente ya ha perdido la capacidad de leer texto y le abruma el negro sobre el blanco. Si quiere que algo no se se sepa, escríbalo con buena sintaxis, cuidada ortografía y lógicamente riguroso discurso.
–Vd., tan avanzado en unas cosas, parece un carca en otras.
–¡Qué va! El lenguaje escrito es cada día más ideográfico. Volvemos a los alfabetos egipcio y chino (pero con colorines). ¿No se da cuenta?
–No me había apercibido, pero si Vd. lo cree así… ¡será!
–Y eso que el nuestro fue ideográfico en sus orígenes, ¿sabía? El progreso mal entendido cela corrientes regresivas…
–¡Ni que siguiese Vd. a Donoso Cortés en tuiter!
–¿Sabía Vd. que la letra A representaba una vaca?
–No tenía conocimiento.
–¿Se lo demuestro?
–Venga, ¿cómo?
–Haga el pino y yo profiero la A mayúscula.
–¿A la de tres?
–A la de tres: uno…, dos…, ¡tres! AAAAAAAAA
–Ya.
–¿La ha oído boca abajo?
–Talmente. Igualica que una res. ¡Alberga Vd. saberes güikipédicos!
–Y Vd. tiene las enaguas hechas un zarrio.
–Es la crisis. Y Vd., poco cababallero, por mirar.
–Pues sepa Vd. que cada civilización giró la susodicha letra noventa grados hasta que la dejó boca abajo, como colgada de una viga.
–Esta digresión erudita nos aleja del meollo de su fabulita, ¿sabe?
–Convengo, pero en su esencia, moralejas y todo, la doy por finiquitada. ¿Cree que le aportará provecho?
–No lo descarto, aunque su natural campo de aplicación resulta, cuando más, tangencial a mis domésticos y consuetudinarios quehaceres.
–Ya siento haberle dado la chapa, pero, o participaba mi fabulilla o me ésta me reconcomía por los adentros.
–No se me ponga así. ¿Quiere medio clines?
–No es para tanto; además, he de apearme: veo acercarse un revisor.
–¿Viaja sin billete?
–Es norma de la empresa: por recortar gastos, no paga el kilometraje.
–Entiendo.
–Tenga Vd. buen día.
–Igualmente, fue un placer.

Probando R sobre el EC2 de Amazon

Hacía tiempo que quería probarlo. Menos en las grutas pobladas de seres del siglo anterior, todo el mundo habla del EC2.

Entre otras muchas cosas que iré explorando más adelante, el EC2 de Amazon te alquila un servidor por horas. También te ofrece espacio de disco a unos precios de risa y otras cosas más que bien podrían mandar al paro a departamentos enteros de IT. Pero hoy, de momento, sólo me interesaba el servidor, alquilar un servidor por un rato.

Migrando de SAS a R

Estoy ayudando a unos colegas a migrar de SAS a R. Están lejos, en un país de vino y carne al que alguna vez he de ir. Hemos quedado en que si alguna vez borran el último de sus SAS del disco duro, los ayudo gratis. Si no, cuando vaya, me tendrán que pagar hasta el último peso en lifaras y libaciones.

Tienen procesos que ejecutaban en SAS. Algunos los iban reescribiendo en R. Se sienten más cómodos en SAS pero cuando éste se queda corto, recurren a R. Es una aproximación «todo o nada».

Minería de datos con R: un pequeño paseo

Éste es mi primer monográfico. Como soy más perezoso que Raúl y peor estudiante que nadie, en lugar de hacerlo yo, lo copio. Y en lugar de desarrollarlo en su totalidad, dejo más de la mitad como deberes.

Y es que he encontrado un pequeño programa en R que repasa una serie de técnicas clásicas de minería de datos a modo de paseo. Está en inglés y tal vez alguien (es la tarea que propongo a algún voluntarioso lector del blog) se anime a traducirlo. De hacerlo, me comprometo a darle alojamiento y publicidad respetando las debidas atribuciones.

Dos vecinos muy próximos de la «blogosfera»

Hoy voy a hablar de la competencia, siempre muy deportiva, de este blog. Espero que Raúl me excuse y entienda que no quiero alimentar contadores de visitas ajenos a expensas de los propios sino establecer relaciones de buena vecindad con otros proyectos interesantes y complementarios.

El primero, El blog de los erreros , del que tuve noticia hablando con su autor mientras comíamos en la cantina de la Universidad de Murcia en el marco de las Jornadas de R (las primeras de una serie perpetua, quede dicho). Está orientado al mundo de R y contiene trucos, noticias y aplicaciones estadísticas (desarrolladas y resueltas, claro está, con R).

Noticias del congreso de usuarios de R

Hoy he regresado de las primeras jornadas de usuarios de R. Han sido dos días largos y densos, pero también productivos. Tenemos que estar muy agradecidos a José Antonio Palazón, de la Universidad de Murcia y coordinador del comité organizador, y a Manuel Muñoz Márquez, coordinador del comité científico y responsable del proyecto R UCA, por su extraordinario trabajo.

Creo que para muchos de los participantes, uno de los principales beneficios que extrajimos de las jornadas fue el de poder establecer contacto real, físico, con gente y grupos a los que ya conocíamos directa o indirectamente. Allá me encontré con compañeros con los que había mantenido largos intercambios de correo y chat sobre los temas más diversos; algunos que me agradecieron alguna respuesta que les di años ha en la lista de correo de R-help (antes de que existiese R-help-es, incluso) e, incluso, fieles seguidores de este blog (del que sólo supieron contarme maravillas antes, incluso, de revelarles mi participación en él y que la cordialidad los cuasiobligase a ello). Incluso surgieron muchas vías de colaboración entre proyectos que habían surgido de manera espontánea e independiente y que, de repente, se vio que se enriquecían mutuamente.

Intro RCommander: 1. Qué es RCommander

RCommander es un interfaz gráfico de usuario de R (siglas GUI en inglés) y nos permite acceder a múltiples capacidades gráficas y estadísticas de R a través de menús, sin olvidarnos de sus posibilidades de acceso a distintos entornos de datos. Yo lo defino como un «AutoR» pero es otro paquete de R. Por ello es gratuito y muy fácil de instalar. Tan fácil como instalar R y buscar en CRAN RComdr. Descargamos el paquete, lo guardamos en library y ya disponemos de la más potente herramienta para la estadística y no hemos tenido que utilizar en ningún momento el número de nuestra VISA. RCommander requiere de múltiples paquetes de R por ello cuando en R ejecutemos library(Rcmdr) o carguemos el paquete mediante el menú podemos tener un mensaje como este:

Lista de los lengajes de programación mas populares

Hacía mucho tiempo que no me daba una vuelta por TIOBE para conocer los lenguajes de programación más populares. Este estudio se realiza mensualmente y la verdad es que he encontrado pocos cambios con respecto a 2008. De los lenguajes que se tratan en este blog tenemos en el puesto 15 a SAS y en el puesto 30 a R. Vemos pocas cosas de Visual Basic y hemos rozado el PL/SQL. Debería de empezar a trabajar con MATLAB y Python.

I Jornadas de usuarios de R en España

R

Me es grato anunciar que van a realizarse las primeras jornadas de usuarios de R en España. Van a tener lugar los días 26 y 27 de noviembre en la Universidad de Murcia.

Como uno de los organizadores de las mismas, me gustaría invitar a usuarios de R de todos los ámbitos (academia, banca, centros de investigación, hospitales, etc.) a compartir experiencias, establecer vínculos con otros grupos, conocer a otros usuarios, asistir a charlas y debatir finalmente la creación de una organización de usuarios de R.

Sobre la historia de CART y rpart

Hace unos días conversábamos Raúl y yo sobre árboles de clasificación. En particular, hablábamos de CART, el algoritmo propietario de Salford Systems. Me intrigó saber cuál sería la diferencia entre dicho algoritmo y la alternativa existente en R, rpart.

El autor de dicho paquete, Terry Therneau, tuvo la gentileza de ofrecer una introducción histórica al particular de la que ofrezco algunos fragmentos que traduzco yo mismo a continuación:

[…]

Tanto el programa comercial CART como la función rpart() están basados en el libro Classification and Regression Trees. Como lector y revisor de alguno de sus primeros borradores, llegué a dominar la materia. CART comenzó como un enorme programa en Fortran que escribió Jerry Friedman y que sirvió para contrastar las ideas contenidas en el libro. Tuve el código durante un tiempo y realicé algunos cambios, pero me resultó demasiado frustrante el trabajar con él. Fortran no es el lenguaje adecuado para un algoritmo recursivo […]. Salford Systems adquirió los derechos de dicho código e ignoro si alguna de las líneas origininales permanecen en él todavía. Mantuve muchas conversaciones con su principal programador (hace 15 o 20 años) sobre procedimientos para hacerlo más eficiente, esencialmente un problema interesante de indexación óptima.