Welke software werkt het best?

Welke software helpt je het best bij data-analyse? Een vergelijkend onderzoek tussen SPSS en R.

Stel, je bent een onderzoeker en je ervaring met statistiek is niet erg uitgebreid. Maar je hebt data verzameld voor je onderzoek en nu wil je die analyseren. Welke software gaat je het beste daarmee helpen? Ik zal hier twee populaire pakketten vergelijken: SPSS en R.

Voor statistiek zijn er grofweg twee typen software: het type waarin je via menu’s en dialoogvensters bepaalt wat de software moet doen, bijvoorbeeld SPSS* (Figuur 1) en het type waarin je zelf de computercode moet schrijven, bijvoorbeeld R (Figuur 2). Welk type helpt je het best? Als voorbeeld zal ik een analyse doorlopen van een studie van het aantal gebruikers van huurfietsen afhankelijk van allerlei variabelen zoals temperatuur, windsnelheid, luchtvochtigheid, dag van de week, enzovoort. De onderzoeksvraag is of we op grond van die variabelen kunnen voorspellen hoeveel fietsen er nodig zijn.

Voor we dit stap voor stap gaan bekijken: software met code heeft één groot voordeel: je slaat je script op en je weet achteraf precies wat je gedaan hebt. Je kunt het eenvoudig nog een keer doen met een variatie. Onthouden welke opties je hebt aangeklikt in een menu of dialoogvenster is een stuk lastiger.

Figuur 1: Dialoogvensters van SPSS
Figuur 2: Script in R


Kwaliteitscontrole data
Een groot voordeel van SPSS is dat er een codebook zit in de data editor. Het is eenvoudig te zien wat mijn variabelen inhouden en welke categorieën er zijn, als ik dat tenminste netjes heb ingevuld. In grafieken worden deze uitgebreidere beschrijvingen vaak direct getoond. Dit voorkomt fouten, zoals dat ik de verkeerde variabele gebruik in een plaatje of dat ik denk dat het over graden Celsius gaat, terwijl er gemeten is in Fahrenheit. In R kan ik dat wel toevoegen, maar het is niet zo simpel en overzichtelijk als in SPSS.

Natuurlijk wil ik eerst weten of er geen rare dingen zitten in mijn data: luchtvochtigheid boven de 100% kan bijvoorbeeld niet. Ik verwacht meer fietsverhuur in de weekenden dan op weekdagen. Ik wil dus van alle variabelen histogrammen maken, staafdiagrammen of scatterplots. Dit soort eenvoudige grafieken gaan best gemakkelijk in SPSS en, zoals gezegd, krijg ik meteen de juiste beschrijvingen langs de assen. Ook lijstje met gemiddelden en aantallen kan ik eenvoudig genereren. Geen reden dus om scripts te gaan schrijven in R als ik daar niet handig in ben. Mijn temperatuur blijkt in Fahrenheit en ik heb liever Celsius. Omrekenen gaat net zo gemakkelijk in SPSS als in R.

Analyseren
Ik ben tevreden met mijn data, dus nu wil ik de multipele regressie gaan uitvoeren. In SPSS kies ik de juiste analyse en via de menu’s kan ik aanvinken wat ik voor uitvoer op het scherm krijg. In R voer ik de analyse uit en vervolgens moet ik elke tabel die ik wil hebben apart opvragen met een regel code. De standaard-uitvoer is lang niet zo mooi als in SPSS (Figuur 3 en 4).

Het nadeel van SPSS is dat ik, zonder erover na te denken, gewoon wat vinkjes kan zetten en dan uitvoer krijg. In R moet ik over het algemeen iets beter nadenken over wat ik doe en wat ik wil weten. De verleiding om maar wat te proberen in SPSS tot de uitvoer lijkt op wat ik verwachtte is wellicht groter. Recenter toevoegde analyses in SPSS presenteren de keuzes vaak systematischer en bieden meer controle, maar door de hoeveelheid keuzes zijn die ook weer wat lastiger.

Figuur 3: SPSS uitvoer
Figuur 4: R uitvoer

