« Tankeillusioner och tankemisstag | Main | Lasse O'Månsson och Bertil Pettersson »
september 30, 2003
Statistikknarkande: Antal webb-besökare och power law
Av lite olika anledningar har jag nu kollat in hur många unika besökare jag haft under det exakt (på dagen!) ett år min sajt (www.hakank.org) började notera i webbserverloggen.En unik besökare är här definierad som ett unikt IP-nummer. Ja, det är problem med dynamiska IP-nummer och proxys på större företag. Men så är världen nu beskaffad....
Jag har här räknat med samtliga "besökta filer" som finns i min webbserverlogg, inklusive bilder (det lilla fåtal jag har), RDF- och CSS-filerna till bloggen, class-filerna till Java Applets, etc.
Här är resultatet av undersökningen.
Unika besökare
Det har varit 33876 unika IP-nummer-besök på totalt 150889 besök, dvs varje besökare har gjort i genomsnitt 4.45 besök. Igenomsnitt har det varit cirka 413 besök per dag och cirka 93 unika besökare per dag. (De senaste månaderna har jag dock snittat på cirka 1000 besök per dag.)
De mest frekventa besökarna:
Sök-bottarna dominerar naturligtvis, vilket vi ser i listan över de mest frekventa besökarna. Av totalt 150889 träffar var 27976 sökbott-träffar, dvs cirka 18%, vilket innebär att ungefär var femte besökare är en sökbott (egentligen var 5.5:e)!
Besökare: antal besök
crawler11.googlebot.com: 1806 [en frekvent index.rdf-hämtare]: 1690 crawler10.googlebot.com: 1677 cr031r01-2.sac2.fastsearch.net: 1648 trek18.sv.av.com: 1518 crawler14.googlebot.com: 1468 12.148.209.198: 1158 buildrack17.sv.av.com: 979 cr1.turnitin.com: 972 crawlers.looksmart.com: 814 drone10.sv.av.com: 735 [amerikansk bott, ej sökmotor]: 727 drone6.sv.av.com: 698 [en nära vän]: 678 si1006.inktomisearch.com: 641 crawler12.googlebot.com: 607 ....
Bottar
De 8 större bottar jag kom att tänka på, fördelar sig på följande sätt. Här har jag slagit ihop alla IP-nummer från en domän till en entry:
googlebot.com: 8170 sv.av.com: 7096 inktomisearch.com: 3873 alexa.com: 3061 fastsearch.net: 2928 looksmart.com: 1370 teoma.com: 1296 directhit.com: 182
Frekvenstabell
Här nedan följer ett litet utdrag ur en sammanställning av antal besökare som haft en viss besöksfrekvens. Dvs det finns en dator (googlebot naturligtvis) som besökt min sajt 1806 gånger, en som besökt 1690 gånger osv. Sist har vi engångsbesökarna som är 21886 till antalet. Det är alltså sorterat i antal besök (flest först).
Här är datafilen.
Antal besök: antal besökare 1806: 1 1690: 1 1677: 1 1648: 1 1518: 1 1468: 1 1158: 1 979: 1 972: 1 814: 1 735: 1 727: 1 698: 1 678: 1 641: 1 607: 1 605: 1 576: 1 ..... 14: 92 13: 73 12: 119 11: 120 10: 171 9: 195 8: 273 7: 341 6: 483 5: 641 4: 1193 3: 2290 2: 4873 1: 21886
Power law
Naturligtvis började jag att fundera på hur denna fördelning ser ut i en log-log-graf. Skulle det möjligen vara en power-law-fördelning på antalet besök vs antalet besökare? (Se nedan för referenser till power law.)
Med några raska R-kommandon undersökte jag detta närmre. R finns att ladda ner på www.r-project.org.
> hits<-read.table("hits.dat", header=T, sep=",") > plot(hits, type="l")
En log-log-plot:
> plot(hits, log="xy")

