Naar inhoud

Vergelijking van de meest gebruikte statistische software

De meest gebruikte statistische softwarepakketten die we bij onze opdrachtgevers tegenkomen zijn SAS, SPSS, R en Python. SAS en SPSS worden nog het meest gebruikt bij opdrachtgevers van ons, maar we zien dat de interesse naar open-source-programma’s, zoals R en Python, groeit. Sterker nog, een aantal van onze opdrachtgevers zijn volledig overgestapt naar het gebruik van R of Python. Daarnaast kiezen commerciële pakketten voor koppelingen naar R of Python, waaronder SAS, en SPSS, maar bijvoorbeeld ook Microsoft SQL Server. Hoog tijd om de programma’s eens naast elkaar te leggen.

SAS is ontwikkeld aan de North Carolina State University en was in eerste instantie het antwoord op de behoefte om grote hoeveelheden landbouwkundige data te analyseren. Het stond destijds voor Statistical Analysis System. In 1976 is het bedrijf SAS opgericht doordat de vraag voor dergelijke software groeide. Statistical Package for the Social Sciences (SPSS) is ontwikkeld voor sociaal-wetenschappelijke studies en was het eerste statistische programma voor de PC. Het werd in 1968 ontwikkeld aan University of Stanford, acht jaar later werd SPSS Inc. opgericht en in 2009 werd het opgekocht door IBM. In 2000 bracht de University of Auckland de eerste release uit van R, een programmeertaal primair gefocust op statistisch modelleren en open beschikbaar onder de GNU-licentie. Python is de enige taal in dit rijtje die niet ontwikkeld is aan een universiteit. Python is bedacht door een Nederlander, groot fan van Monty Python en vandaar ook de naam. Hij had een project nodig rondom de kerstdagen en bedacht Python, een taal gebaseerd op ABC, een taal die hij eerder had ontwikkeld en die erop is gericht niet-programmeurs te leren programmeren.

In de basis zijn het alle vier programmeertalen, al dan niet voorzien van een uitgebreide gebruikersschil. Python is de enige van deze vier talen die niet is ontwikkeld aan een universiteit en heeft ook als enige statistisch modelleren niet als primaire doel. Het is in eerste instantie ontwikkeld om niet-programmeurs te leren programmeren, wat het tot een universelere taal maakt dan de andere drie. Het voordeel van Python, ten opzichte van andere zogeheten multi-purpose talen als C++ en Java, is dat Python zeer makkelijk is om te leren. Vervolgens zijn programmeurs veel modules gaan ontwikkelen bovenop Python, waaronder modules voor statistisch programmeren. Deze taal hoort dus zeker in dit rijtje thuis, maar wordt nog voor andere toepassingen gebruikt dan SAS, SPSS en R.

In dit artikel vergelijk ik de vier talen op methoden en technieken, eenvoudigheid van leren, grafische mogelijkheden, support en kosten. De focus ligt voornamelijk op de talen, dus niet op SAS Enterprise Miner en SPSS Modeler.

Methoden en technieken

Mijn visie op data-analyse is dat er een continuüm bestaat tussen verklarende en voorspellende modellen. De keuzes die je maakt tijdens het modelleren zijn afhankelijk van het doel van je analyse. Om een churn-model als voorbeeld te nemen, je wil verschillende vragen beantwoorden. Waarom gaan je klanten weg? Wie van je klanten gaat weg? De eerste vraag heeft als primaire doel het verklaren van vertrek, de tweede vraag heeft als primair doel het voorspellen van churn. De voorspellende kant van data analyse is nauw verwant met termen als Data Mining en Machine Learning.

Als we kijken naar SPSS en SAS komen deze van oorsprong uit de verklarende hoek. Ze zijn beide vanuit de wetenschap ontwikkeld, waar hypotheses testen de belangrijkste rol speelt. Dit maakt dat ze, ten opzichte van R en Python, significant minder statistische methoden en technieken hebben. Tegenwoordig hebben beide partijen wel tooling die gericht is op Data Mining (SPSS Modeler en SAS Enterprise Miner). Wel zijn dit andere tools en heb je dus extra licenties nodig.

Het voordeel van open-source-tooling is dat de community meehelpt aan het bouwen. R is ontwikkeld door academici, die hun technieken het liefst zo snel mogelijk willen verspreiden. Dit heeft ertoe geleid dat R van deze vier talen de meest uitgebreide set aan methoden en technieken kent. Daarmee is R zeer sterk aan zowel de voorspellende als aan de verklarende kant van data-analyse.

