2010-09-24 12 views
35

Wkrótce będę analizował ogromną ilość danych związanych z ruchem sieciowym i wstępnie przetworzę dane w celu ich analizy. Odkryłem, że R i SPSS należą do najpopularniejszych narzędzi do analizy statystycznej. Będę również generował sporo wykresów i wykresów. Dlatego zastanawiałem się, jaka jest podstawowa różnica między tymi dwoma programami.Różnica R i SPSS

Nie pytam, który z nich jest lepszy, ale chciałem tylko wiedzieć, jaka jest różnica w przepływie pracy pomiędzy tymi dwoma elementami (poza tym, że SPSS ma GUI). W każdym razie będę pracował głównie ze skryptami, więc chciałem się dowiedzieć o innych różnicach.

Odpowiedz

31

Pracuję w firmie, która używa SPSS dla większości naszej analizy danych, i z różnych powodów - zacząłem próbować używać R do coraz większej ilości własnych analiz. Niektóre z największych różnic, jakie napotkasz obejmują:

  1. Wyjście stołów - SPSS ma podstawowe tabele ogólne tabele, niestandardowe tabele, etc, które są wszystkie dane wyjściowe do tego fajną widza danych lub cokolwiek nazywają go. Można je stosunkowo łatwo przenieść do dokumentów Word lub arkuszy Excel w celu dalszej analizy/prezentacji. Równoważna funkcja w R wymaga uczenia się LaTex lub korzystania z odfWeave lub Lyx lub czegoś podobnego.
  2. Etykietowanie danych -> SPSS radzi sobie całkiem dobrze z etykietami zmiennych i etykietami wartości. Nie znalazłem solidnego rozwiązania dla R, aby wykonać to samo zadanie.
  3. Wspominasz, że zamierzasz pisać większość swojej pracy i osobiście uważam, że skrypciarska składnia SPSS jest absolutnie przerażająca, do tego stopnia, że ​​przestałem pracować z SPSS, kiedy tylko było to możliwe. Składnia R wydaje się dużo bardziej logiczna i podąża za standardami programowania I jest bardzo aktywna społeczność, na której można polegać, jeśli napotkasz problemy (na przykład SO). Nie znalazłem dobrej społeczności SPSS, która zadawałaby pytania, kiedy napotkam problemy.

Inni wskazali na niektóre duże różnice pod względem kosztów i funkcjonalności programów. Jeśli musisz współpracować z innymi, ich poziom komfortu w SPSS lub R powinien odgrywać rolę, ponieważ nie chcesz być jedynym w grupie, który może pracować lub edytować skrypt napisany w przyszłości.

Jeśli masz zamiar się uczyć R, ten post na stronie internetowej statystyki wymiany ma kilka wielkich zasobów do nauki R: https://stats.stackexchange.com/questions/138/resources-for-learning-r

+1

1.W przypadku małych tabel zwykle po prostu kopiuj-wklej dane wyjściowe ekranu w R bezpośrednio do Excela, następnie wywołaj "text-to-column", alternatywnie możesz użyć write.csv (lub csv2) na stole. (a może miałeś na myśli automatyczne raportowanie?). 2. Pakiet Hmisc ma etykiety zmiennych, ale etykiety wartości dotyczą czynników. Jest to ładnie wykonane w zagranicznym pakiecie, jeśli chcesz zaimportować zestaw danych SPSS (lub Stata), wynikowe dane R zachowują informacje o etykietowaniu z oryginału. – eyjo

+0

@eyjo - "automatyczne raportowanie" jest terminem względnym. Nasz obecny przepływ pracy obejmuje: 1. Przesyłanie danych z SQL do SPSS, 2. Użyj skryptu VB, który przechodzi przez nasze ankiety i automatycznie pobiera etykiety zmiennych i wartości, edytuje je i stosuje do zbioru danych SPSS. 3. Użyj innego skryptu, który generuje tabele SPSS w formacie, który nam się podoba. 4. Eksportuj do programu Word i Excel w celu dalszego przetwarzania, którego nie może obsłużyć SPSS. 5. Utwórz załącznik "gotowy dla klienta" jako .DOC lub .PDF. UWIELBIAŁbym, że R zastąpi SPSS -> część Word tego. W idealnym przypadku przepływem pracy może być SQL -> R/Sweave -> Produkt końcowy. – Chase

+2

Tak, w mojej firmie są pewne grupy, które mają zaplanowane skrypty R, które uruchamiają, pobierają dane z baz danych SQL, przetwarzają je, generują pliki Sweave PDF i przesyłają wyniki pocztą elektroniczną do odpowiednich osób. Są pewne problemy z R i niektórymi bazami danych na niektórych architekturach, ale nie ma sposobu, abyś osiągnął ten poziom automatyzmu z samym SPSS! – Harlan

