Czynsz za mieszkania w Polsce

Wprowadzenie

Opis problemu

Celem raportu jest analiza czynników wpływających na wysokość czynszu w największych polskich miastach oraz porównanie kosztów najmu w różnych województwach. Analiza pozwoli określić, gdzie czynsze są najwyższe i najniższe oraz co wpływa na ich wysokość. Dodatkowo, raport będzie zawierał wizualizacje ukazujące zależności pomiędzy czynszem a poszczególnymi zmiennymi, co pozwoli na lepsze zrozumienie mechanizmów kształtujących rynek wynajmu nieruchomości w Polsce.

Dane

Podstawą naszej analizy będzie obszerna baza danych dotycząca mieszkań na wynajem, która zawiera szczegółowe informacje o poszczególnych ofertach.

Nasza baza danych obejmuje takie informacje jak:

  • Lokalizacja – miasto, współrzędne geograficzne (szerokość i długość geograficzna), oraz odległość od centrum.

  • Charakterystyka mieszkania – typ budynku (np. blok mieszkalny, kamienica), powierzchnia w metrach kwadratowych, liczba pokoi, piętro oraz liczba pięter w budynku.

  • Rok budowy – informacja o wieku budynku, jeśli jest dostępna.

  • Bliskość infrastruktury – odległość od ważnych punktów usługowych, takich jak szkoły, przychodnie, urzędy pocztowe, przedszkola, restauracje, uczelnie i apteki.

  • Standard i wyposażenie – stan mieszkania (np. premium, do remontu), materiał budynku, obecność parkingu, balkonu, windy, ochrony oraz komórki lokatorskiej.

  • Forma własności – np. mieszkanie własnościowe, spółdzielcze.

  • Cena wynajmu – czynsz podany w złotych.

Standaryzacja i przygotowanie danych do analizy

Braki danych

Zamieniamy puste wartosći na “NA”

wynajem_pdst_raw[wynajem_pdst_raw == ''] <- NA

Sprawdzamy ile mamy braków danych

n_miss(wynajem_pdst_raw)
## [1] 15762

Sprawdzamy jaki % naszych danych, to braki danych

prop_miss(wynajem_pdst_raw)
## [1] 0.06361494

Warto sprawdzić, w przypadku jakiej zmiennej występuję najwięcej braków

miss_var_summary(wynajem_pdst_raw)
## # A tibble: 28 × 3
##    variable           n_miss pct_miss
##    <chr>               <int>    <num>
##  1 condition            6329  71.5   
##  2 buildingMaterial     3505  39.6   
##  3 buildYear            2249  25.4   
##  4 type                 1830  20.7   
##  5 floor                1053  11.9   
##  6 hasElevator           496   5.61  
##  7 floorCount            155   1.75  
##  8 collegeDistance       112   1.27  
##  9 restaurantDistance     16   0.181 
## 10 pharmacyDistance        7   0.0791
## # ℹ 18 more rows

Jak widać, w “condition” występuje aż 71,5% braków danych. Wynika to z faktu, że w kolumnie tej występują jedynie wartości “premium” oraz braki danych. Możemy więc założyć, iż brakujące obserwacje, to tak naprawdę mieszkania “non-premium”. Postepując w taki sposób, wyeliminujemy znaczną część braków danych.

wynajem_pdst <- wynajem_pdst_raw
wynajem_pdst$condition[is.na(wynajem_pdst$condition)] <- "non_premium"
prop_miss(wynajem_pdst)
## [1] 0.03807129

Jak widać z prawie 6,4% braków danych, tym sposobem mamy ich jedynie 3,8%

Wiele braków danych, mamy również w m.in. materiałach budynku, roku budowy, formie własności mieszkania oraz piętrze. Niestety tych wartości nie możemy w żaden sposób uzupełnić ręcznie. W nastepnych krokach posłużymy się imputacją

Co ciekawe, najwięcej braków pod kątem roku budowy występuję w Częstochowie, co może być spowodowane tym, że jest to miasto z dużą liczba starszych budynków, w których to przypadku rok budowy często jest niezanany lub też pomijany przez właścicieli w ogłoszeniach.

Obserwacje odstające

