Selección de públicos objetivos: asignación de sexos a partir del nombre

Recientemente recibí un correo electrónico de una farmacia con un asunto un tanto peculiar: «II JORNADA SUELO PÉLVICO Y USO DE COPAS ÍNTIMAS»

Sexo_INE_0

El motivo del correo tenía un claro destinatario: mujeres.

Entonces ¿debía yo recibirlo?

Desde luego varias respuestas son posibles:

  1. Para qué hacer una criba, con lo costoso que es, se lo mandamos a todo el mundo
  2. ¿Por qué no a los hombres?, que se lo digan a sus mujeres o hermanas, o primas, o vecinas…
  3. No sabría diferenciar entre hombres y mujeres.

Todas ellas parecen plausibles y el hecho es que el resultado: enviarlo a todo el mundo, es el resultado que suele darse más a menudo.

Que una farmacia tenga los correos electrónicos de sus clientes habituales y todo aquel que quiera facilitárselo, no es raro.

De hecho parece sencillo imaginarnos al farmacéutico/a rellenando un formulario con los campos:

– Nombre

– Correo electrónico.

Parece sencillo haber añadido un campo más que fuera sexo, ya que tienes delante al cliente.

Con todo y con ello, si por descuido o por no querer cabrear al farmacéutico o cliente no lo incluyeron, hay un método relativamente sencillo de asignar los sexos: vía nombre.

Creemos una regla de asignación de sexos.

Se nos pueden dar 2 casos:

– Tengo el campo sexo relleno en algunos casos.

– No tengo el campo sexo.

En el caso de que te falte rellenar el sexo de algunos registros, tomaremos como fuente nuestra propia base de datos.

Crearemos un listado con los nombres y sexo:

Nombre              Sexo      Número de clientes

Lucía                     Mujer                 145

Estela                   Mujer                 156

Valerio                 Hombre           194

Daniel                  Hombre            186

De tal modo, que rellenaremos los registros vacíos a partir de este repositorio.

¿Qué nos puede pasar? Los nombres compuestos.

Si tratamos los clientes, por ejemplo en Excel y tenemos en un sólo campo el nombre y apellidos:

Vicente García López

Para quedarnos con el nombre solo, tendríamos que partir el campo con la función «datos-texto en columnas».

En este caso, nos quedaríamos fácilmente con «Vicente»

Pero si estamos en el caso de:

María del Carmen García Fernández

María José López López

José María Granados Díaz

Con quedarnos con el nombre hasta el espacio nos valdría. Sería un error considerar también el segundo nombre, ya que si hiciéramos esto, tendríamos Marías, como hombre y mujer.

Otra posible situación que se nos puede dar es que en bases de datos grandes haya errores y nos encontremos:

Nombre              Sexo      Número de clientes

Lucía                      Mujer                   145

María                    Mujer                   156

María                     Hombre               4

José                         Hombre              186

José                         Mujer                      6

Para evitar problemas en los cruces, tendríamos que quedarnos con el nombre con más repeticiones.

Podría dársenos el caso de que no tuviéramos el campo «sexo» informado.

Una manera muy sencilla de rellenar el mayor número posible de «sexos» vía nombre, es cruzar nuestros nombres con la base de datos de nombres del INE, que viene diferenciado para hombres y mujeres:

http://www.ine.es/tnombres/inicio.do

Sexo_INE_1

Sexo_INE

Y hacer el mismo proceso que he descrito anteriormente.

Así, al menos, no tendremos la excusa de no tener el sexo del cliente.

 

Espero que haya sido de tu agrado: compártelo y agradecido por tus comentarios.
Te invito a estar en contacto:
Raúl Hernández
@formacionenmk
es.linkedin.com/in/raulhernandezluque

Hacer Geomarketing lowcost #4 Google Fusion Tables

