DASC

Ontdek de samenwerking tussen R, Python en IBM SPSS Statistics en haal meer uit uw data

Verantwoord analyseren, interpreteren en presenteren in SPSS Statistics

Open Source integratie - Ontdek de samenwerking tussen R, Python en SPSS Statistics

Samenvatting

Auteur(s)

  • Jos den Ronden, Data Analyse Academie
  • Rianne Severin-Hotting, DASC

In de wereld van data-analyse staan analisten vaak voor de keuze: werken met R, Python, of vertrouwen op de kracht van IBM SPSS Statistics. Elke tool brengt zijn eigen unieke vaardigheden en beperkingen met zich mee. R en Python blinken uit in programmeerflexibiliteit, terwijl SPSS Statistics uitmuntende statistische functionaliteiten biedt. Maar wat als er een manier is om het beste van alle werelden te benutten?

Veel analisten zouden graag een vorm van integratie van deze tools willen, waarbij ze gebruik kunnen maken van de voordelen van elke tool. En raad eens? Het is mogelijk. In dit artikel nemen we je mee op een ontdekkingsreis naar de fascinerende wereld waar R, Python en SPSS Statistics samenkomen. Of je nu een doorgewinterde data analist bent of net begint, deze integratie opent nieuwe deuren voor gegevensverkenning en inzichten, en dat alles zonder de noodzaak van diepgaande programmeerkennis.

Open source talen in IBM SPSS Statistics

Sinds IBM SPSS Statistics versie 16 (!) is de naadloze integratie van Python en R binnen SPSS Statistics een feit. En hier komt het goede nieuws: je hebt geen diepgaande kennis van Python of R nodig. Deze aanvullende functionaliteit wordt gepresenteerd in de vorm van kant-en-klare dialoogvensters, waardoor het gebruik ervan toegankelijk is voor elke analist, ongeacht hun programmeervaardigheden.

Deze extra uitbreidingen, in feite Python of R onder de motorkap, staan bekend als extensiecommando’s, afgekort als extensies. Je herkent ze eenvoudig in de menu’s, bijvoorbeeld wanneer je het Transform-menu raadpleegt, het plus icoontje geeft aan dat het om een extensie gaat.

Transform menu met Extensies

Deze procedures maken géén deel uit van een bepaalde module van IBM SPSS Statistics. Het zijn namelijk procedures die in Python of R geschreven zijn en die, inclusief dialoogvenster, geïntegreerd zijn in IBM SPSS Statistics. Er is zelfs een corresponderend Syntax commando beschikbaar.

De uitdaging:  Dummy variabelen op basis van een categoriale variabele

Stel je voor dat je het inkomen van een persoon wilt voorspellen op basis van leeftijd, jaren ervaring en beroep. Hierbij is het beroep een categoriale variabele met categorieën zoals 1 = zorg, 2 = overheid, en 3 = commercieel. De uitdaging ontstaat wanneer je de procedure Regression wilt gebruiken voor deze voorspelling.

In de standaard workflow van SPSS Statistics mag je een categoriale variabele niet direct gebruiken in het dialoogvenster van de Regression. De benadering die vaak wordt toegepast, en die we hier willen vermijden, is het maken van afzonderlijke variabelen voor elk beroep. Elke nieuwe variabele krijgt dan de waarde 1 als een persoon dat specifieke beroep uitoefent, en 0 in alle andere gevallen. Dit leidt tot een reeks dummyvariabelen, bijvoorbeeld dummy_1, dummy_2 en dummy_3;

Beroep

dummy_1

dummy_2

dummy_3

1 (zorg)

1

0

0

2 (overheid)

0

1

0

3 (commercieel)

0

0

1

Een persoon werkzaam in de zorg zou dan bijvoorbeeld een score van 1 hebben op dummy_1, 0 op dummy_2 en 0 op dummy_3. We kunnen deze variabelen met de Compute functie in SPSS Statistics maken, waarna we de variabelen duidelijkheidshalve ook labels moeten geven. Met drie categorieën is dat wellicht nog te doen, maar naarmate het aantal categorieën groter is wordt steeds meer geduld en doorzettingsvermogen gevraagd. De vraag wordt dan ook, is er een efficiënter alternatief beschikbaar?