Python is ontwikkeld vanuit de toepassing en niet vanuit de academische wereld en de statistiek. Bij statistisch modelleren zien we dat Python voornamelijk aan de Data Mining- en Machine Learning-kanten sterk ontwikkeld is en daarmee dus vooral goed ingezet kan worden aan de voorspellende kant van de data-analyse. En dan in het bijzonder in het schalen en borgen van voorspellingen, zodat deze zonder tussenkomst van een analist hun werk kunnen doen. Python leent zich bijvoorbeeld ook zeer goed voor het analyseren van plaatjes en beelden. Zo hebben we deze zomer een zelfrijdende radiografische auto gebouwd. Dit is gedaan in Python, zie hier. Ook Big Data-toepassingen als Hadoop en Spark zijn het eenvoudigst te benaderen vanuit Python.

Eenvoudigheid van leren

SPSS en SAS hebben een uitgebreide interface, waardoor er niet tot weinig zelf gecodeerd hoeft te worden. SPSS heeft de paste-functie die syntax voor je creëert en SAS heeft Proc SQL, wat SAS-coderen voor SQL-kenners gemakkelijker maakt. Ben je echter wel aangewezen op programmeren in SAS en SPSS, maak dan je borst maar nat. Beide talen lijken niet erg op elkaar of op andere relevante programmeertalen voor analysedoeleinden.

Hoewel er wel interface-mogelijkheden zijn voor R, bijvoorbeeld Rattle, komen deze niet in de buurt van SAS of SPSS. R is voor programmeurs prima te leren, veel data-analisten zijn van huis uit echter geen programmeurs. R heeft in dit rijtje zeker de steilste leercurve. Dit is dan ook de reden dat wij onlangs een cursus, onder de noemer R Experience, hebben ontwikkeld, die analisten helpt om R te leren gebruiken in hun werk.

Python is gebaseerd op ABC, een taal die ontwikkeld is om niet-programmeurs te leren programmeren. Dat maakt Python tot de simpelste taal in het rijtje. Bij het ontwikkelen van de taal was leesbaarheid één van de hoogste prioriteiten. Er is helaas geen user-interface voor Python en daarom blijft het programmeren.

Conclusie: qua eenvoudigheid van leren steken SPSS en SAS boven R en Python uit, voornamelijk omdat het bij deze tools voor de gebruiker niet nodig is om te programmeren.

Support

SAS en SPSS zijn commerciële pakketten en hebben daarom ook beide officiële support. Dit maakt dat sommige bedrijven voor deze pakketten kiezen. Als er iets mis gaat, hebben ze in ieder geval support.

Er heerst echter de misconceptie dat er geen support is voor open-source-programma’s. Er is geen officiële support zoals bij SAS of SPSS, maar er zit wel een hele community achter. Deze community helpt je via sites zoals Stack Overflow. Praktisch elke vraag die je hebt, heeft iemand anders al een keer eerder gesteld en anders kan je de vraag alsnog zelf stellen. Daarnaast zijn er commerciële partijen die support bieden in R en Python. In de praktijk komt het er vaak op neer dat je eerder antwoord hebt op een R/Python-vraag, dan op een SAS/SPSS-vraag.

Grafische mogelijkheden

SAS en SPSS hebben puur functionele grafische mogelijkheden. Hoewel het mogelijk is basale aanpassingen te doen aan grafieken, blijft het bij functionele grafische mogelijkheden. R en Python hebben veel meer mogelijkheden door de grote hoeveelheid aan modules. De meest gebruikte grafische module voor R is ggplot2, dat een zeer uitgebreide set aan grafieken heeft en waar praktisch alles in aan te passen valt. Ook vallen deze grafieken simpel interactief te maken, waardoor je gebruikers via webapplicaties als Shiny kunt laten spelen met de data. Dit hebben we bijvoorbeeld een keer gebruikt om een klant als-dan-scenario’s te laten uitvoeren op basis van een prijselasticiteitsmodel.

Python en R leren veel van elkaar. Eén van de duidelijkste voorbeelden hiervan is dat Python ook een ggplot-module heeft. Deze module kent praktisch dezelfde mogelijkheden en syntax als bij R. Nog een veel gebruikte Python-module is Matplotlib.