summary(wynajem_pdst)
##       id                city               type            squareMeters  
##  Length:8849        Length:8849        Length:8849        Min.   : 25.0  
##  Class :character   Class :character   Class :character   1st Qu.: 39.0  
##  Mode  :character   Mode  :character   Mode  :character   Median : 48.6  
##                                                           Mean   : 54.1  
##                                                           3rd Qu.: 62.0  
##                                                           Max.   :150.0  
##                                                                          
##      rooms           floor          floorCount       buildYear   
##  Min.   :1.000   Min.   : 1.000   Min.   : 1.000   Min.   :1856  
##  1st Qu.:2.000   1st Qu.: 2.000   1st Qu.: 4.000   1st Qu.:1983  
##  Median :2.000   Median : 3.000   Median : 5.000   Median :2010  
##  Mean   :2.342   Mean   : 3.355   Mean   : 5.587   Mean   :1998  
##  3rd Qu.:3.000   3rd Qu.: 4.000   3rd Qu.: 7.000   3rd Qu.:2020  
##  Max.   :6.000   Max.   :20.000   Max.   :29.000   Max.   :2024  
##                  NA's   :1053     NA's   :155      NA's   :2249  
##     latitude       longitude     centreDistance      poiCount     
##  Min.   :49.98   Min.   :14.48   Min.   : 0.020   Min.   :  0.00  
##  1st Qu.:50.28   1st Qu.:18.98   1st Qu.: 1.750   1st Qu.:  9.00  
##  Median :52.16   Median :19.96   Median : 3.290   Median : 17.00  
##  Mean   :51.65   Mean   :19.70   Mean   : 3.813   Mean   : 25.29  
##  3rd Qu.:52.24   3rd Qu.:21.01   3rd Qu.: 5.320   3rd Qu.: 30.00  
##  Max.   :54.57   Max.   :23.19   Max.   :16.610   Max.   :210.00  
##                                                                   
##  schoolDistance   clinicDistance   postOfficeDistance kindergartenDistance
##  Min.   :0.0060   Min.   :0.0060   Min.   :0.0020     Min.   :0.0010      
##  1st Qu.:0.1750   1st Qu.:0.3090   1st Qu.:0.2350     1st Qu.:0.1550      
##  Median :0.2860   Median :0.5400   Median :0.3890     Median :0.2610      
##  Mean   :0.3703   Mean   :0.7806   Mean   :0.4719     Mean   :0.3266      
##  3rd Qu.:0.4500   3rd Qu.:0.9620   3rd Qu.:0.5920     3rd Qu.:0.4030      
##  Max.   :4.6430   Max.   :4.9900   Max.   :4.9390     Max.   :4.5800      
##                   NA's   :4        NA's   :3          NA's   :3           
##  restaurantDistance collegeDistance pharmacyDistance  ownership        
##  Min.   :0.0010     Min.   :0.005   Min.   :0.0010   Length:8849       
##  1st Qu.:0.0880     1st Qu.:0.504   1st Qu.:0.1390   Class :character  
##  Median :0.1820     Median :0.948   Median :0.2360   Mode  :character  
##  Mean   :0.2626     Mean   :1.266   Mean   :0.3099                     
##  3rd Qu.:0.3350     3rd Qu.:1.768   3rd Qu.:0.3810                     
##  Max.   :4.9610     Max.   :4.985   Max.   :4.8360                     
##  NA's   :16         NA's   :112     NA's   :7                          
##  buildingMaterial    condition         hasParkingSpace     hasBalcony       
##  Length:8849        Length:8849        Length:8849        Length:8849       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##  hasElevator        hasSecurity        hasStorageRoom         price      
##  Length:8849        Length:8849        Length:8849        Min.   :  415  
##  Class :character   Class :character   Class :character   1st Qu.: 2400  
##  Mode  :character   Mode  :character   Mode  :character   Median : 3000  
##                                                           Mean   : 3704  
##                                                           3rd Qu.: 4000  
##                                                           Max.   :19500  
## 

Zarówno stworzenie boxplotów dla danych oraz zbadanie ich za pomocą wartości minimalnych i maksymalnych, nie wykazało żadnych znaczących obserwacji odstających.

unique(wynajem_pdst$city)
##  [1] "szczecin"    "gdynia"      "krakow"      "poznan"      "bialystok"  
##  [6] "gdansk"      "wroclaw"     "radom"       "rzeszow"     "lodz"       
## [11] "katowice"    "lublin"      "czestochowa" "warszawa"    "bydgoszcz"

Również przy sprawdzaniu miast widzimy, że nie ma żadnej odstającej/niepoprawnie zapisanej wartości.

Walidacja danych

summary(violatedEdits(reguly,wynajem_pdst))
## No violations detected, 3602 checks evaluated to NA
## NULL
bledy <- violatedEdits(reguly,wynajem_pdst)
plot(bledy)

