Python & R vs. SPSS & SAS – de vergelijking twee jaar later opnieuw

18 februari 2019

Artikel geschreven door Jeroen Kromme, Principal Consultant

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 en 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.

 

Balans van voorspelbaarheid en verklaarbaarheid

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 dan in het bijzonder in het schalen en borgen van voorspellingen, zodat deze zonder tussenkomst van een analist hun werk kunnen doen.

 

Twee jaar geleden

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:

  • Methoden en Technieken: R en Python wonnen deze met gemak. Door de grote community die mee helpt ontwikkelen van packages en algoritmes binnen R en Python kunnen SAS en SPSS gewoonweg niet bij blijven.
  • Eenvoud: SPSS en SAS hebben beide een uitgebreide Graphical User Interface, wat betekent dat je kunt klikken in plaats van coderen. R en Python moeten het dan toch wel afleggen tegen de commerciële partijen. Tussen R en Python, wint Python het. Eén van de belangrijkste uitgangspunten toen Python werd ontwikkeld is leesbaarheid. Dit maakt de taal gemakkelijk te leren voor niet-programmeurs.
  • Support: SAS en SPSS hebben beide officiële support, wat voor sommige decision makers een belangrijk argument is om toch over te stappen op deze tools. Echter, in de praktijk zie je dat de communities van R en Python beter en vele malen sneller zijn. De omvang van deze communities zorgt niet alleen voor meer ontwikkelsnelheid maar ook voor betere, wereldwijde ondersteuning via uiteenlopende platforms en fora.
  • Grafische mogelijkheden: Ook deze gaat, wat mij betreft, naar R en Python. De grafieken zien er niet alleen een stuk gelikter uit als er gebruikgemaakt wordt van bijvoorbeeld GGplot of D3. Maar R en Python geven je ook de mogelijkheid om hele interactieve tools te ontwikkelen.
  • Kosten: Ook deze is voor R en Python. Beide zijn open source, waardoor ze gratis te gebruiken zijn. Het neemt niet weg dat ze wel een langere learning curve hebben dan de GUI’s van SPSS en SAS, wat opleidingen vaak kostbaarder maakt.

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.

 

Trends

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.

 

Stack overflow questions that month_Python & R vs. SPSS & SAS

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, 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 bijvoorbeeld 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.

 

Een blik op de toekomst

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 1) steeds krachtiger gaat worden door verbeteringen in infrastructuur, lagen en toename in processing power en 2) toegankelijker wordt door packages als Tensorflow en Keras. 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.

Contact

Wil je meer weten over dit onderwerp? Neem dan contact op met Jeroen Kromme via onderstaande contactgegevens.

Jeroen Kromme, Principal Consultant

+31 6 43 58 59 92

j.kromme@cmotions.nl

Laatste nieuws

Cluedo Hackathon – de ontknoping!

23 mei 2019

Op het prachtige Slot Zuylen is de Cluedo Hackathon – georganiseerd door Cmotions en The Analytics... lees meer

HR Analytics Congres 2019

21 mei 2019

Hoe fact based is HR Nederland anno 2019? HR Nederland wordt stapje voor stapje meer fact... lees meer

De APK voor voorspelmodellen; hoe je als data scientist weer tijd krijgt voor dingen die echt leuk zijn

15 mei 2019

Wij, data scientists, zijn goed in het ontwikkelen van nieuwe modellen en halen daar een groot... lees meer

Schrijf je in voor onze nieuwsbrief

Mis nooit meer iets op het gebied van advanced analytics, data science en de toepassing daarvan binnen organisaties!