Tenemos a nuestro alcance muchas herramientas de acceso libre para hacer Geomarketing. Hoy revisamos Google Fusion Tables y comprobamos:

  • Data cleansing: como siempre, preparar los datos es la labor más costosa

  • Visualización interesante: formato condicional del señalizador (“pushpin”) y polígonos en función de condiciones numéricas y zonas de influencia (buffer) .Aunque a mejorar.

  • Heatmaps”: mapas de calor con posibilidad de sobreponderar.

 

En anteriores entregas:

Hacer Geomarketing lowcost #1 Recursos públicos : revisamos el «Nomecalles» de la Comunidad de Madrid y sus variables sociodemográficas.

Hacer Geomarketing lowcost #2 Mapping Sheets: aplicamos la app de Google a un listado de excel.

Hacer Geomarketing lowcost #3 Geocodificacion con Excel: partíamos de un listado de clientes con sus direcciones y queríamos geocodificarlas para mostrarlas en Google Maps importando el fichero.

 

Hoy vengo con una opción más: «Google Fusion Tables» y un caso práctico incluyendo:

  • Data cleansing
  • Cambio de coordenadas de geográficas a decimales legibles por Google.

Empezaremos por lo sencillo, instalar la herramienta a partir de Google Drive: nuevo-más-conectar más herramientas-Tablas dinámicas (experimental)-conectar

1

Una vez conectado, volvemos a nuevo-más-tablas dinámicas de Google

2

