ANALIZA DANYCH W STATA 8.0 ZAJĘCIA 5 1. Rozpoczęcie 1. Stworzyć w katalogu C:/temp katalog stata_5 2. Ściągnąć z internetu ze strony http://akson.sgh.waw.pl/~mproch plik zajecia5.zip (kryje się on pod tekstem Zajęcia 5 plik 1 / 1 ) 3. Zapisać ten plik w katalogu C:/temp/stata_5 4. Wypakować pliki do tego katalogu. Powinny powstać dwa pliki: szereg.dta date.xls 5. Otworzyć Statę 6. Zmienić katalog domyślny i rozpocząć logowanie następującymi poleceniami: cd C:/temp/stata_5 log using stata5a.log cmdlog using stata5b.log 2. Praca z szeregami czasowymi c. d. use szereg.dta format rok %ty rok rok pkb L.pkb F.pkb D.pkb S.pkb rok pkb S2.pkb rok pkb LLL.pkb F2L.pkb rok pkb L2S4.pkb rok pkb F3L4S2.pkb rok L(0/3).pkb F(0/3).pkb rok S(1/4).pkb generate opoz = L.pkb generate wyp3 = F3.pkb generate roznica = S4.pkb Z5: 1 z 5
summarize pkb F.pkb L(0/5).pkb regress pkb F.pkb L(1/2).pkb 3. Tworzenie danych panelowych input kraj rok pkb 1. 1 1990 100 2. 1 1991 110 3. 1 1992 120 4. 1 1994 130 5. 2 1990 200 6. 2 1991 210 7. 2 1992 220 8. 2 1994 230 9. end kraj rok kraj rok L(0/2).pkb F(1/2).pkb 4. Zadanie Otworzyć plik date.xls za pomocą Staty. Stworzyć następujące zmienne: pkb_1 miesiąc poprzedni = 100 pkb_12 analogiczny miesiąc poprzedniego roku = 100 pkb_wyp pkb z następnego okresu pkb_wyp12 pkb z analogicznego okresu następnego roku pkb_opoz pkb z poprzedniego miesiąca pkb_opoz12 pkb z analogicznego miesiąca poprzedniego roku pkb_przyrost przyrost pkb w wartościach absolutnych w stosunku do poprzedniego miesiąca Narysować wykres PKB w ujęciu absolutnym wraz z linią trendu. W pliku date.xls zamienić przecinki na kropki i zapisać plik pod nazwą date.txt jako plik tekstowy rozdzielony tabulacjami. insheet using date.txt Z5: 2 z 5
save date.dta format pkb %20.2f describe Wybrać tsfun generate rok2 = monthly(rok, my ) drop rok rename rok2 rok format rok %tm rok format rok %tmm_cy describe generate pkb_1 = pkb/l.pkb*100 generate pkb_12a = pkb/l12.pkb*100 generate pkb_12b = S12.pkb/L12.pkb*100+100 generate pkb_wyp = F.pkb generate pkb_wyp12 = F12.pkb generate pkb_opoz = L.pkb generate pkb_opoz12 = L12.pkb generate pkb_przyrost = D.pkb twoway (scatter pkb rok) (lfit pkb rok) 5. Program Stworzyć program, który dla podanych dwóch zmiennych będzie podawał równanie regresji oraz wartość współczynnika korelacji liniowej. doedit Wpisać kod programu z następnej strony: Z5: 3 z 5
program mariuszek quietly regress `1' `2' display "Rownanie regresji miedzy zmienna `1' (zmienna objasniana) a zmienna `2' (zmienna objasniajaca) jest nastepujace" display"" if _b[`2'] < 0 { display "`1' teoret = " _b[_cons] " " abs(_b[`2']) "*`2'" else { display "`1' teoret = " _b[_cons] " + " _b[`2'] "*`2'" quietly { correlate `* display "Wspolczynnik korelacji liniowej zmiennych `* wynosi: " r(rho) end Zapisać ten program pod nazwą mariuszek.ado w katalogu C:/temp/stata_5. W programie wykorzystujemy jedną z funkcji matematycznych abs( ). Więcej o funkcjach matematycznych znajdziesz w: wybierając mathfun. Sprawdzenie pracy programu: input y x 1. 120 1 2. 110 2 3. 130 3 4. 144 4 5. 145 5 6. 156 6 7. end sysdir sysdir set PERSONAL C:/temp/stata_5 mariuszek y x W programach bardzo ważną rzeczą są makra. `1 `2 oraz `* to przykłady makr. O wiele więcej o makrach powinno być w drugiej połowie semestru. 6. Generowanie liczb losowych set obs 100000 gen a = uniform() gen b = uniform() Z5: 4 z 5
UWAGA! Gdy uruchomimy nowe okno Staty, liczby losowe będą takie same. Żeby wartości losowe były inne, należy przed uruchomieniem funkcji uniform() wpisać polecenie set seed podając jakąś liczbę: set seed 39847149 gen c = uniform() PRZYKŁAD: Jak generować losowo liczby z różnych rozkładów? set rmsg on Znaleźć Probability distributions & density functions. Będziemy korzystać z funkcji: invnorm( ), invchi2( ), invf( ) oraz invttail( ). Są to funkcje, które dla podanej wartości dystrybuanty (i ewentualnie liczby stopni swobody) zwracają odpowiedni punkt na osi odciętych. generate n = invnorm(uniform()) generate chi2 = invchi2(50,uniform()) memory set memory 20m memory generate f = invf(4,80,uniform()) generate t = invttail(40,1-uniform()) Wejść do menu Graphics i tam wybrać histogram. Stworzyć histogram dla każdej zmiennej. histogram n, frequency histogram chi2, frequency histogram f, frequency histogram t, frequency set rmsg off W katalogu C:/temp/stata_5 powinno być 5 plików: stata5a.log i stata5b.log zawierające wpisane komendy oraz wyniki dotychczasowej pracy date.xls, date.txt oraz date.dta szereg.dta mariuszek.ado z zarejestrowanym programem Z5: 5 z 5