Incluso en la colección de datos que nos interesa, es habitual encontrar datos defectuosos fruto de la recogida de información (el trabajo de campo) que también deben ser eliminados para conseguir una mayor fiabilidad de la información.
En el siguiente ejemplo descarto datos de acuerdo con los objetivos que me planteo, pero no hago una limpieza posterior, con una doble intención: comprobar que es necesario, y ver que los datos erróneos también tienen unas características propias, que son detectables con métodos estadísticos básicos.
Este análisis podría dar paso a búsquedas posteriores para determinar si existe alguna relación entre tales enlaces y sus características propias (número de palabras del enlace, términos utilizados en el enlace) como ajenas (posición en el conjunto del texto, posición dentro del párrafo, posición en una frase). De todos modos este estudio más complejo que dejo al margen para otras ocasiones.
Por ahora vamos a extraer una serie de datos para tener una idea de la información que hay almacenada en la base de datos.
Empezaremos por comprobar cuántas salidas genera el blog hacia otros sitios. Para ello, ejecuto la consulta:
SELECT pla.name,count(*) salidas FROM `piwik_log_visit` plv inner join piwik_log_action pla on plv.visit_exit_idaction=pla.idaction WHERE pla.name like 'http%' and pla.name not like '%sopadebits.com%' group by visit_exit_idaction order by salidas desc
La consulta selecciona los nombres de los sitios que han recibido visitas desde un enlace en mi blog. Para detectar los sitios externos, filtro los datos teniendo en cuenta que el campo name de la tabla piwik_log_action empiece por "http" [pla.name like 'http%'] y que no contengan el dominio del post [pla.name not like '%sopadebits.com%']. Ordeno el resultado según la cantidad de visitas (de más a menos):
El resultado es parecido a:
idaction | URL | Visitas |
6 | http://teethgrinder.co.uk/open-flash-chart | 27 |
24 | http://www.um.es/dp-lengua-espa/revista/vol7/relevancia.pdf | 6 |
31 | http://articles.techrepublic.com.com/5100-10877_11-6160661.html | 5 |
135 | http://jlibrary.sourceforge.net | 3 |
106 | http://www.vectorsite.net/tsawk_3.html | 3 |
11 | http://jlibrary.sourceforge.net/12/screencast3.html | 2 |
53 | http://espanol.answers.yahoo.com/question/index?qid=20070723132213AA3U5yy | 2 |
107 | http://www.deakialli.com/2007/09/13/bibliotecas-publicas-servicios-electronicos-de-informacion-y-web-social | 2 |
... | ... |
Dividiendo el número de visualizaciones por el número de salidas, tendré el ratio de click-through. El primer paso se consigue con la consulta siguiente:
select distinct pllva.idaction_ref,pllva.idaction from piwik_log_action pla inner join piwik_log_link_visit_action pllva on pla.idaction=pllva.idaction_ref where pllva.idaction in (6, 24, 31, 135, 106, 11, 53, 107)
name | idaction_ref | idaction |
---|---|---|
content/view/open-flash-chart-graficos-estadisticos-open-source | 5 | 6 |
content/view/jlibrary-gestor-documental-open-source | 10 | 11 |
content/view/organizacion-de-la-informacion-personal-eliminando-archivos-duplicados | 30 | 31 |
content/view/normalizacion-distancias-normalizadas | 7 | 53 |
content/view/teoria-de-la-relevancia-en-linguistica | 8 | 24 |
http://www.um.es/dp-lengua-espa/revista/vol7/relevancia.pdf | 24 | 24 |
content/view/www.themedicieffect.com | 61 | 107 |
content/view/efecto-medici-innovacion-interdisciplinar | 27 | 107 |
content/view/trabajando-con-subversion-y-awk | 12 | 106 |
http://www.vectorsite.net/tsawk_3.html | 106 | 106 |
content/view/jlibrary-gestor-documental-open-source | 10 | 135 |
content/view/descargas | 17 | 6 |
extranet/open-flash-chart-graficos-estadisticos-open-source | 144 | 6 |
De todos modos, en estos datos nos encontramos con dos temas:
Nos quedamos entonces con los ítems [5,10,30,7,8,61,27,12,10,17,144]. Ahora queda ejecutar la consulta para las páginas vistas de cada ítem:
select pla.idaction,pla.name,count(*) paginas_vistas from piwik_log_link_visit_action pllva inner join piwik_log_action pla on pllva.idaction=pla.idaction where pla.idaction in (5,10,30,7,8,61,27,12,10,17,144) group by pla.name order by paginas_vistas desc
idaction | name | paginas_vistas |
5+144 | content/view/open-flash-chart-graficos-estadistico... | 354 |
7 | content/view/normalizacion-distancias-normalizadas | 158 |
30 | content/view/organizacion-de-la-informacion-person... | 149 |
8 | content/view/teoria-de-la-relevancia-en-linguistic... | 97 |
12 | content/view/trabajando-con-subversion-y-awk | 96 |
27 | content/view/efecto-medici-innovacion-interdiscipl... | 56 |
10 | content/view/jlibrary-gestor-documental-open-sourc... | 44 |
17 | content/view/descargas | 42 |
61 | content/view/www.themedicieffect.com | 8 |
idaction |
name |
pag_vistas |
enlaces_salientes |
%CTR |
5 |
content/view/open-flash-chart-graficos-estadistico... |
354 |
29 |
8,19% |
7 |
content/view/normalizacion-distancias-normalizadas |
158 |
3 |
1,90% |
30 |
content/view/organizacion-de-la-informacion-person... |
149 |
5 |
3,36% |
8 |
content/view/teoria-de-la-relevancia-en-linguistic... |
97 |
6 |
6,19% |
12 |
content/view/trabajando-con-subversion-y-awk |
96 |
3 |
3,13% |
27 |
content/view/efecto-medici-innovacion-interdiscipl... |
56 |
2 |
3,57% |
10 |
content/view/jlibrary-gestor-documental-open-sourc... |
44 |
6 |
13,64% |
17 |
content/view/descargas |
42 |
0 |
0,00% |
61 |
content/view/www.themedicieffect.com |
8 |
2 |
25,00% |
Por ejemplo, el enlace 61 es claramente un error, probablemente debido a un error en la introducción del enlace. El click-through que presenta puede ser debido a que el usuario trata de accede r repetidas veces al enlace. Es probable que se pudiera unificar con la acción 27 (el post sobre el efecto Medici), y que los dos clicks fueran porque el usuario vuelve a intentar el enlace.
El cálculo aporta información interesante, aunque no significativa. De lo anterior sólo los tres primeros enlaces tienen datos suficientes como para sacar alguna conclusión. Entre ellos cabe destacar en positivo el enlace de open-flash-chart y en negativo el de las distancias normalizadas.
Sobre el resto, precisamente el enlace del Medici Effect aporta información interesante... pero para corregir errores. Esto en sí mismo es interesante porque el detectar que el ratio varía bastante (aunque es poco significativo por los pocos datos). éste es un caso determinado nos induce a pensar que algo sucede. Pero no era el objetivo de estas consultas.
También cabe comentar que todo este proceso podría haberse realizado con una sola consulta, máximo dos. En cualquier caso estas consultas no serían eficientes en un servidor a pleno rendimiento.
El siguiente paso (en otro artículo) será extraer datos globales de las relaciones entre enlaces para realizar un análisis basado en cadenas de Markov. Para eso utilizaremos el paquete estadístico GNU R.
© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.