Po zwalidowaniu danych nie występują żadne błędy, co oznacza, że możemy przejśc do ich imputacji

Imputacja danych

library(VIM)
czyste_dane <- hotdeck(wynajem_pdst)

Upewniamy się, czy po imputacji na pewno nie mamy żadnych braków danych, czy wszystko zadziałało poprawnie.

n_miss(czyste_dane)
## [1] 0

Wizualizacja danych

Na początku zamieniamy wartości “yes”, “no”, w przypadku niektórych zmiennych na TRUE i FALSE, co ułatwi nam interpretacje wykresów

dane_do_wiz <- read.csv("oczyszczone_dane.csv")
dane_do_wiz <- dane_do_wiz %>%
  mutate(  
    hasParkingSpace = ifelse(hasParkingSpace == "yes", TRUE, FALSE),  
    hasBalcony = ifelse(hasBalcony == "yes", TRUE, FALSE),  
    hasElevator = ifelse(hasElevator == "yes", TRUE, FALSE),  
    hasSecurity = ifelse(hasSecurity == "yes", TRUE, FALSE),
    hasStorageRoom = ifelse(hasStorageRoom == "yes", TRUE, FALSE)
  )

Wszystkie miasta

Tworząc histogram ceny wynajmu mieszkań dla wszystkich miast, możemy zauważyć, iż większość ofert wynajmy mieszkań koncentruje się w przedziale 1800-3800 PLN. Tanie mieszkania (do 1800 PLN) są rzadkością. W przedziale powyżej 3800 PLN, liczba ofert stopniowo maleje

Można jednak zauważyć, że dla Warszawy widoczna jest znacząca różnica w medianie i rozkładzie cen wynajmu, w porównaniu do pozostałych miast.

Dodatkowo w Warszawie występuje duża liczba wartości odstających, co wskazuje na obecność bardzo drogich mieszkań na wynajem, co może być związane z luksusowymi apartamentami, prestiżowymi lokalizacjami oraz większym zróżnicowaniem ofert w stolicy.

Oznacza to, że włączenie Warszawy do wspólnej analizy z innymi miastami może zaburzać ogólne wnioski, ponieważ podnosi wartości statystyczne, takie jak średnia, mediana i kwartyle. Może to prowadzić do błędnej interpretacji rynku wynajmu w pozostałych miastach, sugerując wyższe ceny niż rzeczywistość.

Dlatego, aby uzyskać bardziej reprezentatywne wyniki, konieczne jest oddzielne przeanalizowanie Warszawy oraz pozostałych miast.

Bez Warszawy

Widać, że po usunięciu Warszawy z analizy, przedział cen za wynajem prezentuje się inaczej. Większośc ofert koncentruje się teraz w przedziale 1250-3500 PLN. Występuje większa liczba tanich mieszkań, a z kolei ceny za mieszkania powyżej 7500 PLN są praktycznie niespotykane.

Widzimy, że najwyższe ceny wynajmu mieszkań są w Gdyni, Krakowie, Gdańsku i Wrocławiu. Wynikają one z lokalnych czynników, takich jak atrakcyjność miasta, popyt na luksusowe nieruchomości i ograniczona podaż.

Co ciekawe, w przypadku Krakowa, Pozania oraz Wrocławia widzimy najwięcej odstających wartości co sugeruje, iż w tych miastach jest widoczna przepaść między standardowymi, a luksusowymi mieszkaniami. Rynek nieruchomości w tych miastach jest silnie zróżnicowany.

Luksusowe mieszkania są skierowane do zamożniejszych najemców, którzy są gotowi płacić więcej za lokalizację, standard i udogodnienia.

Standardowe mieszkania są dostępne dla szerszego grona najemców, ale ich ceny są znacznie niższe, co tworzy wyraźną różnicę między segmentami rynku.

Liczba pokoi

Głownym wnioskiem jest oczywisty fakt, iż wynajem mieszkań z większą liczbą pokoi jest droższy. Dodatkowo można zauważyć, że dla mieszkań z 2+ pokojami ceny są bardzo zróżnicowane, co widać po szerokości pudełek i ilości wartości odstających (np. luksusowe mieszkania)

Powierzchnia

Linia trendu na wykresie wskazuje na ogólną tendencję wzrostową ceny wynajmu wraz ze wzrostem powierzchni mieszkania. Oznacza to, że większe mieszkania mają zazwyczaj wyższe ceny wynajmu.

