SAS – wprowadzenie

Wprowadzenie

SAS to oprogramowanie statystyczne, które służy do szacowania modeli ekonometrii. Aby uzyskać więcej informacji, odwiedź oficjalną stronę SAS.

W tym wprowadzeniu dowiesz się, jak używać oprogramowania SAS do odczytywania zestawów danych, wykonywania podstawowych analiz statystycznych i zapoznania się z programem, abyśmy mogli go użyć do bardziej wyrafinowanych modelach ekonometrii.

Instalacja SAS’a

W internecie dostępne są dwie wersje próbne*: “SAS University Edition” i “SAS OnDemand for Academics” niech nazwa was nie zmyli z obu wersji mogą korzystać nie tylko studenci i nauczyciele. Obie wersje dostępne są dla każdego. Każdy może je pobrać i zainstalować na swoim komputerze / laptopie. To pełne wersja, a nie wersje próbne. Działają lokalnie na Twoim komputerze – podczas działania tego oprogramowania nie jest wymagana łączność z Internetem.

Aby pobrać SAS’a (“SAS University Edition” ) skorzystaj ze strony:

https://www.sas.com/en_us/software/university-edition/download-software.html#windows

Na stronie znajduje się krótka instrukcja jak krok po kroku zainstalować SAS’a

Przykładowe pliki

Podstawowe komendy

Dane z których będziemy korzystać

makepricempgrepairsweightlengthforeign
AMC409922329301860
AMC474917333501730
AMC379922326401680
Audi969017528301891
Audi629523320701741
BMW973525426501771
Buick481620332501960
Buick782715440802220
Buick578818336702180
Buick445326322301700
Buick518920332802000
Buick1037216338802070
Buick408219334002000
Cadillac1138514343302210
Cadillac1450014239002040
Cadillac1590621342902040
Chevrolet329929321101630
Chevrolet570516436902120
Chevrolet450422331801930
Chevrolet510422232202000
Chevrolet366724227501790
Chevrolet395519334301970
Datsun622923423701701
Datsun458935520201651
Datsun507924422801701
Datsun812921427501841

Kod wprowadzony po * będzie traktowany jako komentarz, przykład:

* to jest komentarz
libname lib1 'C:\Econometrics\Data';
run;

Utworzenie biblioteki, gdzie będą trzymane pliki z danymi SAS

* utworzenie biblioteki o nazwie „lib1” i wskazanie jej ścieżki 
libname lib1 'C:\Econometrics\Data';
* wykonanie komendy
run;

Import danych z pliku typu .sas

* utworzenie obiektu "auto" typu "data" 
data auto;
* załadowanie pliku "intro_auto"
set lib1.intro_auto;
* uruchomnienie skryptu
run;

Import danych z pliku typu .csv

* zdefiniowanie nazwy dla zaimportowanych danych ("auto_csv") 
proc import out=auto_csv
* załadowanie pliku "intro_auto.csv" (możemy też użyć wcześniej zdefiniowanej biblioteki "lib1" wtedy zamiast wpisywać całą ścieżkę możemy napisać "lib1.intro_auto.csv")
datafile = "C:\Econometrics\Data\intro_auto.csv"
* standardowe parametry dla pliku typu .csv
dbms=csv replace; getnames=yes; datarow=2;
run;

Iimport danych z pliku typu .xlsx (excel)