Analyse controleren
Elke analyse moet je controleren. Zogeheten parametrische analyses stellen eisen aan de data. Bijvoorbeeld dat residuen normaal verdeeld moeten zijn. Of in een kruistabel mogen verwachte waarden niet te klein zijn voor een Chi-kwadraat-analyse. In het laatste geval geven beide pakketten overigens een waarschuwing. Hoewel beide pakketten een aantal basale grafieken voor het controleren van de analyse bieden, zijn de mogelijkheden in R duidelijk groter. En in SPSS zitten soms heel ouderwetse grafieken voor de oudere modules (Figuur 5). Voor mijn regressieanalyse valt het mee.

Met een klein beetje kunst- en vliegwerk kan ik de meeste grafieken die ik echt nodig heb, ook in SPSS wel maken: normale verdeling van de residuen, constante variantie- en partiële regressiegrafieken. Maar ik weet dat voor andere analyses, zoals bijvoorbeeld principale-componentenanalyse de standaardplot (bi-plot) niet in SPSS gemaakt kan worden via de menu’s. Ook andere plots waarin bijvoorbeeld het gefitte model van een logistische regressie wordt getoond samen met de waarnemingen lukken niet. Op dit punt blijft SPSS echt behoorlijk achter.

Figuur 5: Classificatieplot logistische regressie in SPSS

Presenteren
Na het analyseren van mijn data, wil ik natuurlijk mijn resultaten aan anderen presenteren. Hiervoor heb ik grafieken en tabellen nodig. De tabellen die SPSS maakt zijn zeker fraaier dan van R, en SPSS biedt vaak eenvoudig de mogelijkheid om er nog allerlei dingen aan te verbeteren. De basisuitvoer van R is een stuk kaler, al kun je met wat meer code ook hier fraaie uitvoer krijgen. Alleen moet je het bij SPSS doen met wat er geboden wordt, terwijl er in R vaak opties zijn om andere tabellen te maken. Ik wil onder andere een tabel met parameterschattingen en hun betrouwbaarheidsintervallen en p-waardes en dat lukt bij allebei vrij eenvoudig.

Voor grafieken geldt hetzelfde. SPSS biedt een nogal beperkte selectie aan grafieken. Voor mijn analyse van huurfietsen wil ik een paar relaties er uitlichten. Wat niet simpel is in SPSS, is om de voorspelde waarden met een betrouwbaarheidsinterval te laten zien (Figuur 6). Dat is wel jammer. En R voert je grafieken eenvoudig uit naar een gewenst format, zoals jpeg, png of pdf, in een gewenste maat. In SPSS is dat dan weer lastiger.

Figuur 6: Voorspelde waarden (ln-schaal) totale model met betrouwbaarheidsinterval in R

Conclusies
Hoewel SPSS voortdurend uitbreidt met nieuwe opties, is de keuze aan onder andere grafieken nog steeds veel kleiner dan bij R. Ook de grafieken die je gebruikt om de analyse te controleren zijn niet voor alle analyses even uitgebreid. De juiste keuzes maken voor de analyse vraagt in beide pakketten dat je weet wat je doet. Dat je geen code hoeft te schrijven in SPSS kan het simpeler maken om de plaatjes te maken en de analyse te runnen. Als je de juiste opties aanvinkt, krijg je in SPSS zeer uitgebreide tabellen. Maar je moet de verleiding weerstaan om maar wat te proberen zonder je te verdiepen in de statistiek.

Het verdient aanbeveling om ook in SPSS de syntax (computercode) op te slaan, zodat je de kwaliteitscontrole van de data en de analyse kunt herhalen en kunt terugvinden wat je hebt gedaan.

Voor relatief eenvoudige analyses zoals multipele regressieanalyse, kun je met SPSS vrij goed uit de voeten op de visualisatie van je gefitte model na. Maar R kan gewoon meer. Als je bijvoorbeeld onverwachte resultaten krijgt en dat wilt onderzoeken of als je iets ingewikkelder analyses wilt visualiseren, ben je met R beter af.

*SPSS kent ook een codetaal, maar ik bespreek hier alleen het menugestuurde gebruik. Omgekeerd bestaan er menugestuurde schillen rond R, zoals R-commander.

Avatar photo

Carolien de Kovel

Als wetenschapper heb ik er plezier in de raadsels van de natuur te ontrafelen. Met een analytische blik probeer ik de wereld om ons heen wat beter te begrijpen zonder mijn verwondering te verliezen. Ik deel mijn inzichten en vaardigheden graag met studenten en met wie maar geïnteresseerd is.

Add comment

To the VVSOR website