Powyższe wykresy przedstawiające cenę wynajmu mieszkania, w zależności od powierzchni, wraz z linią trendu, dla konkretnych miast, powierdzają, iż w każdym z miast cena rośnie wraz ze wzrostem powierzchni mieszkania.

Co ciekawe, wykres ten pozwala nam zaobserwować jak różnią się metraże mieszkań w każdym z miast. I tak np. w Radomiu praktycznie nie występują miesta powyżej 75 m2, natomiast w Krakowie powierzchnie mieszkań dochodzą nawet do 150 m2.

Typ budynku

Na postawie histogramów dla konkretnych typów budynków, możemy zauważyć, iż ceny wynajmu nie różnią się znacząco. Najwięcej droższych mieszkań to budynki apartamentowe, co wynika z ich wysokiego standardu oraz z reguły wielu udogodnień. Co ciekawe, widać bardzo dużą różnice w liczbie konkretnych typów budynków. Najwięcej jest bloków mieszkalnych, co może wynikać z faktu, iż były masowo budowane w XX wieku, są tańsze w konstrukcji i zawierają dużą liczbę mieszkań w jednym budynku. Z kolei kamienic jest najmniej, ponieważ są to starsze budynki, a ich liczba jest ograniczona ze względów historycznych i przestrzennych.

Balkon

Można zauważyć, iż ceny wynajmu mieszkań, które posiadają balkon, są delikatnie większe, niż mieszkań bez balkonów.

Parking

Podobnie ma się sprawa w przypadku parkingu. Mieszkania, które zapewniają miejsce parkingowe są droższe od tych niezapewniających parkingu.

Na powyższym wykresie możemy zaobserwować dostępność parkingów w mieszkaniach w zależności od miasta. Co ciekawe w Częstochowie oraz Gdyni mniej niż 1/5 mieszkań oferuje miejsce parkingowe

Winda

Również winda ma wpływ na cenę mieszkania. Budynki z windą są droższe, od tych bez niej

Ochrona

Również obecnośc ochrony w budynku, wpływa na wyższą cenę wynajmu.

Piwnica

Co ciekawe, w przypadku piwnicy, to mieszkania bez niej, z reguły są droższe od mieszkań z piwnicą. Może to wynikać z faktu, iż w nowych inwestycjach piwnice są często pomijane na rzecz innych rozwiązań, takich jak dodatkowe miejsca parkingowe lub wspólne przestrzenie rekreacyjne, a takie budynki, jak już zauważyliśmy wcześniej, są zazwyczaj droższe od starych kamienic.

Wszystkie dodatkowe udogodnienia

Wykres prezentuje wszystkie możliwe kombinacje dodatkowych udogodnień w mieszkaniach. Dzięki niemu możemy nawuażyć, że tak naprawdę, żadna z nich nie ma znaczącego wpływu na cenę mieszkania

Stan mieszkania

Oczywiście im wyższy standard mieszkania, tym wyższa cena wynajmu.

Materiał budynku

Co ciekawe, budynki zbudowane z cegły są z reguły droższe od tych z płyt betonowych. Może to wynikać z różnych czynników. Budynki z cegły są często lepiej utrzymane i mają wyższy standard wykończenia, co wpływa na wyższą cenę wynajmu. Dodatkowo są często postrzegane jako bardziej prestiżowe i trwałe, co również może wpływać na cenę.

Odległość od centrum

Wykres pokazuje, że ceny wynajmu są najwyższe w centrach miast i spadają wraz z odległością od centrum.

Różnice w cenach między centrum a obrzeżami są najbardziej wyraźne w dużych miastach, takich jak Gdynia, Katowice, Gdańsk, niż w mniejszych miastach, takich jak Bydgoszcz czy Lublin.

Co ciekawe, na wykresie możemy zaobserwować odstające punkty lub też zupełnie odwrotną tendencję (np. Łódź), gdzie im dalej od centrum, tym wyższe ceny. Odchylenia te mogą wskazywać na specyficzne lokalizacje lub luksusowe osiedla, które mają wyższe ceny niż typowe mieszkania w danej odległości od centrum.

Piętro

