För att visa hur en data scientist kan arbeta och vad avancerad analys är i praktiken tittar vi i denna serie närmare på Göteborgs cykeluthyrning Styr & Ställ. Avancerad analys kan ibland upplevas som väldigt komplext arbete med data. Uppgiften för en data scientist är därför inte bara teknisk problemlösning utan även att göra nyttan tydlig och enkel att förstå. Därtill är "science" viktigt för att resultatet ska bli trovärdigt och spårbart (bra forskning kan repeteras för att bekräftas).
I denna första del av serien är fokus på hur man mäter nyttan med ett komplext system. Hur tillgängligt är Styr & Ställ egentligen? Hur bra fungerar det? Vi tittar på grundläggande data science som hur man skaffar fram data, visualiserar information och ställer upp en modell för att utvärdera ett system.
För att mäta hur tillgängligt Styr & Ställ är behöver vi data, ju mer desto bättre. Tyvärr verkar det inte finnas någon färdigt paketerad information att bara ladda ner. Sökandet leder till Styr & Ställs hemsida med karta över stationer och till systemleverantörens app All Bikes Now. Här ser vi stationerna med antal cyklar och lediga platser just nu. Men historiken? Datatorka är en data scientists mardröm. Och det är inte ovanligt att komma till en verksamhet där första steget är att börja samla vettiga data.
Färdighet #1: datainsamling (acquisition)
I det här fallet löstes problemet smidigt genom att en molntjänst kopplades upp mot Göteborgs Stads Öppna Data där cykelstationernas information kan läsas ut som JSON eller XML med hög frekvens. Det kan tyckas "bökigt" att behöva arbeta med till synes ostrukturerad information men väcker samtidigt idéer kring kraftfulla Big Data-lösningar som Hadoop och NoSQL-databaser. Valet av lagring och teknik för bearbetning är upp till varje data scientist och i detta fall finns alla möjligheter från parallelliserad analys av rådata (go fishin' in the data lake) till NoSQL-databaser, eller att avkoda informationen och köra SQL. Fokus här är inte tekniken utan resultatet men det är viktigt att ha en bredd för olika problem.
Färdighet #2: datalagring (storage)
Vi vet alltså hur många cyklar och lediga platser en station har vid olika tidpunkter. Vad säger data? Jo, det finns 66 stationer i Göteborg med 1741 cykelställ (juni 2016). Storleken på stationerna varierar från 15 ställ (Engelbrektsgatan) till 60 (Gullbergsvass). Nattetid står de flesta cyklarna i ställen och det visar sig att antalet cyklar pendlar kring 900 (52 % av cykelställen). Genom att notera när antal cyklar och lediga ställ förändras kan vi räkna ut när en cykel hyrs ut eller lämnas tillbaka. En vanlig arbetsdag visar det sig bli från 3000 till drygt 4000 resor med Styr & Ställ. Arbetet att bearbeta data och härleda information kan tyckas komplext men dessa till synes enkla data öppnar upp för många möjligheter.
Färdighet #3: databehandling (wrangling)
I det perfekta cykelsystemet har stationerna alltid lediga cyklar och fria platser att lämna en cykel på. Verkligheten ser däremot annorlunda ut och det är inte sällan stationer är tomma eller fulla. Problemet när vi kommer till data är att vi inte vet säkert att stationen är helt tom eller full. Ofta blir en trasig cykel stående ensam kvar (med vriden sadel) eller så är ett av cykelställen ur funktion.
Vi definierar därför "full" som maximalt ett ledigt cykelställ och "tom" som maximalt en cykel. Med denna definition kan vi uppskatta hur ofta olika stationer är (nästan) tomma eller fulla.
Diagrammet ovan visar en summering dagtid för några utvalda stationer och hur ofta de är tomma eller fulla. (Klicka på grafen för att utforska interaktivt i Tableau Public.) Det är fullt möjligt att en station är både tom och full eftersom det varierar över dygnet. Ett exempel är Drottningtorgets station (nedan) som ofta blir tom efter rusningen på morgonen och sedan full på eftermiddagen.
Färdighet #4: datavisualisering
Eftersom tomma och fulla stationer nattetid inte är lika allvarligt som i rusningstrafik måste vi förstå efterfrågan. Det är svårt att verkligen veta att någon gick till en tom station och blev besviken. Men om vi ser att det plockats ut 20 cyklar på 20 minuter från en viss station innan den blir tom, då känns det rimligt att anta att efterfrågan i denna stund är omkring 1 cykel/minut. Står stationen sedan tom i tio minuter är det inte otänkbart att ytterligare tio personer ville ha hämtat cyklar här.
För att förenkla antar vi att efterfrågan endast beror på om det är helgdag eller vardag, samt vilken timme på dygnet det är (rimligtvis skiljer sig soliga fredagar från regniga måndagar men vi har här för lite historik för att fördjupa oss). Med detta resonemang kan vi räkna ut hur många cyklar och tomma ställ som i genomsnitt efterfrågas per station och per timme på dygnet för både helgdag och vardag. Summerar vi alla stationers efterfrågan får vi efterfrågan på hela systemet. I figuren nedtill ser vi för en vanlig vardag hur den totala efterfrågan ser ut jämfört med hur många resor som faktiskt görs. Med perfekt tillgänglighet hade omkring 15 % fler resor varit möjliga en vanlig dag. Och många hade sluppit undan problemet med fulla stationer.
Färdighet #5: analytiskt tänkande
För att förstå tillgängligheten kan vi tänka vilken nytta systemet ger. Med en slags nyttofunktion kan vi beskriva hur glad en användare blir när en cykel ska hämtas eller lämnas vid en station. Om det finns cyklar och lediga ställ är nyttan alltid 1 (100 %). Men vad är värst, tomma eller fulla stationer? En tom station leder till besvikelse och färre resor (det finns alternativ som taxi, promenad eller kollektivtrafik). För den som kommer med en cykel till en full station är problemet ett annat: man är där man vill vara men har en cykel man inte blir av med! Då måste man först leta upp en ledig station, sedan cykla dit och därefter kanske gå tillbaka. Låt oss därför säga att nyttan är 0 för den som kommer till en tom station och -1 för den som kommer med cykel till en full station.
För att se systemets totala nytta och tillgänglighet behöver vi summera alla enskilda händelser. Ur data ser vi direkt alla framgångsrika ut- och incheckningar (+1 i nytta). Efterfrågan vi beräknade ovan hjälper oss att uppskatta antalet besvikelser vid tomma stationer (0 i nytta) och fulla (-1 i nytta). Vi beräknar medelvärdet per timme och får ett mått på tillgänglighet som i grafen nedan. Syftet med detta mått är ingen absolut beskrivning av systemet utan att kunna relativera och väcka frågor. Varför är vissa dagar bättre än andra? Vad påverkar tillgängligheten? Hur kan vi förbättra Styr & Ställ?
Med en snittnivå kring 70 % är det tydligt att det finns potential till förbättring. Vi såg tidigare att 15 % fler resor vore möjliga om inga stationer var tomma. Nu tar vi även hänsyn till frustrationen från fulla stationer och om detta är i samma storleksordning verkar det rimligt med en tillgänglighet på 70 % av systemets potential. Antal uthyrningar är framförallt högt på vardagar och vid vissa toppar kan vi se hur tillgängligheten påverkas negativt. Det är troligt att omfördelningen av cyklar med lastbil är fokuserad på vardagar och det kan förklara helgernas dippar. (I ett kommande inlägg tittar vi närmre på hur omfördelningen går till och hur den påverkar Styr & Ställs tillgänglighet.)
Naturligtvis kan analysen bli avsevärt bättre och exaktare om operatören själv ger ut riktiga data. Då kan vi även se vilka rutter cyklisterna använder, hur länge de cyklar och mycket mera. Den här analysen är gjord för att visa hur man med mycket enkla medel kan analysera ett komplext system. Med hjälp av datainsamling, härledningar, visualiseringar och modeller har vi kunnat granska ett cykelsystem på ett helt nytt sätt. Det finns mycket att förbättra så som omfördelningen av cyklar, anpassade prisnivåer och placering av stationer. Genom att lära från data kan man ständigt förbättra verksamheten och utvecklas. Låt oss hoppas att Styr & Ställ blir mer datadrivet framöver och ger mer nytta till medborgarna!
Färdighet #6: ständig förbättring
Har du synpunkter eller idéer på andra områden där data science kan hjälpa till att ge insikt?
Läs mer:
Del 1 – Data Science i praktiken
Del 3 – Styr och ställ stationen på rätt plats
Del 4 – Hur data science kan rädda miljön
The Data Scientist
Avancerad Analys - lätt att komma igång