Comparador de autos con lenguaje “R”

 

Flickr: CC GaryCycles3

Hoy les compartimos un ejercicio de uso de herramientas de data mining para comparar productos. Sirve tanto como servicio de información periodística como para decisiones personales.

Un pequeño desafío para nuestros lectores “hackers”. En este caso, con lenguaje de programación “R”.

Por Ernesto Surijon*

Existen varios aspectos que han complejizado nuestra toma de decisiones. Es común encontrarnos ante la disyuntiva de la compra de un auto o un teléfono celular, por mencionar algunas cuestiones que regularmente nos obligan a tomar una elección.  La diversidad de modelos y características que nos ofrece el mercado  nos obligan a efectuar un análisis de los productos muy detallados para concluir tomando una decisión, que muchas veces, con el correr del tiempo, verificamos que no fue satisfactoria. Cuando las variables a tener en cuenta son demasiadas, recurrimos a Planillas de cálculo o sitios de internet especializados para poder hacerlo. Disponemos también de algunas otras herramientas orientadas a procesos de datamining y toma de decisiones.

El lenguaje R, utilizado en análisis de data mining nos brinda alternativas interesantes para efectuar el análisis. Asimismo dentro de la construcción del modelo, nos ayuda a entender y aprender del análisis efectuado.

 

Comparador de Autos

Supongamos que estamos analizando la compra o características de autos deportivos. Veamos que nos propone R.

Para nuestro ejemplo utilizaremos datos que el ambiente tiene pre-cargados para efectuar análisis. Cargamos el frame de datos (dataset) mtcars con información y características de autos. La información proporcionada es la siguiente:

 

La información que disponemos entre otra es mpg = consumo combustible, cyl = cantidad de cilindros, am = automático o manual, etc.

Supongamos que nuestra intención es contar con un auto deportivo y nos llama la atención el Camaro, el Pontiac y consideramos también al Honda Civic.

Analizamos primero cuales autos son más parecidos en cuanto a sus características.   Utilizamos la variable distancia (variable estadística – que se utiliza para determinar la similitud entre dos variables aleatorias)  que nos permite comparar.

Calculamos la distancia entre los modelos  Civic y  Camaro.

Tomamos los datos del Honda Civic en la variable “x”, los del Camaro en la variable “y”. Luego calculamos dist (la distancia).

# Tomamos los datos del Honda en la variable x , y los del Camaro en la variable Y > x <- mtcars[“Honda Civic”,] > y <- mtcars[“Camaro Z28”,]

# Calculamos la distancia > dist(rbind(x, y)) Honda Civic Camaro Z28      335.89

Luego tomamos los datos del Pontiac y los comparamos con los del Camaro > z <- mtcars[“Pontiac Firebird”,] > dist(rbind(y, z)) Camaro Z28 Pontiac Firebird     86.267

# Revisamos las distancias Distancia Honda – Camaro = 335.89 Distancia Camaro – Pontiac = 86.267 Luego 86.267 < 335.89 è el Pontiac es más similar al Camaro y tiene más diferencias con el Civic.

Podríamos comparar luego las característícas del Honda y el Camaro, evaluando cual es mejor en cada aspecto.   Para ésto podemos mediante la función rbind x-y, efectuar una resta de los valores

 

 

Los valores positivos nos indican donde es mejor y los negativos donde es peor.   Analizando vemos que el Honda cuenta con mejor consumo (+17.1), tiene 4 cilindros menos (-4) ( negativo), cuenta con 193 hp menos , etc.

Veamos ahora como comparamos más de dos elementos, identificando cuales son más similares .

 

Fácilmente detectamos que los más similares son el Camaro y el Pontiac , cuya distancia es menor   Agregamos un modelo más el Volvo 142E

 

 

Comparamos …

 

Vemos ahora que encontramos dos modelos más parecidos aún , son el Volvo y el Honda Civic.

Una vez efectuado el anterior análisis, podemos comenzar a definir nuestra intención de elección, aquí se suman algunos criterios subjetivos que forman parte de nuestro gusto o preferencia personal   Retomamos el comparativo entre el Honda y el Camaro.

 

Aquí revisamos que aspecto vamos a hacer pesar más en nuestra elección, claramente si priorizamos el consumo, el Civic tiene un valor de 17.1 respecto del  Camaro, lo que indicaría que podemos recorrer 17.1 millas más con la misma cantidad de combustible.

Si buscamos un motor poderoso, deberíamos inclinarnos por el Camaro, dado que el Civic, es visiblemente menos poderoso al tener -193 hp , (cuenta con menos caballos de potencia).

En virtud de las variables que pondermos terminaremos concluyendo nuestra compra.

Antes de concluir, para comprender algo más las variables estudiadas y tener una idea de magnitud (cantidad de variables), mostramos una matriz con la correlación existente en el set de datos analizados (modelos de autos).

El gráfico matricial circular con las correlaciones entre las variables tratadas, resulta: con fondo gris la variables que tienen correlación positiva, el área del círculo denota el valor absoluto de la correlación, presentando los azules con mayor correlación y los rojos con una correlación entre las variables menor.

 

 

En el gráfico, fácilmente podemos descubrir la relación existente entre los hp (caballos) y los cyl (cilindros), denotan una correlación la cantidad de cyl tiene una relación con los hp de potencia.

A mayor cantidad de cyl, mayor potencia (hp).

Este tipo de situaciones podemos trasladarlas al análisis de otros insumos como podría ser tabletas, celulares, tv , etc, agregando más valor cuanto más similares y más difícil sea detectar los aspectos ventajosos.

 

* Ernesto Surijom Frimis (@Esurijon) es licenciado en Sistemas (CAECE) y realizó Posgrados en Dirección de Sistemas (UB), Marketing (UADE) y Finanzas (UADE). Cuenta con más de 20 años experiencia en la industria de software (Bancos y Telecomunicaciones).

 

 

+ Info

 

http://cran.r-project.org/ (sitio oficial)

http://knuth.uca.es/R/doku.php?id=r_iki

http://www.rdatamining.com/

http://www.r-bloggers.com/

http://www.statmethods.net/

http://es.wikipedia.org/wiki/R_(lenguaje_de_programacion)

http://analisisydecision.es/

http://www.r-tutor.com

 

r- users group

http://rwiki.sciviews.org/doku.php?id=rugs:r_user_group

 

Comunidad r-hispano

http://www.r-es.org/Comunidad