Tja, det ser faktiskt ut som ett skolexempel på en power law!
För att studera det lite mer statistiskt använder jag funktionen nls() från paketet nls.
> library(nls) > hits.nls <- nls(hosts ~hits^B, data=hits, start = c(B=0.1),control=list(maxiter=100),alg="plinear",trace = TRUE) 508371265 : 0.1000 56.2787 498492486 : -0.1094190 368.8806565 451677547 : -0.3347585 1975.0531057 317338776 : -0.588109 6945.458497 144332341 : -0.8947935 13969.2739399 38531928 : -1.295967 18993.358662 4431768 : -1.760797 21213.372275 170968.8 : -2.061232 21792.250830 59470.55 : -2.127369 21872.694076 59302.93 : -2.130101 21875.741431 59302.92 : -2.130125 21875.768037 59302.92 : -2.130125 21875.768235 > hits.nls Nonlinear regression model model: hosts ~ hits^B data: hits B .lin -2.130125 21875.768235 residual sum-of-squares: 59302.92
Detta innebär att -2.130125 är koefficienten, dvs
hosts = hits^-2.130125
Värdet 21875.768235 är intercept. Notera dock att vi kommer att använda 10-logartimen av detta värde nedan när vi ritar ut bilden:
> log10(21875.768235 ) [1] 4.339963
Summary:
> summary(hits.nls) Formula: hosts ~ hits^B Parameters: Estimate Std. Error t value Pr(>|t|) B -2.130e+00 3.367e-03 -632.7 <2e-16 *** .lin 2.188e+04 1.580e+01 1384.5 <2e-16 *** --- Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1 Residual standard error: 15.85 on 236 degrees of freedom Correlation of Parameter Estimates: B .lin -0.2368
Här ser vi att både exponenten och intercept är statistiskt signifikanta (p<0.001).
Vi har nu allting som krävs för att rita ut den fullständiga bilden:
> plot(hits, log="xy") > abline(log10(21875.768218), -2.130125, col="red")
Så här blev bilden:

Här är den som PDF-fil.
Man ska tolka bilden på följande sätt: Det finns många besökare som gjort ett fåtal besök, och ett fåtal besökare som har gjort många besök. Den räta (regressions-)linjen på en log-log-skala (bas 10) är ett kännetecken på att det är frågan om en power law. Notera att värdena på axlarna inte är log10-värden utan de riktiga "oskalade" värdena. Återigen: Exponenten, lutningen på linjen (log-log skala) är cirka 2.13.
Hur ska vi nu förklara detta? Power law brukar vara ett kännetecken på att det finns någon form av "skiktning" (orättvisa, etc) i befolkningen som studeras. T.ex. Paretos berömda tes att de 20% rikaste äger 80% av världens tillgångar. "De som har ska vara givet". Se även häromdagenanteckningen Segregeringseffekter inom yrken för några fler exempel.
En sak är ju klar, de som besöker sajten flest gånger är maskiner och inte vanliga "manuella" användare (med ett lysande undantag för den nära vännen). Jag kom på att man skulle kunna ta bort värdena för alla bottar och se hur figuren blir då. Men det blir en annan gång...
Några referenser till power-law
Zipf, Power-laws, and Pareto - a ranking tutorial
Power Laws, Weblogs, and Inequality.
Se även mina andra skriverier om detta.
Uppdatering
Flera referenser om power law-fenomenet finns via JonblOGG, anteckningen Power Laws. Det är även i övrigt en intressant blogg.
Artiklar av Jacob Nielsen:
Zipf Curves and Website Popularity
Diversity is Power for Specialized Sites
Do Websites Have Increasing Returns?
Av Jason Kottke: Weblogs and power laws
Samt:
Vilfredo Pareto
The Marginal Productivity Theory of Distribution
Posted by hakank at september 30, 2003 03:14 FM Posted to Statistik/data-analys