En el menú que nos sale, le indicamos importar tabla y en examinar, buscaré el fichero resultante del anterior post (Hacer Geomarketing lowcost #3 Geocodificacion con Excel )

El nombre del archivo nos quedará a la derecha del botón examinar y continuaremos pulsando “next” (1 en el siguiente cuadro).

En el siguiente menú visualizaremos los datos, nos preguntarán en qué fila de la hoja de cálculo está el encabezado de la tabla.

Aquí viene el primer “truco”: importa la primera hoja del excel

3

 

“Next”, “Next” (en el siguiente menú no hay opciones interesantes, salvo un tic para permitir o no que otra persona disponga de esos datos).

Finalmente veremos el resultado del Google Fusion Tables:

Visualizamos el contenido de la tabla, con las direcciones y las coordenadas (1) y en la pestaña “Map of Coordenadas” vemos dibujados los mapas. Aparentemente parece más directo que la anterior opción. Pero aquí podemos hacer más cosas.

4

Voy a proponerme el tratamiento de una base de datos pública.

Encuentro uno interesante sobre las estaciones de control del aire del Ayuntamiento de Madrid. Me resulta útil, porque en vez de estaciones, pueden ser oficinas y en el fichero hay un campo cualitativo de la estación, que en negocios, podría ser niveles de cumplimiento.

El fichero procede de: http://datos.madrid.es/egob/catalogo/212629-0-estaciones-control-aire.xls

Y la pinta que tiene es:

5

La localización está en formato grados minutos y segundos y Google Maps reconoce las coordenadas en formato decimal, debemos hacer la conversión.

Vamos a hacer la conversión en Excel:

Vamos a descomponer las coordenadas de grados minutos y segundos a 3 columnas distintas. Echamos un ojo a los datos y vemos que más o menos guardan un patrón común.

OJO: que las coordenadas geográficas van longitud y latitud y Google al revés, por lo que calculo en las columnas H-J latitud y en las K-M longitud.

6

Ya tenemos los grados, minutos y segundos cada uno en una columna y ahora pasamos a formato decimal:

7

8

Por eso concatenar la latitud con la longitud, pero antes sustituyendo la coma decimal por el punto.

No me funcionó cambiar en opciones de excel cambiar el decimal coma por punto.

Como ya tenemos las coordenadas en el formato adecuado continuamos.

Ya dije antes que la hoja que importa es la primera, por lo que hay que preparar esa hoja con la información indispensable y tomar ciertas precauciones:

  • Que el Excel tenga formato xlsx
  • Que en la primera fila estén los encabezados
  • Que los encabezados no tengan acentos, caracteres raros o espacios: usa el “_”

Aún así te pueden pasar cosas como esta, que siendo estaciones de medición del municipio de Madrid tengas puntos por todo el mundo:

10

Como vemos, está haciendo un “Map of segundos” luego está dibujando las coordenadas como si estuvieran en el campo “segundos” y está en coordenadas_fin. Sin embargo, no te da la posibilidad de seleccionarlo.

Preparo la primera hoja de la manera más limpia, con la dirección coordenadas y el tipo de estación y repito la exportación.

Cuando el programa detecta que hay coordenadas o campos numéricos se pone a calcular el mapa. En ese proceso, si está cogiendo mal las coordenadas, podemos modificarlo indicando la correcta “location column”

11

Una vez pintados los puntos, podemos cambiar el formato y dar algunos retoques interesantes en Configure map-Feature map –change feature styles

Ahí puedes cambiar el señalizador por un pushpin de distinto tamaño y color. Y lo más interesante: formatos condicionales en función de valores: points-market icon-buckets, que por defento viene así:

12

Lo interesante es tener un campo que nos de la medida cualitativa de nuestros puntos de interés. En este caso, tenemos el tipo_estación,

UT          Urbana de tráfico -> color amarillo

UF          Urbana de fondo -> color azul

S             Suburbana -> color verde

 

En cualquier otra circunstancia puede haber un campo de cualificación de tiendas, o de semáforos de oportunidades de venta o cualquier caso que nos cualifique nuestros puntos geográficos.

 

Después de hacer varias pruebas, estos formatos condicionales se tienen que hacer con variables numéricas, por lo que previamente, antes de importar hay que hacer un cambio de escala:

1             Urbana de tráfico -> color amarillo

2             Urbana de fondo -> color azul

3             Suburbana -> color verde

Por defecto, el menú sale como en la situación (1), si pulsamos “use this range” cambia a los valores que contiene el campo y ya personalizamos “pushpin” y colores.

13

Esta función da un valor añadido en la visualización.

Aunque aún podemos tener algún dato raro:

14

Hay un punto extraño que está en Inglaterra, seleccionándolo vemos que no tiene coordenadas. Haremos un segundo repaso a la base de datos y veo que hay datos no coherentes (celdas amarillas):

15

La limpieza vendría por los datos de las celdas en amarillo, ya que contienen caracteres que no se convierten en coordenadas. Esto es debido a que las celdas a las que hacen referencia las fórmulas tienen una longitud de caracteres distinta a las anteriores y no reconoce bien la fórmula “extrae”.

Solo habría que retocar las posiciones donde empezar a extraer: por ejemplo en la celda E14 sólo debemos coger 4 caracteres a partir de la 9ª posición.

Si no queremos volver a repetir todo el proceso con quitar los casos raros valdría:

Filter-coordenadas_fin (nuestro campo de coordenadas sobre el que vamos a filtrar) –seleccionamos el valor sin datos – exclude selections y ya tenemos nuestro mapa caracterizado:

16

Otra de las funcionalidades importantes de Google Fusion Tables son los mapas de calor definiendo influencias.

En Configure map – heatmap:

17

Radius: es el tamaño del área (buffer) medido en pixeles, aunque no le he encontrado mucha utilidad salvo la visual, porque no he visto traducción a metros.

Opacity: es lo claro u oscuro que queremos ver el área de influencia

Weight: es si queremos darle peso por alguna variable, tipo volumen de ventas. En nuestro caso no tenemos nada, salvo el tipo_estación que toma valor 1,2,3 de forma discreta no porque el 3 tenga más intensidad que el 1, o le demos mayor importancia en el estudio

Aún así, podemos ver, que dándole peso con el tipo_estación, vemos más intensos los que tomaban valor 3, naranja los 2 y amarillo los 1. Pensando en variables de ventas u objetivos, veríamos aquellas oficinas que están mejor en cumplimiento.

18

Espero que haya sido de tu agrado: compártelo y agradecido por tus comentarios.
Te invito a visitarme más a menudo suscribiéndote

 

 

Hacer Geomarketing lowcost #3 Geocodificacion con Excel

Las herramientas GIS son útiles y a menudo caras, con licencias o por curva de aprendizaje. Aprenderemos a pintar una serie de coordenadas en el mapa a partir de un listado de direcciones. Muy útil para transportes, logística, buzoneos, marketing directo o visitas presenciales.

Partimos de la necesidad de geocodificar un listado de direcciones en Excel. Antes, como vimos en el post «Hacer Geomarketing lowcost. Software libre #2 Mapping Sheets» , hay que hacer un proceso de limpieza (data cleansing) previo.

Partimos de nuestro Excel:

1

 

Indagando en internet, encuentro un buen post del 2012 que habla de cómo crear complementos en Excel (extensiones xlam). En este mismo post encuentro la query para montar nuestro complemento.

Modificación al post de febrero de 2017:

Parece que el código que nos ofrecía «Police Analyst» no funciona. Tal y como comenta la entrada http://grindgis.com/software/microsoft-excel/geocoding-excel-and-bing hay una herramienta de excel que nos realiza la geocodificacion: http://excelgeocodingtool.com/

Mantengo el contenido del post anterior aunque le introduzco una sangría por si el código pudieramos mejorarlo. El contenido del post continúa más abajo, ya sin sangría.

Gracias a “Police Analyst”: http://policeanalyst.com/using-the-google-geocoding-api-in-excel/

Primero tenemos que habilitar el módulo de “programador” en Excel para pegar la query:

Archivo-opciones-personalizar cinta de opciones-darle al check de programador

2

Cerramos el Excel e iniciamos una nueva sesión. Comprobamos que tenemos la pestaña “programador” en el menú. En éste, damos al botón de visual basic:

3

Entonces tendremos 2 posibilidades: insertar-módulo

4

O puede ser que tengas en Excel más proyectos VBA, por lo que tendrías que irte a tu proyecto VBAProject (Libro1), que es el nuevo Excel que yo tengo abierto, botón derecho del ratón, insertar-módulo:

5

En el módulo, en la ventana en blanco de la derecha, pegamos el siguiente script:

Function GoogleGeocode(address As String) As String
  Dim strAddress As String
  Dim strQuery As String
  Dim strLatitude As String
  Dim strLongitude As String
  strAddress = URLEncode(address)
  ‘Assemble the query string
  strQuery = «http://maps.googleapis.com/maps/api/geocode/xml?»
  strQuery = strQuery & «address=» & strAddress
  strQuery = strQuery & «&sensor=false»
  ‘define XML and HTTP components
  Dim googleResult As New MSXML2.DOMDocument
  Dim googleService As New MSXML2.XMLHTTP
  Dim oNodes As MSXML2.IXMLDOMNodeList
  Dim oNode As MSXML2.IXMLDOMNode
  ‘create HTTP request to query URL – make sure to have
  ‘that last «False» there for synchronous operation
  googleService.Open «GET», strQuery, False
  googleService.send
  googleResult.LoadXML (googleService.responseText)
  Set oNodes = googleResult.getElementsByTagName(«geometry»)
  If oNodes.Length = 1 Then
    For Each oNode In oNodes
      strLatitude = oNode.ChildNodes(0).ChildNodes(0).Text
      strLongitude = oNode.ChildNodes(0).ChildNodes(1).Text
      GoogleGeocode = strLatitude & «,» & strLongitude
    Next oNode
  Else
    GoogleGeocode = «Not Found (try again, you may have done too many too fast)»
  End If
End Function
Public Function URLEncode(StringVal As String, Optional SpaceAsPlus As Boolean = False) As String
  Dim StringLen As Long: StringLen = Len(StringVal)
  If StringLen>0 Then
    ReDim result(StringLen) As String
    Dim i As Long, CharCode As Integer
    Dim Char As String, Space As String
    If SpaceAsPlus Then Space = «+» Else Space = «%20»
    For i = 1 To StringLen
      Char = Mid$(StringVal, i, 1)
      CharCode = Asc(Char)
      Select Case CharCode
      Case 97 To 122, 65 To 90, 48 To 57, 45, 46, 95, 126
        result(i) = Char
      Case 32
        result(i) = Space
      Case 0 To 15
        result(i) = «%0» & Hex(CharCode)
      Case Else
        result(i) = «%» & Hex(CharCode)
      End Select
    Next i
    URLEncode = Join(result, «»)
  End If
End Function

El código está hecho en una librería XML de  Microsoft, por lo que tendremos que habilitarlo: herramientas- referencias y en el menú darle al tic de Microsoft XML

6

Guardas, cierras el editor de visual y guardas el Excel formato xlam:

7

Habitualmente hay una carpeta en la ruta de Microsoft que es “complementos” y si lo guardas ahí, los tendrás todos ordenados. Yo he probado a guardarlo en otra ruta y también funciona.

Ahora tendremos que habilitar el complemento: archivo-opciones- complementos-administrar complementos de Excel-ir

8

Examinas donde has guardado el complemento y lo habilitas en el listado del la ventana de la izquierda.

9

Cierras Excel y vuelves a abrir una sesión nueva.

Te pones en la celda y escribes =get y compruebas que se han cargado las nuevas fórmulas de georreferenciación. Para que nos saque las coordenadas que son compatibles con Google Maps: =getcoordinates() y ya lo tenemos:

10

Lo comprobamos y ¡funciona!

11

Vayamos al siguiente paso: ¡PINTARLO!

Opto por pintarlo en Google Maps. Inicio sesión en Google y me voy al apartado de “mis mapas”:

12

Ahora tengo que añadir una capa donde importaré mi Excel con las direcciones geocodificadas: añadir capa- importar y arrastraremos a la ventana nuestro documento:

13

 

Nos pedirá cuál es el campo de las coordenadas, pero es que en mi Excel no tenía el nombre de las columnas: importante, pon nombre a las columnas y por si acaso, no pongas tildes a los nombres.

14

 

Volvemos a repetir  la importación, marcamos que nuestra columna de posición es “coordenadas” y de latitud/longitud, que es como las da Google:

15

Si lo hicieras al revés, poniendo longitud/latitud, te podrías encontrar este pequeño contratiempo: ¡AGUA!, nos ha dibujado nuestros puntos en el mar cerca de Kenia Si te pasara, ya sabes por qué es:

16

Si lo hacemos bien, el resultado será el esperado, ya sólo queda “tunear” el mapa: nombres a las capas, colores… como te guste:

17

Espero que haya sido de tu agrado: compártelo y agradecido por tus comentarios.
Te invito a visitarme más a menudo suscribiéndote

Hacer Geomarketing lowcost #2 Mapping Sheets

¿Consideras útil pintar en un mapa dónde están tus clientes? Planificar repartos, visitas comerciales o saber dónde están tus ingresos. A menudo nos echamos para atrás por desconocimiento o porque creemos que es muy difícil o caro. Google Docs y Mapping Sheets son sofware libre que nos facilitan la labor. Los pruebo con una base de datos de Colombia y este es el resultado: útil, sencillo, pero lo más importante es preparar la base de datos («datacleansing») para que salga correctamente.

 

Ante la necesidad de saber dónde están mis clientes: por motivos estratégicos u operativos, si eres una empresa de distribución o has de planificar visitas comerciales, voy a revisar con software libre que hay a nuestra disposición, cómo podría responder a esta necesidad.

A partir de una base de datos en Excel, en concreto de una base de datos de “leads” de venta de Colombia, extraídos de una web que vende información para realizar acciones de marketing directo: http://bases-de-datos-emails-empresas.com/muestras/MUESTRA-DE-EMPRESAS-DE-COLOMBIA.xls

Esta base de datos tiene los siguientes campos:

ms1

Esta base de datos consta de 40 clientes que queremos situar en el mapa.

Para ello vamos a utilizar 2 herramientas:

 

Google docs es el paquete ofimático en red de Google. Ha evolucionado bastante y aunque no da las prestaciones de Office tiene ventajas como el almacenamiento compartido de gran volumen como es Google Drive y se puede compartir con otros usuarios. Es muy útil para trabajar a distancia ya que se puede actualizar 2 personas a la vez.

 

 

Abrimos una nueva hoja de cálculo en Google Docs.  Ya en la hoja de cálculo y una vez instalado la app, la iniciamos en el menú vía “complementos-mapping sheets-start mapping”

ms2

Como los datos  con los que vamos a trabajar están en Excel, copiamos y pegamos los datos en la hoja de cálculo de Google docs.

Vemos que al “start” la aplicación, sale un menú a la derecha de la pantalla con 3 campos con sus sendas listas desplegables.

Los 3 campos: “Title”, “Filter”, “Location” influye directamente en la visualización posterior del mapa:

“Title”: título con el que vas a visualizar el punto.

 “Filter”: campo por el que vamos a poder hacer filtros, por ejemplo, un campo interesante si disponemos de él, sería el sector. De esta forma se nos pintarían los puntos que pertenecen al sector que elegimos.

“Location”: es el campo que va a tomar Google maps para situar el punto.

 

ms4

Con los datos que disponemos en esta base de datos parece razonable que pongamos el campo “Razón social” para el título, “Actividad comercial” para el campo filtro y “Dirección” para el campo localización.

Con los datos pegados en Google docs, le damos al botón “Build”

ms3

Nos podría dar un error al tratar los datos.

Aquí tendríamos la primera advertencia de que los datos de direcciones no son correctas.

En concreto esta base de datos tenía la dirección en un campo que se llama Dirección y en otro campo está la ciudad.

A la aplicación le estamos diciendo que

ms5

Y claro, tiene la calle, pero no sabe de qué ciudad.

Para solucionarlo, insertamos una columna a la derecha del campo “Dirección”. (Botón derecho y añadir una columna)

Después, creamos la dirección en un nuevo campo llamado “Adress” que es la unión de la “Dirección” y la “Ciudad”, separados por una “,”, de esta forma:

ms6

Y modificamos la opción “Location” de la herramienta por el campo “Adress” y botón “Build”

Por último, también nos pueden dar unos poquitos errores.

ms7

Generalmente direcciones mal informadas o nombres  no normalizadas: km, Calle, C/, Travesía, Trav… Si son pocos podemos resolverlo a mano.

Después dibujaremos el mapa:

ms8

ms9

Sobre el mapa, podemos observar algunas cosas: los señalizadores o “chinchetas” (pushpin) tienen colores. Estos colores son los del campo de “actividad comercial” que es el campo por el que hemos estimado que sea el “Filter”.

Suele haber algunos errores que son muy visibles: datos en México, Brasil o España.

Podemos posicionarnos sobre la “chincheta” y ver el motivo. Por ejemplo:

ms10

 

Sin embargo, vemos que la dirección no está bien informada en la base de datos. Si vemos en

Google Maps la empresa estaría en la calle 127D o Autonorte # 127D-2 a 127D-34.

ms11

Otro caso sería

ms12

Donde contrastamos que la dirección de esta empresa no es correcta, ya que sería: Calle 51 N° 51 – 27 Parque Berrío – Medellín Colombia

Si modificamos el dato en la hoja de cálculo:

ms13

Y volvemos a general el mapa (“build” y “view”):

ms14

Podríamos concluir varias cosas:

  • La herramienta es muy útil y rápida

  • Igual podía tener alguna prestación adicional como la geocodificación, pero algún app adicional que escrutaremos

  • El problema, como casi siempre viene del origen de los datos. Es casi más importante tener una buena fuente que el uso posterior de los datos.

El proceso de adecuación y limpieza inicial de los datos se llama data cleansing o data scrubbing que es la corrección o eliminación de datos erróneos de una base de datos. El proceso de data cleansing permite identificar datos incompletos, incorrectos o inexactos. Después de la limpieza, la base de datos podrá ser compatible con otras bases de datos similares o utilizables por aplicaciones como sobre la que hemos hablado.