Jak wyglądają ceny aut używanych w segmencie C, część 2

 

W poprzednim tygodniu (w tym wpisie) pisałem o tym jak modelować można cenę aut używanych, na przykładzie aut z segmentu C.

Dziś pokażę trzy wizualizacje tego zbioru danych, mam nadzieję, że interesujące.

Zobaczymy więc jak zmieniają się ceny aut w zależności od wieku aut, jak wygląda liczba oferowanych aut różnych marek i również jak wygląda wyposażenie aut różnych marek.

Zacznijmy od ceny.

[Rysunek 1. Rozkład cen ofertowych aut używanych w rozbiciu na markę i wiek auta. Czarna kropka odpowiada medianie, pudełka dolnemu i górnemu kwartylowi. Dla zwiększenia czytelności oś OY przedstawiono w skali logarytmicznej. ]

Spójrzmy teraz na dostępność ofert dla różnych marek. Dodatkowo przedstawimy liczbę oferowanych aut w danym roku w podziale na typy nadwozia.

[Rysunek 2. Liczba ofert sprzedaży używanego auta w rozbiciu na typ nadwozia, wiek auta i markę.  Dla niektórych modeli widoczna jest duża podaż +-5-letnich samochodów. Prawdopodobnie kończą się okresy gwarancyjne, auto się amortyzuje i takie auta są sprzedawane przez firmy leasingujące.]

I jeszcze rzut oka na wyposażenie.

[Rysunek 3. Na osi OY przedstawiono procent używanych aut oferowanych do sprzedaży, posiadających określony element wyposażenia. Najwięcej aut serwisowane w ASO stanowią auta mające 4 lata. Ciekawe trendy obserwuje się dla przyciemnianych szyb. Nowsze Astry, C4 i Cee’dy mają je coraz częściej, podczas gdy dla Audi A4 mamy odwrotny trend, przynajmniej  w ostatnich latach. Coraz więcej aut jest wyposażonych w takie elementy jak czujnik parkowania czy ESP (hmm, dziwny jest ten trend z ESP w Ceed’ach)]

 

Btw: wszystkie powyższe wykresy zostały wykonane funkcją xyplot() lub bwplot() w R z użyciem pakietu lattice.

Zmiana dochodów w ostatnich 8 latach w podziale na płeć