Python gebruiken om dummy variabelen te maken

Het antwoord op deze uitdaging komt in de vorm van de extensie “Create Dummy Variables”. Deze krachtige extensie, gebaseerd op Python, biedt een gestroomlijnde oplossing voor het creëren van dummyvariabelen, waardoor de complexiteit van het omgaan met categoriale variabelen in SPSS Statistics aanzienlijk wordt verminderd.

Laten we hiernaar kijken op basis van een praktisch voorbeeld, we maken hiervoor in dit artikel gebruik van een standaard Sample bestand uit IBM SPSS Statistics, namelijk survey_sample.sav.

Stel, je wilt Regression gebruiken om het aantal uren dat mensen aan televisiekijken besteden (variabele tvhours) te voorspellen op basis van ‘leeftijd (age)’ en ‘huwelijkse staat (marital)’. Huwelijkse staat is hierbij een categoriale variabele met verschillende categorieën, zoals Married, Widowed, Divorced, enzovoort.

Om ‘huwelijkse staat’ effectief in de regressie op te nemen, is het noodzakelijk dummyvariabelen te creëren voor elke categorie. Hier komt de extensie “Create Dummy Variables” van pas.

  • Menu -> Transform -> Create Dummy Variables

Het dialoogvenster kent tal van opties, maar zijn voor onze discussie niet relevant; het belangrijkst is op te merken dat het dialoogvenster er uit ziet als een regulier IBM SPSS Statistics dialoogvenster. Je zou niet zeggen dat dit dialoogvenster feitelijk is ontworpen door een (expert) gebruiker en Python code gaat uitvoeren!

Extensie: Create dummy variables

We voeren de variabele ‘Marital’ in bij de Create Dummy Variables for optie en voegen een root name toe. Na het bevestigen van je keuzes worden de dummyvariabelen moeiteloos toegevoegd aan je databestand, inclusief duidelijke variabele labels. Deze dummyvariabelen worden keurig georganiseerd op basis van de categorieën van de oorspronkelijke variabele, waardoor ze direct klaar zijn voor gebruik in je Regression-analyse. Het resultaat? Een snelle, efficiënte, en intuïtieve oplossing voor een probleem dat anders tijdrovend en complex zou zijn.

Automatisch gegenereerde dummy variabelen

Je kunt de dummy variabelen vervolgens gebruiken in Regression. Dit laten we hier voor wat het is. Opmerking: als de eerste 5 dummy variabelen 0 zijn dan weet je dat de zesde dummy 1 moet zijn, dus de zesde dummy is redundant en kun je weglaten bij Regression.

Zoals we al vaststelden heeft een extensie exact dezelfde look & feel als een reguliere SPSS functie. Maar er is meer; het is ook mogelijk om het corresponderende commando in syntax op te nemen door te klikken op paste. Zoals je ziet is de opbouw gelijk aan de overige SPSS functies, de extensie is enkel te onderscheiden aan het hoofdcommando SPSSINC, wat duidt op het gebruik van een extensie.

Een extensie beschikbaar stellen in SPSS Statistics

Om gebruik te kunnen maken van een extensie die daadwerkelijk Python- of R-code uitvoert, moet je ervoor te zorgen dat Python respectievelijk R op je systeem zijn geïnstalleerd. Hierbij speelt ook de installatie van een zogenaamde plug-in een cruciale rol, omdat deze zorgt voor de naadloze integratie van IBM SPSS Statistics met Python of R.

De integratie van Python en R met IBM SPSS Statistics is afhankelijk van de versie van IBM SPSS Statistics die je gebruikt. In de recentere versies wordt Python, samen met de integratie plug-in en relevante extensies, standaard mee geïnstalleerd. In IBM SPSS Statistics versie 29 staat bijvoorbeeld in de Help-bestanden te lezen: “The IBM SPSS Statistics – Integration Plug-in for Python is a part of the IBM SPSS Statistics product. It also includes Python 3.10 (…) and a set of extension commands that are implemented in Python that provide capabilities beyond what is available with built-in SPSS Statistics procedures.”