3

nie mam danych dla niej, ale z mojego doświadczenia mogę powiedzieć jedno:

SPSS jest dużo wolniejszy niż R. (I dużo, naprawdę znaczę dużo)

Różnica w wielkości jest prawdopodobnie tak duża, jak pomiędzy C++ and R.

Na przykład, nigdy nie muszę czekać dłużej niż kilka sekund w R. Używając SPSS i podobnych danych, miałem obliczenia, które trwały dłużej niż 10 minut.

Jako niepowiązana uwaga boczna: W moich oczach, w niedawnej dyskusji na temat prędkości R, ten punkt został jakoś przeoczony (tj. Porównanie z SPSS). Co więcej, jestem zaskoczony, jak ta dyskusja pojawiła się na jakiś czas i po cichu zniknęła ponownie.

+0

czy masz na to dane? Chciałbym porównać tego rodzaju rzeczy, ponieważ zawsze uważałem SPSS za szybszy niż R dla tych samych procesów. – richiemorrisroe

+0

Zauważyłem, że SPSS jest dużo szybszy niż R (dużo), jeśli chodzi o standardowe procedury. Na przykład spróbuj modelowania mieszanych efektów w R i SPSS. –

22

Początkowy przepływ pracy dla SPSS obejmuje uzasadnienie napisania dużego sprawdzianu. R jest swobodnie dostępne.

R ma jeden język dla "skryptów", ale nie myśl o tym w ten sposób, R jest naprawdę językiem programowania z doskonałą manipulacją danymi, statystyką i wbudowaną funkcjonalnością graficzną. SPSS ma "Składnię", " Skrypty "i jest również skryptowalne w Pythonie.

Innym wielkim problemem jest to, że SPSS wyciska swoje dane do struktury tabeli spreadsheety. Radzenie sobie z innymi strukturami danych jest prawdopodobnie bardzo trudne, ale przychodzi naturalnie do R. Nie wiedziałbym, od czego zacząć obsługa danych typu sieciowego w SPSS, ale jest pakiet do zrobienia dla R.

Również z R ty można zintegrować przepływ pracy z raportowaniem za pomocą funkcji Sweave - piszesz dokument z osadzonymi bitami kodu R, które generują wykresy lub tabele, uruchamiają plik w systemie i wychodzą z raportu jako PDF. Świetne, gdy chcesz zrobić cotygodniowy raport, lub wykonujesz pracę, a następnie szef daje ci zaktualizowany zestaw danych. Ponownie uruchom, przeczytaj to, gotowe.

Ale wiesz, połączenie ...

+1