Analiza zróżnicowania dochodów bardzo mnie interesuje. To jednak większy temat i poświęcimy mu więcej czasu kiedy indziej. Dziś chciałbym podzielić się jednym wykresem, na którym zobaczymy jak wyglądał rozkład dochodu netto ankietowanego w zależności od wieku i w zależności od płci, tak w roku 2003 jak i w roku 2011. Oczywiście złotówka dzisiaj i wtedy to dwie różne złotówki, nie sposób przeliczyć siły nabywczej teraz i wtedy bo zależy ona od koszyka zakupów. Inaczej wyglądała zmiana cen artykułów luksusowych, inaczej zmiana cen jedzenia a inaczej zmiana cen mieszkań. W każdym razie na potrzeby tego rysunku wykorzystam wskaźnik inflacji dla tych 8% wynoszący 23.7% (na podstawie http://blog.opiekuninwestora.pl/index.php/inflacja/). Więc przedstawiane ceny to albo ceny podane w roku 2011, albo ceny podane w roku 2003 i skorygowane o inflacje.

W poniższych ilustracjach nie analizujemy osobno osób żyjących samotnie (tzw singli), par bez dzieci (DINKs) i par z dziećmi, choć pewnie pomiędzy tymi trzema grupami są znaczne różnice, ale nie wszystko na raz.

Ciągła linia to wygładzona ocena mediany, przerywana to kwantyl rzędu 90%.
Dużych niespodzianek nie ma, ale niektóre wyniki są ciekawe.
Po pierwsze, nawet po uwzględnieniu inflacji zarobki wzrosły (nie tylko ankietowanych, bo to jest oczekiwane, ale tez rozkład zarobków w grupie wiekowej np 30 latków). I to wzrosły znacznie. Oby związane to było z większa produktywnością a nie spadkiem wartości złotówki.
Po drugie kobiety zarabiają mniej. Dotyczy to i medianowych zarobków i kwantyla 90%.
Po trzecie, i chyba najciekawsze, w roku 2011 wyraźnie widać, że najwyższe dochody uzyskują osoby w wieku 30-40 lat.
Biorąc pod uwagę, że oś oY jest logarytmiczna, zarówno osoby młodsze jak i starsze zarabiają znacznie mniej. U kobiet ten okres wyższych dochodów kończy się wcześniej niż u mężczyzn, ale u obu płci kończy się czy to patrząc na medianę czy na kwantyl 90%.
Inaczej było w roku 2003. Nie było wtedy tak dużych dysproporcji związanych z wiekiem, szczególnie jeżeli porównywać mediany dochodów. Ciekawe czy to zróżnicowanie będzie się jeszcze pogłębiało.

To pierwsza ilustracja. Czas na dokładniejsze drążenie tematu. Kierunków badania czynników różnicujących wysokość dochodów jest dużo. Może macie propozycje od czego zacząć?

Rysujemy rozkład cen krok po kroku, część 4

Czas na ostatnią część wyjaśnień krok po kroku jak konstruowane były wykresy o cenach mieszkań.
Tym razem wykorzystamy wykres pudełkowy pokazany na wpisie tutaj do pokazania rozkładów cen w dzielnicach Warszawy.

Wczytujemy pierwsze 33 linie kodu z poprzedniego wpisu a następnie uruchamiamy linie 142-187. Wyjaśnijmy od razu po co była funkcja nazwyIprocenty(). Otóż w pakiecie lattice dosyć łatwo narysować wykres w podziale na poziomy pewnej zmiennej grupującej. Grupa obserwacji odpowiadająca poszczególnym poziomom rysowana jest na kolejnym panelu. Nazwy poziomów znajdują się w nagłówku panelu. W naszym przykładzie funkcja nazwyIprocenty() zmieniła nazwy wszystkich poziomów w ten sposób, że do nazw dzielnic dodano cztery liczby określające procentową zmianę ceny w określonej dzielnicy (zmianę liczoną na różne sposoby, zobacz komentarze wewnątrz tej funkcji).

Dzięki temu warunkując po zmiennej dzielnica2 powinniśmy uzyskać zbiór wykresów pudełkowych w rozbiciu na dzielnicę.
Poniższy kod od kodu z poprzedniego wpisu różni się praktycznie wyłącznie formułą cenam2~dataF|dzielnica2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
bwplot(cenam2~dataF|dzielnica2,
         data=mieszkaniaKWW2011Warszawa3,
         scales=list(y=list(log=T, at=at), x=list(rot=90, cex=0.6)),
         ylim=c(5000, 20000),
         panel =  function(...) {
            tmp <- trellis.par.get("plot.symbol")
              tmp$pch=19
              tmp$col="grey20"
              tmp$cex=1/2
            trellis.par.set("plot.symbol",tmp)
            tmp <- trellis.par.get("box.rectangle")
              tmp$col="grey20"
            trellis.par.set("box.rectangle",tmp)
            tmp <- trellis.par.get("box.umbrella")
              tmp$col="grey20"
            trellis.par.set("box.umbrella",tmp)
 
            kolory <- brewer.pal(4, "Set1")
            panel.abline(h=log(at,10), col="grey85")
            panel.abline(v=4.5 + c(0,12,24,36), col="grey85")
 
            panel.bwplot(..., col="grey20")
            args <- list(...)
            mod  <- rlm(args$y~as.numeric(args$x))
            panel.abline(mod, col=kolory[1], lwd=4, alpha=0.85)
 
            mediany <- sapply(miesiace, function(x) median(args$y[args$x == x], na.rm=T))
            mod2    <- rlm(mediany~seq_along(miesiace))
            panel.abline(mod2, col=kolory[2], lwd=4, alpha=0.85)
            indtmp  <- c(1, length(mediany))
            llines(indtmp, mediany[indtmp], col=kolory[4], lwd=4, alpha=0.85)
 
            panel.loess(..., col=kolory[3], lwd=4, alpha=0.85)
          }
)

Wadą tego wykresu są ponownie dzielnice w których mało jest oferowanych mieszkań. Usuńmy dzielnice w których jest mniej niż 1000 mieszkań średniej wielkości oferowanych do sprzedaży w ostatnich 4 latach. Poniżej prezentujemy tylko kod usuwający odpowiednie wiersze, następnie używamy tego samego kodu co powyżej aby wygenerować wykres dla dzielnic, tym razem już tylko 12.

37
38
39
40
# usun male dzielnice
usun <- names(which(table(mieszkaniaKWW2011Warszawa3$dzielnica)<1000))
mieszkaniaKWW2011Warszawa3 <- mieszkaniaKWW2011Warszawa3[!(mieszkaniaKWW2011Warszawa3$dzielnica %in% usun),]
mieszkaniaKWW2011Warszawa3$dzielnica <- factor(mieszkaniaKWW2011Warszawa3$dzielnica)

Rysujemy rozkład cen krok po kroku, część 2

Kontynuując temat z wczoraj, narysujemy rozkład cen mieszkania dla każdej z  dzielnic Warszawy.

Punktem wyjścia jest przygotowanie danych, wykonajmy pierwsze 32 linie tak jak w poprzednim wpisie.

Aby wyświetlić na rożnych panelach dane dla kolejnych dzielnic, wystarczy zmodyfikowac formułę na cenam2~data|dzielnica, oraz za zabiór danych wskazać mieszkaniaKWW2011Warszawa2.

33
34
35
36
37
38
39
40
41
42
43
44
45
46
at = seq(1000,24000,1000)
 
xyplot(cenam2~data|dzielnica, group=rozmiar,
        data=mieszkaniaKWW2011Warszawa2,
        scales=list(y=list(log=T, at=at)), ylim=c(6000, 16000),
        type=c("smooth"), pch='.', lwd=3,
        auto.key=list(space="top", columns=3, pch=19),
        panel=function(...) {
  panel.abline(h=log(at,10), col="grey85")
  panel.abline(v=365.25 * (38:41), col="grey85")
  panel.xyplot(list(...)$x, list(...)$y, type="p",col="grey", cex=1/4)
  panel.xyplot(list(...)$x, list(...)$y, type="r",col="black", lwd=2,lty=2)
  panel.xyplot(...)
})

Kolejne panele przedstawiają kolejne dzielnice, ale ich kolejność jest alfabetyczna. Taka sama jak kolejność poziomów zmiennej czynnikowej dzielnica. Nie zawsze kolejność alfabetyczna będzie najlepsza. Użyjemy funkcji reorder by zmienić kolejność poziomów tak by odpowiadała medianie ceny metra kwadratowego w danej dzielnicy. Kod generujący obrazek będzie taki sam, zmieni się tylko kolejność dzielnic.

47
48
49
50
51
52
53
54
55
56
57
58
59
60
mieszkaniaKWW2011Warszawa2$dzielnica2 <- reorder(mieszkaniaKWW2011Warszawa2$dzielnica, mieszkaniaKWW2011Warszawa2$cenam2, median)
 
xyplot(cenam2~data|dzielnica2, group=rozmiar,
        data=mieszkaniaKWW2011Warszawa2,
        scales=list(y=list(log=T, at=at)), ylim=c(6000, 16000),
        type=c("smooth"), pch='.', lwd=3,
        auto.key=list(space="top", columns=3, pch=19),
        panel=function(...) {
  panel.abline(h=log(at,10), col="grey85")
  panel.abline(v=365.25 * (38:41), col="grey85")
  panel.xyplot(list(...)$x, list(...)$y, type="p",col="grey", cex=1/4)
  panel.xyplot(list(...)$x, list(...)$y, type="r",col="black", lwd=2,lty=2)
  panel.xyplot(...)
})

Dla niektórych dzielnic jest mało punktów, co powoduje, że trudno mieć zaufanie do wyznaczonego trendu. Tym razem usuniemy te dzielnice, dla których nie ma przynajmniej 2000 wierszy. Kod generujący wykres jest bez zmian, usuwamy tylko obserwacje z dzielnic w których obserwacji było mniej niż 2k.

61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
usun <- names(which(table(mieszkaniaKWW2011Warszawa2$dzielnica)<2000))
mieszkaniaKWW2011Warszawa2 <- mieszkaniaKWW2011Warszawa2[!(mieszkaniaKWW2011Warszawa2$dzielnica %in% usun),]
mieszkaniaKWW2011Warszawa2$dzielnica2 <- factor(mieszkaniaKWW2011Warszawa2$dzielnica2)
 
 
xyplot(cenam2~data|dzielnica2, group=rozmiar,
        data=mieszkaniaKWW2011Warszawa2,
        scales=list(y=list(log=T, at=at)), ylim=c(6000, 16000),
        main="",
        type=c("smooth"), pch='.', lwd=3,
        auto.key=list(space="top", columns=3, pch=19),
        panel=function(...) {
  panel.abline(h=log(at,10), col="grey85")
  panel.abline(v=365.25 * (38:41), col="grey85")
  panel.xyplot(list(...)$x, list(...)$y, type="p",col="grey", cex=1/4)
  panel.xyplot(list(...)$x, list(...)$y, type="r",col="black", lwd=2,lty=2)
  panel.xyplot(...)
})

Czym się różnią ceny mieszkań na Żoliborzu od cen mieszkań na Bemowie

Dzisiejszy wpis to przygotowanie gruntu do jutrzejszego, w ktorym rozliczymy sie ze zmianami cen mieszkan. Od jakiegos czasu na różnych stronach można znaleźć artykuły o nazwach ”realne ceny mieszkań spadły o X %’’ (dobrze że realne, co to by byly gdyby spadaly ceny nierealne). Celem tego i kolejnego wpisu jest pokazanie że zmianę ceny można liczyć na wiele różnych sposobów otrzymując wiele różnych wyników. Więc podanie zmiany nie mówiąc dokładnie jak była ona liczona to zwykłą propaganda.

Będziemy korzystać ze zbioru danych mieszkaniaKWW2011, przeanalizujemy tylko ceny z miasta Warszawa dla mieszkan o powierzchni do 300m2. Na początek przyjrzymy się dwóm dzielnicom. Jednej w której mieszkam (Bemowo) i jednej w której ceny się ciekawie zachowują (Żoliborz).

Przedstawimy zmianę trendu ceny mieszkań w czasie w rozbiciu na trzy grupy wielkości mieszkań. Kwantyle rzędu 1/3 i 2/3 z rozkładu wielkości mieszkań wynoszą 49m2 i 68m2, wiec będziemy analizować cenę m2 w grupie mieszkań w trzech grupach: do 49m2, w grupie mieszkań dużych o powierzchni powyżej 68m2 i w grupie pozostałych – średnich co do wielkości mieszkań.

Na poniższym wykresie każdy punkt to jedna oferta sprzedaży. Linia zielona, różowa i niebieska oznaczają lokalne wygładzenie wielomianowe dla ceny m2 dla różnych grup wielkości mieszkań, a czarna linia przerywana to globalny trend w cenach mieszkań bez uwzględnienia struktury mieszkań. Struktura jest istotna ponieważ hipotetycznie, jeżeli mieszkania duże maja niższa cene za m2, i przed czterema laty mieszkań dużych bylo sprzedawanych mniej niż teraz to zaobserwujemy zmiane w średniej cenie nie ze względu na rzeczywistą zmianę ceny ale ze wzgledu na zmianę struktury sprzedawanych mieszkań. Podobnie z analizą cen w Warszawie. Jeżeli w tym roku sprzedaje sie więcej mieszkań na obrzeżach Warszawy niż przed czterema laty (z roku na rok buduje się średnio coraz dalej bo tam jeszcze jest miejsce) to zmiana średniej ceny będzie zwiazana z tym ze w koszyku jest coraz więcej mieszkań dalekich od centrum a wiec tańszych.

No dobrze, to tyle tytułem teorii a teraz obrazki dla dwoch obiecanych dzielnic.

 

Dla Żoliborza jak widzimy ceny m2 dla mieszkań dużych sa wyzsze niz dla malych, moze byc to zwiazane ze duze mieszkania to juz apartamenty dlatego cenę ich m2 ciezko porównywać z cena m2 mieszkania o standardowym wykonczeniu. Pdobnie beda zachowywaly sie mieszkania w Śródmieściu. Te apartamenty tez najbardziej straciły na wartości. Na Bemowie jest inaczej. Nie buduje sie raczej apartamentow w dzielnicy sypialni wiec tutaj to male mieszkania maja wyższą cenę za m2. W obu przypadkach ceny maja tendencje do spadania ale w kazdej kategorii tempo spadku jest inne.

 

Poniżej prezentujemy wykresy dla wszystkich dzielnic Warszawy.

Zakup kontrolowany, czyli wybieramy auto dla rodziny

Od prawie czterech lat szukam rodzinnego auta. Ostatnio rozmawiałem ze znajomym, który był zdziwiony dlaczego to taki trudny wybór. Jak to stwierdził wystarczy wprowadzić dane do komputera, określić funkcje celu i wybrać najlepszą opcję. Hmmm, może i tak.

Mamy już dane zebrane  z serwisu otomoto.pl, więc spróbujmy zobaczyć jak wyglądają rozkłady cen w czasie różnych marek. Informacje o zmianach cen znaleźć można na wielu serwisach, np. autocentrum.pl, ale tutaj przedstawimy te zmiany lepiej i czytelniej. Tak jest, konkurujemy z eutotax.

Aktualnie wysoko na liście rozważanych marek stoi Passat. Poniższe wykresy będą wykonane dla prawie każdej marki obecnej w zbiorze danych cenyAut2011. Ale dla ustalenia uwagi zobaczmy  wygląda cena Passata i jak ta cena zależy od roku produkcji (oś OX), pojemności i typu silnika (poszczególne panele) oraz wersji marki (rożne kolory kropek).

Na panelu po prawej stronie podana jest nazwa marki, liczba ofert sprzedaży aut tej marki, oraz informacja o rozkładzie cen dla aut produkowanych w danym roczniku. Każda niebieska kropka to jedna oferta sprzedaży. Czerwona kropka oznacza medianę cen, czerwone kreski oznaczają odpowiednio kwantyle 5-25% i 75-95%. Ceny są w skali logarytmicznej. Na wykresie mamy tylko dane o autach używanych, w tej kategorii mediany cen układają się prawie idealnie w linii prostej, co odpowiada stałej procentowej zmianie w cenie. Tę informację jeszcze wykorzystamy.

Z wykresów widzimy, że passaty  w dieslu z silnikiem 1900cm3 są dosyć popularne. 5 lat to jeszcze wersja B6. Zobaczmy teraz jak wyglądają podobne wykresy dla konkurencji.

 

Obrazki dla innych marek można znaleźć w katalogu tutaj.

Lub korzystając z poniższej listy marek, dla której zebrano takie wykresy.
Alfa Romeo 147, Alfa Romeo 156, Alfa Romeo 159, Alfa Romeo 166, Alfa Romeo GT,
Audi A2, Audi A3, Audi A4, Audi A5, Audi A6, Audi A6 Allroad, Audi A7, Audi A8, Audi Q5, Audi Q7, Audi TT,
BMW 118, BMW 316, BMW 318, BMW 320, BMW 325, BMW 330, BMW 520, BMW 525, BMW 530, BMW 535, BMW 730, BMW 740, BMW X3, BMW X5, BMW X6,
Chevrolet Aveo, Chevrolet Lacetti,
Chrysler 300C, Chrysler Grand Voyager, Chrysler Pacifica, Chrysler PT Cruiser, Chrysler Sebring, Chrysler Town & Country, Chrysler Voyager,
Citroen Berlingo, Citroen C1, Citroen C2, Citroen C3, Citroen C4, Citroen C4 Picasso, Citroen C5, Citroen C8, Citroen Saxo, Citroen Xsara, Citroen Xsara Picasso,
Dacia Logan,
Daewoo Lanos, Daewoo Matiz, Daewoo Nubira,
Dodge Grand Caravan, Dodge RAM,
Fiat 500, Fiat Brava, Fiat Bravo, Fiat Croma, Fiat Doblo, Fiat Ducato, Fiat Grande Punto, Fiat Marea, Fiat Multipla, Fiat Palio, Fiat Panda, Fiat Punto, Fiat Seicento, Fiat Stilo, Fiat Uno,
Ford C-MAX, Ford Fiesta, Ford Focus, Ford Focus C-Max, Ford Fusion, Ford Galaxy, Ford KA, Ford Mondeo, Ford Mustang, Ford S-Max, Ford Transit,
Honda Accord, Honda Civic, Honda CR-V, Honda Jazz,
Hyundai Accent, Hyundai Coupe, Hyundai Getz, Hyundai i30, Hyundai Matrix, Hyundai Santa Fe, Hyundai Tucson,
Jaguar S-Type, Jaguar X-Type,
Jeep Cherokee, Jeep Grand Cherokee,
Kia Carens, Kia Carnival, Kia Cee’d, Kia Picanto, Kia Rio, Kia Sorento, Kia Sportage,
Lancia Lybra,
Land Rover Discovery, Land Rover Freelander, Land Rover Range Rover,
Lincoln Town Car,
Mazda 2, Mazda 3, Mazda 323, Mazda 323F, Mazda 5, Mazda 6, Mazda 626, Mazda CX-7, Mazda MPV, Mazda Premacy, Mazda RX-8,
Mercedes-Benz A 140, Mercedes-Benz A 160, Mercedes-Benz A 170, Mercedes-Benz A 180, Mercedes-Benz B 180, Mercedes-Benz C 180, Mercedes-Benz C 200, Mercedes-Benz C 220, Mercedes-Benz CLK 200, Mercedes-Benz E 200, Mercedes-Benz E 220, Mercedes-Benz E 270, Mercedes-Benz E 280, Mercedes-Benz E 320, Mercedes-Benz E 350, Mercedes-Benz ML 270, Mercedes-Benz ML 320, Mercedes-Benz ML 350, Mercedes-Benz S 320, Mercedes-Benz S 350, Mercedes-Benz S 500, Mercedes-Benz SLK 200, Mercedes-Benz Sprinter, Mercedes-Benz Vito,
Mini Cooper,
Mitsubishi Carisma, Mitsubishi Colt, Mitsubishi Eclipse, Mitsubishi Galant, Mitsubishi L200, Mitsubishi Lancer, Mitsubishi Outlander, Mitsubishi Pajero, Mitsubishi Space Star,
Nissan Almera, Nissan Almera Tino, Nissan Micra, Nissan Navara, Nissan Note, Nissan Patrol, Nissan Primera, Nissan Qashqai, Nissan Terrano, Nissan X-Trail,
Opel Agila, Opel Astra, Opel Combo, Opel Corsa, Opel Frontera, Opel Insignia, Opel Meriva, Opel Omega, Opel Signum, Opel Tigra, Opel Vectra, Opel Vivaro, Opel Zafira,
Peugeot 106, Peugeot 107, Peugeot 206, Peugeot 206 CC, Peugeot 207, Peugeot 306, Peugeot 307, Peugeot 308, Peugeot 406, Peugeot 407, Peugeot 607, Peugeot 807,
Peugeot Partner,
Porsche 911, Porsche Cayenne,
Renault Clio, Renault Espace, Renault Grand Espace, Renault Grand Scenic, Renault Kangoo, Renault Laguna, Renault Megane, Renault Modus, Renault Scenic, Renault Thalia, Renault Trafic, Renault Twingo,
Renault Vel Satis,
Rover 25, Rover 45, Rover 75,
Saab 9-3, Saab 9-5,
Seat Alhambra, Seat Altea, Seat Arosa, Seat Cordoba, Seat Ibiza, Seat Leon, Seat Toledo,
Skoda Fabia, Skoda Felicia, Skoda Octavia, Skoda Roomster, Skoda Superb,
Smart Fortwo,
Subaru Forester, Subaru Impreza, Subaru Legacy,
Suzuki Grand Vitara, Suzuki Jimny, Suzuki Swift, Suzuki SX4,
Toyota Auris, Toyota Avensis, Toyota Aygo, Toyota Camry, Toyota Celica, Toyota Corolla, Toyota Corolla Verso, Toyota Land Cruiser, Toyota RAV-4, Toyota Yaris,
Volkswagen Bora, Volkswagen Caddy, Volkswagen Caravelle, Volkswagen Fox, Volkswagen Golf, Volkswagen Golf Plus, Volkswagen Jetta, Volkswagen Lupo, Volkswagen Multivan, Volkswagen New Beetle, Volkswagen Passat, Volkswagen Passat CC, Volkswagen Polo, Volkswagen Sharan, Volkswagen Tiguan, Volkswagen Touareg, Volkswagen Touran, Volkswagen Transporter,
Volvo C30, Volvo S40, Volvo S60, Volvo S80, Volvo V40, Volvo V50, Volvo V70, Volvo XC 70, Volvo XC 90

Ceny metra kwadratowego we Wrocławiu

Kilka dni temu dodałem do repozytorium zbiór danych dotyczących cen ofertowych mieszkań z serwisu oferty.net (patrz: http://smarterpoland.pl/?p=60). Teraz przyszedł czas na przyjrzenie się bliżej tym danym.

Ponieważ większość z przeprowadzonych analiz uwzględniała zrożnicowanie pomiędzy dzielnicami to, aby nie zamazywać wyników efektami 40 różnych dzielnic, pokażę kilka analiz wykonanych wyłącznie dla Wrocławia. Administracyjnie Wrocław ma 5 dzielnic, w danych jest jeszcze szósty poziom ‘inne’ oznaczający brak lub niejednoznaczne przypisanie dzielnicy do oferty sprzedaży mieszkania. Oczywiście wszystkie analizy są generyczne i można je powtórzyć dla innych miast.

Przyjrzę się bliżej efektom wpływającym na cenę metra kwadratowego we Wrocławiu. Mieszkania podzilimy na cztery grupy, tzw. kawalerki (jeden pokój powierzchnia 20-35 m2), dla młodego małżeństwa (dwa pokoje 40-55 m2) i dla rodziny z dziećmi (3-4 pokoje 60-80 m2), inne, wybór całkowicie arbitralny. Zobaczmy jak rozkładają się ceny metra kwadratowego dla różnej wielkości mieszkań w różnych dzielnicach. Aby pracować z bardziej jednorodną grupą bierzemy na razie pod uwagę tylko rok 2011. Szerokość pudełka odpowiada liczbie ofert z danej dzielnicy. Interpretacja tak jak wykresu pudełkowego (boxplot). Zaskoczenia nie ma, im wieksze mieszkanie tym m2 tańszy, ceny w centrum sa wyższe niż poza, Śródmieście i Krzyki jako popularniejsze dzielnice sa tez droższe niż Psie Pole czy Fabryczna (każda z tych dzielnic jest bardzo duża, więc uśrednianie cen po całej dzielnicy to bardzo duże uproszczenie). Kod programu R użyty do wygenerowania tego rysunku znajduje się tutaj [http://tofesi.mimuw.edu.pl/~cogito/smarterpoland/mieszkaniaKWW2011/Wroclaw/rysunki.r]

 

 

Prosty model regresji liniowej pokazuje że na cene m2 wpływa istotnie kilka zmiennych, w tym: dzielnica, powierzchnia, data złożenia oferty. Przyjrzymy się każdej z tych zmiennych, zaczniemy od powierzchni. Najprostszą charakterystyką do przedstawienia będzie średnia cena m2, później przyjrzymy się innym charakterystykom. Zobaczmy jak średnia cena m2 rozkłada się dla mieszkań o różnej powierzchni w rozbiciu na dzielnice. Kod programu R użyty do wygenerowania tego rysunku znajduje się tutaj [http://tofesi.mimuw.edu.pl/~cogito/smarterpoland/mieszkaniaKWW2011/Wroclaw/rysunki.r]


Ograniczyliśmy się do przedziały powierzchni 20-100 m2, mieszkań spoza tego przedziału jest dosyć mało, więc wyniki byłyby mało wiarygodne. Obrazki mówią same za siebie, zatem darujemy sobie interpretacje powyższego wykresu. Kolejnym efektem, który będzie nas interesował, to zmiana ceny mieszkania w czasie. Skoro cena metra kwadratowego zależy od powierzchni to do kolejnej analizy zostały one skorygowane, tzn. zastąpione ceną metra kwadratowego odpowiadającą powierzchni 50m2.


Gorąca dyskusja na różnych forach nt. czy mieszkania drożeją czy tanieją wydaje się być łatwa do rozstrzygnięcia na podstawie powyższego wykresu. Ceny spokojnie i powoli sobie spadały w większości dzielnic do marca tego roku, gdy zaczeły spadać szybciej. Troche to zaskakujące, można jednak sprawdzić że podobny efekt utrzymuje się też w innych miastach. Optymiści (niepoprawni) mogą stwierdzić, że w Śródmieściu ceny rosły. Powyższy wykres dla Warszawy byłby ciekawszy, ponieważ mamy ceny z ostatnich pięciu lat, więc ciekawszy horyzont czasowy. Oczywiście powyższy trend dotyczy mieszkań z naszego zbioru danych, niekoniecznie jest on reprezentatywny, zatem i powyższe wyniki należy czytac krytycznie (jak wszystko). Zobaczmy jeszcze, ile ogłoszeń mamy z różnych okresów czasu.


Czy to nasze źródło danych jest coraz popularniejsze, czy też coraz więcej mieszkań się sprzedaje, trudno te dwa efekty rozwikłać.

Powyżej oglądaliśmy średnią cenę metra kwadratowego. Jasne jest, że rozkład cen jest silnie skośny, zdarzają się pojedyńcze bardzo drogie mieszkania i te pojedyncze obserwacje odstające wpływają silnie na średnią, więc wypadałoby porównać średnią z medianą albo inną bardzej odporną charakterystyką. Wykorzystamy regresję kwantylową i krzywe sklejane kubiczne, aby zamodelować zmienę mediany ceny metra kwadratowego w czasie. Wyniki poniżej, linia ciągła to wspomniana mediana, linia kropkowana odpowiada średniej.


Zgodnie z oczekiwaniami mediany sa poniżej średnich, trendy dla obu charakterystyk sa podobne. Kod programu R użyty do wygenerowania tego rysunku znajduje się tutaj [http://tofesi.mimuw.edu.pl/~cogito/smarterpoland/mieszkaniaKWW2011/Wroclaw/rysunki.r]

Podsumowując, modelowanie cen mieszkań to ciekawy temat, za jakiś czas zajmiemy się cenami w Warszawie i Krakowie.

Wykresy i kody programu R wykorzystane w tym wpisue znajdują się w katalogu http://tofesi.mimuw.edu.pl/~cogito/smarterpoland/mieszkaniaKWW2011/Wroclaw/.