sprawozdanie z przeprowadzonego projektu
Transkrypt
sprawozdanie z przeprowadzonego projektu
INFORMATYKA I EKONOMETRIA ROK III SPRAWOZDANIE Z PRZEPROWADZONEGO PROJEKTU Wykonali: Izabela Jakubowska, Natalia Krejckant, Piotr Pomichowski 2013-06-13 SPIS TREŚCI: Przedmowa 1. Teoria: charakterystyka danych, postać modelu, proces modelowania. 1.1 Pozyskanie, selekcja i charakterystyka danych. 1.2 Postać modelu i wybór metody estymacji. 1.3 Proces modelowania: zjawisko heteroskedastyczności i autokorelacji. 1.4 Prognozy. 2. Testy 2.1 Badanie heteroskedastyczności 2.2 Badanie autokorelacji 2.3 Badanie normalności rozkładu reszt 2.4 Badanie poprawności funkcyjnej modelu 2.5 Reguła decyzyjna 3. Wyniki 4. Wnioski Literatura Informatyka i Ekonometria rok III Strona 2 PRZEDMOWA Celem niniejszego projektu jest zbadanie zależności ceny mieszkania wystawionego na rynku wtórnym w Warszawie od poszczególnych czynników tj.: metraż, liczba pokoi, piętro, rok budowy, dzielnica. W tym celu stworzono i estymowano dopasowany model ekonometryczny, który najlepiej odzwierciedla charakterystykę opisywanego zjawiska. Dzięki różnego rodzaju narzędziom ekonometrycznym zbadano poprawność obranych działań, poddano model wielu testom potwierdzającym obrane założenia, a także dokonano modyfikacji w miejscach gdzie było to konieczne. W końcowym etapie obliczono prognozy na następne okresy oraz wysunięto wnioski dotyczące całości badanego zjawiska. Informatyka i Ekonometria rok III Strona 3 1. TEORIA: CHARAKTERYSTYKA DANYCH, POSTAC MODELU, PROCES MODELOWANIA. 1.1 Pozyskanie, selekcja i charakterystyka danych. Do procesu estymacji i weryfikacji prognoz pozyskano dane mieszkań składające się z cech takich jak: ceny mieszkania, dzielnicy, w której się ono znajduje, powierzchni, liczby pokoi, numeru piętra, roku budowy, ceny za metr kwadratowy, a także daty dodania danego ogłoszenia. Dane te poddano pewnym przekształceniom : modyfikacja wartości zmiennej o nazwie „Piętro”, odrzucanie niewłaściwych obserwacji, modyfikacja zmiennych o nazwie „Dzielnica”. Ich stan ulega zmianie, po każdym z wykonanych etapów. Opis całego procesu wraz z odpowiednim zestawem danych zawiera załącznik nr.1. 1.2 Postać modelu i wybór metody estymacji. Tworzenie modelu ekonometrycznego na podstawie danych obejmuje obserwacje do roku 2012 włącznie. Rok 2013 przeznaczono na wyznaczenie prognoz, a także różnego rodzaju błędów oceniających dokładność prognozowania. Dla usprawnienia obliczeń, skorzystano z programu „R Project” oferującego szeroką gamę funkcji i testów badających i analizujących zjawisko, z którym mamy do czynienia. Uogólniając zebrano 2612 obserwacji ze zmienną zależną: logarytm ceny mieszkania w Warszawie i zmiennymi niezależnymi: dzielnica, powierzchnia, liczba pokoi, piętro, rok. Postać modelu wygląda następująco: Y= a0+a1*x1+a2*x2+a3*x3+a4*x4+a5*x5 (1 .2.1) gdzie: Y- logarytm ceny mieszkania X1 - dzielnica jako zmienna ilościowa (patrz załącznik nr.1) X2 – powierzchnia X3 – liczba pokoi X4 – piętro X5 – rok Zanim zdecydowano się na wybranie jednej z wielu dostępnych funkcji szacujących, dokonano wiele obliczeń oraz dochodzono do różnych wniosków. Pierwszą, a zarazem najbardziej popularną metodą szacowania jest KMNK( klasyczna metoda najmniejszych kwadratów). Jej prostota niesie jednak ze sobą wiele przeszkód jakim jest m.in. różnorodność wariancji, o której świadczy heteroskedastyczność. W związku z tym, zrezygnowano z tego sposobu. Kolejnym sposobem jest wykorzystanie funkcji nls() dostępnej w programie obsługującym wszelkie obliczenia za pośrednictwem języka „r”. Nonlinear Least Squares, czyli rozwinięcie skrótu nls stanowi inny ze sposobów oszacowania tego modelu, jednak w porównaniu do KMNK jest bardziej odpowiedni, m.in. ze względu na to, iż obsługuje on modele nieliniowe. Po oszacowaniu utworzonej postaci funkcyjnej, uruchomiono testy wykazujące niepożądane zjawisko różnorodności wariancji, autokorelacji, braku normalności rozkładu reszt. Istnieją sposoby, by pozbyć się tego Informatyka i Ekonometria rok III Strona 4 rodzaju uchybień, jednak podjęto inną decyzję. Warto dodać, że oszacowania parametrów zarówno metodą KMNK jak i funkcją nls() wychodzą na bardzo podobnym poziomie. Ostatecznie postanowiono skorzystać funkcji glm(), dostępnej w „R Project” o nazwie Fitting Generalized Linear Models służy do dopasowania uogólnionych modeli liniowych, a w szczególności modeli regresji logistycznej. Jak łatwo zauważyć metoda ta nawiązuje do klasycznej MNK i należy oczekiwać zjawiska heteroskedastyczności. Mimo to, zdecydowano się właśnie na tę funkcję, gdyż sposób jej implementacji i składnia jest bardzo pomocna w dalszych badaniach, testach i innych obliczeniach. Natomiast zjawiska heteroskedastyczności, a także autokorelacji można się pozbyć dostępnymi w ekonometrii metodami. Ogólnie rzecz biorąc, glm() jest doskonałym narzędziem do sprawnego opracowania modelu ekonometrycznego, a to wszystko dzięki uniwersalnemu kodowi napisanemu w języku r, zawierającemu dostępne funkcje. Oszacowane parametry mają prawie taką samą wartość jak te, uzyskane KMNK lub funkcja nls(), co było dodatkowym argumentem popierającym ideę skorzystania z funkcji glm().Kod ten jest napisany w specjalny sposób tak, aby można było go powielać, bez konieczności modyfikowania w zależności od danych. 1.3 Proces modelowania : zjawisko heteroskedastyczności i autokorelacji. Pierwsze próby estymacji modelu wykazały pojawienie się m.in. zjawiska heteroskedastyczności, a także autokorelacji. Przyczyną heteroskedastyczności może być zarówno niepoprawna forma funkcyjna modelu, jak i ominięcie istotnych zmiennych. Innymi, równie ważnymi czynnikami wpływającymi na pojawienie się heteroskedastyczności może być jakość zbioru danych, a także po prostu natura badanego zjawiska. Różnorodność wariancji, jako zjawisko niepożądane, powoduje, że uzyskane estymatory są nieobciążone , zgodne, ale nieefektywne. W związku z tym konieczna jest modyfikacja metod estymacji wariancji oszacowanych parametrów, tak by ją zlikwidować. Ze względu na to, iż badania ekonometryczne, charakteryzują się brakiem stałości wariancji składnika losowego, użyliśmy WMNK: (2 .3.1) (1.3.2) (1.3.3) Autokorelacja reszt, przynosi podobne skutki do tych, które można zaobserwować przez pojawienie się zjawiska różnorodności wariancji w modelu, czyli obniżenie efektywności estymatora. Często jej przyczyną jest przeszacowanie współczynnika determinacji liniowej. Jest to zjawisko bardzo niepożądane, ze względu na to, iż składniki losowe dla obserwacji pochodzących z różnych okresów nie są niezależne, lecz skorelowane. Informatyka i Ekonometria rok III Strona 5 Metoda Cochrane Orcutt jest jedną z propozycji, dzięki której można usunąć autokorelację składnika losowego z modelu. Polega ona, podobnie jak WMNK, na transformacji danych i ponownym oszacowaniu modelu, w oczekiwaniu aż zjawisko autokorelacji zniknie. Pierwszym krokiem jest obliczenie współczynnika autokorelacji rho, po którym można rozpocząć zmianę postaci zmiennych, a w końcowym etapie ponownie oszacować nowy model: Dla pierwszej obserwacji: (1.3.4) Dla następnych obserwacji: (1.3.5) 1.4 Prognozy Wyliczanie prognoz w modelu wykonano poprzez użycie obserwacji pochodzących z 2013 roku. Dzięki temu uzyskano błędy ex post. Mierniki ex post są wartościami odchyleń rzeczywistych realizacji zmiennej prognozowanej od obliczonych prognoz. Można je obliczać dla każdego momentu lub okresu należącego do przedziału czasu [n+1,……,T]. Prognozy ex post oparte są na znanych wartościach zmiennych objaśniających. W momencie kiedy poznajemy zrealizowaną wartość zmiennej prognozowanej – prognoza ex post staje się prognozą wygasłą. Mierniki ex post: Średni błąd prognozy(ME): ME mówi nam o ile średnio wartość rzeczywistej zmiennej objaśnianej różni się od obliczonych prognoz, w całym okresie prognozowania. (1.4.1) ME 1 m ( y yP ) m 1 Średni absolutny błąd predykcji(MAE): MAE charakteryzuje to samo zjawisko co średni błąd prognozy, uwzględniając wynik w wartości bezwzględnej. (1.4.2) MAE 1 m y yP m 1 Informatyka i Ekonometria rok III Strona 6 Średni absolutny błąd procentowy(MAPE): informuje nas o średniej wielkości błędów prognoz, wyrażonych w %. (1.4.3) 1 m y yP MAPE 100 m 1 y Pierwiastek błędu średniokwadratowego(RMSE): Wartość RMSE mierzy o ile średnio odchylają się realizacje zmiennej prognozowanej od obliczonych prognoz. Znacząca różnica wartości pomiędzy RMSE, a MAE wskazuje na występowanie w okresie prognozy błędów o bardzo dużych wartościach. (1.4.4) RMSE 1 m ( y yP ) 2 m 1 2. TESTY 2.1 Badanie heteroskedastyczności Test White’ a, jest bardzo ogólny i przeprowadzany jest poprzez estymację modelu, w którym zmienną objaśniającą stanowią kwadraty reszt pierwotnego modelu, zaś zmiennymi objaśniającymi są oryginalne zmiennie niezależne, ich kwadraty, a także ich wszystkie możliwe iloczyny. Jest to dość duża wada, która wynika głównie z konieczności zwiększania liczby zmiennych objaśniających. Dodatkowo test ten wymaga poprawnego skonstruowania postaci funkcji regresji. W przeciwnym wypadku, odrzucenie hipotezy zerowej, może wynikać jedynie z zastosowania niewłaściwej formy funkcji. Test Goldfelda i Quandta nie jest obarczony takimi problemami jak test White’ a. Porównuje on wariancje reszt w dwóch podpróbach, które zostały otrzymane poprzez uporządkowanie badanej zmiennej, prawdopodobnie skorelowanej z wariancją reszt. Wariancje te wyznaczamy, estymując dwa modele, dla każdej podpróby oddzielnie. Hipotezę zerową, należy odrzucić w przypadku gdy istnieje powyższa zależność. Oznacza to, że wariancje w obydwu podpróbach są bardzo różnorodne. Pamiętać należy jednak, że korzystanie z testu Goldfelda i Quandta wymaga normalności rozkładu reszt, którego badany przez nas model nie posiada. W dodatku jest on przeprowadzany dla każdej zmiennej objaśniającej osobno, więc im wyższa jest liczba zmiennych, tym większe ryzyko wystąpienia błędu I rodzaju ( odrzucenie hipotezy zerowej, która w rzeczywistości jest prawdziwa). Należący do klasy testów mnożnika Lagrange’ a, test Breuscha Pagana, wykorzystano w projekcie, za każdym razem, gdy zaistnieje potrzeba zbadania heteroskedastyczności reszt. Jest to najlepszy wybór, z pośród wszystkich dostępnych opcji m.in. dlatego, że bada on heteroskedastyczność reszt dla wszystkich zmiennych objaśniających łącznie. W przeciwieństwie do testu White’ a nie wymaga on konstruowania postaci funkcyjnej modelu i nie jest ona znana w Informatyka i Ekonometria rok III Strona 7 ogólnym przypadku. Okazuje się jednak, że bez względu na formę regresji, możliwe jest obliczenie statystyki testowej. Podobnie jak test Goldfelda i Quandta konieczne jest spełnienie warunku o normalnym rozkładzie reszt. Jednak istnieje modyfikacja statystyki testowej Koenkera, omijająca ten problem. Poniżej opisana jest charakterystyka testu Breuscha Pagana: Równanie modelu: (2.1.1) Równanie pomocnicze: (2.1.2) Hipotezy: (2.1.3) (2.1.4) Homoskedastyczność reszt przynajmniej jeden Heteroskedastyczność reszt Statystyka testowa: (2.1.5) gdzie ESS - wyjaśniona suma kwadratów (z równania pomocniczego) lub (2.1.6) ( z równania pomocniczego) 2.2 Badanie autokorelacji Test Durbina Watsona jest jednym z najpopularniejszych testów przeznaczonych do badania autokorelacji reszt. Pomimo wielu zalet, nie użyto go w projekcie, ponieważ wymaga on założenia o normalności rozkładu składnika losowego. Warto też zwrócić uwagę na jego wady, którą m. in. jest Informatyka i Ekonometria rok III Strona 8 fakt, że dla niektórych wartości statystyka testowa ma nieznany rozkład (np. dla liczby zmiennych większej od 8 i liczby obserwacji większej od 101), a wtedy niemożliwe jest podjęcie żadnej decyzji. Testy Boxa i Pierce’ a oraz Breuscha Godfrey’ a pozbawione są tych wad i ograniczeń, którymi obarczony jest test Durbina Watsona, dlatego też z powodzeniem wykorzystano go do badania autokorelacji reszt modelu. Dodatkowo test Boxa umożliwia badanie autokorelacji dowolnego rzędu ( za pośrednictwem opcji lag), podczas gdy Durbin Watson zakłada badanie jedynie I rzędu. Bardziej skomplikowany, choć równie dobry i skuteczny wydaję się test należący do klasy mnożników Lagrange’ a o nazwie test Breuscha Godfreya. Jednak dzięki środowisku R, wszystkie obliczenia, wykonywane są sprawnie i szybko. Charakterystyka testu Boxa Pierce’ a: Statystyka testowa: (2.2.1) Hipotezy: (2.2.2) H0: ρh = 0 (brak autokorelacji składnika losowego) (2.2.3) H1: ρh ≠ 0 (występuje autokorelacja) gdzie n – liczba obserwacji, m – badany rząd autokorelacji , ρh współczynnik autokorelacji h - tego rzędu. Charakterystyka testu Breuscha Godfrey` a: Model pierwotny: (2.2.4) yt 0 1 xt1 ... k xtk 1 yt 1 ... s yt s t (t 1,2,..., T ) t 1t 1 2t 2 ... pt p t ; (t p 1,..., T ) Model pierwotny jest szacowany MNK i reszty z pierwszego oszacowania wykorzystywane są jako zmienne objaśniające: yt 0 1 xt1 ... k xtk 1 yt 1 ... s yt s 1ˆt 1 2ˆt 2 ... pˆt p t Informatyka i Ekonometria rok III Strona 9 2p ( ) S (k ) S (k p) S (k ) / T ( S (k ) ) to suma kwadratów reszt dla modelu bez reszt w roli zmiennych objaśniających, (S (k p) ) suma kwadratów reszt w modelu, w którym reszty w kolejnych opóźnieniach są zmiennymi objaśniającymi. 2.3 Badanie normalności rozkładu reszt Wyprowadzając wszystkie statystyki testowe zakładano normalność reszt. W próbach nieskończonych założenie o normalności nie jest zbyt restrykcyjne, ponieważ z Centralnego Twierdzenia Granicznego (CTG) wiemy, ze suma n niezależnych zmiennych losowych o jednakowych, aczkolwiek dowolnych rozkładach, zbiega według rozkładu do rozkładu normalnego. W praktyce twierdzenie to interpretuje się następująco dla dostatecznie dużej liczby zmiennych losowych o rozkładzie ze średnią µ i wariancją δ ich suma ma rozkład N(µ;δ). Wobec tego, niezależnie od rozkładu składnika losowego asymptotyczne rozkłady statystyk testowych będą poprawne o ile zmienne są niezależne. Charakterystyka testu Jarque Bery: W rozkładzie normalnym miara skośności S=0 oraz miara kurtozy K=3 (2.3.1) S 32 23 2 , 3 , 4 to drugi, trzeci i czwarty moment centralny rozkładu (2.3.2) K gdzie 4 22 Hipotezy: (2.3.3) i (2.3.4) H 0 : t ~ N H A : t nie ma N Statystyka testowa: Informatyka i Ekonometria rok III Strona 10 (2.3.5) S 2 K 32 JB T 6 24 2.4 Badanie poprawności funkcyjnej modelu Charakterystyka testu Reset: Równanie modelu: (2.4.1) yt 0 1 xt1 ... k xtk 2 ( yˆt ) 3 ( yˆt ) .... p ( yˆt ) t 2 3 p Hipotezy testu: (2.4.2) i (2.4.3) H 0 : 2 3 ... p 0 H : 0 A i i Statystyka dla dużych prób: (2.4.4) 2p 1 ( ) gdzie: ( S (k ) S ( k ) S ( k p 1) S (k ) / T asymp. ~ 2p 1 ) - suma kwadratów reszt z modelu bez wartości teoretycznych y. ( S ( k p 1) ) - suma kwadratów reszt z modelu poszerzonego. 2.5 Reguła decyzyjna Wszystkie przeprowadzone testy, dotyczące tego projektu opierają się na regule decyzyjnej, według której wyciągano wnioski, w zależności od rodzaju badanego zjawiska. Reguła decyzyjna składa się z dwóch wartości : poziom istotności oraz graniczny poziom istotności(miara p-stwa popełnienia błędu I rodzaju). p value p value Brak podstaw do odrzucenia hipotezy zerowej Odrzucamy hipotezę zerową Informatyka i Ekonometria rok III Strona 11 3. WYNIKI Wszystkie obliczenia i testy wykonano za pomocą środowiska „R Project” . Zapis komend niezbędnych do ich wykonania zawiera załącznik numer 2. Szacowanie modelu trzema różnymi metodami: Oszacowane parametry uzyskane metodą KMNK: a0=11,37911142;a1=0,030036;a2=0,011948;a3=0,019488248;a4= -0,00351; a5=0,000363 Oszacowane parametry uzyskane funkcją nls(): a0=11,37933; a1=0,030035; a2=0,011947; a3=0,019492; a4= -0,00352; a5=0,000363 Oszacowane parametry uzyskane funkcją glm(): a0=10,7754593;a1=0,0306921;a2=0,0118810;a3=0,0199010;a4= -0,0037902; a5=0,0006658 Oszacowane parametry mają w przybliżeniu takie same wartości, więc zdecydowano się skorzystać z funkcji glm(). Kod tej funkcji jest napisany w specjalny sposób tak, aby ułatwić pracę oraz przeprowadzenie testów. Oszacowanie modelu: Call: glm(formula = ln_cena ~ dzielnica + pow + lp + pietro + rok, family = gaussian(), data = dane2, na.action = na.omit) Deviance Residuals: Min 1Q Median -1.62974 -0.13763 -0.01131 3Q 0.13769 Max 1.04767 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 10.7754593 0.2115016 50.947 < 2e-16 *** dzielnica 0.0306921 0.0009893 31.024 < 2e-16 *** pow 0.0118810 0.0002242 52.995 < 2e-16 *** lp 0.0199010 0.0073092 2.723 0.00652 ** pietro -0.0037902 0.0015792 -2.400 0.01646 * rok 0.0006658 0.0001060 6.283 3.88e-10 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for gaussian family taken to be 0.05115835) Null deviance: 697.97 Residual deviance: 133.32 AIC: -344.5 on 2611 on 2606 degrees of freedom degrees of freedom Number of Fisher Scoring iterations: 2 Wniosek: Dzięki funkcji glm() zaobserwowano, iż wszystkie zmienne są istotne dla modelu (przy każdej zmiennej są *), a także otrzymano oszacowania parametrów: a0=10,7754593;a1=0,0306921;a2=0,0118810;a3=0,0199010;a4= -0,0037902; a5=0,0006658 Testy na normalność reszt, heteroskedastyczności i autokorelacji: Jarque-Bera Normality Test data: model$resid Informatyka i Ekonometria rok III Strona 12 JB = 575.6653, p-value < 2.2e-16 alternative hypothesis: greater studentizedBreusch-Pagan test data: model BP = 517.9438, df = 5, p-value < 2.2e-16 Box-Ljung test data: model$resid X-squared = 43.3719, df = 1, p-value = 4.526e-11 Breusch-Godfrey test for serial correlation of order up to 1 data: model LM test = 43.6216, df = 1, p-value = 3.984e-11 Wniosek: Przeprowadzone testy niestety nie wyszły zbyt pomyślnie, gdyż wartości p-value w każdym przypadku są bardzo małe. Reszty modelu nie mają rozkładu normalnego. Dodatkowo jest on obarczony heteroskedastycznością, a także autokorelacją. O wszystkim tym przesądza fakt, iż żadna z wartości p-value nie przekracza poziomu 0,05, a nawet 0,01. Eliminacja heteroskedastyczności: Call: glm(formula = kwareszt ~ dzielnica + pow + lp + pietro + rok, family = gaussian(), data = dane2, na.action = na.omit) Deviance Residuals: Min 1Q Median -0.29701 -0.09503 -0.02630 3Q 0.06920 Max 1.23357 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.162e+00 1.274e-01 9.117 < 2e-16 *** dzielnica 4.632e-03 5.960e-04 7.771 1.11e-14 *** pow 1.835e-03 1.351e-04 13.585 < 2e-16 *** lp -3.503e-02 4.403e-03 -7.954 2.66e-15 *** pietro -1.197e-03 9.513e-04 -1.258 0.209 rok -5.382e-04 6.385e-05 -8.429 < 2e-16 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for gaussian family taken to be 0.01856656) Null deviance: 56.064 Residual deviance: 48.384 AIC: -2991.9 on 2611 on 2606 degrees of freedom degrees of freedom Number of Fisher Scoring iterations: 2 Wniosek: Powyższe wyniki wykazują, że zmienna „piętro” nie jest istotna dla modelu (brak * przy zmiennej). Konieczna jest zatem ponowna estymacja, nieuwzględniająca tej zmiennej. Call: glm(formula = kwareszt ~ dzielnica + pow + lp + rok, family = gaussian(), data = dane2, na.action = na.omit) Informatyka i Ekonometria rok III Strona 13 Deviance Residuals: Min 1Q Median -0.29505 -0.09567 -0.02620 3Q 0.07003 Max 1.23332 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.169e+00 1.273e-01 9.183 < 2e-16 *** dzielnica 4.544e-03 5.920e-04 7.676 2.31e-14 *** pow 1.843e-03 1.349e-04 13.661 < 2e-16 *** lp -3.518e-02 4.402e-03 -7.992 1.98e-15 *** rok -5.440e-04 6.368e-05 -8.542 < 2e-16 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for gaussian family taken to be 0.0185707) Null deviance: 56.064 Residual deviance: 48.414 AIC: -2992.3 on 2611 on 2607 degrees of freedom degrees of freedom Number of Fisher Scoring iterations: 2 Wniosek: Ponowne oszacowanie modelu uwidacznia nam, że problem z istotnością pojedynczych zmiennych zniknął. Możemy zatem zaakceptować oszacowania parametrów. Kolejnym krokiem jest wyznaczenie wag, będących odwrotnością teoretycznych wartości estymowanego powyżej modelu. Otrzymany wektor reszt przemnożono przez macierz danych i ponownie oszacowano model funkcją glm(), w którym zmienną objaśnianą jest logarytm z ceny, zaś zmiennymi objaśniającymi są: dzielnica, powierzchnia, liczba pokoi, piętro oraz rok. Wykonano od razu także test Breuscha Pagana by sprawdzić czy ważona MNK okazała się skuteczna. Obliczenia te, będą wykonane na nowych zmiennych (dane2) zmodyfikowanych dzięki wagom: Wyniki wyświetlone na ekranie: Call: glm(formula = ln_cena ~ dzielnica + pow + lp + pietro + rok, family = gaussian(), data = dane2, na.action = na.omit) Deviance Residuals: Min 1Q Median -6.1211 -0.7682 -0.0662 3Q 0.7549 Max 4.7500 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 6.044e+00 3.156e-01 19.152 < 2e-16 *** dzielnica 1.618e-03 1.881e-03 0.860 0.3898 pow 2.278e-03 5.703e-04 3.994 6.66e-05 *** lp 2.237e-01 1.185e-02 18.883 < 2e-16 *** pietro -3.047e-03 1.306e-03 -2.332 0.0198 * rok 5.788e-03 1.481e-05 390.674 < 2e-16 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for gaussian family taken to be 1.507519) Null deviance: 1285526.4 Residual deviance: 3928.6 AIC: 8492.7 on 2611 on 2606 degrees of freedom degrees of freedom Number of Fisher Scoring iterations: 2 wsp_det(model$fitted,dane2$ln_cena) Informatyka i Ekonometria rok III Strona 14 [1] 0.996944 studentizedBreusch-Pagan test data: model BP = 43.9565, df = 5, p-value = 2.364e-08 Wniosek: Otrzymane informacje wykazują bardzo wysoki współczynnik determinacji, co jest bardzo dobrą cechą. Oznacza to, że aż 99% zmienności zmiennej objaśnianej jest wyjaśniane przez model. Widać także, że zmienna o nazwie „dzielnica” nie jest istotna dla naszego modelu. Jest to bardzo niepokojące zjawisko, gdyż jedną z cech najbardziej determinujących cenę mieszkania w Warszawie, jest jego umiejscowienie. W związku z tym na tym etapie badań postanowiono nie brać tego pod uwagę. Jednak najbardziej niezadowalającym faktem jest istnienie heteroskedastyczności, pomimo prób jej likwidacji. Zatem ponownie poddano model ważonej MNK, w celu usunięcia zjawiska różnorodności wariancji. Wyniki wyświetlone na ekranie: Call: glm(formula = ln_cena ~ dzielnica + pow + lp + pietro + rok, family = gaussian(), data = dane2, na.action = na.omit) Deviance Residuals: Min 1Q Median -7.3327 -0.8075 -0.0582 3Q 0.7788 Max 4.2975 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 3.483e+00 2.097e-01 16.607 <2e-16 *** dzielnica 1.725e-02 1.236e-03 13.963 <2e-16 *** pow 7.188e-03 4.137e-04 17.373 <2e-16 *** lp 9.965e-02 7.752e-03 12.855 <2e-16 *** pietro -2.606e-03 1.288e-03 -2.022 0.0432 * rok 5.932e-03 8.728e-06 679.625 <2e-16 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for gaussian family taken to be 1.63766) Null deviance: 1499119.3 Residual deviance: 4267.7 AIC: 8708.9 on 2611 on 2606 degrees of freedom degrees of freedom Number of Fisher Scoring iterations: 2 >wsp_det(model$fitted,dane2$ln_cena) [1] 0.9971532 studentizedBreusch-Pagan test data: model BP = 13.4774, df = 5, p-value = 0.01929 Wniosek: Wyniki wyświetlone na ekranie dają nowe oszacowania parametrów i wykazują współczynnik determinacji na poziomie: 0,9971532. Oznacza to, że 99% zmienności zmiennej objaśnianej jest wyjaśniane przez model. Widać także, że wszystkie zmienne są istotne dla modelu. Natomiast wartość p-value w teście Breuscha Pagana uwidacznia się na poziomie 0,01929. Jest to dobra informacja, zważywszy na fakt, że dla poziomu istotności równemu 0,01 nie odrzucamy hipotezy zerowej o homoskedastyczności składnika losowego. Informatyka i Ekonometria rok III Strona 15 Eliminacja autokorelacji: W związku z tym, że pozbyto się zjawiska heteroskedastyczności składnika losowego, nastał czas na kolejne badania. Pierwszy z wykonanych testów na autokorelację składnika losowego wykazał, iż zjawisko to ma miejsce. Test ten należy jednak powtórzyć, gdyż ważona MNK doprowadziła do zmiany postaci wszystkich zmiennych. Wyniki wyświetlone na ekranie: RESET test data: model RESET = 1.5204, df1 = 2, df2 = 2604, p-value = 0.2188 Box-Ljung test data: model$resid X-squared = 36.8622, df = 1, p-value = 1.268e-09 Breusch-Godfrey test for serial correlation of order up to 1 data: model LM test = 37.0486, df = 1, p-value = 1.152e-09 Wniosek: Wykonane testy w środowisku „R” wykazały przede wszystkim, że omawiany przez nas model ekonometryczny ma poprawną postać funkcyjną. Dowodem tego jest wartość p-value na poziomie równym 0,2188 w teście RESET, która przekracza poziom istotności 0,05. Niestety wyniki testów na autokorelację składnika losowego Box-Ljunga oraz Breuscha-Godfreya, skłaniają do odrzucenia hipotezy zerowej. Metoda Cochrane`a-Orcutta: Call: glm(formula = y ~ X - 1, family = gaussian(), na.action = na.omit) Deviance Residuals: Min 1Q Median -7.7086 -0.8076 -0.0754 3Q 0.7671 Max 4.3971 Coefficients: Estimate Std. Error t value Pr(>|t|) X(Intercept) 3.535e+00 2.113e-01 16.729 <2e-16 *** Xdzielnica 1.687e-02 1.247e-03 13.528 <2e-16 *** Xpow 7.099e-03 4.147e-04 17.118 <2e-16 *** Xlp 1.020e-01 7.724e-03 13.210 <2e-16 *** Xpietro -2.781e-03 1.274e-03 -2.183 0.0291 * Xrok 5.930e-03 8.725e-06 679.622 <2e-16 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for gaussian family taken to be 1.614908) Null deviance: 17065543.1 Residual deviance: 4206.8 AIC: 8669.1 on 2611 on 2605 degrees of freedom degrees of freedom Number of Fisher Scoring iterations: 2 wsp_det(model2$fitted,y) Informatyka i Ekonometria rok III Strona 16 [1] 0.9971609 Wniosek: W wyniku przeprowadzonego oszacowania, na nowej postaci danych, można zauważyć, że wszystkie zmienne są istotne dla modelu (przy każdej zmiennej znajdują się *). Współczynnik determinacji jest bardzo wysoki i wg. niego, aż 99% zmienności zmiennej objaśnianej jest wyjaśniane przez model. Jednak tym co najbardziej nas interesuje na tym etapie, jest to, czy metoda Cochrane Orcutt spowodowała pozbycie się autokorelacji reszt. Wyniki testu: Box-Ljung test data: model2$resid X-squared = 0.0437, df = 1, p-value = 0.8345 Breusch-Godfrey test for serial correlation of order up to 1 data: model2 LM test = 0.0439, df = 1, p-value = 0.8341 Wniosek: Wykonane w środowisku „R” testy na autokorelację dały bardzo pozytywne wyniki. Zarówno test Boxa i Pierce’ a jak i test Breuscha Godfrey’ a wykazały, iż metoda Cochrane’ a Orcutta zlikwidowała zjawisko autokorelacji w modelu. Wartości p- value w obu testach znacznie przekraczają poziom istotności równy 0,05, co oznacza, że można zaakceptować hipotezę zerową. Należy jednak pamiętać, że metoda Cochrane’ a Orcutta zmieniła postać danych, co nie tylko wpływa na autokorelację, ale też i heteroskedastyczność. Koniecznym jest więc ponowne wykonanie testu Breuscha Pagana, by sprawdzić, czy model, z nowym zbiorem danych charakteryzuję się różnorodnością wariancji, czy też nie. studentizedBreusch-Pagan test data: model2 BP = 16.1508, df = 5, p-value = 0.006427 RESET test data: model2 RESET = 0.6709, df1 = 2, df2 = 2603, p-value = 0.5113 Wniosek: Test Breuscha Pagana uniemożliwia przyjęcie hipotezy zerowej (p-value<0,05), co oznacza, że nasz model ponownie został obarczony heteroskedastycznością. Pozytywne wnioski daje test badający poprawność funkcyjną modelu, który potwierdza to założenie (p-value>0,05). Jedynym wyjściem z tej sytuacji, jest ponowne użycie ważonej MNK. Nie można zostawić modelu w takiej postaci, nie zwracając uwagi na zjawisko heteroskedastyczności. Cały proces odbędzie się dokładnie tak samo jak za poprzednim razem. Wyliczenie kwadratów reszt, stanowiących zmienne objaśniane w modelu pomocniczym, a następnie wyliczenie wag będących odwrotnością oszacowań modelu pomocniczego. Wagi te zmienią postać danych, i dzięki temu możliwe będzie pozbycie się różnorodności wariancji. Call: glm(formula = y ~ X - 1, family = gaussian(), na.action = na.omit) Deviance Residuals: Min 1Q Median Informatyka i Ekonometria rok III 3Q Max Strona 17 -7.0568 -0.8258 -0.0673 0.7826 4.4663 Coefficients: Estimate Std. Error t value Pr(>|t|) X(Intercept) 3.545e+00 2.090e-01 16.964 <2e-16 *** Xdzielnica 1.664e-02 1.234e-03 13.481 <2e-16 *** Xpow 7.126e-03 4.099e-04 17.384 <2e-16 *** Xlp 1.026e-01 7.656e-03 13.400 <2e-16 *** Xpietro -2.696e-03 1.162e-03 -2.319 0.0205 * Xrok 5.929e-03 8.733e-06 678.857 <2e-16 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for gaussian family taken to be 1.653334) Null deviance: 17657477.3 Residual deviance: 4306.9 AIC: 8730.5 on 2611 on 2605 degrees of freedom degrees of freedom Number of Fisher Scoring iterations: 2 wsp_det(model2$fitted,y) [1] 0.9972584 Wniosek: Nowo oszacowany model dał następujące wyniki: Wszystkie zmienne są istotne dla modelu, natomiast 99% zmienności zmiennej objaśnianej jest wyjaśniane przed model. Ostatnim etapem jest wykonanie wszystkich testów, a zwłaszcza na heteroskedastyczność i autokorelację by przekonać się czy ważona MNK przyniosła oczekiwane skutki. studentizedBreusch-Pagan test data: model2 BP = 1.9988, df = 5, p-value = 0.8493 Box-Ljung test data: model2$resid X-squared = 0.005, df = 1, p-value = 0.9436 Breusch-Godfrey test for serial correlation of order up to 1 data: model2 LM test = 0.005, df = 1, p-value = 0.9434 RESET test data: model2 RESET = 2.0703, df1 = 2, df2 = 2603, p-value = 0.1264 Jarque-Bera Normality Test data: model2$resid JB = 81.8075, p-value < 2.2e-16 alternative hypothesis: greater Wniosek: Wykonane testy dały pozytywne wnioski. Według testu Breuscha Pagana ważona MNK okazała się skuteczna i pozbyła się zjawiska różnorodności wariancji w modelu. Dowodem na to jest wartość p-value na poziomie 0,89493, co pozwala zaakceptować hipotezę zerową o homoskedastyczności składnika losowego. Oba testy na autokorelację mają wysokie poziomy wartości p-value. Zarówno test Boxa i Pierce’ a jak i test Breuscha Godfrey’ a pokazał, że należy przyjąć hipotezę zerową o braku autokorelacji składnika losowego( p-value>0,05). Test badający poprawność funkcyjną modelu, o wartości p-value równej 0,1264 potwierdził owe założenie. Jedynie test Jarque Informatyka i Ekonometria rok III Strona 18 Bery, dał wynik, który zmusza do odrzucenia hipotezy zerowej o normalności rozkładu składnika losowego. Jednak w tym wypadku pozostawiono to w takiej postaci jaka jest. Prognozy: Z uwagi na to, że poprzednie dane zostały zmienione podczas likwidacji autokorelacji z modelu (metodą Cochrane Orcutt), obserwacje pochodzące z 2013 roku, również musza być poddane temu samemu procesowi. Niezbędną wartością w tym procesie będzie współczynnik rho, który możemy pozyskać ze środowiska „R”. Był on liczony już wcześniej i wynosi: 0,11873. Dane zmieniane są za pośrednictwem wzorów1.3.4 i 1.3.5 uwidocznionych wcześniej w sprawozdaniu. Po poprawnej zmianie postaci danych, wyliczono prognozy. W tym procesie skorzystano z oszacowanych parametrów, uzyskanych podczas ostatniego procesu estymacji. Oto one: Oszacowane parametry uzyskane funkcją glm(): a0=3,544893; a1=0,016639; a2=0,007126; a3=0,102592; a4= -0,0027; a5=0,005929. Zauważono, że wartość parametru a0, który jest wyrazem wolnym, znacząco odbiega od reszty parametrów. Powoduje to bardzo duże odchylenie wartości teoretycznych, od wartości empirycznych. W związku z tym zdecydowano się, że wyliczenia prognoz, będzie wykonywane bez wyrazu wolnego. Wzór, którym się posłużono wygląda następująco: ln_cena = a1*dzielnica + a2*powierzchnia + a3*liczba pokoi + a4*piętro + a5*rok Błąd średniokwadratowy jest wartością oczekiwaną, kwadratu błędu, czyli różnicy pomiędzy estymatorem, a wartością estymowaną. W przypadku naszego projektu wynosi:0,0724 Średni absolutny błąd procentowy(MAPE): 0,0253 – Mylimy się średnio o 2,53% w prognozowanych wartościach. Średni błąd prognozy(ME):0,2843 – W tym przypadku wynik jest mały, a co za tym idzie zadowalający. Średni absolutny błąd predykcji(MAE):0,2939 Pierwiastek błędu średniokwadratowego(RMSE):0,269029717 Wniosek: Powyższe wyniki są bardzo zadowalające, gdyż wskazują na dobrą jakość prognoz. Wartość MAPE, a także pozostałych mierników ex post jest bardzo niska, co oznacza, iż wyliczone przez nas prognozy są bardzo dobre i w niewielkim stopniu mylimy się w prognozowanych wartościach. 4. WNIOSKI Informatyka i Ekonometria rok III Strona 19 Projekt, którego zadaniem było stworzenie modelu ekonometrycznego opisującego zależność logarytmu ceny mieszkania w Warszawie od różnych czynników takich jak: dzielnica, powierzchnia, liczba pokoi, piętro oraz rok składał się z wielu procesów. Proces przygotowania danych, które można wykorzystać w procesie estymacji, był pierwszym etapem, z którym się zmagano. Następnym było dobranie odpowiedniej metodyki związanej z analizą naszego modelu. Jest to bardzo ważna część projektu, na której się skupiono, by podjąć odpowiednie decyzje. Źle obrany tor działań, czy wybranie nieodpowiedniej metody, mogłoby skutkować błędnymi wynikami, które pociągnęły by za sobą szereg innych błędnie wyliczonych wartości. Po dobraniu metod do analizy modelu, można było przejść do następnego etapu jakim było modelowanie ekonometryczne. Podczas tej części projektu użyto wielu testów badających podstawowe zjawiska, często występujące w modelach. Były nimi przede wszystkim: heteroskedastyczność oraz autokorelacja składnika losowego. W związku z tym, że nasz model był nimi obarczony, wykorzystano także metody, dzięki którym pozbyto się tych negatywnych zjawisk. Wykonane przez nas działania wykazały, że rola wszystkich zmiennych objaśniających w naszym modelu jest bardzo ważna. Każda z nich w istotny sposób wpływa na kształtowanie się ceny mieszkania w Warszawie. Głównymi z czynników są dzielnica, a także powierzchnia. Pozostałe takie jak: piętro, liczba pokoi oraz rok, także determinują wartość ceny mieszkania w Warszawie. Na koniec wyliczono prognozy. Proces ten nie wymagał dużego nakładu pracy, a w dodatku dał bardzo pozytywne rezultaty w formie dobrej jakości prognoz i zadowalających wartości mierników ex post. Informatyka i Ekonometria rok III Strona 20