* zdefiniowanie nazwy dla zaimportowanych danych ("auto_excel) 
proc import out=auto_excel
* załadowanie pliku "intro_auto.xlsx"
datafile = "C:\Econometrics\Data\intro_auto.xlsx"
* standardowe parametry dla pliku typu .xlsx (excel)
dbms=excel replace; getnames=yes;
run;

Wszystkie pliki z danymi możemy importować również używająć GUI. (File -> Import data… -> Wybierz typ importowanego pliku -> wskaż miejsce gdzie się znajduje)

Wyświetlanie danych

* wyświetl dane z pliku danych "auto" (obs=10, pierwsze 10 obserwacji) 
proc print data=auto (obs=10);
run;

Wyświetlanie właściwości pól

* wyświetl właściwości pól z pliku danych "auto" (właściwości typu: typ pola, nazwa pola, komentarż, max długość pola) 
proc contents data=auto;
run;

Sortowanie danych

* wybierz plik z danymi "auto" 
proc sort data=auto;
* posortuj dane po kolumnie "make" i "price"
by make price;
run;

Wyświetlanie statystyk

* wyświetl statystyki dla danych "auto" (statystyki: średnie dla danych wartości, max, min...) (means - wartości średnie)
proc means data=auto;
*class foreign;
run;

Wyświetlanie szczegółowych statystyk

* wyświetl statystyki dla danych "auto"
proc univariate data=auto;
* dla wartości (kolumn): "price" i "mpg"
var price mpg;
run;

Zapis statystyk do pliku

* na początku sortujemy dane po kolumnie "make"
proc sort data=auto; by make; run;
* następnie wyciągamy statystyki (noprint - nie wyświetlaj)
proc univariate data=auto noprint;
* dla wartości "price" i "mpg"
var price mpg;
* posortowane po "make"
by make;
* wynik zapisz w pliku z danymi "stats" (mean=price_mean mpg_mean std=price_std n=obs - kolumny pliku wynikowego) [żeby zobaczyć nazwy kolumn (View -> Column names)]
output out=stats mean=price_mean mpg_mean std=price_std n=obs;
run;

Połączenie dwóch plików z danymi

* posortowanie pliku "auto" po wartości "make"
proc sort data=auto; by make; run;
* posortowanie pliku "stats" po wartości "make"
proc sort data=stats; by make; run;
* utworzenie obiektu "auto2" typu "data"
data auto2;
* połączenie pliku "auto" z plikiem "stats"
merge auto stats;
* po wartości "make"
by make;
run;

Rozkład częstotliwości dla różnych zmiennych

* wybieramy plik z danymi 
proc freq data=auto;
* wybieramy dla jakich wartości chcemy przeprowadzić operacje (dla wartości: "make", "foreign", "repairs")
tables make foreign repairs;
run;

Tworzenie wykresów

* tworzenie wykresu z danych "auto"
proc gchart data=auto;
* wybór danych które będą wyświetlone na wykresie (czyli oś X: "make" oś Y: "discrete")
vbar make/ discrete;
run;

Powiązania

* wybieramy plik z danymi "auto"
proc corr data=auto;
* wybieramy dane które chcemy badać
var price mpg weight length;
run;

Powiązania po grupie – żeby to zrobić trzeba na początku posortować dane (wtedy analiza powiązań zostanie zrobiona dla różnych grup danych [grupy tworzone są przez wartość sortowanej kolumny])

* na początku musimy posortować dane
proc sort data=auto; by foreign; run;
* następnie wybieramy plik
proc corr data=auto;
* oraz dane które będziemy badać
var price mpg weight length;
* posortowane po wartości "foreign"
by foreign;
run;

Manipulacje danymi

* plik w którym zapisze się rezultat działania ("auto1")
data auto1;
* plik z którego będziemy korzystać ("auto")
set auto;
* jeśli cena większa od 6000 to "highprice=1" w przeciwnym wypadku "highprice=0"
if price>6000 then highprice=1; else highprice=0;
* jeśli "repairs=0" lub "repairs=1" to "repairs_level=0", jeśli "repairs=2" lub "repairs=3" to "repairs_level=1" w inncyh przypadkach "repairs_level=2"
if repairs=0 or repairs=1 then repairs_level=0; else if repairs=2 or repairs=3 then repairs_level=1; else repairs_level=2;
* "price_nominal" = "price" razy "3.32" (możemy korzystać z wartości kolumn i je dodawać, mnożyć, dzielić...)
price_nominal=price*3.35;
* jelśi "price" =. to usuń wiersz (=. znaczy że "price" jest pusta)
if price=. then delete;
* "price_per_weight" = "price" podzielona przez "weight"
price_per_weight=price/weight;
* tylko wiersze gdzie kolumna "foreign" = 0 (wykluczenie pewnych danych)
where foreign=0;
run;

Model regresyjny – „mpg” jest zmienną zależną, a “waga”, “długość” i “obce” są zmiennymi niezależnymi

* korzystamy z danych "auto"
proc reg data=auto;
* wskazujemy zmienną zależną ("mpg") i zmnienne niezależne "weight", "length", "foreign")
model mpg = weight length foreign;
run;

Test ANOVA – jeżeli średnia wartość “mpg” jest taka sama dla samochodów “zagranicznych” i “krajowych”

* korzystamy z danych "auto"
proc glm data=auto;
class foreign;
model mpg = foreign;
run;

Export pliku .sas do pliku .sas

* wybranie pliku do exportu 
data lib1.auto1;               
* nazwa pliku wynikowego
set auto1;
run;

Export pliku .sas do pliku .csv

* wybranie pliku do exportu 
proc export data= auto1
* nazwa pliku wynikowego
outfile = "C:\Econometrics\Data\auto1.csv"
* standardowe parametry dla pliku csv
dbms=csv replace; putnames=yes;
run;

Export pliku .sas do pliku .xls (excel)

* wybranie pliku do exportu 
proc export data=auto1
* nazwa pliku wynikowego
outfile= "C:\Econometrics\Data\auto1.xls"
* standardowe parametry dla pliku xls (excel)
dbms=excel replace;
run;

Wszystkie pliki z danymi możemy exportowa również używając GUI. (File -> Export data…)

Linki

https://www.youtube.com/watch?v=qimCq49Ajfc
https://sites.google.com/site/econometricsacademy/econometrics-software/sas
https://www.youtube.com/watch?v=qimCq49Ajfc

+ kursy online:

https://www.listendata.com/p/sas-tutorials.html
https://www.listendata.com/2015/01/getting-started-with-sas.html

https://www.edureka.co/blog/sas-tutorial/?utm_source=quora&utm_medium=crosspost&utm_campaign=social-media-edureka-june-vishal
https://www.edureka.co/blog/sas-programming/?utm_source=quora&utm_medium=crosspost&utm_campaign=social-media-edureka-june-vishal

Dodaj komentarz

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