Jeśli chodzi o wypływ piętra na cenę wynajmu mieszkania, to możemy zauważyć, że ceny wynajmu są silnie zależne od piętra, ale trend nie jest liniowy.

  • Do 5 piętra ceny za mieszkanie rosną, co może wynikać z atrakcyjności tych pięter dla najemców (nie są za nisko - mniejsze ryzyko kradzieży, ale również nie są za wysoko co może wydłużać czas dotarcia na piętro)

  • Piętra 5-11 tracą na atrakcyjności, z powodu właśnie omówionego wyżej utrudnienia związanego z dłuższym czasem dotarcia do mieszkania, czy też uciążliwości w przypadku braku/awarii windy.

  • Ceny za piętra 12 i wyżej są najwyższe, co może wynikać z faktu, iż często sa one postrzegane jako luksusowe. Są skierowane do zamożniejszych najemców, którzy są gotowi zapłacić więcej za wyjątkowe widoki, prywatność i prestiż. Dodatkowo, tak wysokie piętra nie występują z reguły w starych kamieniacach czy blokach, a w apartamentowcach, które oferują wyższy standard i to właśnie to, może być przyczyna wyższych cen wynajmu.

Powyższy wykres potwierdza, jak niewiele mieszkań znajduje się na piętrach 11 i wyżej

Korelacja

Tylko dwie zmienne – liczba pokoi (rooms) i powierzchnia (squareMeters) – wykazują silną korelację (dodatnią) z ceną wynajmu.

Większość pozostałych zmiennych nie wykazuje silnej korelacji ani dodatniej, ani ujemnej z ceną. Oznacza to, że wpływ tych czynników na cenę jest mniej znaczący lub bardziej złożony.

Zmienne opisujące odległość od różnych obiektów (np. restaurantDistance, schoolDistance, parkDistance) są mocno skorelowane między sobą. Oznacza to, że jeśli mieszkanie jest blisko jednego obiektu (np. restauracji), prawdopodobnie jest też blisko innych (np. szkoły czy parku).

Warszawa

Widzimy, że rozkład ceny wynajmu mieszkań w Warszawie jest już znacznie szerszy. Ceny dochodzą nawet do 20000 PLN.

Liczba pokoi

Powierzchnia

Typ budynku

Zależnośći w przypadku wpływu liczby pokoi, powierzchni oraz typu budynku na cene wynajmu, kształtują się w Warszawie pododbnie jak w pozostałych polskich miastach.
Jedyna zaobserwowana znacząca różnica, to widoczna przewaga w liczbie bloków mieszkaniowych. Dodatkowo co ciekawe w ich przypadku bardzo mocno dominuje jeden konkretny przedział cenowy, co może wynikać z podobnego standardu mieszkań oraz dużej podaży mieszkań w blokach, co utrzymuje ceny na podobnym poziomie.

Balkon

Parking

Winda

Ochrona

Dostęp do balkonu, parkingu, ochrony oraz windy, również w przypadku Warszawy wpływa na cenę mieszkania, jednak wpływ ten jest znacznie mniejszy niż w przypadku pozostałych polskich miast.

Piwnica

Tak samo jak w przypadku innych miast, odwrotnie niż w przypadku innych udogodnień, mieszkania bez piwnicy są droższe. Jednak ponownie, udogodnienie to ma dużo mniejszy wpływ na cenę.

Stan mieszkania

Co ciekawe również standard mieszkania w przypadku Warszawy nie ma aż tak znaczącego wpływu na cenę. Duży popyt na wynajem w stolicy sprawia, że nawet przeciętne lub słabej jakości mieszkania osiągają wysokie ceny, co różni się od sytuacji w innych miastach, gdzie standard ma większe znaczenie.

Materiał budynku

Odległość od centrum

W przypadku Warszawy zauważalna jest silna zależność między odległością od centrum a ceną wynajmu mieszkań – im dalej od śródmieścia, tym niższe ceny.

Jest to charakterystyczny trend dla stolicy, gdzie centralne lokalizacje osiągają najwyższe ceny, niezależnie od standardu mieszkania. Wynika to z prestiżu, dogodnej komunikacji, bliskości biurowców oraz dostępu do szerokiej infrastruktury. W miarę oddalania się od centrum, ceny stopniowo maleją.

Piętro

Zależność ceny wynajmu od piętra w przypadku Warszawy prezentuje się trochę inaczej niż w pozostałych miastach. Tutaj najbardziej wyróżniającym się pod względem ceny jest piętro 16, na którym to są najdroższe mieszkania Nie widać, aż tak wielkich róznic w cenach na piętrach 0-11. Dopiero od piętra 11 do 15 widoczny jest lekki spadek cen.

Można zauważyć też, że występuje znacznie więcej mieszkań na piętrach 11 i wyższych

