R vs SAS vs SPSS


Takie tytuły rozpoczynają zazwyczaj spory o wyższość jednego święta nad drugim. Ale nie na tym blogu. Dzisiejszy wpis ma za zadanie zilustrować pewne subtelne różnice pomiędzy tymi trzema pakietami statystycznymi. Różnice o często niebagatelnych konsekwencjach.

Wyobraźmy sobie, że podmiot X zleca nam budowę narzędzia analitycznego. Dochodzi do odbioru. Podmiot X sprawdza czy narzędzie liczy wszystko poprawnie, a tu nagle zonk. Okazuje się, że te nawet podstawowe statystyki nie zgadzają się z wartościami referencyjnymi.


O co chodzi?

Niestety w statystyce bywa tak, że ten sam parametr można szacować na różne sposoby. Każdy, kto przeżył kurs statystyki pamięta (;-)), że odchylenie standardowe można szacować na przynajmniej dwa różne sposoby (estymator obciążony i nieobciążony, czyli z dzieleniem przez n i n-1). Rzadziej się mówi o tym, że skośność i kurtoza można wyznaczać na trzy konkurencyjne popularne sposoby. A kwantyle? Okazuje się, że te można wyznaczać na 9(!) różnych sposobów.

I co gorsze, dla różnych pakietów różne sposoby są tymi ,,domyślnymi”!

Przez co, wyniki uzyskane procedurami o podobnych nazwach na tych samych danych mogą się różnić pomiędzy pakietami.
Zazwyczaj różnią się mało. Na tyle, że 99% osób może spokojnie machnąć na to ręką.
Reszta wpisu jest dla tego pozostałego 1% aptekarzy.

Skośność / kurtoza

W programie R do szacowania skośności i kurtozy można wykorzystać np. funkcje skewness i kurtosis, które są dostępne w pakiecie e1071. Obie te funkcje mają dodatkowy argument type, określający, który z trzech popularnych estymatorów skośności/kurtozy ma być wyznaczony.

W R domyślnie wykorzystywana jest trzecia z wymienionych tam definicji, a w SAS i SPSS druga.

Kwantyle

W programie R do szacowania kwantyli służy funkcja quantile. Ma ona argument type, który pozwala na wskazanie jednej z 9 różnych metod wyznaczania kwantyli. W R domyślnie wykorzystywana jest definicja 7, w SAS definicja 3, a w SPSS definicja 6.

Kontrasty

W programie R modele liniowe estymuje się z użyciem funkcji lm. Argument contrasts pozwala na wskazanie kontrastów. Domyślne w R to contr.treatment, a w SAS contr.SAS.

Take home

Nawet (wydawałoby się) najbardziej podstawowe statystyki, takie jak skośność czy kwantyle mogą być różnie liczone w różnych pakietach statystycznych.
Warto o tym wiedzieć, jeżeli budujemy rozwiązanie analityczne oparte o R/SAS/SPSS, a nasz produkt będzie oceniany pod kątem poprawności z przygotowanymi szablonowymi odpowiedziami / zgodności z pewnymi regulacjami.

Różnic pomiędzy R a SAS/SPSS jest więcej. Będzie o nich można przeczytać np. w kolejnym wydaniu Przewodnika po pakiecie R ;-)

4 myśli na temat “R vs SAS vs SPSS”

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">