Możliwości wykorzystania języka R w środowisku IBM SPSS

Start / Blog / Możliwości wykorzystania języka R w środowisku IBM SPSS

Zgodnie z zapowiedzią sprzed prawie dwóch tygodni chciałbym napisać kilka słów o możliwościach wykorzystania języka R w ramach środowiska analitycznego IBM SPSS.

Na początek trochę o historii: Synergia środowiska IBM SPSS z językiem R pojawiła się po raz pierwszy już w wersji szesnastej programu IBM SPSS….Statistics! Użytkownicy dostali wtedy możliwość korzystania z kodu R w ramach Edytora Komend programu IBM SPSS Statistics. Poniżej najprostszy przykład kodu napisanego w Edytorze.

BEGIN PROGRAM R.
data <- spssdata.GetDataFromSPSS(keepUserMissing=TRUE)
print(data)
END PROGRAM.

Wyniki zdefiniowanych operacji wyświetlane są, analogicznie jak w przypadku korzystania ze składni lub GUI SPSS Statistics, w Oknie Raportów.

W kolejnej wersji programu IBM SPSS Statistics pojawiła się możliwość tworzenia własnych okien dialogowych, w tym okien dialogowych budowanych w oparciu o kod R. Funkcjonalność ta wydaje się najbardziej użyteczna dla użytkowników niepotrafiących kodować w R, gdyż mogą oni poprosić bardziej zaawansowanych programistycznie kolegów o stworzenie dla nich okien, które wykorzystują kod R, ale w wyglądzie nie różnią się od standarodwych okien SPSS Statistics. Poniżej przykład zbudowanego przeze mnie w ostatnim czasie okna:

Możliwość wykorzystania procedur R przez użytkowników, którzy de facto nie znają owego języka, jest jedną z przyczyn, dla których w pierwszym akapicie użyłem słowa „synergia”. Dodatkowo, należy podkreślić, że już wtedy, dzięki możliwości wywoływania procedur SPSS Statistics z poziomu SPSS Modeler, istniała pośrednia integracja narzędzia SPSS Modeler z językiem R, gdzie warstwą pośrednią był własnie SPSS Statistics.

W tym miejscu chciałbym także zaznaczyć, że taka możliwość istnieje oczywiście po dziś dzień.

Na możliwość wykorzystania kodu R bezpośrodnio w ramach przepływu danych SPSS Modeler użytkownicy musieli czekać do roku 2014, kiedy to w narzędziu pojawił się dedykowany węzeł umożliwiający pisanie składni w języku R. Dla przetestowania owej funkcjonalności zbudowałem w oparciu o kod R prosty model GARCH.
 
Jak widać na zamieszczonych obrazakach, nowy węzeł umożliwiał pisanie kodu w języku R i dołożenie zbudowanej procedury, jako jednego z elementów składowych, do tworzonego przepływu danych.

W kolejnej, szesnastej, wersji programu SPSS Modeler stworzono już 3 osobne węzły służące do pisania kodów w jęzku R.
Każdy z tych węzłów spełnia określoną funkcję w przepływie danych. Węzeł Transformacje R umożliwia definiowanie przekształceń danych, węzeł Modele R umożliwia budowę modeli skoringowych, natomiast Wynik R jest węzłem końcowym generująym raport.

Analogicznie jak w przypadku SPSS Statistics, użytkownicy dostali możliwość budowania nowych węzłów w oparciu o składnię R. Zdefiniowane za pomocą Kreatora Niestandardowych Okien dialogowych dla R węzły dodawane są do palety węzłów i na pierwszy rzut oka nie różnią się od ‘oryginalnych’ procedur SPSS Modeler.


Co więcej, węzły te, automatycznie instalowane w folderze: C:\ProgramData\IBM\SPSS\Modeler\17\CDB, mogą być przekazywane między użytkownikami. Dla mnie osobiście jest to największa zaleta integracji obu środowisk!

Użytkownicy SPSS mogą także pobierać stworzone przez IBM gotowe węzły, wraz z dokumentacją ze strony Analytics Zone.


Na stronie znajdują się między innymi następujące węzły:

  • Model for Random Forest umożliwiający budowę modeli klasyfikacyjnych z wykorzystaniem techniki lasów losowych.
  • Plot Heatmaps umożliwiąjący wizualizację wyników analiz w postaci mapy natężeń nanoszonej na mapy pobrane z serwisu Google Maps.
  • Get Coordinates wyznaczający długość i szerokość geograficzną dla zadanego adresu.
  • Reverse Geocoding zamieniający długość i szerokość geograficzną na konkretny adres.
  • Great Circle Distance wyznaczający najkrótszą odległość między punktami na powierzchni Ziemii.
  • Plot Spatial Data nanoszący punkty na mapy z serwisu Google Maps.
  • Present Value wyliczający wartość bieżącą przyszłych przepływów pienieżnych.

Można śmiało stwierdzić, że poza wymienioną stroną, wkrótce powstanie wiele innych oficjanych lub mniej oficjanych stron, na których użytkownicy będa mogli się dzielić stworzonymi przez siebie węzłami. Serdecznie zachęcam do testowania nowych węzłów i tworzenia własnych, a przede wszystkim do dzielenia się swoimi spostrzeżeniami.