FACULTEIT WETENSCHAPPEN
Opleiding Geografie en Geomatica Master in de Geomatica en Landmeetkunde
Bluetoothtracking voor marketingdoeleinden Shoppingcenter Gent Zuid Edward de Mûelenaere
Academiejaar 2010 – 2011 Aantal woorden in tekst: 17634
Prof. Dr. N. Van de Weghe, Vakgroep Geografie Prof. Dr. D. Van den Poel, Vakgroep Marketing
Masterproef ingediend tot het behalen van de graad van Master in de Geomatica en Landmeetkunde
1. VOORWOORD
3
2. INLEIDING
5
3. LITERATUUROVERZICHT
6
3.1. Stochastisch model van Farley & Ring
6
3.2. Naar het digitale tijdperk: automatisch tracken van klanten
7
3.3. De data: paden
9
3.4. Een nieuw licht op productzichtbaarheid
10
3.5. Ontdekken van patronen: clusteren van paden
12
3.6. Naar een geïntegreerd model voor paden en aankopen
15
3.7. Efficiëntie troef: wayfinding in de supermarkt
18
3.8. Bluetoothtracking en positiebepaling
22
4. MATERIALEN EN METHODEN
24
4.1. Bluetoothtracking: Locatie
24
4.2. Bluetoothscanner
25
4.2.1. Software
26
4.2.2. Hardware
26
4.2.3. Output
27
4.3. Testcases
28
4.3.1. 22 september – 24 september 2010
28
4.3.2. 1 oktober – 4 oktober
29
4.3.3. Verder onderzoek
30
4.3.3.1. Indoor
31
4.3.3.2. Outdoor
32
4.4. Data acquisitie
32
4.4.1. Plaatsing sensoren
33
4.4.2. Plaatsing sensoren Match
33
4.4.3. Uitlezen data
34
4.5. Data filtering
35
4.6. Ratio(bepaling)
36
4.7. Data verwerking
36
1
4.7.1. GisMo (GIS for Moving objects)
36
4.7.2. TSP-vraagstuk
37
4.7.3. R
37
4.7.3.1. Clusteranalyse
38
4.7.3.2. Principale ComponentenAnalyse(PCA)
40
5. RESULTATEN
42
5.1. Testcases
42
5.1.1. 22 september – 24 september
42
5.1.2. 1 oktober t.e.m. 4 oktober
44
5.1.3. Onderzoek RSSI
45
5.1.3.1. Indoor
45
5.1.3.2. Outdoor
47
5.2. Ratio
49
5.3. GisMo
51
5.3.1. Wat werd er getraceerd?
51
5.3.2. Data beschikbaarheid
51
5.3.3. Cijfers
52
5.3.4. Druktes
53
5.3.5. Hoeveel winkels bezoekt men?
62
5.3.6. Hoe lang blijft men in het shoppingcenter
64
5.3.7. Gebruik parking
64
5.4. Sequentieanalyse
65
5.4.1. Ingangen
65
5.4.2. Voornaamste flows
70
5.4.3. TSP
71
5.5. Clusteranalyse
74
5.6. Principale Componenten Analyse
79
5.7. Match-experiment
83
6. DISCUSSIE
83
7. CONCLUSIE
86
8. REFERENTIELIJST
87
9. BIJLAGEN
90
2
1. VOORWOORD De studie aangaande het verplaatsingsgedrag van festivalgangers tijdens Rock Werchter 2010 m.b.v. Bluetoothsignalen bracht me op het idee om deze technologie te gebruiken in een commerciële setting. Zo wou ik het verplaatsingsgedrag van klanten gaan registreren. Vanuit de marketing als invalshoek zou vervolgens de bekomen data bestudeerd worden. Specialisten Prof. Dr. Dirk Van den Poel en Dries Benoit werden er als dusdanig bij betrokken. Als locatie voor deze studie ging de voorkeur, na menig overleg, uit naar een indoorshopping, dit vanwege de compactheid en uitdaging om de technologie te gaan toepassen in een indoor omgeving. Een dergelijk project kon vervolgens al snel de interesse wekken van het Gent Zuid shoppingcenter.
Graag wens ik mijn promotor, Prof. Dr. N. Van de Weghe, te bedanken voor het geduld en alle mogelijkheden die u mij heeft geboden om een project te vinden waar ik voor 100% achterstond. Hiernaast dank ik u ook om een goed klankbord te zijn in geval van problemen. Mijn dank gaat tevens uit naar Prof. Dr. D. Van den Poel voor de verschillende brainstormsessies omtrent dit project.
Deze studie kon nooit tot stand komen zonder de interesse en steun (ook op financieel vlak) van Devimo, in het bijzonder Mevr. Hera Genbrugge. Hera, bedankt om in dit project te geloven! Dhr. Devos en Mevr. Müller, bedankt voor de vlotte samenwerking.
Roel Huybrechts, mijn meest welgemeende dank voor alle hulp tijdens het installeren van de Bluetoothscanners, uitlezen van de toestellen, voorkauwen van de data en zoveel meer. Zonder jou was dit nooit gelukt! Enorm bedankt!
Bram Van Londersele en Dries Benoit, dank je voor alles. Zowel bij het ontstaan van het project, als bij de praktische kant en de analyse van de resultaten stonden jullie steeds paraat!
Mathias Versichele, dank je voor het gebruik van GisMo, in het bijzonder voor de verschillende aanpassingen die noodzakelijk waren voor dit project. Alsmede voor het bekijken van de data en het overlopen van de resultaten.
3
Graag bedank ik ook mijn ouders en vrienden voor de onvoorwaardelijke steun doorheen mijn ganse studie. In het bijzonder Frederik Van Bossche voor de hulp!
Bovenal bedank ik mijn vriendin om er steeds voor me te zijn.
Edward de Mûelenaere Gent, 26 mei 2011.
4
2. INLEIDING Stilstaan is achteruitgaan. Marketeers proberen op alle gebieden informatie te winnen over het klantengedrag. RFID (Radio Frequentie IDentification) is een veelvuldige techniek om het bewegingsgedrag te registreren. Vanuit de CartoGis cluster, vakgroep Geografie, heeft men intussen
veel
ervaring
met
een
nieuwe
technologie
Bluetoothtracking
om
het
verplaatsingsgedrag van mensen te registreren. Bluetoothsensoren capteren en registreren het signaal van diverse Bluetoothdevices. Bluetoothdevices omvatten alle toestellen die een Bluetoothchip aan boord hebben. In de eerste plaats wordt hierbij gedacht aan GSM-toestellen en smartphones maar ook laptops en Bluetooth-carkits vallen hieronder. Bluetoothscanners werden
bij
voorgaande
onderzoeken
vaak
op
massa-evenementen
geplaatst
om
mensenstromen te bestuderen. Voor de organisatoren, preventie, veiligheidsdiensten, etc. levert dit een schat aan informatie op. Bij deze studie wordt deze technologie toegepast om het klantengedrag te registreren.
Het eerste luik van deze studie heeft als doel een overzicht te geven van de manieren waarop het klantengedrag tot op vandaag werd bestudeerd. In het tweede luik wordt nagegaan op welke manier bewegingen van klanten kunnen geregistreerd worden met behulp van Bluetoothtracking. Hiervoor kwam een samenwerking met Devimo tot stand om metingen te verrichten in het shoppingcenter Gent Zuid. De meetperiode liep van 2 december 2010 t.e.m. 20 december 2010. Tevens wordt stilgestaan bij de terminologie en de manier waarop de beschikbare hardware en software werd aangepast.. Vervolgens wordt een overzicht gegeven van de verschillende testcases, noodzakelijk om inzicht te bekomen in de materie en aanpassingen te toetsen aan de realiteit. Het derde luik omvat de bewerking, analyse en resultaten van de verworven data. Als laatste wordt nagegaan op welke manier de data kan gekoppeld worden aan demografische informatie. Hiervoor kwam een samenwerking met warenhuis Match, gelegen in het Gent Zuid shoppingcenter, tot stand.
5
3. LITERATUUROVERZICHT
Al jaren zoeken marketeers naar manieren om het gedrag van klanten te analyseren, beschrijven en voorspellen. In 1966 toonden Farley & Ring reeds aan dat de winkelconfiguratie een enorme invloed heeft op het koopgedrag. Om hun theorie te toetsen aan de realiteit werd de klant fysiek gevolgd en geobserveerd. Door de technologische vooruitgang in de 21ste eeuw is het mogelijk eerst de diverse bewegingspatronen van de klanten te registreren en vervolgens deze te analyseren. Sorensen (2003) introduceerde een real-time location system geproduceerd door Symbol Technologies/WhereNet. Dit werd later gecommercialiseerd onder de naam RFID. Naast Sorensen gingen ook Hui et al, (2007, 2009a, 2009b) aan de slag met deze tracking data. Larson et al. (2005) bouwde verder op de resultaten van Sorensen en komt zo tot een clustering van de klanten. Hiernaast is marketing ook actief op andere gebieden zoals online webshopping en ‘eye tracking’ (Hui et al., 2009a). Ook worden andere technologieën (bv. GPS) geïntegreerd om de studies en analyses te optimaliseren (Burke, 2005).
3.1.
Stochastisch model van Farley & Ring
Reeds lange tijd zijn marketeers ervan overtuigd dat het bewegingspatroon van shoppers een schat aan informatie bevat. In 1966 ontwikkelden Farley en Ring een stochastisch model dat het mogelijk maakt deze bewegingen in te schatten. Een stochastisch model is een model waarvan de uitvoer meerdere waarden uit een kansverdeling aan kan nemen door onzekerheden in de invoer of in het modelconcept (http://www.wikipedia.be, 10/04/2011). Het doel is te komen tot een basiswerk dat de invloed van winkelconfiguratie en winkelreclame op de klant bepaalt. Al snel blijkt dat het niet eenvoudig is de invloed van reclame te bepalen. De winkelconfiguratie is uitermate belangrijk. Onderzoekers meldden dat een goede configuratie is bereikt wanneer de klanten verplicht zijn zoveel mogelijk in contact te komen met diverse producten (Farley & Ring, 1966). Echter is het wel zo dat er heel wat klanten zullen afhaken daar het moeilijk wordt om in dergelijke winkel ‘efficiënt’ te shoppen. Om de invloed van de configuratie op de consument na te gaan wordt een kansentabel opgesteld (Farley & Ring, 1966). Deze wordt weergegeven in figuur 1.
6
Figuur 1: Kansentabel. Kans dat een klant die zich in zone I bevindt naar zone J gaat. Bron: Farley & Ring (1966).
Als afhankelijke variabele wordt in dit model de bewegingsmogelijkheid van de shopper beschouwd. Hiermee worden de verschillende richtingen op een bepaald punt in de winkel beschouwd. De winkel bevat een netwerk van zogenaamde ‘decision points’. Op zo’n punt is de klant verplicht een bepaalde richting te kiezen (bv. rechtsaf). Als onafhankelijke variabele stelt men de afstand tot het volgende knooppunt net als andere variabelen die de beweging van de klant beïnvloeden (neiging tot winkelen in wijzerin/tegenwijzerzin, etc. ).
Dit model werd getest door een vergelijking met de fysische bewegingen van de klanten. Het blijkt de variantie van de afhankelijke variabelen sterk te verklaren (Farley & Ring, 1966). Het model is gebaseerd op de rationele consument en biedt een verklaring voor de punten van congestie die ontstaan in gebieden met lage verkoopvolumes. Hiernaast wordt ook aangetoond dat dit kan geëlimineerd worden door de configuratie van de winkel aan te passen.
3.2.
Naar het digitale tijdperk: automatisch tracken van klanten
Het gedrag van de shopper zelf werd voor het eerst elektronisch geregistreerd door Sorensen (2003). Hierbij werd gebruik gemaakt van RTLS, een real-time location system, geproduceerd door Symbol Technologies/WhereNet. Deze methode gebruikt de locatie van de winkelkar of winkelmand als surrogaat (proxy) voor de locatie van de shopper. Het tracking systeem bestaat uit vier elementen (Sorensen, 2003): -
Een chip, verwerkt in de winkelkar of winkelmand. Deze zendt om de 4 seconden een unieke code uit.
7
-
Een netwerk van antennes in de winkel. Deze vangen het uitgezonden signaal van de verschillende chips op.
-
Het WhereNet/Symbol locate processor system dat gebruik maakt van DTAalgoritmes, differential time of arrival (ook bekend als TDOA (time difference of arrival)), om de precieze locatie van de winkelmand/kar op dat moment te bepalen.
-
De PathTracker software die de link legt tussen de locatie van de shopper en de aangekochte producten.
Deze technologie werd gebruikt om het gedrag van klanten te registreren in 150 winkels in Groot-Brittannië, Australië en de Verenigde Staten van Amerika. Bovenstaande wordt geïllustreerd aan de hand van figuur 2.
Figuur 2: Werkwijze RFID. Bron: Hallberg & Nilsson (2002).
De transponder zendt de unieke informatie uit wanneer deze in het bereik komt van de reader. Er zijn twee manieren waarop men de transponder van elektriciteit kan voorzien. Een passieve transponder heeft geen eigen voedingsbron. Een actieve is hier wel van voorzien waardoor deze over een groter bereik en een hogere potentiële datatransmissie beschikken (Hallberg & Nilsson 2002). Transponders zijn steeds van het type Read-Only Memory (ROM), Random-Access Memory (RAM) of een combinatie. De keuze is afhankelijk van de doelstelling en de mogelijkheid of deze moet aangepast worden achteraf of niet.
De range is afhankelijk van de gebruikte frequentie, elektriciteitsvoorziening en de complexiteit van de circuits. Er bestaat geen standaardfequentie maar wel een range
8
waarbinnen de communicatie tot stand komt (Hallberg & Nilsson, 2002). De meeste passieve systemen werken met een frequentie van 13.56MHz of lager dan 135 kHz. Deze frequenties worden niet door water (mensen) geabsorbeerd. Als nadeel wordt de reflectie door metalen genoteerd. De tweede groep maakt gebruik van 400-1000 MHz UHF en 2450 MHz microgolven. Hierbij zendt de reader een sferische elektromagnetische golf uit. Wanneer het een passief systeem betreft ontvangt de transponder de golf en put er energie uit. RFID systemen die gebruik maken van deze hoge frequenties kennen een hoger bereik en zijn minder gevoelig voor interferentie. Hiernaast is het ook mogelijk om gerichte antennes te gebruiken waardoor de mogelijkheid tot ruis en interferentie tot het minimum wordt herleid. Het nadeel is wel dat, bij passage door water, energie verloren gaat.
3.3.
De data: paden
‘Path data’ sluit aan bij de bewegingen van een persoon in een ruimtelijke omgeving. Deze tonen aan hoe een persoon interageert met zijn omgeving en hoe hij zijn doel bereikt (Hui et al., 2009a). Belangrijk is het begrip ‘path’ te definiëren. Een pad is een bewuste beweging van een persoon op een fysische manier of in een gesimuleerde ruimtelijke omgeving. Belangrijk hierbij is dat het pad detecteerbaar is (Hui et al., 2009a). Een pad kan volgens Hui et al. (2009a) als volgt worden gedefinieerd: P = {S, A, XA(t)}. S (space) stelt hierbij een observeerbare, fysische of gesimuleerde omgeving voor. Het bevat alle mogelijke locaties die kunnen gerealiseerd worden. Dit ruimtelijke facet is uniek voor deze paden. S kan continu of discreet zijn. Indien het discreet is kan het voorgesteld worden door een graaf. “Een graaf is een combinatorische structuur bestaande uit twee verzamelingen, knopen en bogen genoemd, en een incidentierelatie hiertussen. De knopen en bogen kunnen bijkomende attributen hebben, zoals een naam of een gewicht. In dat laatste geval spreekt men ook van een ‘gewogen graaf’” (Fack, 2007, p. 123). A (agent) stelt de bewuste persoon voor die de bewegingen uitvoert. Robotbewegingen, paden van orkanen en dergelijke worden hierdoor uitgesloten. XA(t) stelt de positie voor van de persoon op een tijdstip t in de ruimtelijke omgeving. Indien S continu is kan XA(t) I gedefinieerd worden als volgt (conventionele definitie van continuïteit) (Hui et al., 2009a):
9
Data over paden levert interessante informatie op voor marketing onderzoekers omdat deze de interactie van de consument met de omgeving weerspiegelen. Het toont aan welke dynamische keuzes de consument maakt. Verwacht wordt dat deze een steeds belangrijkere rol zullen spelen in de toekomst (Hui et al., 2009a).
3.4.
Een nieuw licht op productzichtbaarheid
Tracking data maakt het ook mogelijk een andere invulling te geven aan het begrip Effective Distribution‘ (Sorensen, 2003). Dit werd lang gezien als een percentage van ‘All Commodity Volume’ (ACV). Zo is een product met een ACV van 90% in 90% van de winkels waar deze categorie van producten wordt verkocht beschikbaar voor de klanten. Echter moet er volgens Sorensen rekening gehouden worden met het aantal klanten dat een bepaald product bezoekt. Indien een bepaalde locatie door 20% van de klanten wordt bezocht bedraagt de Effective Distribution 18% (90% * 20%). Op deze manier is het mogelijk de Effective Distribution te bepalen voor elke zone in de winkel.
Belangrijk is af te vragen waarom de klanten sommige zones bezoeken en andere niet. Interesse in een bepaald product is de hoofdreden. Echter is er steeds sprake van impulsieve aankopen. Effective Distribution maakt het mogelijk deze te bestuderen en te analyseren.
Voor deze analyse is het noodzakelijk de winkel te verdelen in verschillende zones. ‘EyeShare’ meet wat de shopper ziet gedurende het bezoek aan de winkel. Dit is uitermate interessant om impulsieve aankopen in de hand te werken. Hiernaast is het ook belangrijk te meten wat klanten doen als ze een bezoek brengen aan een bepaald gebied. Sorensen (2003) noemt dit conversions. Eerst en vooral moet de klant stoppen bij het product. De eerste conversie gaat van bezoeken naar winkelen. De tweede conversie omvat de aankoop van het product. Dit wordt ook aangehaald door Hui et al. (2007) (cf. infra).
Om de resultaten juist te kunnen interpreteren is het noodzakelijk een goede studie te maken van de locatie van de verschillende producten in de winkel (Sorensen, 2003). Door gebruik te
10
maken van de PathTracker data werd duidelijk dat de dominante richting in de winkel tegenwijzerzin is. Meer nog, door de resultaten van de 150 winkels te vergelijken werd duidelijk dat wanneer de ingang rechts wordt geplaatst de klanten gemiddeld 2 dollar meer uitgeven per bezoek. Door een tegenwijzerzin-bezoek in de hand te werken en te combineren met een goede uitwerking van de fundamentele marketing, verdeling en attractie, kan een hogere omzet gecreëerd worden.
Dit gedrag werd ook door Melton (1935) en Taylor (1986) geconstateerd. Onderzoek naar het bewegingspatroon toonde aan dat mensen een sterke neiging kennen om rechts af te slaan. In de meeste landen hebben de mensen de gewoonte om rechts aan te houden naar analogie met de rijrichting en het is dan efficiënter om rechts af te slaan dan links af te slaan. Dit wordt de ‘economy of movement’ genoemd (Bitgood & Dukes, 2006). De flow daarentegen geschiedt voornamelijk in tegenwijzerzin (zie Figuur 3).
Figuur 3: Bewegingspatroon zoals geobserveerd door Melton (1935); Taylor (1986). Bron: Eigen bewerking.
Vaak bevatten winkels een uitgestippeld traject. Opvallend is dat slechts 50% daadwerkelijk dit traject volgt. De paden van de overige 50% kan gebruikt worden om een verregaande analyse uit te voeren door de producten zo te plaatsen dat er een push komt naar verschillende zones in de winkel. Een belangrijke bevinding is ook dat de gemiddelde klant slechts 25% van de winkel bezoekt.
11
De verworven data maken het ook mogelijk om de ‘BuyTime’ te bepalen. Dit omvat de totale tijd dat men in de winkel vertoeft evenals de tijd dat men zich in een winkelzone bevindt. Er is een interactie met de Effective Distribution. De producten met een hogere ‘BuyTime’ moeten in een zone geplaatst worden met een lager aantal bezoekers zodat de klanten niet opgejaagd worden.
3.5.
Ontdekken van patronen: clusteren van paden
Data verzameld met het PathTracker systeem ontwikkeld door Sorensen (2003) is ook gebruikt voor verder onderzoek. Larson et al. (2005) ontwikkelden een multivariaat clusterings-algoritme dat in staat is rekening te houden met ruimtelijke beperkingen (constraints). Het doel is om de klanten onder te verdelen in verschillende clusters, i.e. verschillende ‘types’ klanten. Figuur 4 toont de opdeling van de voor de test gebruikte winkel in verschillende zones.
Figuur 4: Opdeling van de winkel in verschillende zones. Bron: Larson et al. (2005).
12
Het probleem met traditionele clusteringsmethoden is dat deze nauwelijks in staat zijn om te gaan met de grote hoeveelheid obstakels in een supermarktomgeving (bv. winkelrekken). Naast de ruimtelijke beperkingen dient ook rekening gehouden te worden met het vergelijken van paden van verschillende lengte en de praktische beperkingen van het verrekenen van een groot aantal paden.
Om dat laatste probleem te omzeilen werden de paden onderverdeeld in drie groepen op basis van hun lengte (2-10, 10-17 en 17+ minuten). Het bepalen van het verschil (de afstand in de afstandsmatrix) tussen twee paden van verschillende lengte vormt een ander probleem. Dit wordt opgelost door elk pad te hercoderen naar een pad van percentiele coördinaten (i.e. de eerste coördinaat is aan de ingang, de tweede coördinaat de locatie op 1% van het pad, enz.).
Het clusteren van deze gestandaardiseerde paden is vrij eenvoudig met bijvoorbeeld de Kmeans clustermethode (Larson et al., 2005). Daarbij wordt de kwadratische afstand tussen de paden voor elk percentpunt geminimaliseerd, wat in de praktijk echter leidt tot slechte resultaten – er wordt immers geen rekening gehouden met de ruimtelijke beperkingen. Het resultaat is een pad dat doorheen de winkelrekken en andere niet-toegankelijke delen gaat en dat in de praktijk niet gevolgd kan worden. Daarop worde K-medoids clustermethode voorgesteld, welke oorspronkelijk gebruikt werd om de K-means clustering meer robuust te maken tegen uitschieters. Een bijkomend voordeel is echter dat het resultaat conform is met de (ruimtelijke) beperkingen in de data.
Er wordt gestart met een willekeurige keuze van x paden (waarbij x = aantal gevraagde clusters), die dienst doen als initiële clustercentra. Elk pad wordt vervolgens toegevoegd aan de cluster waarvan het centrum het meest nabij is (Euclidische afstand). Vervolgens wordt de cluster-centroïd berekend door het gemiddelde te nemen van elke variabele (in casu: percentiele coördinaten). Dit levert hoogstwaarschijnlijk een onbruikbaar pad op daar er bij het bepalen van dit gemiddelde pad geen rekening wordt gehouden met de ruimte. De laatste stap bestaat er vervolgens in om het geobserveerde pad te bepalen dat het dichtst aanleunt bij het berekende gemiddelde pad.
Het voordeel is duidelijk: de clustercentra zijn daadwerkelijk geobserveerde paden en houden dus intrinsiek rekening met de geldende ruimtelijke beperkingen. Het feit dat het
13
dichtstbijzijnde geobserveerde pad niet noodzakelijk ook het meest haalbare mogelijke pad is wordt genuanceerd door het feit dat er zeer veel paden verzameld worden en dit verschil waarschijnlijk klein is.
Figuur 5: Voorstelling (boxplot) van de gemiddelde tijd die klanten van beide clusters in elke zone van de winkel spenderen. Bron: Larson et al. (2005).
De paden van beide clusters bieden een beter inzicht in de bewegingen van de twee types klanten (figuur 6). De mensen uit cluster één volgen de aangewezen winkelrichting (tegenwijzerzin) en lopen zo langs de ‘produce’ (fruit- en groentenafdeling) en de rondgang
14
naar de kassa. Klanten uit de tweede cluster gaan niet langs het fruit en de groenten en begeven zich quasi rechtstreeks naar de kassa. Voor de groep die het kortst in de winkel blijft (van 2 tot 7 minuten) is het optimaal aantal clusters gelijk aan twee; de scree plot toont aan dat de fouten vanaf dan minder snel dalen. Er wordt dus een k-medoïds clustering uitgevoerd op basis van twee clusters. Van elke cluster wordt de gemiddelde tijd die de klanten in elk van de zones doorbrengen voorgesteld in figuur 5. Hieruit blijkt dat de klanten uit de eerste cluster meer tijd spenderen op de ‘racetrack’ (d.i. de rondgang) en de fruit- en groentenafdeling en minder tijd aan de kassa. Klanten uit cluster twee blijven minder lang in de rondgang, bezoeken amper de fruit- en groentenafdeling maar vertoeven langer aan de kassa’s.
Figuur 6: Voorstelling van het best-fit geobserveerde pad voor beide clusters. Bron: Larson et al. (2005).
Het bepalen van de clusters en de bijhorende paden kan tot interessante nieuwe inzichten leiden in de geomarketing (Larson et al., 2005). Daar waar de boxplots beperkte informatie bieden is de combinatie van klassieke statistische analyses en het bepalen van het gemiddelde pad voor elke cluster zeer interessant om de klanten in verschillende groepen onder te verdelen.
3.6.
Naar een geïntegreerd model voor paden en aankopen
Ook Hui et al. (2007) werken met data verzameld met behulp van PathTracker. Zij ontwikkelden een geïntegreerd model voor de paden die klanten volgen en hun aankopen. Per klant wordt in rekening gebracht welke zones hij bezoekt, hoe lang hij daar blijft en welke
15
producten hij daar eventueel koopt. Ook de voorbedachtheid van de klant wordt gemodelleerd. Het resultaat is een statistisch model dat het volledige koopproces beschrijft, zowel de bewegingen als de aankopen. Initieel is het enkel beschrijvend bedoeld, i.e. de verzamelde data nauwkeurig voorstellen, maar er liggen ook mogelijkheden in verdere analyses. Er wordt bijvoorbeeld onderzocht wat de invloed van een wijziging in de winkelopstelling (het verwisselen van twee producten van plaats) is op het aankoopgedrag van klanten – iets wat naar marketing en management toe erg interessant kan zijn.
Het model voor de bewegingen van de klanten is een discreet keuzemodel (zie ook Witlox & Derudder (2007)) waardoor het nodig is om de winkel op te delen in verschillende zones. Zo worden de continue paden gediscretiseerd in een sequentie van zones. Het pad kan vervolgens vereenvoudigd voorgesteld worden door een reeks 'kies-één-uit-n' problemen en bijgevolg gemodelleerd worden met een discreet keuzemodel.
Om rekening te kunnen houden met de ruimtelijke beperkingen in de winkel wordt deze ruimte voorgesteld als een gewogen graaf. Hierbij wordt elke zone voorgesteld door een knoop en worden de mogelijke verbindingen tussen zones voorgesteld door de bogen. Het kortste pad tussen twee zones wordt dan gegeven door het pad met minimale kost tussen de respectievelijke knopen in de graaf. Elk pad wordt met andere woorden opgeslagen als een reeks zones met per zone de tijd die de klant daar doorbracht.
Met dit model kunnen de kansen van elke zone-overgang bepaald worden. In figuur 7 wordt voor elke zone de dominante overgang aangegeven. Hieruit blijkt dat er een tendens van 'back-tracking' bestaat. Veel klanten bezoeken een rayon en keren vervolgens op hun stappen terug in plaats van de winkelgangen te doorlopen en zo naar de volgende te gaan in een zigzagpatroon. Dit gedrag is enigszins verrassend daar men dit patroon niet zou verwachten, wat de vaststelling marketingtechnisch des te interessanter maakt. Producten die in het midden van de rayons opgesteld staan worden namelijk minder vaak opgemerkt dan gedacht en waarschijnlijk als gevolg ook minder vaak verkocht. Uit de gemiddelde tijd die de klanten doorbrengen per zone blijkt dat ze erg snel doorheen de rayons laveren in vergelijking met de tijd die ze in de zones aan de rand van de winkel doorbrengen. Ook valt op dat klanten minder lang in een zone blijven naarmate die zich
16
dichter bij de kassa bevindt; shoppers versnellen met andere woorden naargelang de kassa nadert.
Figuur 7: Dominante overgangen tussen de verschillende zones. Bron: Hui et al. (2007).
Het aankoopmodel wordt metaforisch vergeleken met het concept van elektrische ladingen in de fysica (Hui et al., 2007). Indien de 'aantrekkingskracht' van elk product op de klant gekend is kan diens toekomstige pad theoretisch voorspeld worden (tot op zeker hoogte, daar bewegingen stochastisch zijn). De beweging van de klant wordt dan gegeven door de vectorsom van alle individuele aantrekkingskrachten. Een verschil met de fysica is dat daar de verschillende inwerkende elektrische ladingen exact gemeten kunnen worden, wat met de aantrekkingskracht van een product op de klant niet mogelijk is. Dat is immers een psychologisch feit dat niet meteen meetbaar is en wordt in het model behandeld als een latente variabele die afhankelijk is van het geobserveerde pad en aankoopinformatie – en die dus ook evolueert in de tijd gebaseerd op het reeds gevolgde pad en aankoopgedrag.
De beslissingen van de klant worden op drie verschillende niveau's in rekening gebracht: bezoeken (visit), bezoeken-naar-winkelen (visit-to-shop) en winkelen-naar-kopen (shop-topurchase). Eerst wordt de beslissing gemaakt om een bepaalde zone al dan niet te bezoeken; indien dit de kassa is eindigt het pad, in alle andere gevallen moet er een 'visit-to-shop' keuze gemaakt worden: wordt er gewinkeld in de zone of is de klant enkel onderweg naar een andere zone. Indien er gewinkeld wordt, wordt er een derde keuze gemaakt ('shop-to-
17
purchase') door al dan niet een product uit de zone te kopen. Schematisch wordt dit voorgesteld door figuur 8.
Figuur 8: Schematische voorstelling van het beslissingsproces. Bron: Hui et al. (2007).
3.7.
Efficiëntie troef: wayfinding in de supermarkt
Ook in Hui et al. (2009b) wordt gewerkt met PathTracker data. Daar wordt een vergelijking gemaakt tussen de geobserveerde paden in de winkel en het ideale (kortste) pad zoals bepaald door
het
handelsreizigersprobleem.
Deze
gegevens
worden
aangevuld
met
de
aankoopgegevens horende bij het desbetreffende pad.
Het handelsreizigersprobleem kan als volgt gedefinieerd worden. Gegeven een gewogen graaf wordt de Hamiltoniaanse cykel, d.i. het pad dat alle knopen aandoet, gezocht waarvan de totale boogkost minimaal is. Dit is een zogenaamd 'onhandelbaar probleem': een probleem dat enkel kan opgelost worden in exponentiële tijd. Hierdoor is het enkel in redelijke tijd exact op te lossen voor zeer kleine grafen; men kan wel een benaderende oplossing bekomen met een sneller algoritme dat kan toegepast worden op grotere grafen (Fack, 2007, pp. 288-289).
In casu wordt voor elk geobserveerd pad het overeenkomstige kortste pad berekend dat start aan de ingang, de locaties van alle aangekochte producten bevat en eindigt aan de kassa. Vervolgens worden de afwijkingen tussen het geobserveerde en het referentiepad onderzocht.
18
Deze worden opgesplitst in afwijkingen in volgorde (order deviation) en route (travel deviation) zoals voorgesteld in figuur 9. In dit geval wordt het optimale pad gegeven door
B
-> A -> C (met een gewicht van 3 + 3 = 6); de klant volgde echter de volgorde B -> C -> A met een gewicht van 7 + 4 = 11. De afwijking in volgorde is in dit geval: • Kortste pad gevolgde volgorde (B -> C -> A = 5 + 3 = 8) - kortste pad TSP (B ->A -> C = 6) = 2 De afwijking in route is in dit geval: • Gevolgde route (B -> C -> A = 7 + 4 = 11) – Kortste route (B -> C -> A = 5 + 3 = 8) = 3
Samen geeft dit: • Geobserveerd pad (11) = kortste pad TSP (6) + afwijking volgorde (2) + afwijking route (3) Het is interessant om te onderzoeken welk van beide afwijkingen het grootst is en welk verband er bestaat met het aankoopgedrag.
Figuur 9: Observeerde pad is optelsom van order deviation en travel deviation. Bron: Hui et al. (2009b).
Uit de gegevens van 993 paden blijkt dat de route afwijkingen variëren van zeer laag (5%) tot zeer hoog (95%) terwijl de volgorde afwijkingen redelijk beperkt blijven (steeds onder 20%).
19
Dit resultaat wordt gevisualiseerd in figuur 10. Dit laat vermoeden dat klanten meestal een volgorde van producten kiezen die dicht aanleunt bij de optimale volgorde zoals bepaald door het handelsreizigersprobleem. Ze volgen hierbij vaak niet de kortste route tussen de verschillende aankopen. Een mogelijke verklaring is dat klanten rondkijken op zoek naar promoties en dus verschillende plaatsen bezoeken zonder noodzakelijkerwijs iets te kopen.
Om de relatie tussen de padafwijkingen en de verschillende soorten klanten te onderzoeken worden er vier groepen gemaakt op basis van de volgorde- en route-afwijking (respectievelijk laag en hoog). Het resultaat wordt weergegeven in figuur 11.
Figuur 10: Driehoeksgrafiek van optimale paden, volgorde- en route- afwijkingen. Bron: Hui et al. (2009b).
20
Figuur 11: Statistieken per groep klanten, gegroepeerd volgens orde- en routeafwijkingen (H: hoog, L: laag). Bron: Hui et al. (2009b).
Uit de vergelijking tussen groepen 2 en 3 blijkt dat de klanten met een hoge route-afwijking relatief gezien veel zones bezoeken in verhouding tot het aantal producten dat ze kopen. Als men de groepen aggregeert volgens volgorde-afwijking (respectievelijk groepen 1 en 3 en groepen 2 en 4 samen nemen) blijkt dat het aantal producten bij klanten met een lage afwijking beduidend lager is dan bij klanten met een hoge afwijking. Omgekeerd gesteld komt dat overeen met de bevindingen van MacGregor en Ormerod (1996) dat het voor mensen moeilijker wordt om het handelsreizigersprobleem op te lossen naarmate ze meer locaties dienen te bezoeken.
Naarmate de volgorde-afwijking hoger wordt zal het aantal bezochte zones in de winkel stijgen evenals de totale winkeltijd. Bij een hogere route-afwijking zal men ook meer tijd doorbrengen in de winkel maar dit leidt niet noodzakelijk tot een hogere aankoopsom. Hiernaast worden paden met een lagere orde-afwijking gekenmerkt door producten die op regelmatige basis worden aangeschaft.
Samenvattend blijkt dat de route-afwijking in grote mate de paden bepaalt, maar dat de afwijking in volgorde een veel grotere overeenkomst vertoont met het aankoopgedrag. Hui et al. (2009b) onderzocht ook de invloed van een ongeplande trip op de afwijkingen van het pad in vergelijking met het TSP-optimum (Figuur 12). Hieruit blijkt dat naarmate het
21
aantal geplande bezoeken daalt, het optimale TSP-pad minder wordt gevolgd (van 27.5% naar 22.1%). De route-afwijking neemt toe bij een dalend aantal geplande bezoeken.
Figuur 12: Optimaal TSP-pad en orde- en route-afwijkingen in functie van de mate van planning. Bron: Hui et al. (2009b).
Hui et al. (2009a) melden dat de hedendaagse marketing actief is op verschillende domeinen naast het verzamelen van gegevens over de bewegingspatronen van klanten. Zo is er een verdere integratie met GPS-gegevens (Burke 2005). Ook worden de patronen van online webshoppings geregistreerd en bestudeerd. ‘Eye tracking’ omvat de studie van de bewegingen van de ogen. Deze gebeurt op basis van een corneal reflection technologie.
3.8.
Bluetoothtracking en positiebepaling
In de literatuur werd, voor marketingtoepassingen, op heden nog geen gebruik gemaakt van Bluetoothsignalen om de bewegingen van klanten te registreren. Net als bij RFID is er de mogelijkheid om Bluetooth te gebruik voor positiebepaling en trackingopdrachten. Hierbij wordt gebruik gemaakt van het unieke MAC-adres (Media Access Control) van elk Bluetoothdevice. Vele GSM-toestellen zijn heden ten dage voorzien van een Bluetoothsensor. Wanneer deze is ingeschakeld en ‘zichtbaar’ is kan deze worden geregistreerd.
Bluetooth is een draadloos communicatiemiddel en komt tot stand door een radioverbinding die zich in de ISM-band (Industrial, Scientific and medical) bevindt met een frequentie van 2,45 GHz (Hallberg & Nilsson, 2002). Vele toepassingen maken gebruik van deze frequentieband zoals microgolfovens en afstandsbedieningen. Om storing te vermijden maakt Bluetooth gebruik van frequency hopping, deze techniek zorgt ervoor dat er geen interferentie
22
plaatsvindt met andere frequenties. Hierbij wordt de ISM-band opgedeeld in 79 kanalen en laat men de frequentie zo’n 1600 keer per seconde wisselen van kanaal. Dit brengt met zich mee dat er heel wat verbindingen tot stand kunnen komen binnen de beperkte frequentiebreedte (Hallberg & Nilsson, 2002). Hiernaast maakt Bluetooth ook gebruik van Forward Error Correction (FEC) om fouten in de doorgestuurde pakketten te achterhalen (Pels et al., 2005).
Bluetooth implementeert een ‘master/slave’ – verbinding. Diegene die het initiatief toont om een verbinding op te starten, zal aangeduid worden met master. Deze verbinding wordt ook wel een piconet genoemd. Een andere benaming is een ‘Personal Area Network’ (PAN) (Cheung et al., 2006). Bluetooth heeft het voordeel geen zichtverbinding te zijn. Dit houdt in dat er de toestellen die met elkaar in verbinding wensen te staan geen directe ‘line of sight’ nodig hebben (Agostaro et al., 2004). Doordat men gebruik maakt van een radioverbinding kan het signaal door verschillende materialen behalve metaal.
Bluetoothsensoren worden ingedeeld in 3 klassen (Pels et al., 2005). Deze indeling geschiedt op basis van het energieniveau. Klasse 1 devices kennen een maximaal energieniveau van 100 mW. Met behulp van deze devices kunnen verbindingen tot stand komen waarbij de afstand tussen de master en slave tot 100 meter bedraagt. De klasse 2 devices kennen een range van 10 m en een energieniveau van 2.5 mW EIRP. Klasse 3 wordt toegepast voor verbindingen met een geringe afstand tot 1m tussen de master en slave daar het energieniveau slechts 1MW EIRP bedraagt. Vanwege de eigenschappen van een elektromagnetische golf zal de range ook bepaald worden door de omgevingsfactoren (outdoor/indoor omgeving, aanwezigheid gebouwen en andere hindernissen).
Bluetoothsignalen kunnen gebruikt worden bij trackingopdrachten. Hierbij wordt een device geregistreerd wanneer het binnen het bereik komt van een Bluetoothsensor. Het concept houdt in dat men een aantal scanners, die een Bluetoothtoestel kunnen detecteren, zal plaatsen binnen het studiegebied. Wanneer de scanner een Bluetoothapparaat detecteert wordt het MAC-adres, tijdstip en klassenummer geregistreerd (Pels et al., 2005). Het MAC-adres is een uniek nummer en zorgt voor de identificatie van het toestel. Dit nummer bevat ook informatie over de producent van het toestel. Het type toestel (GSM, PDA, laptop,…) kan worden afgeleid uit het klassenummer (Pels et al., 2005). Een voorwaarde bij de detectie is wel dat het
23
toestel zich binnen de range van de scanner bevindt. De range is afhankelijk van de klasse van de Bluetoothsensor en bedraagt voor klasse 2 sensoren gemiddeld 10 m.
Een andere toepassing is de positionering aan de hand van Bluetooth. Gecapteerde Bluetoothsignalen worden hierbij gebruikt om de exacte locatie van het Bluetoothdevice te bepalen. Voornamelijk geschiedt dit door middel van een multilateratie op basis van de Radio Signal Strength Indicator (RSSI) waarde. De RSSI-waarde geeft en indicatie van de afstand van het toestel (Bluetoothdevice) t.o.v. de scanner. Op basis van het proximity principe is het mogelijk een beeld te krijgen van de locatie van het Bluetoothdevice. Zoals wordt aangetoond in figuur 13 is het steeds noodzakelijk de afstand tot minstens drie Bluetoothscanners te bepalen.
Figuur 13: Trilateratie. Bron: Agostaro et al., 2004.
4. MATERIALEN EN METHODEN
4.1.
Bluetoothtracking: Locatie
Bij de zoektocht naar een geschikte locatie om het project uit te voeren kwam snel positieve respons van het Gent Zuid shoppingcenter. Tevens vormde het geen enkel probleem om het project uit te voeren in het najaar van 2010. In overleg werd de meetperiode vastgelegd op 2 december 2010 t.e.m. 20 december 2010. Het Gent Zuid shoppingcenter bevindt zich op het Woodrow Wilsonplein 4 te Gent en wordt beheerd door Devimo (Figuur 14). Het Urbis-Zuid complex wordt omsloten door de Kuiperskaai, het Woodrow Wilsonplein en de Oudescheldestraat.
24
Het shoppingcenter maakt gebruik van drie verdiepingen (-1, 0 en +1) van het Urbis-Zuid complex. De overige verdiepingen werden geïnstalleerd als kantoorruimtes en appartementen. Het shoppingcenter Gent Zuid bevat 39 handelspanden. Bijlage 1 geeft hiervan een overzicht.
Het shoppingcenter kent drie hoofdingangen en één zij-ingang. Hiernaast is het shoppingcenter, via verdieping -2 en -3, verbonden met het ondergronds garagecomplex Gent Zuid. Devimo stelde, in het kader van dit onderzoek, een Autocad document ter beschikking met aanduiding van alle ruimtes per verdieping. Een overzicht van de winkels, per verdieping, is terug te vinden in bijlage 2.
Figuur 14: Ligging shoppingcenter Gent Zuid (A) en Veldstraat (B). Bron: Google Maps.
4.2.
Bluetoothscanners
Daar de doelstelling van deze masterthesis erin bestaat Bluetoothdevices te traceren tijdens hun bezoek aan het shoppingcenter Gent Zuid, wordt gebruik gemaakt van Bluetoothscanners om de ontvangen Bluetoothsignalen te capteren. Bluetoothscanners zijn opgebouwd uit een reken- en opslageenheid en een Bluetoothsensor. De sensor wordt met de scanner verbonden
25
door middel van een USB(Universal Serial Bus)-kabel. De Bluetoothscanners werden zo geprogrammeerd dat deze constant zoeken naar ‘zichtbare’ Bluetoothdevices binnen de range en deze gaan registreren door hun MAC-adres en klassenummer, samen met het tijdstip, op te slaan. De Bluetoothscanner stuurt naar alle apparaten in het bereik een verzoek uit waarop wordt gereageerd door het MAC-adres van het device vrij te geven. Het spreekt voor zich dat enkel de zichtbare Bluetoothdevices worden geregistreerd. Dit brengt met zich mee dat, in tegenstelling tot experimenten die in de marketing reeds geschiedden, niet elk individu wordt getraceerd. Een ratio moet bepaald worden om na te gaan hoeveel procent van de bezoekers een zichtbaar Bluetoothdevice bij zich hebben.
4.2.1. Software
De Bluetoothscanners zijn zo geprogrammeerd dat deze voortdurend zoeken naar beschikbare Bluetoothdevices. Van zodra een device binnen het bereik komt van een scanner wordt het MAC-adres, tijdsaanduiding, status en klassenummer weggeschreven in een logfile. De status bevat drie mogelijke waarden; in, out en pass. Wanneer een Bluetoothdevice binnen het bereik komt van de scanner wordt in geregistreerd, out wanneer het niet verder wordt gedetecteerd en pass wordt weggeschreven wanneer dit Bluetoothdevice slechts één maal werd gedetecteerd. De individuele detecties worden samengevoegd tot een tijdsinterval d.m.v. een buffertijd van 10 seconden. Op deze manier wordt redundantie voorkomen. Hiernaast wordt ook een logfile aangemaakt die per registratie de RSSI-waarde wegschrijft.
4.2.2. Hardware
De Bluetoothscanners zijn uitgerust met een Alix 2D2 embedded board als Central Processing Unit (CPU). Dit moederbord beschikt over een seriële poort, 2 USB-poorten en twee ethernetpoorten (RJ-45). De 500 MHz AMD Geode LX800 processor verzorgt de verwerking. Het intern geheugen bestaat uit 256 MB DDR DRAM. De software werd geïnstalleerd op een 1 GB Industrial CompactFlash (CF). De logfiles worden ook naar deze CF kaart weggeschreven. Door een USB-stick aan te sluiten op de Bluetoothscanner worden deze overgezet. Het geheeld wordt omsloten door een plastic behuizing ter bescherming. Een netsnoeradapter met een spanning van 18 valt voorziet het geheel van elektriciteit. Er werd
26
gebruik gemaakt van 3 soorten Bluetooth-sensoren; D-link DBT-122 (klasse 2), Sena UD100 (klasse 1) en Trust 15542 (klasse 2). Figuur 15 geeft een overzicht van de hardware met Bluetoothdongle D-link DBT-122.
Figuur 15: Overzicht hardware. Bron: Eigen onderzoek.
4.2.3. Output
Per uur wordt een logfile bijgehouden van de gecapteerde signalen. Figuur 16 geeft een aantal regels van dergelijke logfile weer. Zoals reeds gemeld bevat elke regel een aanduiding van de datum, tijd, MAC-adres en het klassenummer. Hiernaast wordt ook de melding in, out en pass geregistreerd.
20101209-183414-CET,00027616FC9B,9600,in 20101209-183419-CET,00027616FC9B,9600,out 20101214-150100-CET,00027623164D,9600,pass
Figuur 16: Overzicht logfile. (Bron: Eigen onderzoek).
Per registratie wordt ook de RSSI weggeschreven. Deze geeft een aanduiding van de signaalsterkte. Een voorbeeld van dergelijk bestand wordt weergegeven in onderstaande figuur 17.
20101127-134201-CET,00:21:9E:BE:A6:B0,-76 20101127-134201-CET,44:4E:1A:75:83:27,-80 20101127-134203-CET,00:BD:3A:9F:8F:DA,-75
Figuur 17: Logfile RSSI. (Bron: Eigen onderzoek).
27
De Bluetoothscanners worden opgesteld op een gekende locatie. Daar elk Bluetoothdevice geregistreerd wordt a.d.h.v. het MAC-adres en er een registratie is van de tijd kunnen de logfiles van verschillende scanners gecombineerd worden. Op deze manier wordt voor elk MAC-adres een traject of pad gereconstrueerd. Dit pad voldoet aan de voorwaarden zoals gesteld door Hui et al. (2009a). Op deze manier is het mogelijk interessante informatie te verwerven omtrent de interactie van de consument met de omgeving.
4.3.
Testcases
Aan de vakgroep Geografie (CartoGis) werd de technologie reeds toegepast om het verplaatsingsgedrag op massa-evenementen (Rock Werchter, I Love Techno, Horecabeurs, …) te analyseren. Het is belangrijk na te gaan of de hardware en software geschikt zijn voor metingen in een indoor omgeving. In elke testcase werd gebruik gemaakt van een Nokia E71 als Bluetoothdevice.
4.3.1. 22 september – 24 september 2010
De doelstelling van de eerste testcase was om de huidige hardware en software te testen in een indooromgeving. Hierbij werd het bereik bepaald van de Bluetoothsensor D-link DBT-122 en werd nagegaan of het shoppingcenter voldoende bezoekers kent. Het is noodzakelijk om over voldoende Bluetoothdevices te kunnen beschikken zodoende een uitspraak te kunnen doen omtrent het globale verplaatsingsgedrag.
Het eerste luik van de testcase werd uitgevoerd in de Etam lingeriewinkel (verdieping 0). Om het bereik van de Bluetoothsensor te bepalen werd deze verbonden aan een laptop d.m.v. een USB-kabel. Een pythonscript (Bijlage 9) werd op de laptop geïnstalleerd om na te gaan of de Nokia E71 nog gecapteerd wordt.
Hiernaast werd een Bluetoothscanners in het handelspand Matulu geplaatst. Deze scanner zocht naar zichtbare Bluetoothdevices van woensdagmiddag (22/09) 15u00 t.e.m. vrijdagmiddag 13u00 (24/09).
28
4.3.2. 1 oktober – 4 oktober
Daar het bereik van de Bluetoothsensor D-link DBT-122 dermate groot is, ontstond de vrees niet eenduidig te kunnen bepalen of een bepaald MAC-adres in de winkel werd gezien of ergens in de buurt. Om dit te testen werd een dataset aangelegd. Van 1 oktober tot en met 4 oktober werden er Bluetoothscanners geplaatst in 3 aan elkaar palende winkels (Figuur 18); Etam, Essenza en Jack & Jones. Deze werden strategisch uitgekozen. Eerst en vooral bevinden deze winkels zich op het gelijkvloers. Hierdoor was het mogelijk te bepalen of er Bluetoothdevices aan de buitenkant van het shoppingcenter (Kuiperskaai) werden geregistreerd. Die mogelijkheid kwam aan het licht na de resultaten van de eerste test. Tevens was het ook mogelijk na te gaan of er de verdieping eronder en erboven detectie mogelijk is.
Figuur 18: Locatie van verschillende Bluetoothsensoren voor testcase. Bron: eigen onderzoek.
Hiernaast werd aan de winkelverantwoordelijke van de desbetreffende winkels ook de telgegevens van hun lichtsluis gevraagd (Tabel 1). Deze werden als referentie gebruikt bij het bekomen resultaat. De Bluetoothsensoren werden zo ver mogelijk naar achteren in de winkel geplaatst zodoende het bereik vooraan maximaal te beperken. Naast een logfile wordt, zoals hierboven reeds
29
aangegeven, ook een RSSI-waarden genoteerd bij elke registratie. Dit laat toe de registraties te filteren op basis van hun RSSI-waarden. De telgegevens dienen als leidraad om het bekomen resultaat te toetsen aan de realiteit.
Tabel 1: Bezoekersaantallen in Etam, Jack & Jones en Essenza Bron: Eigen onderzoek. Zaterdag 2 oktober 2010 Etam Jack en Jones Essenza
Bezoekers 364 741 n.v.t.
Klanten 51 104 286
Maandag 4 oktober Etam
153
27
Totaal geteld in shoppingcenter 2 oktober: 13.374 4.3.3. Verder onderzoek
Het is niet mogelijk een eenduidige resultaat te bekomen d.m.v. een filtering op basis van de RSSI-waarden. Het is noodzakelijk na te gaan hoe de RSSI-waarde varieert in functie van de afstand. Hiervoor werd een testbed opgestart in de S8 (indoor omgeving) en werd outdoor de RSSI-waarde bepaald i.f.v. de afstand voor elke Bluetoothsensor. Om de range globaal gezien te beperken werd gebruik gemaakt van aluminiumfolie rondom de Bluetoothsensor. Deze werd volledige ingepakt. Hierdoor ontstaat het effect van de kooi van Faraday (http://nl.wikipedia.org/wiki/Kooi_van_Faraday, 17 mei 2010). De Kooi van Faraday, genoemd naar Michael Faraday, is de benaming voor een kooivormige constructie van elektrisch geleidend materiaal zoals koper of ijzer die er voor zorgt dat statische elektrische velden niet tot binnen de kooi kunnen doordringen. In de praktijk wordt de term "kooi van Faraday" tegenwoordig hoofdzakelijk gebruikt voor ruimtes die elektromagnetische straling buitensluiten: ‘elektromagnetisch dode ruimtes’. In casu zorgt het aluminiumfolie rondom de sensor voor een afscherming van het signaal.
30
4.3.3.1.
Indoor
De Bluetoothsignalen hebben indoor invloed van verschillende foutenbronnen zoals bv. multipath. Het is noodzakelijk een goed beeld te bekomen van de locatie afhankelijke parameters van het opgemeten radiosignaal in het studiegebied, in casu een bureauruimte in de S8. In de literatuur worden deze parameters bepaald door Li et al. (2006) en Ching et al. (2010) voor Wi-Fi signalen d.m.v. fingerprinting. Deze methodologie wordt hier toegepast voor Bluetooth-signalen. Elke plaats heeft een unieke reeks vindbare Bluetoothtoegangspunten en bijhorende signaalsterktes. Deze reeks is gekend als een vingerafdruk. Fingerprinting impliceert het onderzoeken van het dekkingsgebied, het registreren van de Bluetooth-vingerafdrukken over het gebied en het opslaan van deze in een gegevensbestand. (Ching et al., 2010).
Locatie fingerprinting bestaat uit twee fasen: training en positionering. Het doel van de trainingsfase is het opbouwen van de vingerafdruk database. Hiertoe moeten eerst referentiepunten zorgvuldig worden geselecteerd. Op een referentiepunt wordt de signaalsterkte van alle Bluetooth-toegangspunten gemeten. De kenmerkende eigenschap van het referentiepunt is bepaald door deze metingen en wordt vervolgens opgenomen in de database. In de positioneringfase meet de mobiele gebruiker de ontvangen signaalsterktes. De metingen worden vergeleken met de data in de database met behulp van een geschikt zoek/matching algoritme. Het resultaat is de meest waarschijnlijke locatie van de mobiele gebruiker.
Het spreekt voor zich dat in het kader van dit onderzoek enkel een studie van RSSI t.o.v. de afstand belangrijk is. Hiervoor werd de volledige ruimte (gang, muren, kasten) opgemeten met een totaalstation Pentax R-325 N. Hiernaast werden 45 markeringen op de grond ook ingemeten. Deze markeringen werden in een vorm van een raster aangebracht. De Bluetoothsensor werd aan de muur bevestigd en verbonden d.m.v. een USB-kabel aan een laptop. Deze laptop is voorzien van een pythonscript (Bijlage 9). Op deze manier is het mogelijk de gemiddelde RSSI, standaardafwijkingen en aantal metingen per cyclus te bepalen. Om de herhaalbaarheid na te gaan werden de 45 punten tweemaal ingemeten. Dit voor de Bluetoothsensor D-link DBT-122 met en zonder aluminiumfolie. Als Bluetoothdevice
31
werd opnieuw gebruik gemaakt van een nokia E71. Deze werd op een statief geplaatst en boven elk opstelpunt opgesteld.
De topografische achtergrond wordt bekomen door de ingemeten gegevens via Octopus in te lezen en om te zetten in een DXF-formaat. In ArcMap is het mogelijk deze te importeren met hiernaast de exacte RSSI-waarden per markeerpunt. Door de functie kriging in ArcMap is het mogelijk een interpolatie uit te voeren tussen de verschillende punten. Bij het interpoleren wordt rekening gehouden met 8 punten rondom de te schatten waarde. Bij elke test wordt gebruik gemaakt van dezelfde klassenbreedten.
4.3.3.2.
Outdoor
Outdoor werd voor elke sensor het verband tussen de RSSI en afstand bepaald. Alle Bluetoothsensoren (D-link DBT-122, Sena UD100, Trust 15542) werden getest met en zonder aluminiumfolie. Hiervoor werd een markering aangebracht op de grond (asfalt) met behulp van krijt. De eerste 10 meter werd om de meter opgemeten. Verder werd een markering aangebracht om de 2 meter. De Bluetoothsensor werd aangebracht op een houten stoel. De Nokia E71 werd aangebracht op een statief en werd telkens met dezelfde oriëntatie boven elk opstelpunt opgesteld. Het Pythonscript is zo geschreven dat er verschillende inquiries zijn per opstelpunt. Hier wordt de mediaan en gemiddelde van bepaald. In Excel worden verschillende grafieken opgemaakt zodoende een beeld te krijgen van de RSSI t.o.v. de afstand tot de Bluetoothsensor.
4.4.
Data acquisitie
Het is van groot belang de Bluetoothscanners op strategische plaatsen te installeren zodoende een goed idee te krijgen met betrekking tot de ingangen, ruimtes en handelspanden die werden aangedaan.
Hiervoor is het noodzakelijk de verschillende handelspanden te voorzien van een Bluetoothscanner. Hiernaast worden ook de ingangen, de toegangen naar de kantoorruimtes en de garage van een scanner uitgerust. Op deze manier is het mogelijk voor elk device te bepalen waarlangs het naar binnen kwam, welke winkels er werden bezocht en op welke
32
manier deze het shoppingcenter verlaat. Hiernaast worden ook sensoren aan de kassa’s van de Match geplaatst. Ook de Veldstraat werd van een sensor voorzien. Op deze manier is het mogelijk de bezoekersaantallen te vergelijken, na te gaan of er een overlapping bestaat tussen het publiek, etc. . Om de invloed van het weer op de data te achterhalen werd informatie van het weerstation in Zwijnaarde opgevraagd bij het KMI. Deze gegevens omvatten, per uur, de gemiddelde temperatuur, luchtvochtigheid en neerslag.
De Vakgroep Geografie beschikte reeds over 29 Bluetoothscanners. Daar het snel duidelijk was dat dit niet voldoende is om de ingangen, winkels en parking te voorzien werd financiële hulp voor de aanschaf van 30 extra sensoren geboden door Devimo. Zonder deze financiële steun kon dit project nooit tot stand komen. In totaal werden 56 sensoren voor dit project ingeschakeld.
4.4.1. Plaatsing sensoren
De verschillende winkels werden van een scanner voorzien. Enerzijds moeten de Bluetoothscanners en sensor op een veilige plaats worden weggeborgen zodoende schade aan de hardware te voorkomen. Daar de Bluetoothscanners voortdurend moeten voorzien worden van elektriciteit blijkt dit vooral een bepalende factor te zijn voor de plaatsing van de scanner. Daar er een USB-kabel van 5m de Bluetoothsensor met de Bluetoothscanner verbindt is het mogelijk de sensor op een strategische plaats te monteren. Een overzicht van wanneer de Bluetoothscanners werden geïnstalleerd, waar deze werden geplaatst en welke Bluetoothsensoren er werden gebruikt wordt weergegeven in bijlage 3. Alle Bluetoothscanners werden geïnstalleerd voor 2 december en werden afgebroken op 21 december.
4.4.2. Plaatsing sensoren Match
Voor
dit
project
kwam
er
een
samenwerking
met
Match
tot
stand.
De
winkelverantwoordelijke (Dhr. Devos) en marketingverantwoordelijke (Mevr. Müller) gaven de toestemming om hun database met aankoopgegevens te raadplegen. De bekomen gegevens omvatten, indien in bezit van een klantenkaart, per klant het aankoopgedrag, leeftijd, geslacht.
33
Voor de klanten die niet over een klantenkaart beschikken wordt enkel het aankoopbedrag aangeleverd. Het is uniek demografische variabelen te koppelen aan traject-data. Vijf kassa’s worden voorzien van een Bluetoothsensor. De sensor wordt geplaatst onder het betaalsysteem. Doordat de klant zich bij het inpakken en betalen recht voor de sensor bevindt is het mogelijk een interval te bekomen met een hoge RSSI-waarde. Door de drempelwaarde zo te bepalen wordt enkel dit Bluetoothdevice geregistreerd.
Doordat er een tijdsopname is bij elke betaling in het kassasysteem en een tijdsopname bij registratie van een MAC-adres is het mogelijk beide gegevens aan elkaar te koppelen.
4.4.3. Uitlezen data
Om problemen met de Bluetoothscanners tijdig op te merken werden de data van elke Bluetoothscanner om de twee dagen uitgelezen. Achteraf bleek dit voor de kwaliteit van de dataset cruciaal. Vele problemen kwamen aan het licht; softwarefouten, stroompannes, bewust uit het stopcontact trekken van de Bluetoothscanners, etc. Op deze manier kon voorkomen worden dat er zich grote ‘gaten’ in de dataset bevinden. Het grootste probleem naar de analyses toe is de afwijking van de geregistreerde tijd op de Bluetoothscanners t.o.v. de ‘echte’ tijd. Voordat de scanners werden geïnstalleerd, werden deze allen gesynchroniseerd met de ‘echte’ tijd. Na enkele dagen kwam aan de oppervlakte dat er een verschil ontstond van enkele minuten. Problematisch voor de verdere analyses is dat deze afwijking niet voor elke scanners dezelfde is. Hiermee werd dan ook rekening gehouden bij verdere analyses. Een overzicht van de afwijking t.o.v. de ‘echte’ tijd wordt weergegeven voor elke Bluetoothscanner in bijlage 14.
4.5.
Data filtering
Het is cruciaal de MAC-adressen eenduidig aan de winkels te kunnen toewijzen. Hierbij werd gebruik gemaakt van volgende methodologie. Voor elke winkel werd, met behulp van een Nokia E71, aan de ingang de RSSI-waarde bepaald. Deze dient als basis voor de filtering in post-processing. Hiervoor werd een Python script (Bijlage 10) geschreven zodoende de data te filteren op basis van de drempelwaarde. Dit zorgt ervoor dat de range van de sensor wordt beperkt. Daar dit er steeds zal voor zorgen dat er een fuzzy border blijft bestaan is het cruciaal
34
bijkomende stappen uit te voeren. Figuur 19 geeft voor twee Bluetoothscanners (1000 en 2000), geplaatst in aan elkaar palende winkels, de range weer. De doorsnede (grijze zone) bevat een verzameling van Bluetoothdevices die gelijktijdig door scanner 1000 en 2000 worden geregistreerd. In GisMo is het mogelijk een tabel te bekomen waarbij deze overlapping wordt nagegaan (Bijlage 4). Idealiter is deze tabel opgebouwd uit nullen (lege verzameling) waardoor de range van elke sensor zodanig wordt verkleind dat er geen overlapping meer bestaat. Hiernaast is het ook noodzakelijk eventuele passanten die getraceerd worden eruit te filteren. Dit geschiedt in GisMo door de korte intervallen (bv. 10 seconden) weg te laten. Dit werd voor elke sensor bepaald afhankelijk van de grootte van de winkel (Bijlage 5).
Figuur 19: Visuele verduidelijking bij methodologie filtering. Bron: Eigen onderzoek.
4.6.
Ratio(bepaling)
De Bluetoothscanners registreren enkel de zichtbare Bluetoothdevices. Hierdoor beschikt men enkel over een steekproef van het effectieve aantal bezoekers. Om een beeld te krijgen van het totaal aantal bezoekers wordt de ratio bepaald. De ratio geeft het percentage weer van het aantal Bluetoothdevices t.o.v. het totaal aantal bezoekers.
Er werd gebruik gemaakt van twee methoden om de ratio te bepalen. Eerst en vooral werden videobeelden gemaakt van de beveiligingscamera (zie CD-Rom onder de map videobeelden) ter hoogte van ingang Wilsonplein. Deze beelden dateren van 2 december 15u00 – 16u30.
35
Deze locatie is uitstekend daar de bezoekers door de ingang passeren waarboven een Bluetoothsensor werd geplaatst.
Hiernaast zijn ook telgegevens van lichtsluizen aan winkels beschikbaar. Deze werden bezorgd per dag. De telgegevens kunnen getoetst worden aan het aantal gescande unieke MAC-adressen op die welbepaalde dag.
4.7.
Data verwerking
4.7.1. GisMo (Gis for Moving objects)
Mathias Versichele is sinds het begin van zijn doctoraatsthesis begonnen met het ontwikkelen van software om de files, afkomstig van de Bluetoothscanners, eenvoudiger te analyseren en te interpreteren. In Java werd een programma geschreven waarmee het mogelijk is om de logfiles rechtstreeks in te laden en bevragingen er op toe te passen. Hiernaast beschikt GisMo ook over een aantal visualisatie mogelijkheden. Hiertoe behoren flowcharts, histogrammen. Dit programma zorgt voor een vlottere interpretatie van de verworven data.
Voor sequentieanalyses wordt enkel gebruik gemaakt van de data van 2 december tot en met 4 december. De klokken van de Bluetoothscanners wijken namelijk steeds meer af van de ‘echte’ tijd naarmate de meetperiode vordert. Deze drift is niet voor elke Bluetoothscanner gelijk (zie 4.4.3.). Dit heeft vanzelfsprekend een enorme invloed op de sequenties.
De data van elke scanner werd ingeladen. Een aantal zones werden aangemaakt (‘ingangen’, ‘h_en_m’, ‘match’, ‘mon_dada’). Deze zones groeperen de captaties van verschillende sensoren. Vervolgens werd de data onderverdeeld in trajecten. Hierbij werd de maximum gap bepaald op 43200 seconden of 12 uur. Per dag wordt zo voor elk MAC-adres een traject bekomen. MAC-adressen die meerdere dagen werden gezien zullen op deze manier meerdere trajecten kennen.
36
4.7.2. TSP-vraagstuk
Hui et al. (2009b) beschrijven een methodologie om de travel en order deviation te bepalen in een supermarkt. Op basis van deze resultaten worden de klanten ingedeeld in clusters. Deze methodologie wordt hier toegepast op een ander schaalniveau, namelijk het winkelniveau. De data, van 2 t.e.m. 4 december, werd geanalyseerd en de travel deviation werd bepaald. In GisMo werd voor elk traject de sequentie geëxporteerd.
Dit bestand geeft voor elk traject de verschillende locaties weer en is als volgt opgebouwd. Aan elke winkel wordt een code toegekend (bv. Ab) op basis waarvan de sequenties worden weggeschreven, bijvoorbeeld: 001E457ED831_1:BdAoApBgAlBvApBd. Deze bezoeker (001E457ED831), met als eerste traject, kwam binnen langs het Wilsonplein, ging vervolgens naar H&M(0), H&M(1), L&L, Essenza, Piepoos, H&M(1) en verliet het shoppingcenter via het Wilsonplein. Welke winkel met welke code overeenstemt wordt weergegeven in bijlage 6. Het volledige bestand met de sequenties is terug te vinden op CDRom onder de map TSP/sequenties.
De afstand tussen de verschillende winkels (afstandenmatrix in bijlage 7) en ingangen wordt bepaald a.d.h.v. de opmetingsplannen in Autocad van het shoppingcenter Gent Zuid. De afstand van elk afgelegd traject wordt bepaald op basis van de sequentie. Vervolgens wordt elke sequentie omgerekend tot een sequentie waarbij de bezoeker een zo kort mogelijke afstand aflegt om dezelfde winkels aan te doen. Op basis van deze bekomen sequentie wordt de kortst mogelijke afstand bepaald. Tenslotte wordt de travel deviation (%) uitgedrukt als de verhouding van de kortst mogelijke afstand t.o.v. de werkelijk afgelegde weg.
4.7.3. R
Het statistisch softwarepakket R wordt toegepast om een clusteranalyse en een principale componentenanalyse (PCA) uit te voeren op de verworven dataset.
37
4.7.3.1.
Clusteranalyse
Clusteranalyse is een verzamelnaam voor een bijna ontelbaar aantal technieken en procedures. E. Omey (2006) definieert clusteranalyse als volgt: “Het doel van de clusteranalyse is dus gevallen in groepen te sorteren, zodanig dat een hoge mate van gelijkenis bestaat tussen gevallen in dezelfde groep en een lage mate van overeenkomst tussen gevallen behorend tot verschillende groepen”. Op deze manier wordt een mogelijk aanwezig structuur in de gegevens blootgelegd. In deze studie geschiedt, tegenstelling tot deze die uitgevoerd werd door Larson et al. (2005), de clustering op winkelniveau.
Hier dient rekening gehouden te worden met het feit dat er binaire (0 of 1) waarden aanwezig zijn. Werd de winkel bezocht of niet. Hierdoor kan men de gegevens zien als een ‘pick any’ methode. Om een clusteranalyse uit te voeren moeten een aantal vragen beantwoord worden (Omey, 2006):
1) Keuze van de afstandsindex
Afstandsindices zijn er zowel voor binaire als continue data (bv. Euclidian sum of squares index). Er wordt geopteerd om deze index toe te passen op de verworven data. Echter onderzoek heeft uitgewezen dat eerder de keuze van de clusteralgoritmes een grote invloed kennen op het eindelijke resultaat, niet de afstands/similariteitsindex (Omey, 2006).
2) Clusteralgoritmes
Volgens Omey (2006) moet er een onderscheid gemaakt worden tussen hiërarchische methoden, partitiemethoden en alle overige clusteralgoritmes. Hiërarchische methoden kunnen samenvoegend of splitsend zijn. Samenvoegende methoden vertrekken van n individuen die elk één cluster voorstellen. Vervolgens worden de twee cluster met de hoogste similariteit of kleinste dissimilariteit of afstand samengevoegd. Dit wordt verdergezet totdat alle individuen in 1 cluster zijn opgenomen. Splitsende methoden vertrekken van 1 cluster dat alle n individuen bevat, en deelt die op in twee groepen, waarna die groepen verder opgesplitst worden in twee groepen en tot n clusters resulteren. Op deze manier is een visualisatie d.m.v. een dendrogram mogelijk.
38
Er bestaan verschillende clusteralgoritmes (Omey, 2006). De single linkage methode voegt de twee clusters samen met de hoogste similariteit (of kleinste afstand). Complete linkage bepaalt de verst van elkaar verwijderde individuen en gaat op basis daarvan tot clusters komen. De average linkage methode houdt dan weer rekening met de gemiddelde afstand tussen de paren van individuen. De methode van Ward bepaalt het informatieverlies dat gepaard gaat met het groeperen in clusters. Dit geschiedt door de som te berekenen van de gekwadrateerde afwijkingen van elk punt in een cluster tot het gemiddelde van dat cluster. Alle mogelijke combinaties van twee clusters worden in elke fase nagegaan en de fusie van die twee clusters die de kleinste toename in de som van de gekwadrateerde afwijkingen meebrengt, wordt doorgevoerd. Er wordt getracht clusters te genereren met een zo minimaal mogelijke variantie binnen elk cluster.
Geen enkele hiërarchische methode is optimaal. Volgende problemen kunnen zich voordoen (Van Kenhove, 1989): -
Keteneffect (KET)
-
Storende invloeden van bijkomende attributen of variabelen (VAR)
-
Het verloren gaan van de eigen karakteristieken van een kleine cluster bij fusie met een grote cluster (KLE)
-
Gevoeligheid voor uitschieters (OUT)
Rekening houdende met deze foutenbronnen wordt geopteerd voor de methode van Ward bij de analyse van de verworven data. Onderstaande figuur geeft een overzicht van de fouten horende bij elke methode Single linkage Complete linkage Average linkage - UPGMA - WPGMA Centroïde methode Meidaan methode Methode van Ward
KET P P
VAR
KLE
OUT P P
P P P
P
P P
P P
Figuur 20: Problemen bij hiërarchische methoden (P). Bron: Van Kenhove (1989).
39
Om deze clusteranalyse uit te voeren werd een tabel opgesteld met per rij een aanduiding welke winkels (kolommen) er werden bezocht door een MAC-adres. Tabel 2 bevat een uittreksel hiervan. Deze tabel bevat binaire data, 0; niet bezocht, 1; wel bezocht.
Tabel 2: Input voor de clusteranalyse Bron: Eigen onderzoek. crinckles essenza cassis mon_dada h_en_m_1 h_en_m_0 ici_paris_xl parking free_record_shop brasserie_tzuid damart the_phone_house pictro cityBloem standaard_boekhandel pronti …
0001950AF6C4 0001950AF70E 0001950B3120 0001950B38FC … 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Tabel 2 wordt als input gebruikt bij analyse waarbij data van woensdag, zaterdagen, weekdagen en de koopzondag met elkaar worden vergeleken. De code die in R werd gebruikt wordt weergegeven in Bijlage 10.
4.7.3.2.
Principale componentenanalyse (PCA)
Edwards & Allenby (2003) ontwikkelden een methodologie om structuren in een dataset, opgebouwd uit binaire data, bloot te leggen. Deze analyseert de pick any/J-data, waarbij elke bezoeker voor de keuze staat welke winkel(s) te bezoeken uit het totale aanbod aan winkels in het shoppingcenter. Edwards & Allanby stellen een ‘multivariate binomiale probit model voor. Deze methode heeft als voordeel dat er meer dan 50 items (J) kunnen opgenomen worden bij de schatting van de correlatie matrix. Op deze matrix kunnen verschillende
40
multivariate technieken toegepast worden om de relatie tussen de verschillende data bloot te leggen. Als input wordt een tabel aangemaakt met een structuur zoals weergegeven in tabel 3. Deze tabel geeft per MAC-adres per dag weer welke winkels er werden bezocht (1) en welke niet (0). Deze tabel is de getransponeerde van tabel 2 met een overzicht van elk MAC-adres per dag. De data van 56 sensoren van de volledige meetperiode wordt voor deze analyse gebruikt waarbij de sensoren genummerd worden van 1 t.e.m. 56. Om de rekentijd te beperken worden de gegevens van de Veldstraat en parking buiten beschouwing gelaten. De volledige lijst wordt weergegeven in tabel 4.
Tabel 3: Structuur van de input voor de PCA-analyse Bron: Eigen onderzoek. MAC-adres 001F5CC8B21A
Datum australian_ice_cream bel_company Blokker… 5/dec 0 0 0
Tabel 4: Overzicht sensoren Bron: Eigen onderzoek. Nr. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Winkel Nr. Winkel Nr. Australian Ice Cream 20 Ici Paris XL 39 Bel Company 21 Ingang Garage Match 40 Blokker 22 Ingang Hema 41 Brasserie 'T Zuid 23 Ingang Kantoren Kuiperskaai 42 Casar Match 24 Ingang Kuiperskaai 43 Cassis 25 Ingang loskade en provincie 44 Celio 26 ingang min2 kant lift 45 CityBloem 27 ingang min2 tegenover lift 46 Club 28 ingang min3 kant lift 47 Crinckles 29 ingang min3 tegenover lift 48 Damart 30 ingang Wilsonplein 49 Essenza 31 Jack en Jones 50 Etam 32 Kruidvat 51 Free Record Shop 33 Lisa en Lola 52 H&M 0 34 Match Kassa 2 53 H&M 1 35 Match Kassa 4 54 H&M Kinder 36 Match Kassa 5 55 Hema 37 Match Kassa 6 56 Hunkemöller 38 Match Kassa 7
Winkel Match selfscan Matulu Mon Dada (kant shopping) Mon Dada (kant Wilonsplein) NafNaf Panos Parking Pearle Opticiens Pictro Piepoos Pronti Randstad Standaard Boekhandel Street One The Phone House Venizi Veritas Young & Dynamic
De correlatiematrix maakt duidelijk op welke manier de data van de verschillende Bluetoothscanners met elkaar overeenstemt en maakt een schatting van de niet waargenomen
41
utiliteiten. Het opstellen van deze matrix met evenveel rijen en kolommen als er Bluetoothsensoren zijn geschiedt door voor elke winkel na te gaan hoe sterk er een similariteit bestaat in de data tussen deze winkels. De matrix is opgebouwd uit waarden van -1 t.e.m. 1; 1 houdt in dat de data identiek gelijk is; -1 volledig tegengesteld aan elkaar. De bekomen correlatiematrix is een symmetrische matrix met waarde 1 op de diagonaal (de data van één winkel is natuurlijk identiek aan die van zichzelf en volledig gecorreleerd).
De correlatiematrix wordt gebruikt als input voor een principale componenten analyse. In se wordt er een wolk van waarnemingen geplot in een 56 dimensionale omgeving. PCA biedt een antwoord om de variantie zo goed mogelijk weer te geven in een lager aantal dimensies. In totaal worden 56 dimensies bekomen, echter wanneer men de data wenst voor te stellen in één dimensie moet men zich richten tot de eerste dimensie daar deze de grootste verscheidenheid in de dataset aantoont.
Een verklaring voor de similariteit/dissimilariteit geschiedt d.m.v. een regressie-analyse (Edwards & Allenby (2003)). Zo wordt nagegaan in hoeverre de onafhankelijke variabele, de waarde van de loadings voor elke winkel in een bepaalde dimensie, verklaard kan worden door de afhankelijke variabelen ‘op welke verdieping is de winkel gelegen’ en de ‘grootte’ van de winkel. De loadings of ladingen betreffen de correlatiecoëfficiënten tussen de gemeten variabelen en de verklarende factoren.
De code die in R werd toegepast wordt weergegeven in Bijlage 11.
5. RESULTATEN
5.1.
Testcases
5.1.1. 22 september – 24 september
Om het bereik van de Bluetoothsensor D-link DBT-122 in het shoppingcenter te bepalen werd deze geplaatst in de Etam lingeriewinkel (Figuur 21). Door gebruik te maken van het pythonscript op de portable werd voortdurend gezocht naar Bluetoothdevices. Theoretisch gezien bedraagt het bereik van deze Bluetoothsensor ongeveer 10m. De theoretische range
42
wordt weergegeven door de grijze cirkel rondom de positie van de Bluetoothsensor. In praktijk werd het Bluetoothdevice (in casus nokia E71) gedetecteerd tot ver buiten de theoretische range. Op figuur 21 worden deze aangeduid door een groene stip. De plaatsen waar het toestel niet werd gedetecteerd worden op de figuur aangeduid door middel van een rode stip.
Opvallend is dat het Bluetoothdevice gedetecteerd werd in aanpalende winkel Essenza. Aanvankelijk werd gedacht dat dit niet mogelijk was vanwege de scheidingsmuur tussen beide handelspanden. Een detectie in Jack & Jones geschiedde niet daar er een draagmuur tussen beide winkels staat.
De range blijkt in de praktijk vele malen groter dan de theoretische 10m. Het doel is om enkel de klanten in Etam te registeren. Echter, klanten in CityBloem en Essenza worden ook gecapteerd door de Bluetoothscanner. Op basis van deze resultaten is het onmogelijk te zeggen of een bepaald Bluetoothdevice daadwerkelijk zich in de Etamwinkel bevond. Verder onderzoek was daarom noodzakelijk.
Om het bezoekersaantal te bepalen en na te gaan of deze voldoende groot is om het project te realiseren,
werd
een
Bluetoothscanners
geplaatst
in
krantenwinkel
Matulu.
Van
woensdagmiddag (22/09) 15u00 t.e.m. vrijdagmiddag 13u00 (24/09) werd er door een Bluetoothscanner voortdurend gezocht naar beschikbare Bluetoothdevices. In totaal werden 3491 unieke MAC-adressen geregistreerd. Er moet wel vermeld worden dat er hoogstwaarschijnlijk (gezien de resultaten van de eerste test) ook passanten op het Woodrow Wilsonplein werden geregistreerd. Daar elk MAC-adres gekoppeld kan worden aan een bepaald pad, spreekt het voor zich dat uit deze korte meetperiode, ongeveer twee dagen, een schat aan informatie te halen valt. Dit is een bevestiging dat de steekproef voldoende groot zal zijn. Wanneer het project daadwerkelijk wordt uitgevoerd wordt eveneens een ratio bepaald zodoende te bepalen hoeveel klanten zich daadwerkelijk in het shoppingcenter bevinden.
43
Figuur 21: Captatie Bluetoothsignaal van Bluetoothscanners in Etam. Bron: Devimo Autocadplan; eigen bewerking.
5.1.2. 1 oktober t.e.m. 4 oktober
Uit de eerste test kwam nadrukkelijk naar voor dat de range veel meer bedraagt dan de theoretische 10m. Gezien de compactheid van het shoppingcenter is het hierdoor moeilijk uit te maken of een Bluetoothdevice daadwerkelijk in een bepaalde winkel wordt gezien of niet. Het is cruciaal na te gaan of het in post-processing mogelijk is om met behulp van de RSSIwaarde een uitspraak te doen of het Bluetoothdevice zich daadwerkelijk in de winkel bevindt of niet. Om dit te achterhalen werden 3 Bluetoothscanners geplaatst in aan elkaar palende winkels; Etam, Jack & Jones en Essenza. De sensoren registreerden beschikbare Bluetoothdevices van 1 oktober 2010 t.e.m. 4 oktober 2010.
De scanner van Jack en Jones registreerde nauwelijks MAC-adressen. Dit is mogelijk te wijten aan de locatie. Deze scanner bevond zich boven ‘metalen’ planken. Agostaro et al. (2004) toonde aan dat metalen constructies effectief een invloed hebben op het signaal (afbuiging, reflectie,…).
44
De Bluetoothscanner in de Essenza registreerde enorm veel Bluetoothdevices van de straatzijde. Dit is duidelijk geworden na analyse van de data op zondag (sluitingsdag shoppingcenter). De scanner in de Etam traceerde geen enkel Bluetoothdevice op zondag. Het feit dat er Bluetoothdevices werden getraceerd op zondag in de Essenza is mogelijks een gevolg van de ramen aan de straatzijde. De data werd manueel gefilterd op basis van de RSSIwaarden. De RSSI-waarden van de geregistreerde MAC-adressen in beide winkels fluctueren zodanig dat het onmogelijk uit te maken is of een Bluetoothdevice zich op straat, binnen, in de aanpalende winkel of op de gang bevindt.
Manueel is het een lastige karwei om de MAC-adressen aan de winkels toe te wijzen. Er werden 39 MAC-adressen geregistreerd in de Etam, 64 in de Essenza waarvan er 11 in beide winkels werden geregistreerd. Het aantal geregistreerde MAC-adressen ligt binnen de lijn van de verwachtingen. Etam kende 364 bezoekers. Zekerheid omtrent deze gegevens is er niet daar de RSSI-waarde dermate fluctueert en er geen zekerheid bestaat dat deze 39 Bluetoothdevices in de Etam zijn geweest.
5.1.3. Onderzoek RSSI
5.1.3.1.
Indoor
Figuur 22 geeft de RSSI-waarden weer van de interpolatie tussen de 45 meetpunten. De Bluetoothsensor was niet omwonden met aluminiumfolie. De bureauruimte, kasten, deuropening en gang worden weergegeven. Het verval van de RSSI-waarde verloopt niet in cirkels rondom de sensor. Er is sprake van een duidelijke directionaliteit. De invloed van de kast is merkbaar bij meetpunten 15 en 16. De directe ‘line of sight’ is niet meer aanwezig waardoor de RSSI-waarde een sterk verval kent. Ditzelfde effect is eveneens duidelijk in de gang naarmate de Nokia E71 verder verwijderd wordt van de deuropening.
45
Figuur 22: Interpolatie van de RSSI-waarden. Bron: Eigen onderzoek.
Om na te gaan of deze resultaten toevallig zijn werden de metingen een tweede keer herhaald. De resultaten zijn gelijkaardig al is er iets minder verval van de RSSI-waarde in de gang. Figuur 23 geeft de resultaten weer.
Figuur 23: Interpolatie van de RSSI-waarden. Bron: Eigen onderzoek.
46
Wanneer de Bluetootscanner omwonden werd door aluminiumfolie wordt een heel ander resultaat bekomen (Figuur 24). In de gang werd het signaal van de Nokia E71 op vele plaatsen niet meer gecapteerd. Tevens is op te merken dat de signaalsterkte sneller daalt naarmate de afstand tussen de scanner en device groter wordt.
Figuur 24: Interpolatie van RSSI-waarden. Bron: Eigen onderzoek.
Het omwinden van de Bluetoothsensor door aluminiumfolie veroorzaakt een verschuiving van de vervalcurve. Op deze manier is het mogelijk enkel de Bluetoothdevices in een bepaalde ruimte te traceren, in casu de bureauruimte. Daar het verval in RSSI-waarde veel duidelijker is, is het mogelijk een drempelwaarde te stellen om de captaties te beperken tot een bepaalde afstand van de Bluetoothscanner.
5.1.3.2.
Outdoor
Indoor hebben vele factoren een invloed op de Bluetoothsignalen: de aanwezigheid van constructies, passanten in de gang, etc. . Outdoor werd ook een testbed voorzien om de ‘vervalcurve’ van nabij te kunnen bestuderen en de verschillen tussen de voor ons beschikbare Bluetoothsensoren duidelijk te maken. De resultaten worden weergegeven in figuur 25 en figuur 26. Figuur 25 bevat de gemiddelde RSSI-waarden in functie van de afstand voor de 3 types van Bluetoothsensoren. De Trust 15542 kent duidelijk een korter bereik (24m) dan de D-link DBT-122 (36m) en de Sena UD100 (50m). Tevens wordt door de meetresultaten een
47
‘best-fittende’ rechte bepaald. De R² waarde geeft de mate weer waarin deze rechte in staat is de variantie van de meetresultaten te verklaren. Deze waarde is nagenoeg dezelfde voor de Sena en D-link, maar opmerkelijk lager voor de Trust.
Figuur 25: Gemiddelde RSSI-waarden i.f.v. de afstand voor de Bluetoothsensoren. Bron: Eigen onderzoek.
Figuur 26 geeft het meetresultaat weer wanneer de D-Link DBT-122 omwonden wordt met aluminiumfolie. Het bereik daalt van 36m naar 7m. De mate waarin de best-fittende rechte in staat is om de variantie te verklaren is ook sterk gedaald van 91,9% naar 58,0%.
48
Figuur 26: Mediaan van de RSSI-waarden met een Bluetoothsensor omwonden door aluminiumfolie. Bron: Eigen onderzoek.
5.2.
Ratio
De ratio werd bepaald a.d.h.v. een manuele telling op basis van videobeelden genomen door de beveiligingscamera’s aan de ingang van het shoppingcenter, ter hoogte van het Wilsonplein. Van 15u00 – 15u05, 15u05-15u10, 15u30-15u45 en van 16u00-16u30 werd het aantal passanten geteld. De telgegevens worden weergegeven in tabel 5. Deze telgegevens worden vergeleken met het aantal unieke MAC-adressen geregistreerd door de Bluetoothscanners ter hoogte van de ingang tijdens dezelfde telperiode.
Naast deze gegevens werd ook gebruik gemaakt van telgegevens afkomstig van de winkelverantwoordelijken van NafNaf, Etam en Street One. Het aantal getelde klanten wordt per dag vergeleken met het aantal MAC-adressen. Het resultaat wordt weergegeven in tabel 5. De totale ratio wordt bepaald door het gemiddelde te nemen van alle bekomen waarden. Op deze manier wordt een waarde van 9,5% bekomen met een standaardafwijking van 1,08. Dit houdt in dat per 200 klanten er 19 een Bluetoothdevice met zich mee dragen.
49
Tabel 5: Bepaling Ratio Bron: Eigen bewerking. Videobeelden Tijdstip 15u00 - 15u05
Geteld 155
MAC Ratio 14 9,0%
15u05 - 15u10
129
11
8,5%
15u30 - 15u45
417
38
9,1%
16u00 - 16u30
420
43
10,2%
Telgegevens winkels Street One
NafNaf
Etam
3/dec
Lichtsluis MAC 19 206 26 243
4/dec
392
29
Lichtsluis MAC Ratio Lichtsluis MAC Ratio 57 8,7% NA 21 655 10,7% 742 78 10,5% NA 41 7,4% 768 87 11,3% NA 48
6/dec
236
23
9,7%
594
56
9,4%
NA
31
7/dec
221
16
7,2%
580
64
21
8/dec
207
22
69
9/dec
211
17
10,6% 591 8,1% 525
11,0% NA 11,7% NA
42
8,0%
NA
37
10/dec
266
26
9,8%
758
67
8,8%
NA
46
11/dec
303
38
84
229
18
47
11,3% NA 7,7% NA
51
13/dec
12,5% 745 7,9% 607
14/dec
198
17
8,6%
615
52
8,5%
NA
24
15/dec
110
26
60
9,7%
NA
37
16/dec
210
23
23,6% 616 11,0% 576
57
9,9%
386
29
7,5%
17/dec
198
27
8,9%
7,9%
365
66
10,3%
19/dec
106
21
58
38
9,4%
20/dec
308
23
19,8% 428 7,5% 761
492 10,6% 643 13,6% 405
39
18/dec
13,6% 717 12,6% 747
64
46
83
10,9% 526
28
5,3%
Gem
11,2%
Gem
10,0%
Gem
8,1%
2/dec
Totaal gemiddelde
Ratio 9,2%
79
43
29
9,5%
50
5.3.
GisMo
5.3.1. Wat werd er getraceerd?
Figuur 27: Overzicht van wat er getraceerd werd. Bron: Eigen bewerking.
Voornamelijk werden er GSM-toestellen getraceerd (71%). Hiernaast ook 18% smartphones. De GSM-toestellen en smartphones samen (88%) worden gebruikt als proxy om het verplaatsingsgedrag van de bezoekers van het shoppingcenter te bestuderen. Hiernaast werd er ook een aanzienlijk hoeveelheid audio- en videoapparaten getraceerd. Deze groep is opgebouwd uit headsets en Bluetoothcarkits. Deze werden hoofdzakelijk getraceerd door de Bluetoothscanner opgesteld aan de uitgang van de parking.
5.3.2. Data beschikbaarheid
Figuren 28 en 29 geven voor elke sensor de beschikbaarheid van data weer. De rode intervallen stellen de intervallen voor waarbij er geen MAC-adressen worden geregistreerd. De blauwe stellen de intervallen voor waarvan er data beschikbaar is. De grijze wanneer er geen data wordt geleverd doordat de Bluetoothscanner niet van elektriciteit werd voorzien.
51
Vele problemen (langere rode intervallen en vroegtijdige grijze) worden veroorzaakt doordat de Bluetoothscanner niet meer van elektriciteit werd voorzien of door softwarefouten. Vooral bugs in de software doken geregeld op. De Bluetoothscanners in Brasserie t’Zuid, Pearle Opticiens, Panos, Jack & Jones en Ici Paris XL bleken hier vaak mee te kampen. Dit zorgt er uiteindelijk voor dat er ‘gaten’ in de data terug te vinden zijn.
5.3.3. Cijfers
In totaal werden 40571 unieke
bewegende objecten of Bluetoothdevices getraceerd
gedurende de 19 meetdagen. Hiervan werden er 10719 in de winkels van shoppingcenter Gent Zuid gezien. Het overgrote deel werd immers getraceerd in de Veldstraat. Tabel 6 geeft een overzicht van hoeveel unieke MAC-adressen er werden getraceerd in elke winkel gedurende de volledige meetperiode. De volledige dataset wordt weergegeven op CD-Rom (map: Data).
Tabel 6: Aantal uniek MAC-adressen per winkel (gedurende volledige meetperiode) (*) zijn geschatte waarden Bron: Eigen onderzoek. Winkel H&M Hema Match Kruidvat Blokker Veritas Ici Paris XL Club Matulu Naf Naf Free Record Shop Bel Company Essenza Pronti Piepoos Panos Lisa & Lola Free Record Shop Ici Paris XL Etam
Aantal MAC-adressen 8105 2951 2705 1966 1531 1468 1262* 1181 1144 986 956* 907 813 807 784 730 708 675 594 588
Aantal (%) 75,6 27,5 25,2 18,3 14,3 13,7 11,8 11,0 10,7 9,2 8,9 8,5 7,6 7,5 7,3 6,8 6,6 6,3 5,5 5,5
52
Vervolg Tabel 6 Standaar Boekhandel Brasserie 'T Zuid Damart Street One Celio Mon Dada The Phone House Australian Ice Cream Hunkemöller Cassis Casar Match Jack en Jones Randstad Pearle Opticiens Venizi Pictro CityBloem Crinckles Young & Dynamic
511 401* 397 381 358 328 275* 261 249 230 220 215* 129 101 92 88* 76 74* 52
4,8 3,7 3,7 3,6 3,3 3,1 2,6 2,4 2,3 2,1 2,1 2,0 1,2 0,9 0,9 0,8 0,7 0,7 0,5
75% van de bezoekers brengt een bezoek aan de H & M. Dit percentage ligt vele malen hoger dan de tweede, Hema (27,5%) en derde, Match (25,2%). De waarden voor sensoren waarbij er technische problemen voorkwamen werden geschat d.m.v. een interpolatie van de beschikbare gegevens over de volledige meetperiode. In de tabel worden deze aangeduid met een sterretje. Er moet hiernaast ook gemeld worden dat deze resultaten afhankelijk zijn van de ratio per winkel. Zo kan, afhankelijk van de doelgroep die een bepaalde winkel bezoekt, de ratio bijvoorbeeld hoger liggen in de H&M dan in Damart.
5.3.4. Druktes
Figuur 30 geeft een overzicht van de druktes gedurende de verschillende dagen van de meetperiode in het shoppingcenter Gent Zuid. Deze gegevens kunnen vergeleken worden met de verworven data afkomstig van de Veldstraat (Figuur 31). Per uur wordt het aantal unieke MAC-adressen weergegeven. In de winkels van Gent Zuid shoppingcenter wordt op weekdagen de hoogste piek bereikt rond 12 uur. In de namiddag is er opnieuw een stijging van het aantal bezoekers rond 16 uur. De vrijdag kent meer bezoekers dan andere weekdagen met uitzondering van maandag 13 december 2010. Er is een stijging van het aantal bezoekers
53
te melden doorheen de week. De invloed van het weer kan niet dienen ter verklaring van de bezoekersaantallen. De gemiddelde temperatuur en hoeveelheid neerslag (tussen 9u00 – 19u00) worden weergegeven in figuur 33. De gegevens werden bekomen bij het KMI. Slecht weer (neerslag en koude temperaturen) zorgt niet voor meer of minder bezoekers.
Op zaterdagen ligt de piek in de namiddag rond 16u. Op zaterdag 4 december zorgde de komst van de sint er wel voor dat vele bezoekers reeds tegen de middag in het shoppingcenter aanwezig waren. Op koopzondag 19 december 2010 werd de piek omstreeks 15u bereikt. De koopzondag kent weinig succes daar er minder bezoekers waren dan op een weekdag.
Deze druktes kunnen vergeleken worden met deze in de Veldstraat. Opmerkelijk is dat de piek daar steeds bereikt wordt na de middag (14-16u). Er is een veel groter verschil merkbaar tussen de weekdagen en zaterdagen. Hiernaast zijn er duidelijk meer bezoekers op vrijdag dan op andere weekdagen met uitzondering van maandag 20 december. De koopzondagen in de Veldstraat (12 en 19 december) kennen een groter succes dan in deze in het shoppingcenter.
Om het absolute verschil tussen het aantal bezoekers op elk moment van de dag te kunnen vergelijken werden beide grafieken samen in één grafiek geplot (Figuur 32). Op deze manier is het visueel duidelijk dat het aantal bezoekers in de Veldstraat tot wel 3 keer het aantal van het shoppingcenter betreft en de piek in Gent Zuid vroeger valt dan deze in de Veldstraat.
54
Figuur 33: Gemiddelde temperatuur en hoeveelheid neerslag (tussen 9u00 – 19u). Bron: KMI, eigen bewerking.
55
Figuur 28: Data beschikbaarheid (Bron: Eigen onderzoek).
Figuur 29: Data beschikbaarheid (Bron: Eigen onderzoek).
Figuur 30: Aantal unieke MAC-adressen per uur in shoppingcenter Gent Zuid (Bron: Eigen onderzoek).
Figuur 31: Aantal unieke MAC-adressen per uur in de Veldstraat (Bron: Eigen onderzoek).
Figuur 32: Aantal unieke MAC-adressen (Veldstraat en Gent Zuid shoppingcenter) tijdens meetperiode. (Bron: Eigen onderzoek).
Het totaal aantal unieke MAC-adressen die in het winkelcentrum werden getraceerd, 10719, zorgen voor 16851 trajecten. De maximum time gap werd ingesteld op 12 uur waardoor elk traject een pad vormt van een bepaald MAC-adres op één bepaalde dag. Dit houdt in dat men gemiddeld genomen 1,57 keer een bezoek bracht aan het shoppingcenter Gent Zuid gedurende de meetperiode (19 dagen). Figuur 34 geeft een overzicht van hoeveel Bluetoothdevices er 1 dag, 2 dagen, etc. een bezoek brachten aan het shoppingcenter.
Figuur 34: Aantal keer dat men het shoppingcenter heeft bezocht tijdens meetperiode. Bron: Eigen onderzoek.
Voor de gegevens in de Veldstraat kan eenzelfde grafiek worden bekomen (Figuur 35). Opvallend is dat er nog meer mensen slechts 1 dag een bezoek brachten aan de Veldstraat (67,1% t.o.v. 49,7%). Het aantal bezoekers die meer dan 1 dag kwamen is ook steeds hoger in het Gent Zuid shoppingcenter dan in de Veldstraat.
Van de 10719 unieke bezoekers in Gent Zuid shoppingcenter brachten er 2835 (26,5%) ook een bezoek aan de Veldstraat gedurende de meetperiode.
61
Figuur 35: Aantal keer Veldstraat bezocht tijdens meetperiode. Bron: Eigen onderzoek.
5.3.5. Hoeveel winkels bezoekt men?
Om dit cijfer te bepalen werd een selectie gemaakt van alle MAC-adressen die in minstens één winkel werden getraceerd gedurende de meetperiode. Figuur 36 geeft een beeld van het aantal winkels dat per traject wordt aangedaan. H&M eerste verdieping en H&M gelijkvloers worden hierbij als verschillende winkels aanzien. De trajecten op weekdagen, woensdagen, zaterdagen en zondag worden van elkaar gescheiden. Op woensdagen worden er opvallend minder winkels bezocht dan op andere dagen. Verrassend is dat er door de bezoekers meer winkels worden bezocht op weekdagen (inclusief woensdag) dan op zaterdagen. De shoppers aanwezig op de koopzondag 19 december bezochten opmerkelijk meer winkels.
62
Figuur 36: Hoeveel winkels er worden bezocht (%) op weekdagen, woensdagen, zaterdagen en zondag. (Bron: Eigen onderzoek).
5.3.6. Hoe lang blijft men in het shoppingcenter?
Voor de 16851 bekomen trajecten over de volledige meetperiode wordt de duur bepaald in GisMo. Figuur 37 geeft deze gegevens weer in een boxplot. De mediaan bedraagt 48 minuten. Vijftig procent van de bezoekers blijft minstens 22min en 30sec en maximaal 2h 45m. De werknemers bevinden zich uiteraard bij de langste waarnemingen.
Figuur 37: Boxplot ‘Hoe lang blijft men in het shoppingcenter’? Bron: Eigen onderzoek.
5.3.7. Gebruik parking
Opvallend is dat er op zaterdag meer bezoekers van het shoppingcenter met de wagen komen. Zo werden er op 4 december 2010 947 bewegende objecten getraceerd in het shoppingcenter waarvan er 277 met de wagen (29,25%). Op 11 december 1113 waarvan 369 met de wagen (33,15%).
64
Op weekdagen ligt dit percentage lager: -
Ma 6 december 171 van 961 (17,8%)
-
Di 7 december 158 van 924 (17,1%)
-
Woe 8 december 204 van 1081 (18,9%)
-
Do 9 december 190 van 973 (19.5%)
-
Vrij 10 december 217 van 1097 (19,8%)
De invloed van ‘al dan niet’ met de wagen het shoppingcenter bezoeken wordt weergegeven in Figuur 38. Hiervoor werden de gegevens van de zaterdagen geanalyseerd daar op weekdagen de kantoren geopend zijn en dit een vertekend beeld met zich mee kan brengen. Het aantal winkels dat men bezoekt blijkt af te hangen van het transportmiddel. Het aantal bezoekers die slechts 1 winkel bezoeken daalt van 37,9% naar 33,8%. Degene die meerdere winkels aandoen (5 en meer) blijken voornamelijk met de wagen naar het shoppingcenter te komen.
Figuur 38: Verschil in aantal winkels dat men bezoekt indien met wagen of niet. Bron: Eigen onderzoek.
65
5.4.
Sequentieanalyse
Gezien er problemen ontstonden met de klokken werden de sequentieanalyses beperkt tot de beschikbare data van 2 december t.e.m. 4 december. Op deze manier is het verschil in tijdsaanduiding tussen de verschillende sensoren beperkt tot een handvol seconden. Hierdoor stemt de volgorde waarin de winkels worden aangedaan overeen met de realiteit.
5.4.1. Ingangen
De ingangen telden samen 11582 unieke bewegende objecten. Daar er hiervan slechts 10719 effectief in winkels werden getraceerd kan geconcludeerd worden dat er een aanzienlijk aandeel (7,5%) in het shoppingcenter rondhangt, bezoek brengt aan de overheidsdienst, even schuilt aan de ingang, sigaretje rookt, doorloopt richting kantoorruimtes en appartementen. Hiernaast vallen de bezoekers die een bezoek brachten aan locaties waar geen sensor hing ook onder deze categorie (terras Match, Minit en Zemst). Een ingang die extra aandacht verdient is deze van de Hema. Iedereen die deze ingang neemt komt automatisch terecht in de Hema winkel. De meetgegevens tonen aan dat gedurende de meetperiode 2951 unieke MAC-adressen deze ingang namen waarvan er 670 (23%) ook aan de kassa werden gezien.
Figuur 39 geeft een overzicht van de gebruikte ingangen om het shoppingcenter te betreden. Dit resultaat visualiseert een selectie van MAC-adressen die in minstens één winkel werd getraceerd. Op deze manier worden de mensen die er enkel rondhangen, doorlopen richting appartementen, kantoren, overheidsdienst buiten beschouwing gelaten. 66% van de bezoekers neemt de ingang aan het Wilsonplein. De ingangen Kuiperskaai en Hema kennen een gelijke drukte. Slechts 8% van de bezoekers maakt gebruik van de ingangen Garage en ‘ingang -2 en -3’.
66
Figuur 39: Langs waar komt men naar binnen? Bron: Eigen onderzoek.
Figuren 40, 41, 42, 43 en 44 geven weer welke winkel de bezoekers als eerste bezochten. Het grootste aandeel (55%) van de bezoekers die het shoppingcenter betreedt via ‘ingang Wilsonplein’ bezocht als eerste de H & M, 10% de Match. Krantenwinkel Matulu haalt hier ook een hoge score vanwege de uitstekende ligging t.o.v. deze ingang. Wanneer de bezoekers het shoppingcenter betreden via de garage gaat ‘slechts’ 17% van de bezoekers rechtstreeks naar de H & M. 35% brengt eerst een bezoek aan de Match. De Veritas, Blokker en Kruidvat halen vanwege hun gunstige ligging t.o.v. deze ingang een hogere score. Via de Hema wordt vaker een winkel op de tweede verdieping, gezien de gunstige ligging, als eerste bezocht (Club, Free Record Shop, NafNaf en Standaard Boekhandel). Via de Kuiperskaai wordt, in 11% van de gevallen, boekhandel Club als eerste bezocht. H&M haalt hier lagere score dan in voorgaande gevallen. Via -2 en -3 haalt Kruidvat een opvallende score, net als Piepoos en Randstad.
Daar een grote groep van de bezoekers slechts één of twee winkels bezoekt scheppen deze resultaten heel wat klaarheid wat betreft de belangrijke flows in het shoppingcenter.
67
Figuur 40: Waar gaat men naartoe indien men via ingang Wilsonplein Gent Zuid betreedt. Bron: Eigen onderzoek.
Figuur 41: Waar gaat men naartoe indien men gebruik maakt van ingang Garage? Bron: Eigen onderzoek.
68
Figuur 42: Waar gaat men naartoe via ingang Hema? Bron: Eigen onderzoek.
Figuur 43: Waar gaat men naartoe indien men shoppingcenter betreedt via ingang Kuiperskaai? Bron: Eigen onderzoek.
69
Figuur 44: Waar gaat men naartoe via ingang -2 en -3? Bron: Eigen onderzoek.
5.4.2. Voornaamste flows
Hierbij geschiedt er een analyse van de belangrijkste flows in het shoppingcenter (Figuur 45). Deze figuur visualiseert de 31 grootste stromen tussen 2 winkels. Op deze manier blijft onderstaande figuur overzichtelijk. De grootte van de flow wordt weergegeven door de dikte van de pijl die locatie X met locatie Y verbindt. Het betreft de rechtstreekse flow van locatie X naar Y. De interactie tussen H&M verdieping 1 en H&M verdieping 0, d.m.v. een roltrap, wordt niet gevisualiseerd. Tevens wordt de data van H&M kinder samengevoegd met H&M verdieping 1. Onmiddellijk valt de interactie op tussen de drie winkels met het hoogst aantal bezoekers; H&M, Match en Hema. De grootste flow vindt men terug van Hema naar H&M(1). In omgekeerde richting bedraagt deze slechts een fractie meer. Opvallend is ook de flow tussen de winkels op -1, met name Veritas, Kruidvat en Blokker en op verdieping +1, de stroom tussen NafNaf, Hema en H&M(1).
70
Figuur 45: dominante flows in het shoppingcenter. Bron: Eigen onderzoek.
5.4.3. TSP
De kortste afstand van elk traject (van 2 t.e.m. 4 december) wordt vergeleken met de afgelegde afstand. Het verschil wordt uitgedrukt in een percentage t.o.v. de effectief afgelegde weg. Het resultaat van de 1871 trajecten die geanalyseerd werden, wordt weergegeven in Figuur 46.
71
Korte trajecten (<500m) gaan vaak gepaard met een uiteenlopende travel deviation. Langere trajecten (> 500) gaan gepaard met een travel deviation die hoger is dan 50%. Opmerkelijk is de groep van trajecten waarvoor de travel deviation nul bedraagt. Deze gaan gepaard met een lage afgelegde afstand. Na analyse van de sequenties bestaat deze cluster uit trajecten waarbij slechts één winkel wordt aangedaan. Hoofdzakelijk is dit enkel de H&M, Matulu of de Match. Deze cluster bestaat uit ‘gerichte’ shoppers. Figuur 46 geeft ook duidelijk een exponentiële toename van de travel deviation bij een toenemende afgelegde weg weer.
De analyse van deze trajecten brengt aan het licht dat het gemiddelde pad 279m bedraagt. Daar deze waarde gevoelig is voor uitschieters wordt de mediaan bepaald; 235m. De mediaan van de travel deviation bedraagt 55%.
72
Figuur 46: Travel deviation. (Bron: Eigen onderzoek).
5.5.
Clusteranalyse
De clusteranalyses werden uitgevoerd in R. Er werd geopteerd voor de methode van Ward gekoppeld aan een euclidische afstandsindex. Er werden vier analyses uitgevoerd om verschillen tussen woensdagen, zaterdagen, weekdagen en de koopzondag aan het licht te brengen.
De clusteranalyse waarbij de data van alle weekdagen werd opgenomen wordt weergegeven in figuur 47. De Veldstraat vormt een aparte cluster. Bel Company en The Phone House behoren niet tot dezelfde cluster net als Etam en Hunkemoller. De sterke similariteit tussen Kruidvat, Blokker en Veritas valt op. Dit kwam ook reeds aan het licht bij het onderzoek naar de belangrijkste flows. De bezoekers die met de wagen komen vertonen sterkere gelijkenissen met de bezoekers van de Match en H&M. De derde grote trekpleister Hema wordt niet binnen deze cluster opgenomen. De eetgelegenheden, met uitzondering van de Panos, bevinden zich allen onder dezelfde cluster. De similariteit tussen Hema en NafNaf komt ook terug aan het licht. Bij de analyse naar de voornaamste flows werd dit ook reeds opgemerkt.
Bij vergelijking van deze resultaten met de woensdagen (Figuur 48) valt op dat het trio Veritas, Kruidvat, Blokker en Matulu een sterkere similariteit vertoont met H&M, Match en de parking. Er blijft een sterke overeenkomst bestaan tussen de bezoekers van de verschillende eetgelegenheden behalve met Australian Ice Cream.
Op zaterdagen (Figuur 49) en op zondag (Figuur 50) worden sterke overeenkomsten bekomen met de analyse van de woensdagen.
74
Figuur 47: Clusteranalyse van de weekdagen tijdens meetperiode. (Bron: Eigen onderzoek).
Figuur 48: Clusteranalyse van de woensdagen tijdens meetperiode. (Bron: Eigen onderzoek).
Figuur 49: Clusteranalyse van de zaterdagen gedurende de meetperiode. (Bron: Eigen onderzoek).
Figuur 50: Clusteranalyse van de koopzondag 19 december. (Bron: Eigen onderzoek).
5.6.
Principale Componenten Analyse
De correlatiematrix wordt weergegeven in bijlage 15. De principale componentenanalyse reduceert de data van de 56 Bluetoothscanners tot 56 componenten die de totale variantie verklaren. De eerste 5 componenten zijn in staat om bijna 50% van de totale variantie te verklaren. Op deze manier is het mogelijk de data te reduceren tot bijvoorbeeld enkel 5 componenten (50% van de variantie verklaard) of 13 componenten (70% van de variantie). De mate waarin de verschillende componenten in staat zijn de variantie te verklaren wordt weergegeven in bijlage 13. De loadings (getransformeerde en geroteerde utiliteiten) van dimensie 1 en dimensie 2 worden weergegeven in Figuur 52. Er wordt geopteerd om de eerste twee dimensies t.o.v. elkaar uit te zetten daar uit de PCA-analyse steeds naar voor komt dat de eerste het beste in staat is de variatie in de data voor te stellen, gevolgd door de tweede, etc. . De afstand tussen elke winkel staat in verhouding tot de mate van similariteit. Er zijn duidelijke clusters te onderscheiden. Volgende clusters werden visueel bepaald: A: Ingangen op verdieping -2 en -3 B: Mon dada(straat), Brasserie ’t Zuid, Pictro en Randstad C: Match kassa 2, 4, 5, 6, 7 en selfscan. Dit is hoogstwaarschijnlijk te verklaren vanwege het feit dat terugkerende klanten gedurende de meetperiode verschillende kassa’s aandoen. Hiernaast worden personen aan kassa 7 misschien ook getraceerd door de selfscan. (Dit kan niet gelijktijdig gebeurd zijn daar deze er werden uit gefilterd). D: Pearle Opticien, The Phone House en Mon Dada(shopping). E: Essenza, Standaard Boekhandel, Crinckles, Free Record shop, Piepoos, Jack & Jones, Australian Ice Cream, CityBloem en Damart. F: Venizi, Bel Company, Ingang kantoren Kuiperskaai en Ingang Kuiperskaai. G: Lisa en Lola, Cassis, Street One, Hunkemöller, Etam en Club. H: Ingang Hema, Hema, Celio, Kruidvat, Pronti, Blokker, Veritas, Ingang loskade en provincie, H&M Kinder.
De winkels die niet opgenomen worden in een cluster zijn: Young & Dynamic, ICI Paris XL, Panos, Matulu, Casar Match, H&M 1 en 0, NafNaf, Ingang Wilsonplein en Ingang Garage.
79
De afstanden tussen de clusters geven de mate van similariteit weer. Zo is er bijvoorbeeld een lage overeenkomst tussen de cluster A en H. Zo is het mogelijk te achterhalen dat de bezoekers die met de wagen komen (ingangen -2, -3 en ingang Match) volgens deze analyse eerder een bezoek brengen aan Mon Dada, Brasserie ’t Zuid, Pictro en Randstad dan aan de NafNaf. Hema en Hunkemöller worden hier onder dezelfde cluster geplaatst. Club en Standaard Boekhandel onder verschillende doch niet ver van elkaar verwijderde clusters. De bezoekers van de Match tonen in de eerste plaats de grootste similariteit met deze van de H&M.
80
Figuur 51: Dim 1 t.o.v. Dim2. (Bron: Eigen onderzoek).
Een regressieanalyse laat toe de variantie te verklaren van elke dimensie. Hiertoe wordt een model opgebouwd met twee afhankelijke variabelen ‘grootte’ en ‘verdieping’ d.m.v. dummy variabelen (variabele wordt opgebouwd uit twee kolommen met als combinatie 00, 01 en 10). De tabel wordt weergegeven in bijlage 8. Het eerste model kent de waarden van de verschillende winkels in de eerste dimensie als onafhankelijke variabele en de oppervlakte (X1) en verdieping (X2a en X2b) als afhankelijke variabele. Figuur 52 geeft de resultaten. De variantie in de eerste dimensie kan verklaard worden door de verdieping. In totaal wordt bijna 24% van de variantie verklaard.
Residuals: Min 1Q Median 3Q Max -0.070119 -0.021451 -0.002446 0.021175 0.067192 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -1.571e-01 1.040e-02 -15.103 < 2e-16 *** XX1 (oppervlakte) -2.970e-06 7.431e-06 -0.400 0.691099 XX2a (verdieping) 3.124e-02 1.252e-02 2.494 0.015904 * XX2b (verdieping) 5.650e-02 1.489e-02 3.795 0.000393 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.0367 on 51 degrees of freedom Multiple R-squared: 0.2368, Adjusted R-squared: 0.1919 F-statistic: 5.274 on 3 and 51 DF, p-value: 0.003028 Figuur 52: Resultaten model 1. Bron: Eigen onderzoek.
Als tweede model worden dezelfde afhankelijke variabelen gebruikt maar de onafhankelijke is nu de tweede dimensie (Figuur 53). In totaal wordt nu 52% van de variantie verklaard. Deze kan worden verklaard door de variabele grootte.
82
Residuals: Min 1Q Median 3Q Max -0.190378 -0.039732 -0.005993 0.045648 0.241204 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -5.431e-02 2.637e-02 -2.060 0.0445 * XX1 (oppervlakte) 1.370e-04 1.884e-05 7.271 2.03e-09 *** XX2a (verdieping) 2.827e-03 3.174e-02 0.089 0.9294 XX2b (verdieping) -8.199e-02 3.773e-02 -2.173 0.0345 * --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.09302 on 51 degrees of freedom Multiple R-squared: 0.5195, Adjusted R-squared: 0.4913 F-statistic: 18.38 on 3 and 51 DF, p-value: 3.233e-08 Figuur 53: Resultaten model 2. Bron: Eigen onderzoek.
5.7.
Match-experiment
Het verschil tussen de tijdsaanduiding van de registratie en de echte tijd zorgde reeds bij de sequentieanalyses voor problemen. Dit werd opgelost door enkel de data van de eerste dagen van de meetperiode in rekening te brengen. Echter voor het Match-experiment is ook dit geen oplossing. Verder onderzoek is nodig om na te gaan hoe deze afwijking ontstaat en belangrijker nog hoe ze kan worden voorkomen. Een overzicht van de geleverde data wordt weergegeven op CD-Rom onder de map ‘Match data’.
6. DISCUSSIE
Het gedrag van klanten werd, voor dit onderzoek, nog nooit m.b.v. Bluetoothsignalen geregistreerd. Uit het literatuuroverzicht blijkt dat vooral RFID een veelgebruikte technologie is om inzicht te krijgen in het gedrag van de klanten. Een vergelijking van beide technologieën dringt zich op. In de studie uitgevoerd door Sorensen (2003) wordt de RFIDtag ingebouwd in de winkelkar of -mand. De bewegingen van de kar of mand worden gebruikt als proxy voor de bewegingen van de klant. Bij de interpretatie van de resultaten is
83
het noodzakelijk hiermee rekening te houden. Het grote voordeel van dit systeem is echter wel dat iedereen wordt getraceerd.
De technologie die in deze studie wordt gebruikt volgt de exacte bewegingen van de shopper wel doordat het Bluetoothdevice (GSM, smartphone) steeds in de nabijheid van de persoon blijft. Om de bewegingen te kunnen traceren moet de persoon in bezit zijn van een ‘zichtbaar’ Bluetoothdevice. Het nadeel is dat niet iedereen wordt geregistreerd, in casu slechts 9,5 % van de bezoekers, waardoor men verplicht is te werken met een steekproef van de totale populatie. Het spreekt voor zich dat deze voldoende groot moet zijn om uitspraken te kunnen doen omtrent het massagedrag. In deze studie werden de bewegingen gecapteerd op winkelniveau waarbij antwoord wordt geboden op de vraag of een bepaald device een winkel betrad of niet. Indien de steekproef groot genoeg is, is het mogelijk uitspraak te doen omtrent de gedragingen van de klant in een winkel (rayon-niveau), zoals uitgevoerd door Sorensen (2003) en Hui et al. (2009a). Bluetoothtracking is een uitstekend alternatief voor RFID. Echter is er nog meer onderzoek nodig om de data op een goede, geautomatiseerde manier te filteren. Het grootste voordeel van de gebruikte technologie is ongetwijfeld de kostprijs.
Wat met de privacy? Deze vraag is gedurende de installatie van de Bluetoothscanners veel gerezen bij de verschillende handelaars. Een persoonlijke mededeling van de juridische dienst van de Universiteit Gent schept klaarheid. Er is geen enkel probleem zolang er geen gegevens van naam en adres van de betrokken persoon gekend zijn. De Bluetoothscanner registreert het MAC-adres en het klassenummer. Deze gegevens omvatten geen informatie omtrent de naam, adres van de persoon die achter het toestel schuilt. Dit is echter op andere manieren wel te achterhalen. Wanneer bv. een bepaald MAC-adres gedurende de meetperiode iedere dag voor 8 uur in een bepaalde winkel wordt gezien dan is dit Bluetoothdevice hoogstwaarschijnlijk van een medewerker uit die winkel. Dit betreft uiteraard uitzonderingsgevallen. Het vergt al heel wat data-mining soortgelijke informatie uit de dataset te halen.
Het aantal toestellen die, dankzij de steun van Devimo, ter beschikking stonden (56) was ruimschoots voldoende om een analyse te maken van de bewegingen van de bezoekers van het shoppingcenter Gent Zuid. Geen enkele van de geplaatste Bluetoothsensoren bleek overbodig. Echter was een extra sensor aan de twee ingangen van de parking nuttig geweest om na te gaan hoelang men parkeert. Ook zou een Bluetoothsensor in het Capitool, de
84
bibiliotheek, kantoorruimtes, etc. in de nabijheid van het shoppingcenter tot een rijkere dataset leiden en de flows duidelijk maken op een hoger niveau dan het winkelniveau. Een stabiele stroomvoorziening blijkt in de praktijk moeilijker dan het op het eerste zicht lijkt. Verschillende stroomadapters werden, ondanks een mededeling en aanduiding, uitgetrokken. Een mogelijke oplossing zou erin bestaan om de scanners uit te rusten met een backup-batterij naar analogie met een UPS (uninterruptible power supply). Deze batterij zou dan tussen de stroomtoevoer en het moederbord geplaatst worden zodat ze wordt opgeladen indien er elektriciteit beschikbaar is en het toestel verder kan draaien als de stroomtoevoer wegvalt. Indien ook de batterij leegraakt zou het toestel zichzelf idealiter automatisch afsluiten. Hiernaast hielden sommige Bluetoothscanners op met registreren vanwege een softwarefout. Verder onderzoek is noodzakelijk om dit euvel te verhelpen.
De bekomen data filteren bleek een tijdrovende karwei. Inzicht bekomen in het verloop van de RSSI-waarde t.o.v. de afstand was hierbij cruciaal. Een sterker verval kon bekomen worden d.m.v. aluminiumfolie rondom de Bluetoothsensor. Dit bleek cruciaal voor dit onderzoek. Hiernaast was het ook goed om voor elke situatie de keuze te hebben uit drie types van Bluetoothsensoren. Afhankelijk van de ruimte en de doelstelling kon op deze manier de hardware geoptimaliseerd worden. Onderzoek moet uitwijzen of gerichte Bluetoothsensoren kunnen gebruikt worden. Voor diverse toepassingen is dit een absolute meerwaarde.
Om tot de ratio te komen werd gebruik gemaakt van telgegevens van lichtsluizen in drie winkels en videobeelden. Beide methoden bleken niet optimaal te zijn. Een vergelijking van het aantal geregistreerde unieke MAC-adressen en de telgegevens van de lichtsluis brengt met zich mee dat er geen rekening wordt gehouden met een deel van de klanten die meerdere keren een bepaalde winkel betreden. De videobeelden kennen hetzelfde probleem. In dit onderzoek werd gebruik gemaakt van een gemiddelde ratio over de volledige meetperiode. Echter zou het beter zijn mocht de ratio, geautomatiseerd, doorheen de tijd kunnen bepaald worden m.b.v. de videobeelden.
Zoals uit de resultaten van het onderzoek is gebleken is het effectief mogelijk een analyse te maken
van
de
belangrijkste
bewegingen/flows
in
het
shoppingcenter
m.b.v.
Bluetoothsignalen. GisMo en R bieden de mogelijkheid de bekomen dataset te bevragen en functies aan te spreken om deze te analyseren. Achteraf bleek dat het noodzakelijk was de
85
software, hardware en filteringsmethodologie voldoende te testen in een indoor omgeving alvorens de meetperiode aan te vatten. Echter werd er nog een facet over het hoofd gezien. De afwijking van de interne klok, naarmate het verloop van het onderzoek verder ging, van de Bluetoothsensoren t.o.v. de echte tijd zorgde voor het falen van het onderzoek in de Match. De tijd werd voor installatie gesynchroniseerd met de echte tijd. Echter was het beter geweest de Bluetoothscanners aan de verschillende Match-kassa’s te synchroniseren met de tijd op de kassa zodoende de afwijking tussen beide ook in rekening te kunnen brengen.
7. VERDER ONDERZOEK
Deze studie heeft een overzicht gegeven van de manieren waarop het klantengedrag in het verleden werd geanalyseerd. Hiernaast werd aangetoond dat het bewegingspatroon en gedragingen van de klanten kan bestudeerd worden met behulp van Bluetoothtracking. Het vergde veel energie om een goede methodologie te ontwikkelen om de data te filteren. De gebruikte methodologie is vooral manueel. Onderzoek moet uitwijzen of dit ook op een geautomatiseerde wijze kan geschieden. Hiernaast bleek de afwijking van de tijd op de Bluetoothscanners t.o.v. de ‘echte’ tijd veel invloed te hebben op de analysemogelijkheden. Verder onderzoek is ook noodzakelijk om dit euvel te verhelpen zodoende de bekomen data te kunnen koppelen aan de aankoopgegevens.
86
8. REFERENTIELIJST Agostaro, F., Collura, F., Genco, F., Sorce, S. (2004) “Problems and solutions in setting up a low cost Bluetooth positioning system”. WSEAS Transactions on Computers. 3 (4), 11021106.
Bitgood, S., Dukes, S. (2006) “Not another step! Economy of movement and pedestrian choice point behavior in shopping malls”. Environment and Behaviour. 38 (3), pp. 394-405.
Burk, R. R. (2005) “The third wave of marketing intelligence”. In: Krafft, M., Mantrala, M. K. (Eds.) Retailing in the 21st Century: Current and Future Trends. New York: Springer, pp. 113-125.
Cheung, K., Intille, S., Larson, K. (2006) “An inexpensive Bluetooth-based indoor positioning hack”. Ubicomp 2006: Proceedings of the 8th International Conference on Ubiquitous Computing Extended Abstracts. 2 blz.
Ching, W., Teh, R. J., Li, B., Rizos, C. (2010) “Uniwide WiFi Based Positioning System”. In: IEEE International Symposium on Technology and Society (ISTAS 2010). New South Wales, Wollongong, pp. 180-189.
Edwards, Y., Allenby, G. (2003) “Multivariate Analysis of Multiple Response Data”. Journal of Marketing Research. Vol. XL, pp. 321–334.
Fack, V. (2007) Algoritmen en datastructuren. Leuven: Acco.
Farley, J. U., Ring, L. W. (1966) “A stochastic model of supermarket traffic flow”. Annals of Operations Research. 14 (4), pp. 555-567.
Hui, S. K., Bradlow, E. T., Fader, P.S. (2007) “An integrated model of grocery store shopping patch and purchase behaviour”. Working paper. Univerisity of Pennsylvania.
87
Hui, S. K., Fader, P. S., Bradlow, E. T. (2009a) “Path data in marketing: An integrative framework and prospectus for model building”. Marketing Science. 28 (2), pp. 320-335.
Hui, S. K., Fader, P.S., Bradlow, E. T. (2009b) “The Traveling Salesman goes shopping: the systematic deviations of grovery paths from TSP optimality”. Marketing Science. 28 (3), pp. 566-572.
Kotanen, A., Hannikainen, M., Leppakoski, H., Hamalainen, T. (2003) “Experiments on local positioning with Bluetooth”. ITCC 2003: International Conference on Information Technology: Computers and Communications, Proceedings. 297-303.
Larson, J. S., Bradlow, E. T., Fader, P. S. (2005) “An exploratory look at supermarket shopping paths”. International Journal of Research in Marketing. 22 (4), pp. 395-414.
Li, B., Salter, J., Dempster, A. G., Rizos, C. (2006) “Indoor Positioning Techniques Based on Wireless LAN”. In: First IEEE International Conference on Wireless Broadband and Ultra Wideband Communication. Sydney, paper 113.
MacGregor, J. N., Ormerod, T. (1996) “Human performance on the traveling salesman problem”. Perception Psychophysics. 58 (4), pp. 527-539.
Melton, A. (1935) “Problems of installation in museums of art”. American Association of Museums Monograph New Series No. 14. Sorensen, H. (2003) “The science of shopping”. Marketing Research. 15 (3), pp. 30-35.
Nilson, M., Hallberg, Josef. (2002) “Positioning with Bluetooth, IrDA and RFID”. Unpublished master thesis. University Lulea of Technology, Department of Computer Science and Electrical Engineering.
Omey, E. (2006) “Clusteranalyse”. Niet gepubliceerde cursustekst, Universiteit Gent.
88
Pels, M., Barhorst, Jelmer., Michels, M., Hobo, R., Barendse J. (2005) “Tracking people using Bluetooth - Implications of enabling Bluetooth discoverable mode”. Project end report, University of Amsterdam.
Taylor, S. (1986) “Understanding processes of informal education: A naturalistic study of visitors to a public aquarium”. Unpublished doctoral dissertation. University of California, Berkeley.
Van Kenhove, P. (1989) “Marktstructuuranalyse, een integratie van marktsegmentatie en marktafbakening: een constritutief en operationeel onderzoeksopzet”. Vakgroep Marketing. Universiteit Gent. pp. 344.
Wikipedia (2010) “Stochastic model”. Http://nl.wikipedia.org . Raadpleging 17/11/2010.
Wikipedia (2011) “Kooi van Faraday”. http://nl.wikipedia.org/wiki/Kooi_van_Faraday. Raadpleging 17 mei 2011.
Witlox, F., Derudder, B. (2007) “Ruimtelijke analyse: methoden en technieken”. Niet gepubliceerde cursus. Universiteit Gent.
www.gentzuid.be, 15 april 2011.
89
9. BIJLAGEN
Bijlage 1: Overzicht winkels te Gent Zuid shoppingcenter (Bron: www.gentzuid.be, 15 april 2011)
90
Bijlage 2: Overzicht situering winkels per verdieping in het shoppingcenter Verdieping 0:
Verdieping -1:
91
Verdieping +1:
92
Bijlage 3: Overzicht van het nummer van de Bluetoothscanner, locatie en welke sensor er werd gebruikt. Datum 24-nov 24-nov 24-nov 24-nov 24-nov 24-nov 24-nov
Plaats Blokker Veritas Kruidvat Casar Match (pizza) Essenza Jack en Jones Randstad
24-nov Pearle Opticiens
Nummer toestel 210 207 203 204 201 206 tot 7/12: erna 117 209 117 tot 01/12 (13u30) erna 328
Details plaats aan kassa boven breiwol in stock aan kassa in kastje voor ingang stock achteraan rechts aan printer in kabelgoot
Sensor D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium
Achteraan rechts in winkel
D-Link DBT-122 + aluminium
25-nov Piepoos 25-nov Mon Dada Mon Dada 25-nov H & M H&M H&M 25-nov Australian Ice Cream 25-nov Etam
108 112 104 103 109 208 205 123
boven op kast "schrijvers en stiften rechts van toog (kant shopping) aan bar (ingang straat) kassa op gelijkvloers kassa op eerste verdieping kinderafdeling 2e verdieping op kast aan kassa aan kassa
D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium Sena UD100 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium
26-nov 26-nov 26-nov 26-nov
Club Damart Street One NafNaf
114 113 102 116
aan kassa achteraan boven op kast aan kassa aan kassa
Trust 15542 + aluminium Trust 15542 Trust 15542 + aluminium Trust 15542 + aluminium
27-nov 27-nov 27-nov 27-nov 27-nov 27-nov
Crinckles Hunkemoller Cassis Standaard Boekhandel Hema Ici Paris XL
105 118 110 122 121 115
achteraan aan de ingang dienst (bak daarin) achteraan links tegen de muur aan paskoten in kot rechtover kassa in ruimte achter kassa. Sensor boven wegenkaarten achter kassa, sensor op kast links achteraan de winkel in hoek
Trust 15542 + aluminium Trust 15542 Trust 15542 Trust 15542 + aluminium Trust 15542 + aluminium Trust 15542
27-nov L & L 27-nov Venizi
101 124
rechts tegenover de kassa rechts in de hoek (bak + sensor op kast)
Trust 15542 + aluminium Trust 15542 + aluminium
30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov 30-nov
329 325 309 314 308 330 318 326 307 331 305 311 322 312 306 319 324 302 310 301 320 317 321 303 316 313
aan kassa aan reclamebord aan paal (achter tv) aan kassa achter kassa aan snijtafel aan kassa in kast aan kassa in berging achteraan in plafond in plafond in plafond in plafond (aan Y & D) aan elektriciteitskabels (bak boven betaalaut) onder bancontact onder bancontact onder bancontact onder bancontact onder bancontact Tegen de muur, bakje op de grond Ter hoogte van plakaat in berging naast toog Ter hoogte van plakaat Ter hoogte van plakaat Ter hoogte van plakaat in gebouw tegen glas
Trust 15542 + aluminium Trust 15542 + aluminium Trust 15542 + aluminium Trust 15542 + aluminium Trust 15542 + aluminium Trust 15542 + aluminium Trust 15542 + aluminium Trust 15542 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium D-Link DBT-122 + aluminium Trust 15542 + aluminium Trust 15542 + aluminium Trust 15542 + aluminium Trust 15542 + aluminium Trust 15542 + aluminium Trust 15542 + aluminium Sena UD100
304 315
achter kassa achter glas in de apotheek
Trust 15542 + aluminium Sena UD100
Free Record shop Bel Company Young & Dynamic Pictro The Phone House CityBloem Celio Matulu Pronti ingang loskade + provincie ingang Wilsonplein Kantoren Kuiperskaai Ingang Kuiperskaai Garage ingang Match Match kassa 6 Match kassa 5 Match kassa 4 Match kassa 7 Match kassa 2 Match Self-scan -2 uitgang (kant lift) Brasserie 'T Zuid -2 uitgang (tegenover lift) -3 uitgang (kant lift) -3 uitgang (tegenover lift) Conciërge (uitgang parking)
1-dec Panos 1-dec Veldstraat
celio
cityBloem
club
crinckles
damart
essenza
etam
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 2 0 0
0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0
hema
cassis
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h_en_m_kinder
casar_match
0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0
h_en_m_1
brasserie_tzuid
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 1
0 1 0 0 0 0 2 0 0 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 2 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 82 15 0 82 0 55 0 15 55 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h_en_m_0
blokker
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
free_record_shop
bel_company
australian_ice_cream bel_company blokker brasserie_tzuid casar_match cassis celio cityBloem club crinckles damart essenza etam free_record_shop h_en_m_0 h_en_m_1 h_en_m_kinder hema
australian_ice_cream
Bijlage 4: Cross-tabel die overlapping aangeeft tussen de verschillende sensoren. Volledige tabel op CD-rom (Filtering/Crosstabel).
Bijlage 5: Overzicht van RSSI-filterwaarde en vermijden kortste intervallen per Bluetoothscanner.
Sensor 101 102 103 104 105 108 109 110 112 113 114 115 116 118 121 122 123 124 201 203 204 205 206 207 208 209 210 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318
Plaats L&L Street One H & M (0) Mon Dada (straat) Crinckles Piepoos H & M (+1) Cassis Mon Dada (shopping) Damart Club Ici Paris XL NafNaf Hunkemoller Hema (Kassa/ingang) Standaard Boekhandel Etam Venizi Essenza Kruidvat Casar Match (pizza) Australian Ice Cream Jack en Jones Veritas H & M (kinder) Randstad Blokker Match Self-scan Match kassa 7 -3 uitgang (kant lift) Panos ingang Wilsonplein Match kassa 6 Pronti The Phone House Young & Dynamic Match kassa 2 Kantoren Kuiperskaai Garage ingang Match Conciërge parking Pictro Veldstraat -3 uitgang (tegenover lift) Brasserie 'T Zuid Celio
RSSI-waarde -90 -90 -87 -70 -85 -85 -87 -74 -81 -83 -88 -89 -90 -80 -82/-89 -84 -77 -77 -80 -78 -70 -65 -88 -84 -77 -82 -72 -82 -65 -90 -82 -76 -65 -94 -80 -90 -68 -74 -69 -92 -85 geen -72 -79 -85
Vermijden van 'korte' intervallen 10 seconden 5 seconden 10 seconden 10 seconden 10 seconden 10 seconden 10 seconden 2 seconden 5 minuten 10 seconden 10 seconden 20 seconden 5 seconden 10 seconden 10 seconden/ 5 seconden 5 seconden 5 seconden 10 seconden 5 seconden 5 seconden 5 seconden 20 seconden 5 seconden 5 seconden 10 seconden 5 seconden 5 seconden geen geen geen 20 seconden geen geen 10 seconden 10 seconden 2 minuten geen geen geen geen 15 seconden geen geen 10 seconden 20 seconden
96
319 320 321 322 324 325 326 328 329 330 331
Match kassa 5 -2 uitgang (kant lift) -2 uitgang (tegenover lift) Ingang Kuiperskaai Match kassa 4 Bel Company Matulu Pearle Opticiens Free Record shop CityBloem ingang loskade + provincie
-65 -90 -78 -76 -65 -79 -83 -75 -84 -84 -72
geen geen geen geen geen 10 seconden 10 seconden 1 minuut 10 seconden 20 seconden 5 seconden
Bijlage 6: Omzettingstabel.
L&L Street One H & M (0) Mon Dada Crinckles Piepoos H & M (+1) Cassis Damart Club Ici Paris XL NafNaf Hunkemoller Hema (Kassa/ingang) Standaard Boekhandel Etam Venizi Essenza Kruidvat Casar Match (pizza) Australian Ice Cream
Bg Bz Ao Bp,Bo Aj Bv Ap Af Ak Ai At Bq As Ar By Am Cc Al Bf Ae Aa
Jack en Jones Veritas Randstad Blokker Panos Pronti The Phone House Young & Dynamic Pictro Brasserie 'T Zuid Celio Bel Company Matulu Pearle Opticiens Free Record shop CityBloem Match Ingang Match Ingang Kuiperskaai Ingang Wilsonplein Ingang Hema
Be Cd Bx Ac Br Bw Ca Ce Bu Ad Ag Ab Bn Bt An Ah Bh, Bi, Bj, Bk, Bl Au Ax Bd Av
97
Bijlage 7: Deel uit afstandstabel (m). Volledige tabel is terug te vinden op CD-Rom (TSP/Afstanden winkels).
Van Naar L&L Street One H & M (0) Mon Dada (straat) Crinckles Piepoos H & M (+1) Cassis Damart Club Ici Paris XL …
H&M H&M L & L Street One (0) Mon Dada Crinckles Piepoos (+1) Cassis Damart Club Ici Paris XL … 0 36,4 -18 74,1 36,4 54,5 36,4 36,4 36,4 36,4 -18 0 0 0 52,8 29,8 52,8 70,3 47,8 8 18,5 52,8 49,8 86,2 0 46,8 86,2 66,4 0 86,2 86,2 86,2 32 6,9 37,7 -6,9 0 37,7 19,6 37,7 37,7 37,7 37,7 78,8 23 29,8 23 23 0 23 40,5 18 21,8 11,3 23 3,3 18,1 -3,3 -3,3 18,1 0 18,1 18,1 18,1 18,1 3,3 20 70,3 0 20 40,5 20 0 22,5 62,3 51,8 20 5 47,8 5 5 18 5 22,5 0 39,8 29,3 5 44,8 8 44,8 44,8 21,8 44,8 62,3 39,8 0 10,5 44,8 34,3 18,5 34,3 34,3 11,3 34,3 51,8 29,3 10,5 0 34,3 17,8 54,2 -35,8 78,8 0 72,3 54,2 54,2 54,2 54,2 0
Bijlage 8: Input regressie-analyse
Nr. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
Sensor australian_ice_cream bel_company blokker brasserie_tzuid casar_match cassis celio cityBloem club crinckles damart essenza etam free_record_shop h_en_m_0 h_en_m_1 h_en_m_kinder hema hunkemoller ici_paris_xl ingang_garage_match ingang_hema ingang_kantoren_kuiperskaai ingang_kuiperskaai ingang_loskade_en_provincie ingang_min2_kant_lift ingang_min2_tegenover_lift ingang_min3_kant_lift ingang_min3_tegenover_lift ingang_wilsonplein jack_en_jones kruidvat l_en_l match_kassa2 match_kassa4 match_kassa5 match_kassa6 match_kassa7 match_selfscan matulu
Grootte Verdieping 53 1 0 61 1 0 480 0 1 128 1 0 59 0 1 167 0 0 175 1 0 48 1 0 450 0 0 86 0 0 271 0 0 200 1 0 200 1 0 134 0 0 406 1 0 556 0 0 557 0 0 792 0 0 134 0 0 262 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 184 1 0 360 0 1 226 1 0 2623 0 1 2623 0 1 2623 0 1 2623 0 1 2623 0 1 2623 0 1 87 1 0
99
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
mon_dada_shopping mon_dada_straat nafnaf panos parking pearle_opticiens pictro piepoos pronti randstad standaard_boekhandel street_one the_phone_house venizi veritas young_en_dynamic
131 131 208 53 0 92 69 195 325 449 268 133 49 26 187 80
1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1
0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0
Bijlage 9: Pythonscript # performs a simple device inquiry, followed by a remote name request of each # discovered device import os import sys import getopt import struct import bluetooth._bluetooth as bluez import time from math import sqrt from subprocess import call def printpacket(pkt): for c in pkt: sys.stdout.write("%02x " % struct.unpack("B",c)[0]) print
def read_inquiry_mode(sock): """returns the current mode, or -1 on failure""" # save current filter old_filter = sock.getsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, 14) # Setup socket filter to receive only events related to the # read_inquiry_mode command flt = bluez.hci_filter_new() opcode = bluez.cmd_opcode_pack(bluez.OGF_HOST_CTL, bluez.OCF_READ_INQUIRY_MODE)
100
bluez.hci_filter_set_ptype(flt, bluez.HCI_EVENT_PKT) bluez.hci_filter_set_event(flt, bluez.EVT_CMD_COMPLETE); bluez.hci_filter_set_opcode(flt, opcode) sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, flt ) # first read the current inquiry mode. bluez.hci_send_cmd(sock, bluez.OGF_HOST_CTL, bluez.OCF_READ_INQUIRY_MODE ) pkt = sock.recv(255) status,mode = struct.unpack("xxxxxxBB", pkt) if status != 0: mode = -1 # restore old filter sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, old_filter ) return mode def write_inquiry_mode(sock, mode): """returns 0 on success, -1 on failure""" # save current filter old_filter = sock.getsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, 14) # Setup socket filter to receive only events related to the # write_inquiry_mode command flt = bluez.hci_filter_new() opcode = bluez.cmd_opcode_pack(bluez.OGF_HOST_CTL, bluez.OCF_WRITE_INQUIRY_MODE) bluez.hci_filter_set_ptype(flt, bluez.HCI_EVENT_PKT) bluez.hci_filter_set_event(flt, bluez.EVT_CMD_COMPLETE); bluez.hci_filter_set_opcode(flt, opcode) sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, flt ) # send the command! bluez.hci_send_cmd(sock, bluez.OGF_HOST_CTL, bluez.OCF_WRITE_INQUIRY_MODE, struct.pack("B", mode) ) pkt = sock.recv(255) status = struct.unpack("xxxxxxB", pkt)[0] # restore old filter sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, old_filter ) if status != 0: return -1 return 0 def device_inquiry_with_with_rssi(sock): # save current filter
101
old_filter = sock.getsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, 14) # perform a device inquiry on bluetooth device #0 # The inquiry should last 8 * 1.28 = 10.24 seconds # before the inquiry is performed, bluez should flush its cache of # previously discovered devices flt = bluez.hci_filter_new() bluez.hci_filter_all_events(flt) bluez.hci_filter_set_ptype(flt, bluez.HCI_EVENT_PKT) sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, flt ) duration = 8 max_responses = 255 cmd_pkt = struct.pack("BBBBB", 0x33, 0x8b, 0x9e, duration, max_responses) bluez.hci_send_cmd(sock, bluez.OGF_LINK_CTL, bluez.OCF_INQUIRY, cmd_pkt) results = [] done = False while not done: pkt = sock.recv(255) ptype, event, plen = struct.unpack("BBB", pkt[:3]) if event == bluez.EVT_INQUIRY_RESULT_WITH_RSSI: pkt = pkt[3:] nrsp = struct.unpack("B", pkt[0])[0] for i in range(nrsp): addr = bluez.ba2str( pkt[1+6*i:1+6*i+6] ) rssi = struct.unpack("b", pkt[1+13*nrsp+i])[0] results.append( ( addr, rssi ) ) if whitelist: if addr in whitelist: addresult(addr, rssi) elif blacklist: if not addr in blacklist: addresult(addr, rssi) else: addresult(addr, rssi) elif event == bluez.EVT_INQUIRY_COMPLETE: done = True elif event == bluez.EVT_CMD_STATUS: status, ncmd, opcode = struct.unpack("BBH", pkt[3:7]) if status != 0: print "uh oh..." printpacket(pkt[3:7]) done = True else: print "unrecognized packet type 0x%02x" % ptype
102
# restore old filter sock.setsockopt( bluez.SOL_HCI, bluez.HCI_FILTER, old_filter ) return results def plotRssi(rssi, plotFile): file = open(plotFile, 'a') percentage = ((rssi + 100.0)/100.0) maxWidth = 100 line = '#' * int(percentage * 40) file.write(str(percentage * 40) + '\n') file.write(line + '\n') def addresult(addr, rssi): if rssi > minRssi: if soundOption == '0': #call(['aplay', '-q', soundFile]), call(['beep', '-f', '400']), elif soundOption == '1': maxFreq = 1500.0 minFreq = 50.0 percentage = ((rssi + 100.0)/100.0) call(['beep', '-f', str((maxFreq - minFreq) * percentage)]), #print percentage, if plotFile != '': plotRssi(rssi, plotFile) print time.time(), print time.strftime("%H:%M:%S", time.localtime()), if knownmacs.has_key(addr): print knownmacs[addr], #print soundFile, print "%s RSSI: %d" % (addr, rssi) if not resultmap.has_key(addr): resultmap[addr] = [] resultmap[addr].append(rssi) def mean_stdev(x): if len(x) == 1: return x[0], 0 else: n, mean, std = len(x), 0, 0 for a in x: mean = mean + a mean = mean / float(n) for a in x: std = std + (a - mean)**2
103
std = sqrt(std / float(n-1)) return mean, std def median(x): sortedValues = sorted(x) if len(sortedValues) % 2 == 1: return sortedValues[(len(sortedValues)+1)/2-1] else: lower = sortedValues[len(sortedValues)/2-1] upper = sortedValues[len(sortedValues)/2] return (float(lower + upper))/2 #args = '-d -f -if -smt -smo -sma -st'.split() try: opts, extraparams = getopt.getopt(sys.argv[1:], 'd:w:b:n:k:f:s:t:p:') except getopt.GetoptError, err: print str(err) sys.exit(2) dev_id = 0 pointId = '' outputName = '' number_of_inquiries = -1 whitelist = [] blacklist = [] knownmacs = {} resultmap = {} minRssi = -200 soundOption = '' plotFile = '' for o, a in opts: if o == '-d': dev_id = int(a) elif o == '-n': number_of_inquiries = int(a) elif o == '-w': file = open(a) for line in file: whitelist.append(line.strip()) elif o == '-b': file = open(a) for line in file: blacklist.append(line.strip()) elif o == '-k': file = open(a) for line in file: tuple = line.split()
104
knownmacs[tuple[0]] = tuple[1] elif o == '-f': outputName = a print "Point id:" pointId = sys.stdin.readline().strip() elif o == '-t': minRssi = int(a) elif o == '-s': soundOption = a elif o == '-p': plotFile = a try: sock = bluez.hci_open_dev(dev_id) except: print "error accessing bluetooth device..." sys.exit(1) try: mode = read_inquiry_mode(sock) except Exception, e: print "error reading inquiry mode. " print "Are you sure this a bluetooth 1.2 device?" print e sys.exit(1) print "current inquiry mode is %d" % mode if mode != 1: print "writing inquiry mode..." try: result = write_inquiry_mode(sock, 1) except Exception, e: print "error writing inquiry mode. Are you sure you're root?" print e sys.exit(1) if result != 0: print "error while setting inquiry mode" print "result: %d" % result
if number_of_inquiries != -1: for i in range(number_of_inquiries): print 'inquiry', i device_inquiry_with_with_rssi(sock) else: i=1 while True: print 'inquiry', i device_inquiry_with_with_rssi(sock)
105
i=i+1 if outputName != '': file1 = open(outputName, 'a') file2 = open(outputName + 'binary', 'a') closestDevice = '' highestRssi = -200 for addr in resultmap.keys(): print addr, if knownmacs.has_key(addr): print knownmacs[addr], print len(resultmap[addr]), #print sum(resultmap[addr]) / len(resultmap[addr]), mean, stdev = mean_stdev(resultmap[addr]) med = median(resultmap[addr]) print mean, stdev, print med if mean > highestRssi: highestRssi = mean closestDevice = addr if outputName != '': line1 = pointId + ';' + addr + ';' + str(mean) + ';' + str(stdev) + ';' + str(med) + ';' + str(len(resultmap[addr])) file1.write(line1 + '\n') print len(resultmap), 'devices in total' print "Closest device: " + closestDevice if outputName != '': line2 = pointId + ';' + closestDevice file2.write(line2 + '\n') #elif stop_after_number_of_measures == True: # print 'measures' #else: # while True: # device_inquiry_with_with_rssi(sock)
Bijlage 10: Python-script ter filtering van de data.
import glob import os import re import sys import time
106
def time_diff(time1, time2, time_format): """ Return the difference in seconds between time1 and time2, both specified in time_format. """ if time_format == '%s': return abs(int(time2)-int(time1)) else: return abs(int( time.mktime(time.strptime(time2, time_format)) - \ time.mktime(time.strptime(time1, time_format)))) buffer_size = 10.24 time_format = '%Y%m%d-%H%M%S-%Z' rules = {} filter_rules = open('filter-rules.txt', 'r') for line in filter_rules: ls = line.strip().split(',') rules[ls[0].strip('"')] = int(ls[1]) filter_rules.close() for l in glob.glob('voyage*-*-*-*'): datadir = l limit = None flog_dir = datadir + '/filtered_logs' if not os.path.exists(flog_dir): os.mkdir(flog_dir) for s in glob.glob(datadir + '/merged_logs/*-scan.log'): filename = s[s.rfind('/')+1:] smac = filename.split('-')[1] for r in rules: if re.search(r, filename) != None: limit = rules[r] if limit != None: print "Processing %s ..." % l scan_in_log = open(s, 'r') rssi_in_log = open(s.replace('scan.log', 'rssi.log')) scan_out_log = open(flog_dir + s[s.rfind('/'):], 'w') rssi_out_log = open(flog_dir + s[s.rfind('/'):].replace(
107
'scan.log', 'rssi.log'), 'w') mac_devclass = {} pool = {} pool_to_delete = [] rssi_cnt = 0 scan_cnt = 0 uniq_mac = {} for line in rssi_in_log: if not re.match("^[0-9]{8}-[0-9]{6}-[A-Za-z]*,([0-9A-F]" + \ "[0-9A-F]:){5}[0-9A-F][0-9A-F],-?[0-9]+$", line): continue ls = line.strip().split(',') r = int(ls[2]) if r >= limit: rssi_out_log.write(line) rssi_cnt += 1 mac = ls[1] while mac not in mac_devclass: lss = scan_in_log.readline().strip().split(',') mac_devclass[lss[1]] = lss[2] if not mac in pool: pool[mac] = ls[0] scan_out_log.write('%s,%s,%s,in\n' % ( ls[0], mac, mac_devclass[mac])) uniq_mac[mac] = 0 scan_cnt += 1 for m in pool: if time_diff(pool[m],ls[0],time_format) > buffer_size: scan_out_log.write('%s,%s,%s,out\n' % ( pool[m], m, mac_devclass[m])) scan_cnt += 1 if m == mac: scan_out_log.write('%s,%s,%s,in\n' % ( ls[0], mac, mac_devclass[mac])) uniq_mac[mac] = 0 scan_cnt += 1 else: pool_to_delete.append(m)
108
for m in pool_to_delete: del(pool[m]) pool[mac] = ls[0] pool_to_delete = [] sensor = filename[filename.find('-')+1:filename.rfind('-')] metaC = open(datadir + '/meta.txt', 'r') meta = open(datadir + '/meta2.txt', 'w') for line in metaC: meta.write(line) #mac = None #if 'Sensor' in line: # mac = line.split(' ')[1] #if not 'filtered' in line: # meta.write(line) #elif mac and mac != smac: # meta.write(line) #else: # break meta.write("\nSensor %s (filtered at %i):\n" % (sensor, limit)) meta.write(" Number of loglines in scan.log: %i\n" % scan_cnt) meta.write(" Number of loglines in rssi.log: %i\n" % rssi_cnt) meta.write(" Number of unique MAC-addresses: %i\n" % len( uniq_mac)) metaC.close() meta.close() os.rename(datadir + '/meta2.txt', datadir + '/meta.txt') for k in [scan_in_log, scan_out_log, rssi_in_log, rssi_out_log]: k.close()
Bijlage 11: Code in R voor clusteranalyse
# Clusteranalyse data <- read.csv("D:/Edward/School/Tweede Master/Thesis/Data/Voor_R_alles_gefilterd/weekdagen/tabel_weekdagen. csv") d <- dist(data, method = "euclidean") fit <- hclust(d, method="ward")
109
plot(fit) data2 <- read.csv("D:/Edward/School/Tweede Master/Thesis/Data/Voor_R_alles_gefilterd/woensdagen/tabel_woensdage n.csv") c <- dist(data2, method = "euclidean") resultaat <- hclust(c, method="ward") plot(resultaat) data3 <- read.csv("D:/Edward/School/Tweede Master/Thesis/Data/Voor_R_alles_gefilterd/zaterdagen/tabel_zaterdage n.csv") e <- dist(data3, method = "euclidean") resultaat2 <- hclust(e, method="ward") plot(resultaat2) data4 <- read.csv("D:/Edward/School/Tweede Master/Thesis/Data/Voor_R_alles_gefilterd/zondag/tabel_zondag.csv") f <- dist(data4, method = "euclidean") resultaat3 <- hclust(f, method="ward") plot(resultaat3)
Bijlage 12: Code in R voor PCA-analyse library(bayesm) rmat <- read.csv("C:/factoranalyse/rmat.csv", header=F) str(rmat) rmat <- as.matrix(rmat) # Do Principal Component Analysis (PCA) on rmat ?princomp pca <- princomp(covmat=rmat) # Do first check of PCA output pca pca$loadings # Plot best two dimensions plot(pca$loadings[c(-45),1],pca$loadings[c(-45),2],col="red") text(pca$loadings[,1]+.005,pca$loadings[,2],c(1:nrow(rmat)),col="red ") # Regressie tabel <- read.csv("C:/factoranalyse/tabel.csv", header=F) tabel y <- c(pca$loadings[c(-45),2]) X1 <- c(tabel[-45,3]) #oppervlaktes X2a <- c(tabel[-45,4]) #verdieping X2b <- c(tabel[-45,5]) X3a <- c(tabel[-45,6]) #type winkel 6-25 X3b <- c(tabel[-45,7])
110
X3c X3d X3e X3f
<<<<-
c(tabel[-45,8]) c(tabel[-45,9]) c(tabel[-45,10]) c(tabel[-45,11])
X <- cbind(X1,X2a,X2b,X3a,X3b,X3c,X3d,X3e,X3f) out <- lm(y~X) summary(out)
111
Bijlage 13: Componenten van de PCA-analyse
112
Bijlage 14: Overzicht afwijking t.o.v. de echte tijd voor elke Bluetoothscanner Sensor 101 102 103 104 105 108 109 110 112 113 114 115 116 118 121 122 123 124 201
Plaats L&L Street One H & M (0) Mon Dada (straat) Crinckles Piepoos H & M (+1) Cassis Mon Dada (shopping) Damart Club Ici Paris XL NafNaf Hunkemoller Hema (Kassa/ingang) Standaard Boekhandel Etam Venizi Essenza
Afwijking 11 min. 8 min. 3 min. 30 sec. 1 min. 9 min. 1 min. 1 min. 11 min. 1 min. 30 sec. 1 min. 30 sec. 7 min. 8 min. 9 min. 6 min. 8 min. 9 min. 2 min. 1 min. 6 min.
Sensor 203 204 205 206 207 208 209 210 301 302 303 304 305 306 307 308 309 310 311
Plaats Kruidvat Casar Match (pizza) Australian Ice Cream Jack en Jones Veritas H & M (kinder) Randstad Blokker Match Self-scan Match kassa 7 -3 uitgang (kant lift) Panos ingang Wilsonplein Match kassa 6 Pronti The Phone House Young & Dynamic Match kassa 2 Kantoren Kuiperskaai
Afwijking Sensor Plaats 1 min. 312 Garage ingang Match 7 min. 313 Conciërge parking 5 min. 314 Pictro 3 min. 30 sec. 315 Veldstraat 5 min. 316 -3 uitgang (tegenover lift) 1 min. 317 Brasserie 'T Zuid 0 min. 318 Celio 0 min. 319 Match kassa 5 6 min. 320 -2 uitgang (kant lift) 6 min. 321 -2 uitgang (tegenover lift) 9 min. 30 sec. 322 Ingang Kuiperskaai 6 min. 324 Match kassa 4 6 min. 325 Bel Company 6 min. 326 Matulu 6 min. 328 Pearle Opticiens 8 min. 329 Free Record shop 1 min. 330 CityBloem 7 min. 331 ingang loskade + provincie 9 min.
Afwijking 8 min. 3 min. 1 min. 4 min. 7 min. 4 min. 6 min. 3 min. 7 min. 30 sec. 10 min. 5 min. 1 min. 7 min. 7 min. 9 min. 7 min. 30 sec. 9 min. 30 sec. 2 min.
Bijlage 15: Correlatiematrix (Volledige tabel zie CD-Rom onder de map PCA/rmat.csv) 1 0.284814733 0.290808554 0.110780447 0.303760802 0.307245956 0.332132831 0.203287623 0.250433141 0.25376088 0.169452735 0.291102981 0.301812593 0.269663431 0.315558216
0.284814733 1 0.293110839 0.129773005 0.218033932 0.320146596 0.335803441 0.277367151 0.295217066 0.210836451 0.21893607 0.287215449 0.305575966 0.243925635 0.188516508
0.290808554 0.293110839 1 0.217948823 0.407865037 0.419534089 0.331451235 0.239125768 0.437296941 0.297063844 0.285721201 0.469499182 0.402549992 0.404635962 0.359885188
0.110780447 0.129773005 0.217948823 1 0.076831198 0.253806185 0.219358194 0.158814485 0.174788639 0.174471611 0.172194587 0.139636876 0.1529391 0.10944952 0.218834214
0.303760802 0.218033932 0.407865037 0.076831198 1 0.274013977 0.31510667 0.221138676 0.300889066 0.239829353 0.175832592 0.199406389 0.244116148 0.229851225 0.369714895
0.307245956 0.320146596 0.419534089 0.253806185 0.274013977 1 0.443473052 0.348854153 0.491206529 0.485482153 0.481752822 0.348063694 0.436689238 0.399739465 0.396291254
0.332132831 0.335803441 0.331451235 0.219358194 0.31510667 0.443473052 1 0.424027657 0.30854496 0.324528388 0.193575465 0.287138165 0.363478172 0.320034447 0.432613695
0.203287623 0.277367151 0.239125768 0.158814485 0.221138676 0.348854153 0.424027657 1 0.306089522 0.345757735 0.216495718 0.204632596 0.313321072 0.259756872 0.281724307