Korelacja

Ponownie tylko dwie zmienne – liczba pokoi (rooms) i powierzchnia (squareMeters) – wykazują silną korelację (dodatnią) z ceną wynajmu.

Większość pozostałych zmiennych nie wykazuje silnej korelacji ani dodatniej, ani ujemnej z ceną. Zmienne opisujące odległość od różnych obiektów (np. restaurantDistance, schoolDistance, parkDistance) są mocno skorelowane między sobą.

Statystyki opisowe

kalkulacje_stat <- function(data, group_var) {
  data %>%
    group_by(city, {{ group_var }} ) %>%
    summarise(
      n = n(),
      średnia = mean(price, na.rm = TRUE),
      mediana = median(price, na.rm = TRUE),
      odch_std = sd(price, na.rm = TRUE),
      wariancja = var(price, na.rm = TRUE),
      coeff_var = (odch_std / średnia) * 100,
      skośność = skewness(price, na.rm = TRUE),
      kurtoza = kurtosis(price, na.rm = TRUE),
      IQR = IQR(price, na.rm = TRUE),
      sx = IQR / 2,
      coeff_varx = (sx / mediana) * 100,
      min = min(price, na.rm = TRUE),
      max = max(price, na.rm = TRUE),
      q10 = quantile(price, 0.1, na.rm = TRUE),
      q25 = quantile(price, 0.25, na.rm = TRUE),
      q50 = quantile(price, 0.5, na.rm = TRUE),
      q75 = quantile(price, 0.75, na.rm = TRUE),
      q95 = quantile(price, 0.95, na.rm = TRUE)
    ) %>%
    rename(group_value = {{ group_var }} )
}

print(kalkulacje_stat(dane_do_statystyk,), n = Inf, width = Inf)
## # A tibble: 15 × 19
##    city            n średnia mediana odch_std wariancja coeff_var skośność
##    <fct>       <int>   <dbl>   <dbl>    <dbl>     <dbl>     <dbl>    <dbl>
##  1 bialystok      53   1928.    1800     569.   324194.      29.5   0.788 
##  2 bydgoszcz     214   1987.    1900     576.   331347.      29.0   0.989 
##  3 czestochowa   101   1915.    1900     551.   304079.      28.8   0.899 
##  4 gdansk        259   3213.    3000    1004.  1007459.      31.2   1.68  
##  5 gdynia        118   3317.    2900    1313.  1723476.      39.6   1.01  
##  6 katowice      376   2411.    2200    1104.  1218327.      45.8   1.01  
##  7 krakow       1764   3317.    2999    1244.  1546444.      37.5   1.84  
##  8 lodz          700   2110.    2000     637.   406263.      30.2   0.947 
##  9 lublin        199   2570.    2500     653.   426645.      25.4   0.623 
## 10 poznan        498   2593.    2400     886.   785140.      34.2   1.78  
## 11 radom          34   1851.    1875     494.   243710.      26.7  -0.0827
## 12 rzeszow        90   2521.    2400     669.   447836.      26.5   1.22  
## 13 szczecin      171   2627.    2500     777.   604043.      29.6   1.33  
## 14 warszawa     3393   5090.    4000    2974.  8842772.      58.4   1.87  
## 15 wroclaw       879   3172.    2900    1042.  1084936.      32.8   1.69  
##    kurtoza   IQR    sx coeff_varx   min   max   q10   q25   q50   q75    q95
##      <dbl> <dbl> <dbl>      <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>  <dbl>
##  1    3.50  650   325        18.1   780  3500  1310 1550   1800 2200   3080 
##  2    4.08  700   350        18.4  1000  4000  1365 1600   1900 2300   3200 
##  3    3.98  800   400        21.1  1050  3700  1300 1500   1900 2300   2800 
##  4    6.88 1095   548.       18.2  1850  7500  2200 2500   3000 3595   4955 
##  5    3.51 1700   850        29.3  1700  7200  1970 2300   2900 4000   5575.
##  6    4.25 1200   600        27.3   415  6000  1270 1700   2200 2900   4500 
##  7    7.00 1150   575        19.2  1800  9500  2200 2500   2999 3650   6000 
##  8    3.54  822.  411.       20.6  1050  4000  1400 1628.  2000 2450   3500 
##  9    2.92  800   400        16    1500  4400  1800 2100   2500 2900   3810 
## 10    6.59  838.  419.       17.4  1400  6000  1800 2000   2400 2838.  4600 
## 11    2.54  600   300        16     800  2800  1230 1500   1875 2100   2700 
## 12    4.68  800   400        16.7  1400  4500  1845 2000   2400 2800   3940.
## 13    4.80  675   338.       13.5  1400  5000  1800 2175   2500 2850   4500 
## 14    6.54 2900  1450        36.2  2200 19500  2650 3100   4000 6000  12000 
## 15    6.22 1000   500        17.2  1700  7400  2200 2500   2900 3500   5500