Dit betekent dat Python 3.10 samen met de integratie plug-in wordt geïnstalleerd, vergezeld van een reeks extensies die in Python zijn ontwikkeld en extra functionaliteiten bieden bovenop wat standaard in SPSS Statistics beschikbaar is.

In het geval van R geldt hetzelfde principe. In versie 29 wordt R (versie 4.2) automatisch geïnstalleerd, inclusief de R plug-in en bijbehorende extensies ontwikkeld in R.

Voor oudere versies of specifieke configuraties is het raadzaam de relevante documentatie te raadplegen. Het kan voorkomen dat je Python of R en de bijbehorende plug-ins apart van IBM SPSS Statistics moet installeren, afhankelijk van de versie en specifieke systeeminstellingen.

De Extension Hub: Nog meer mogelijkheden!

Zelfs als je al enkele extensies hebt die samen met IBM SPSS Statistics zijn geïnstalleerd, betekent dit nog niet dat je alle beschikbare extensies hebt verkend. De Extension Hub biedt een extra bron van diverse extensies die je gemakkelijk kunt toevoegen om de functionaliteit van SPSS Statistics verder uit te breiden.

Om toegang te krijgen tot de Extension Hub, navigeer je eenvoudig naar het hoofdmenu van IBM SPSS Statistics, kies je voor Extensions en vervolgens voor Extension Hub. Hier vind je een uitgebreide selectie van extensies die zijn onderverdeeld op basis van type, programmeertaal (Python, R of SPSS Statistics Syntax) en de bron (IBM of community-ontwikkeld).

De kracht van de Extension Hub ligt in zijn gebruikersvriendelijkheid. Je kunt eenvoudig filteren op de specifieke eigenschappen die je nodig hebt voor je analyse. Wil je bijvoorbeeld extensies die zijn geschreven in Python? Of zoek je naar extensies die door de gemeenschap zijn ontwikkeld? Met slechts een paar muisklikken heb je toegang tot een breed scala aan extra functionaliteiten.

Bij elke vermelde extensie in de Extension Hub krijg je ook direct inzicht of je huidige IBM SPSS Statistics-installatie voldoet aan de vereisten voor het gebruik van de desbetreffende extensie. Concreet wordt gecontroleerd of Python of R en de bijbehorende plug-ins correct zijn geïnstalleerd, waardoor je snel kunt bepalen welke extensies geschikt zijn voor jouw analysebehoeften.

De Extension Hub

Verder verdiepen

In essentie voegen extensies een schat aan kant-en-klare functionaliteit toe aan IBM SPSS Statistics. Wil je ontdekken welke extensies je al hebt en hoe ze je analyses kunnen versterken? Neem een kijkje in de menu’s, let op de procedures met een +, en raadpleeg de Help-functie in het betreffende dialoogvenster. Breid je mogelijkheden vervolgens verder uit door een bezoek te brengen aan de Extension Hub, waar je een overvloed aan handige extensies kunt vinden en toevoegen aan je toolkit.

Het valt ons op dat extensies nog relatief onbekend zijn bij veel IBM SPSS Statistics gebruikers. Deze extra functionaliteit is in de loop der jaren ontwikkeld en biedt de mogelijkheid om het maximale uit IBM SPSS Statistics te halen. Om analisten snel op de hoogte te brengen van deze minder bekende maar zeer nuttige opties, heeft DASC B.V. in samenwerking met de Data Analyse Academie nieuwe cursussen ontwikkeld over o.a. dit onderwerp. Deze cursussen zijn een aanrader voor zowel beginners als ervaren gebruikers die hun kennis willen verdiepen of opfrissen. De cursussen kunnen op maat worden aangepast voor meerdere personen binnen een organisatie, als in-company cursus, of als 1-op-1 coaching on the job om snel operationeel te zijn. Schrijf je in om je verder te verdiepen in de mogelijkheden van IBM SPSS Statistics.

Happy learning en stay tuned!

 

Jos den Ronden, Data Scientist, Data Analyse Academie

Rianne Severin-Hotting, Data Scientist, DASC B.V.

Decision-Optimization

Behapbaar beginnen met IBM SPSS Statistics?

We starten compact, zodat u groots kunt finishen. Door het afgebakende vraagstuk ziet u snel resultaat.