Istnieje bezpłatny pakiet o nazwie SPSS w wersji SPSS (https://www.gnu.org/software/pspp/pspp.html) ... Oczywiście, będzie cierpieć z powodu wszystkich innych komentarzy, Przypuszczam. – naught101

+1

PSPP ma całkiem podstawową funkcjonalność. – SmallChess

7

Cóż, jesteś przyzwoity programista? Jeśli tak, to warto się uczyć R. Możesz zrobić więcej z danymi, zarówno jeśli chodzi o manipulację, jak i modelowanie statystyczne, niż z SPSS, a twoje wykresy będą prawdopodobnie lepsze. Z drugiej strony, jeśli nigdy wcześniej nie programowałeś, lub nie masz pomysłu na kilka miesięcy stania się programistą zastraszającym, prawdopodobnie uzyskasz więcej korzyści z SPSS. Poziom rzeczy, które możesz zrobić za pomocą R bez zanurzenia się w jego mocy jako pełnoprawnego języka programowania prawdopodobnie nie usprawiedliwia wysiłku.

Istnieje inna opcja - współpracuj. Czy znasz kogoś, z kim możesz pracować nad swoim projektem (nie mówisz, czy to akademickie lub przemysłowe, ale tak czy inaczej ...), kto zna się dobrze?

+1

Nie wiem o tym, przeniosłem się z SPSS do R bez żadnego doświadczenia programistycznego, i chociaż zajęło mi to trochę czasu, jestem o rząd wielkości bardziej produktywny niż ja. Tylko sam Sweave zaoszczędził mi przynajmniej dwa miesiące na sformatowaniu dokumentów. – richiemorrisroe

2

Istnieje wiele odpowiedzi powyżej, ale postaram się zapewnić moim 2 centów. Mój wydział całkowicie polega na SPSS dla naszej pracy, ale w ostatnich miesiącach robiłem świadomy wysiłek, aby nauczyć się R; w części, niektóre z powodów, wyszczególnione powyżej (szybkość, rozległych struktur danych, dostępnych pakietów, itp)

Powiedział, oto kilka rzeczy, które wybrali się po drodze:

  1. Jeśli nie masz doświadczenia w programowaniu, myślę, że tworzenie tabel podsumowujących w CTABLES niszczy każdą dostępną opcję w R. Do tej pory jestem nieświadomym pakietem, który może replikować to, co może być utworzone za pomocą Custom Tables.

  2. SPSS wydaje się wolniejszy podczas pisania skryptów i tak, składnia SPSS jest straszna. To powiedziawszy, stwierdziłem, że skrypty w SPSS zawsze można poprawić, ale z użyciem polecenia EXECUTE oszczędnie.

  3. SPSS i R mogą ze sobą współdziałać, chociaż wydaje się, że jest to jeden sposób (tylko w przypadku używania R w SPSS, a nie odwrotnie). To powiedziawszy, stwierdziłem, że jest to mało użyteczne, niż gdybym chciał użyć ggplot2 lub innych zaawansowanych technik zarządzania danymi. (Gardzę makrami SPSS).

  4. Od dawna czułem, że praca "raportująca" stworzona w SPSS jest o wiele gorsza od innych rozwiązań. Jak wspomniano powyżej, jeśli możesz wykorzystać LaTex i Sweave, będziesz bardzo zadowolony z wydajnych przepływów pracy.

  5. Byłem w stanie przeprowadzić zaawansowaną analizę, wykorzystując OMS w SPSS. Niemal wszystko można przekierować do nowego zestawu danych, ale odkryłem, że większość użytkowników SPSS nie używa tej funkcji. Również patrząc na przykłady w R, po prostu czuje się "łatwiej" niż przy użyciu OMS.

Krótko mówiąc, uważam siebie za pomocą SPSS, kiedy nie mogę zrozumieć to szybko w R, ale szczerze mam szczery zamiar uciec z SPSS i korzystania R całkowicie w pewnym momencie w najbliższej przyszłości.

+0

Wygląda na to, że zbliżamy się i uczymy się R z tych samych powodów , Chciałbym usłyszeć więcej twoich przemyśleń na temat tego przejścia SPSS -> R, które robicie. Zauważyłem też, że jesteś w Bostonie, ja jestem tylko kilka godzin drogi w Hanowerze. Czy zrobiłeś coś z grupą użytkowników New England R? Wygląda na to, że spotykają się w Bostonie ... – Chase

+0

Byłem grzęzną w pracy, ale umierają, aby przejść. Właśnie zaczynam od R i próbuję określić, w jaki sposób mój zespół i ja możemy wykorzystać to narzędzie. Moja branża w dużym stopniu korzysta z SPSS, ale wraz z rosnącą ekspozycją na różne narzędzia/metody dostrzegam potrzebę zbadania innych możliwości, jeśli chodzi tylko o efektywną obsługę żądań danych ad-hoc. Zapraszam do kontaktu ze mną w sprawie moich przemyśleń i doświadczeń związanych z przejściem. – Btibert3

32

Oto coś, co pisał do R-help listy mailingowej jakiś czas temu, ale myślę, że daje dobry przegląd wysokiego poziomu ogólnej różnicy w badania i SPSS:

Mówiąc o friendlyness użytkownik oprogramowania komputerowego Lubię analogię samochodów vs. autobusów:

Autobusy są bardzo łatwe w użyciu, wystarczy trzeba wiedzieć, który autobus wsiąść, gdzie dostać się na, i gdzie je zdobyć wyłączyć (i trzeba zapłacić opłatę za przejazd). Samochody z drugiej strony wymagają znacznie więcej pracy , musisz mieć jakiś rodzaj mapy lub kierunków (nawet jeśli mapa jest w twojej głowie), musisz umieścić gaz w co jakiś czas, musisz znać zasady ruchu drogowego (proszę podać rodzaj licencji ). Największą zaletą samochodu jest to, że może on zabrać ze sobą kilka miejsc, w których autobus nie wykonuje jazdy , i jest szybszy w przypadku niektórych podróży , które wymagałyby przeniesienia między autobusami .

Stosując to programy analogicznie jak SPSS są autobusy, łatwy w użyciu dla standardowych rzeczy, ale bardzo frustrujące jeśli chcesz zrobić coś, co jest już nie zaprogramowany.

R jest napęd SUV 4 koła (choć przyjazny dla środowiska) z rowerem na plecach, kajak na górze, dobre chodzenia i biegania w siedzibie pasenger i Alpinizm i spelunking bieg w plecy.

R może cię gdziekolwiek chcesz iść jeśli wziąć czas, aby leard jak używać sprzętu, ale to będzie trwać dłużej niż uczenie gdzie przystanki autobusowe są w SPSS.

Istnieją interfejsy graficzne dla R, które sprawiają, że jest nieco łatwiejszy w użyciu, ale także ogranicza funkcjonalność, która może być z łatwością użyta. SPSS ma skrypty, które wykraczają poza zwykły autobus, ale ogólna filozofia SPSS kieruje ludzi do GUI, a nie do skryptów.

+1

To jest najbardziej błyskotliwa analogia, jaką kiedykolwiek czytałem. Używam go do wielu różnych środowisk programistycznych od teraz. Dziękuję Ci. –

1

@Henrik, zrobiłem to samo zadanie, o którym wspomniałeś (C++ and R) na SPSS. Okazało się, że SPSS jest szybszy niż R na tym. W moim przypadku SPSS jest aprox. 7 razy szybciej. Jestem tym zaskoczony.

Oto kod, którego użyłem w SPSS.

data list free 
/x (f8.3). 
begin data 
1 
end data. 

comp n = 1e6. 

comp t1 = $time. 

loop #rep = 1 to 10. 
comp x = 1. 
loop #i=1 to n. 
comp x = 1/(1+x). 
end loop. 
end loop. 

comp t2 = $time. 

comp elipsed = t2 - t1. 

form elipsed (f8.2). 

exe. 
+2

Jeśli chcesz porównać, powinieneś porównać rozsądne rzeczy. Ten "benchmark" nie jest tak naprawdę najlepszym rozwiązaniem. pętli for można praktycznie uniknąć w R i należy ich również unikać. Moje doświadczenie jest jak Henriks dla większości zadań. Dodatkowo, z punktu widzenia statystycznego, zarówno SAS, jak i R działają lepiej. Czy próbowałeś kiedyś jednostronnego testu T w SPSS? –

+1

@Joris, zgadzam się całkowicie z Tobą.Byłem po prostu ciekawy tego samego testu na SPSS. – djhurio

2

SPSS zapewnia GUI na łatwą integrację istniejących programów R lub opracowania nowych. Aby uzyskać więcej informacji, zobacz SPSS Community w IBM Developer Works.

0

Obejrzyj ten film, dlaczego dobrze jest łączyć SPSS i R ...

Link

http://bluemixanalytics.wordpress.com/2014/08/29/7-good-reasons-to-combine-ibm-spss-analytics-and-r/

Jeśli masz kompatybilny kopia R zainstalowany, można się z nim połączyć z IBM SPSS Modeler i przeprowadzić modelowanie i modelowanie modeli za pomocą niestandardowych algorytmów R, które można wdrożyć w programie IBM SPSS Modeler. Musisz także mieć zainstalowaną kopię programu IBM SPSS Modeler - Essentials for R. IBM SPSS Modeler - Essentials for R udostępnia narzędzia potrzebne do tworzenia niestandardowych aplikacji R do użytku z IBM SPSS Modeler.

2

pracować zarówno w firmie i może powiedzieć, co następuje:

  • Jeśli masz duży zespół różnych osób (nie wszyscy naukowcy danych), SPSS jest przydatna, ponieważ jest to zwykły (stosunkowo) do Rozumiesz. Na przykład, jeśli użytkownicy będą uruchamiać model, aby uzyskać dane wyjściowe (szacunki sprzedaży itp.), SPSS jest jasny i łatwy w użyciu.

To powiedziawszy, uważam R lepszy w prawie każdym innym sensie:

  • R jest szybszy (choć czasami dyskusyjna)
  • Jak stwierdzono wcześniej, składnia w SPSS jest straszne (mogę wystarczająco tego stresuj). Z drugiej strony, R może być bolesne do nauki, ale jest mnóstwo zasobów online, a na koniec opłaca się o wiele więcej z powodu różnych rzeczy, które możesz zrobić.
  • Ponownie, jak wszyscy inni mówią, niebo jest limitem z tonami pakietów, zasobów i co ważniejsze: niepodległości, aby robić, co się chce. W mojej organizacji mamy pewne funkcje na bardzo wysokim poziomie, które są bardzo skuteczne. Najtrudniej jest je stworzyć raz, ale potem wykonują skomplikowane zadania, które SPSS zaplączą w niekończącą się sieć płótna. Dotyczy to w szczególności pętli.

Jest często pomijany, ale R ma także wiele funkcji umożliwiających współpracę między zespołami (integracja github z RStudio i łatwe budowanie pakietów za pomocą devtools).

W rzeczywistości, jeśli wszyscy w Twojej organizacji znają R, wszystko, czego potrzebujesz, to utrzymanie podstawowego pakietu na github, aby móc wszystko udostępniać. To oczywiście nie jest norma, dlatego uważam, że SPSS, mimo że jest najgorszym produktem, nadal ma rynek.

Powiązane problemy