Twee jaar geleden schreven we een artikel waarin we de vier meest gebruikte programma’s voor statistische analyses naast elkaar legden. We vergeleken twee open source talen (Python en R) met twee commerciële partijen (SPSS en SAS). De vergelijking was gebaseerd op methoden & technieken, eenvoudigheid van leren, support, grafische mogelijkheden en kosten. Als we als data scientists iets hebben kunnen leren van de afgelopen paar jaren, is het wel dat de wereld rondom data snel gaat. Heel snel! Daarom is het hoog tijd om eens te kijken hoe het er nu voor staat met Python, R, SPSS en SAS.
In het vorige artikel concludeerden we dat R, SAS en SPSS zijn ontwikkeld op universiteiten (respectievelijk University of Auckland, North Carolina State University en University of Stanford). Waarbij R kan worden gezien als de Benjamin van de drie. Python is bedacht door een Monty-Python-Fan; de Nederlander Guido van Rossum. Dat Python niet is ontwikkeld aan een universiteit valt te zien: R, SAS en SPSS hebben alle drie statistisch modelleren als primair doel en vinden hun oorsprong in de verklarende analyses. Waar Python een ‘general purpose language’ is, wat inhoudt dat Python gebruikt kan worden voor het ontwikkelen van allerlei toepassingen, waaronder statistisch modelleren.
Binnen statistisch modelleren bestaat een trade-off. Deze trade-off heeft aan de ene kant verklaarbaarheid staan en daar tegenover staat voorspelbaarheid. Verklarende modellen stellen ‘waarom’ vragen: Waarom vertrekken mijn klanten? Voorspellende modellen stellen ‘Wie’ of ‘Wat’ vragen: Wie van mijn klanten gaat vertrekken? Deze voorspelmodellen worden vaak black boxes genoemd, doordat ze zeer complexe patronen kunnen herkennen die wij als mens niet meer kunnen interpreteren. Met andere woorden, een hogere voorspelkracht staat op gespannen voet met de verklaarbaarheid. Aan de andere kant geldt hetzelfde. Een model is een vereenvoudigde weergave van de werkelijkheid, zo ook een statistisch model. Willen we een bepaald effect isoleren, moet de rest van de ‘werkelijkheid’ aan bepaalde eisen voldoen om het begrijpbaar te houden. We kunnen dus niet de hele werkelijkheid meenemen, wat afbreuk doet aan de voorspelbaarheid.
Van academie naar praktijk
De verklarende analyses komen vaak voor in de academische wereld. Het is dan ook niet verwonderlijk dat R, SAS en SPSS, vanuit hun historie, zijn ontwikkeld ten behoeve van de verklarende analyses. In de loop der jaren is het gebruik van, en het geloof in, statistische modellen steeds breder en intensiever geworden. Wat leidde tot termen als data mining, big data en machine learning. R, SAS en SPSS speelden hier alle drie op in. Zo ontwikkelde SAS hun Enterprise Miner en SPSS ontwikkelde Modeler. Bij R ging dit iets natuurlijker, aangezien R open source is, met een enorme community. Deze community maakt R zo sterk in zowel de verklarende als de voorspellende kant van de data analyse.
General purpose
Python is ook een open source taal met een alsmaar groeiende community. Aangezien Python een ‘general purpose language’ is, wordt het veel gebruikt om applicaties te ontwikkelen. Binnen deze applicaties zitten soms statistische analyses die voorspellingen doen, deze voorspellingen moeten dan meteen gebruikt worden. Dit maakt dat Python zich sterk heeft ontwikkeld op het gebied van machine learning en daarmee dus vooral goed ingezet kan worden aan de voorspellende kant van het spectrum. En in het bijzonder in het schalen en borgen van voorspellingen, zodat deze zonder tussenkomst van een analist hun werk kunnen doen.
In het artikel van twee jaar geleden maakten we een vergelijking tussen de vier pakketten aan de hand van een vijftal onderwerpen. Zie hier kort de conclusie:
In het artikel van twee jaar geleden gaf ik aan dat mijn keuze altijd viel op R en/of Python, de keuze tussen de twee is afhankelijk van de toepassing. Moet ik klantgedrag analyseren, vertrouw ik op R, aangezien die beter is in het openmaken van de black box. Moet het algoritme geïmplementeerd worden en de uitkomsten meteen worden gebruikt, is Python mijn go-to tool. Lees verder om te kijken of dit nog steeds het geval is.
Stack Overflow is overwegend het meest gebruikte platform waar ontwikkelaars vragen stellen over tooling. Als we kijken naar hoe vaak de tags Python, R en SAS voorkomen (SPSS komt er niet in voor), zien we een duidelijke trend. Deze trend zien wij ook in ons dagelijks leven als data scientists. Veel van onze klanten hebben de overstap gemaakt en de overgrote meerderheid maakt in ieder geval gebruik van één van de twee open source pakketten. Ook universiteiten stappen over. In mijn tijd maakte Marketing (Research) gebruik van SPSS. Nu maken ze bij de Marug aan de Universiteit van Groningen gebruik van R.
Bron: Stack Overflow Trends, 22-1-2019
Het is geen geheel objectieve manier om de trends te volgen, aangezien de support van Python en R voornamelijk de community is. Waarvan veel op Stack Overflow plaatsvindt en SAS en SPSS voornamelijk via officiële kanalen gaat. Toch vind ik het wel een mooi plaatje, omdat het aardig mijn eigen ontwikkeling in gebruik laat zien.
Kijk ik naar welke tooling ik heb gebruikt de afgelopen jaren, vallen SAS en SPSS weg op de nul-lijn en stijgt Python het meest. R gebruik ik ook nog steeds veel voor marketing-toepassingen, maar Python is toch wel de grootste stijger. Eén van de redenen is dat de community rondom Python sneller groeit naar mijn idee. In Frankrijk wordt Python de officiële programmeertaal in het hoger onderwijs, waardoor alle Franse scholieren in aanraking gaan komen met Python. Aldus The Economist heeft Python andere ‘general purpose’ programmeertalen, zoals Java en C, in de afgelopen twee jaar achter zich gelaten.
De community groeit ook steeds meer met grote organisaties die programma’s en packages ontwikkelen en deze open source publiceren, denk aan Netflix en Airbnb of Google met Tensorflow. Tensorflow wordt gebruikt voor deep learning. Deep learning is een verzamelingen technieken die zich in de afgelopen paar jaren hebben bewezen als algoritmes met het meeste potentieel. Hierdoor krijg je een steeds breder wordend scala aan toepassingen en gaan de ontwikkelingen steeds sneller.
In de praktijk zien we managers vaak vragen om voorspelmodellen, maar eigenlijk ook sterk de behoefte hebben aan een verklaring van de patronen. Als men geen zicht heeft welke patronen een algoritme heeft gevonden, kan men niet verklaren waarom bepaalde klanten een bepaalde waarde krijgen. Dit doet inbreuk op het vertrouwen en de acceptatie van een model.
Een belangrijke trend is dan ook de roep om verklaarbaarheid binnen voorspellende machine learning modellen en deze trend groeit nog steeds. Ook dit is overigens weer een argument voor het gebruik van R en Python. Aan de ene kant maakt dit R nog steeds erg sterk. Aan de andere kant, zie je dat de interesse binnen Python hierin ook erg groeit. Beide omgevingen dragen bij aan transparantie ten aanzien van wat er gebeurt binnen het algoritme. ‘Explainable Artificial Intelligence’, of ook wel XAI, is niet voor niets een opkomende term in ons vakgebied.
In de afgelopen jaren zien we dus een afname in gebruik in SAS en SPSS en een toename in gebruik van R en voornamelijk Python. De communities achter deze open source tooling maken de talen zo sterk, wat alleen maar zorgt voor een grotere community. De groei in mogelijkheden neemt daarom exponentieel toe, dat gepaard met de ontwikkelingen in deep learning, geven R en Python een competitive edge waar SAS en SPSS voorlopig niet tegenop kunnen boksen.
In de komende jaren, denk ik dat deep learning:
Mijn gebruik in Python zal dan ook steeds meer de overhand nemen in mijn dagelijkse gebruik.
Verder denk ik dat Notebooks ook een steeds grotere rol gaat spelen. Notebooks worden al veel gebruikt binnen Python met Jupyter. Maar ook binnen R verwacht ik dat Notebooks meer een rol gaan spelen. De combinatie van code en markdown, maken het uitermate geschikt om de gemaakte keuzes van de data scientist over te brengen aan andere data scientisten.
5 juli 2023
Wil jij jouw collega’s op ludieke wijze laten kennismaken met datagedreven werken? Geef ze op voor... lees meer
17 april 2023
In elk bedrijf is het een uitdaging om ervoor te zorgen dat we alleen de documenten... lees meer
16 januari 2023
Culture eats data strategy for breakfast Bedrijven die erkennen dat ze met de inzet van data... lees meer