Niet alleen zien de grafieken er beter uit bij de open-source-tooling, je hebt meer mogelijkheden. Denk aan netwerk-, chord-, bubble-, flow-, geografische grafieken (links of plaatje met voorbeelden), en ze zijn ook allemaal interactief te maken. Als het gaat om grafische mogelijkheden, staan R en Python dus ver boven SAS en SPSS.

Kosten

R en Python zijn open-source-programma’s, met als gevolg dat ze gratis te gebruiken zijn voor iedereen. Echter, zoals hierboven al is aangegeven, moet je hierbij wel rekening houden dat ze ook moeilijker te leren zijn. Werknemers die R en Python in hun skill-set hebben, worden over het algemeen in een hogere salarisschaal ingedeeld. En voor de werknemers die R en Python nog niet onder de knie hebben, vergt dit opleidingskosten of opleidingstijd. Daarnaast brengt structureel gebruik van open-source-pakketten ook leer- en beheerkosten aan de ICT-kant van organisaties met zich mee. Het is dus een utopie dat open source niets kost. Vergelijk je het echter met de kosten voor een SAS- of SPSS-licentie, dan is de businesscase gemakkelijk gemaakt: een licentie voor SAS of SPSS is vele malen duurder.

Mijn keuze

Software is like sex, it’s better when it’s free.

Citaat van Linus Torvalds, grondlegger van Linux

Mijn favorieten in dit rijtje zijn R en Python. Deze talen kan ik altijd en overal gebruiken, zonder licenties te hoeven aan schaffen, en dus ook zonder op deze licenties te moeten wachten. Maar de belangrijkste reden om voor deze talen te kiezen is toch wel de breedte aan methoden en technieken die beide talen bieden.

Welke taal ik gebruik, hangt af van het doel. Zoals eerder vermeld is Python een multi-purpose taal en is het bedacht vanuit de toepassing. Het is daarom sterk in Machine Learning, zoals Face & Object Recognition of Deep Learning-toepassingen. R gebruik ik vaak voor vraagstukken over klantgedrag, waarbij de verklarende kant van data-analyse óók een belangrijke rol speelt. Als ik weet wie van mijn klanten de organisatie gaat verlaten, wil ik eigenlijk ook weten waarom. Als ik weet wie van mijn klanten gaat converteren op een bepaalde marketing-actie, wil ik ook graag weten wat het maakt dat juist zij gaan converteren zodat marketing zijn uitingen erop kan toespitsen.

Deze twee talen zijn dus voor een groot gedeelte complementair aan elkaar. Er bestaan libraries voor R waarin je een Python-code kan uitvoeren (rPython), en modules in Python waarin je R kan uitvoeren (rpy2). Dit maakt de combinatie van deze twee talen nog sterker.

Momenteel zijn we bij Cmotions de data van Data Scientists-profielen in Nederland aan het crunchen. Hierin zien we dat R en Python veel prominenter aanwezig zijn dan SPSS en SAS. Het levert nog meer interessante inzichten op over de Data Scientist in de polder, dus stay tuned!

Alternatieven

Naast de hierboven besproken talen, is er nog een heel scala aan (open source) software voor het analyseren van data, bijvoorbeeld Weka, RapidMiner, Knime, Matlab, Octave, Scala, Spark en Julia. In een volgend artikel maak ik een vergelijking tussen RapidMiner en Knime. Twee open-source-analytics-programma’s, met een flow-based user-interface met drag-and-drop.

Ook in opkomst zijn machine learning API’s, waarbij je data uploadt en je resultaten terugkrijgt. Dergelijke API’s kun je achter je website of in een app hangen, zoals bijvoorbeeld in prediction.io, Microsoft Azure ML, seldon.io, Google Cloud Prediction API en Amazon Machine Learning. The Analytics Lab heeft ook een dergelijke propositie. Handig voor organisaties die nog niet ver zijn met analytics, maar wel willen kijken wat de toegevoegde waarde is van data-driven werken.

De auteur is senior consultant bij marketingconsultancybureau Cmotions.

Bron: CustomerTalk
0

Reacties

  1. Marco Dekker
    Goed om te lezen! Hoe kijk je aan tegen 3rd party tools zoals Microstrategy, Tableau en dergelijke voor de visualisatie?. Wat doe je als je al geïnvesteerd heb in een rapportage/analyse omgeving? Hoe sluit je het functioneel gezien aan?
    Reageer
Logo CustomerTalk

Cookie-instellingen

CustomerTalk maakt gebruik van cookies voor een optimale gebruikerservaring.

Graag vragen wij je toestemming voor het plaatsen van deze cookies.

Accepteren Meer informatie