Zdecydowaliśmy się dodatkowo nie komplikować wyświetlanych wyników grupując po dodatkowym warunku, gdyż wyniki byłyby zbyt obszerne

Wnioski

Warszawa zdecydowanie wyróżnia się na tle innych miast, średnia cena (5090) jest niemal 2x wyższa niż w większości miast, Mediana (4000) jest znacząco niższa od średniej, co sugeruje obecność wysokich outlierów, odchylenie standardowe (2974) i współczynnik zmienności (58.4%) wskazują, że ceny w Warszawie są wyjątkowo różnorodne.

Inne miasta również w niektórych aspektach zaskakują - ciekawie prezentuje się wysoka kurtoza dla Krakowa (7.00), Gdańska (6.22), Poznania (6.59) oraz Wrocławia (6.22) która wskazuje na “spiętrzenie” cen wokół mediany – rynek może być skoncentrowany na klasie średniej.

Warszawa (36.2%), Gdynia (29.3%) i Katowice (27.3%) mają najwyższą zmienność w ujęciu rozstępu międzykwartylowego. Szczecin (13.5%), Radom (16%) i Wrocław (17.2%) to rynki o najmniejszych wahaniach cen w środkowej części rozkładu.

Najniższe ceny wystąpiły w Radomiu (średnia 1851), dodatkowo jako jedyne analizowane miasto wykazało ujemną skośność (-0.0827) Oznacza to, że większość ofert jest droższa od średniej.

W przypadku Katowic zidentyfikowano wysoki współczynnik zmienności (45.6%) – rynek może być mocno zróżnicowany (np. stare kamienice vs. nowe inwestycje).

Wnioskowanie statystyczne

Ten model sprawdza, czy istnieje istotna statystycznie różnica w cenach między różnymi miastami.

Hipoteza zerowa (H0): Nie ma różnicy w cenach między miastami.

Hipoteza alternatywna (HA): Istnieje różnica w cenach między miastami.

Biorąc pod uwagę ekstremalnie niską wartość p (1.99e-296), mamy mocne dowody na odrzucenie hipotezy zerowej (H0). To oznacza, że istnieje istotna statystycznie różnica w cenach między miastami.

Ten model sprawdza, czy posiadanie windy wpływa na cenę mieszkania.

Hipoteza zerowa (H0): Posiadanie windy nie wpływa na cenę mieszkania.

Hipoteza alternatywna (HA): Posiadanie windy wpływa na cenę mieszkania.

Biorąc pod uwagę ekstremalnie niską wartość p (0.00), mamy mocne dowody na odrzucenie hipotezy zerowej (H0). To oznacza, że posiadanie windy ma istotny statystycznie wpływ na cenę mieszkania.

## Registered S3 method overwritten by 'ggside':
##   method from  
##   +.gg   GGally
## `stat_xsidebin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_ysidebin()` using `bins = 30`. Pick better value with `binwidth`.

Ten model sprawdza zależność między ceną mieszkań a ich metrażem.

Hipoteza zerowa (H0): Nie ma korelacji między ceną mieszkań a ich metrażem.

Hipoteza alternatywna (HA): Istnieje korelacja między ceną mieszkań a ich metrażem.

Biorąc pod uwagę ekstremalnie niską wartość p (0.00) oraz wysoki współczynnik korelacji (0.78), mamy mocne dowody na odrzucenie hipotezy zerowej (H0). To oznacza, że istnieje istotna statystycznie korelacja między ceną mieszkań a ich metrażem.

Ten model sprawdza, czy materiał, z którego zbudowano budynek, wpływa na cenę mieszkania.

Hipoteza zerowa (H0): Materiał budowlany nie wpływa na cenę mieszkania.

Hipoteza alternatywna (HA): Materiał budowlany wpływa na cenę mieszkania.

Biorąc pod uwagę ekstremalnie niską wartość p (0.00), mamy mocne dowody na odrzucenie hipotezy zerowej (H0). To oznacza, że materiał, z którego zbudowano budynek, ma istotny statystycznie wpływ na cenę mieszkania.

