Analiza regresji i drzewa decyzyjne dla zbioru [eksport.txt]
Transkrypt
Analiza regresji i drzewa decyzyjne dla zbioru [eksport.txt]
Temat zajęć: ANALIZA DANYCH ZBIORU “EKSPORT” Część I: analiza regresji Krok 1. Pod adresem http://zsi.tech.us.edu.pl/~nowak/adb/eksport.txt znajdziesz zbiór danych do analizy. Zapisz plik na dysku w dowolnej lokalizacji. Krok 2. Uruchom narzędzie R Krok 3. Wywołaj komendę, która pozwoli Ci wskazad plik z danymi do analizy > dane=read.table(file.choose(),header=T) Krok 4. Wskaż miejsce w którym zapisałaś (eś) plik „eksport.txt” Krok 5. By sprawdzid, że dane się poprawnie wczytały, wyświetl je na ekranie stosując komendę: > dane Jeśli wszystko będzie w porządku zobaczysz następujący wykaz danych: czas USD 1 1 353.16 2 2 353.86 ….. 44 44 424.59 45 45 421.85 DEM EUR wskaznik_cen bezrobocie import eksport 194.61 384.32 103.20 10.7 11219.1 7623.8 195.05 385.03 104.95 10.6 12980.7 8418.2 195.34 382.05 196.59 384.50 132.86 133.26 16.2 16840.4 12320.4 16.3 17578.3 13521.3 Krok 6. By zbudowad model regresji liniowej stosujemy funkcję lm pakietu R. Zbuduje modele regresji, w których zmienną objaśnianą będzie zawsze „eksport” a zmieniad będziemy zmienne objaśniające: a. b. c. d. e. f. g. Wskaźnik_cen Import Bezrobocie Wskaźnik_cen Wskaźnik_cen Bezrobocie + Wskaźnik_cen + bezrobocie + import import + import + bezrobocie Przypominam tylko, że komenda, która stworzy model regresji liniowej gdzie zmienną objaśnianą będzie eksport a objaśniającą wskaźnik_cen a dane (parametr data) pobierzemy ze zbioru o nazwie „dane” wygląda następująco: model<-lm(eksport~wskaznik_cen,data=dane) Zaś wywołanie modelu, by zobaczyd jego parametry komendą: summary(model) Wówczas na ekranie pojawia się wykaz podobny do poniższego: Call: lm(formula = eksport ~ wskaznik_cen, data = dane) Residuals: Min 1Q -1542.41 -433.41 Median 36.06 3Q 374.65 Max 1374.58 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -9738.4 1276.5 -7.629 1.6e-09 *** wskaznik_cen 166.7 10.7 15.585 < 2e-16 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 719.3 on 43 degrees of freedom Multiple R-squared: 0.8496, Adjusted R-squared: 0.8461 F-statistic: 242.9 on 1 and 43 DF, p-value: < 2.2e-16 Krok 7. Zbadajmy, czy modele przez nas zbudowane cechują się współliniowością. Przypominam, że funkcja vif dostępna jest przy użyciu biblioteki car, a więc najpierw należy załadowad ową bibliotekę za pomocą komendy: > library(car) Krok 7a. VIF dla modelu, w którym zmienne objaśniające są 3: import, bezrobocie oraz wskaznik_cen wywołamy następująco: > vif(lm(eksport~import+wskaznik_cen+bezrobocie,data=dane)) Pamiętajmy, że jeśli VIF dla jakiejś zmiennej wynosi więcej niż 10 to dopiero wówczas mówimy o współliniowośd, która może wpływad na równanie regresji i zaburzad wyniki predykcji. Zadanie: Sprawdź, który z modeli (o ile w ogóle) wprowadza współliniowośd. Krok 8. Zbadajmy działanie naszego zbudowanego modelu regresji, np. tego w którym eksport przewidywaliśmy na podstawie wartości wskaźnika bezrobocia. Sprawdź jaka będzie przewidywana wartośd eksportu, gdy wartośd bezrobocia wyniesie 10.70 przy 90 a potem 95% poziomu ufności. W oryginalnym zbiorze wartości istnieje wartośd 10.70 dla bezrobocia. Porównaj wartości: rzeczywistą i przewidywaną przez model. Czy jest różnica, i czy jest ona duża czy niewielka ? Sprawdź też wartośd przewidywaną eksportu np. gdy bezrobocie wyniesie 10. Przypominam, że komenda wywołania funkcji PREDICT w pakiecie R wygląda następująco: > predict(model,data.frame(bezrobocie=10.70), level = 0.9, interval = "confidence") Krok 9. Analiza danych (predykcja) w narzędziu Rattle. Uruchom R i załaduj bibliotekę Rattle wprowadzając komendy: > library(rattle) > rattle() Krok 10. Kiedy już narzędzie się uruchomi (jeśli nie poproś o pomoc – pomogę), wczytaj zbiór eksport.txt odpowiednio ustawiając zmienne: objaśniane i objaśniające, pomijając również te nieistotne w analizie. Kliknij przycisk „Wykonaj”, jak na rysunku poniżej (użyj tylko zmiennych wskaźnik_cen, import, bezrobocie – w rożnych konfiguracjach jako objaśniające, a resztę ignoruj). Krok 11: Przejdź do zakładki “predictive” i wybierz odpowiednie opcje jak na rysunku poniżej: Krok 12: Odczytaj z okna programu odpowiednie dane dotyczące zbudowanego modelu regresji: Równanie regresji oraz współczynnik determinacji. Krok 13: Przy okazji porównaj czy równanie regresji w R i Rattle dla danego modelu są identyczne. Krok 14: Znając wartośd współczynnika determinacji R2 dla każdego modelu, wybierz model najlepiej opisujący eksport. Który to model ? Część II: Drzewa decyzyjne w Rattle Zakładając, że wciąż masz załadowany zbiór eksport.txt przejdź do zakładki Model albo predictive (w zależności od wersji narzędzia Rattle) i wybierz odpowiednią opcję jak na rysunku poniżej: Pojawi się podmenu do pokazania drzewa: Zobacz zatem jak zbuduje się drzewo dla wybranego przez Ciebie modelu. Jak zapiszesz (odczytasz) reguły stworzone przez to drzewo ? Jak klasyfikuje eksport drzewo a jak klasyfikował zbudowany model regresji ? Tree as rules: Rule number: 7 [yval=12232.8071428571 cover=14 (31%)] import>=1.561e+04 wskaznik_cen>=126.6 Rule number: 5 [yval=8609.34166666667 cover=12 (27%)] import< 1.561e+04 import>=1.347e+04 Rule number: 6 [yval=10618.6818181818 cover=11 (24%)] import>=1.561e+04 wskaznik_cen< 126.6 Rule number: 4 [yval=7809.125 cover=8 (18%)] import< 1.561e+04 import< 1.347e+04 Część III: Drzewa decyzyjne w Traceis 1. Pod linkiem http://zsi.tech.us.edu.pl/~nowak/adb/Traceis.zip jest darmowe narzędzie do analizy danych. Sciągnij plik programu (ale najpierw sprawdź, bo byd może jest już zainstalowany w pracowni). Uruchom narzędzie. 2. Wczytaj zbiór „eksport.txt” 3. W menu z lewej strony przejdź do części „implementation” i wybierz „Grouping”. 4. Przejdź do zakładki „Decision Trees” i wybierz odpowiednio zmienne objaśniające i objaśnianą: 5. W prawym oknie powinno się pokazad zbudowane drzewo dla opcji „minimum node size=5”. Przyjrzyj się drzewu. Sprawdź też co się zmieni jak ów parametr większych do wartości 10 i 15. Podaj interpretację takiego przypadku. Jakie zmiany zauważasz ? 6. Dla przypadku gdy minimum node size = 5, i klikając na drzewie decyzyjnym w węzeł dla wskaźnika cen >122 obserwuj histogramy dla poszczególnym zmiennych i odopowiedz na pytania: I Jakie są wartości bezrobocia i importu wówczas, i w jakim czasie to zostało zaobserwowane ? Jaka jest wówczas średnia wartośd eksportu ?