Ten model sprawdza wpływ stanu mieszkania na jego cenę.

Hipoteza zerowa (H0): Stan mieszkania nie wpływa na jego cenę.

Hipoteza alternatywna (HA): Stan mieszkania wpływa na jego cenę.

Biorąc pod uwagę wysoką wartość p (0.56) oraz zerową wielkość efektu (𝜂𝑝2=0.00), nie mamy dowodów na odrzucenie hipotezy zerowej (H0). To oznacza, że stan mieszkania nie ma istotnego statystycznie wpływu na jego cenę.

Podsumowanie

W trakcie analizy przeszliśmy przez kilka istotnych etapów. Na początku załadowaliśmy dane i dokonaliśmy ich wstępnej eksploracji. Sprawdziliśmy, czy nie brakuje wartości, a także czy zmienne mają poprawne formaty. Następnie przeprowadziliśmy czyszczenie danych, aby uniknąć błędów w dalszej analizie.

Potem przeszliśmy do wizualizacji danych oraz analizy statystycznej, co pomogło nam dostrzec kluczowe wzorce i zależności. W dalszej części sprawdziliśmy różne modele i testy statystyczne, aby zweryfikować, które czynniki mają realny wpływ na ceny mieszkań.

Wnioski z analizy:

  1. Warszawa znacząco odstaje od reszty miast, dlatego zdecydowaliśmy się analizować ją osobno. Popyt na mieszkania w stolicy jest na tyle duży, że wiele czynników, które mają duże znaczenie w innych miastach, w Warszawie odgrywa mniejszą rolę.

  2. Najdroższe miasta poza Warszawą to Kraków, Wrocław i Gdańsk. Te rynki charakteryzują się wysokimi cenami mieszkań, choć nadal są one niższe niż w stolicy.

  3. Największy wpływ na cenę ma lokalizacja oraz odległość od centrum. Im bliżej ścisłego centrum, tym ceny są wyższe, a różnice mogą być bardzo duże. To potwierdza, że w kontekście rynku nieruchomości lokalizacja pozostaje kluczowym czynnikiem.

  4. Udogodnienia w budynku (np. winda, monitoring, miejsce parkingowe) nie mają znaczącego wpływu na cenę. Okazuje się, że kupujący lub wynajmujący kierują się przede wszystkim lokalizacją, a dodatkowe udogodnienia nie podbijają cen tak bardzo, jak można by się spodziewać.

  5. Piętro ma wpływ na cenę, ale nie jest to zależność liniowa. Ceny rosną wraz z wysokością, ale tylko do pewnego momentu – w bardzo wysokich budynkach mieszkania na najwyższych piętrach potrafią być tańsze niż te na średnich kondygnacjach. Wyjątkiem są luksusowe apartamenty na ostatnich piętrach, które mają znacząco wyższe ceny.

  6. Powierzchnia mieszkania oraz liczba pokoi mają istotny wpływ na cenę, ale zależność nie jest wprost proporcjonalna. Cena za metr kwadratowy spada wraz ze wzrostem powierzchni, co oznacza, że większe mieszkania są relatywnie tańsze w przeliczeniu na jednostkę powierzchni niż kawalerki. Liczba pokoi również wpływa na cenę – mieszkania dwupokojowe są często bardziej atrakcyjne niż kawalerki, ale powyżej trzech pokoi różnice cenowe się wypłaszczają.

  7. Typ budynku ma znaczenie – mieszkania w nowym budownictwie są wyraźnie droższe niż w starych blokach. Budynki z wielkiej płyty mają niższe ceny niż nowoczesne apartamentowce, a kamienice mogą mieć zarówno bardzo wysokie, jak i niskie ceny w zależności od standardu i lokalizacji.

  8. W Warszawie wpływ poszczególnych czynników jest słabszy niż w innych miastach. Ogromny popyt sprawia, że ceny są wysokie niemal w każdej lokalizacji, a czynniki takie jak piętro czy udogodnienia mają mniejsze znaczenie niż gdzie indziej.

  9. Zidentyfikowaliśmy pewne niespodziewane wzorce, np. w niektórych lokalizacjach ceny wydają się niższe, niż wynikałoby to z odległości od centrum. Może to oznaczać, że istnieją dodatkowe czynniki wpływające na ceny, które nie zostały uwzględnione w modelu, np. hałas, infrastruktura czy prestiż danej okolicy.