GitGirls

W składzie: 1. Natalia Adamczyk 2. Paulina Lackowska 3. Wiktoria Gliniecka

Wstęp do projektu

W ramach niniejszego projektu przeprowadzono kompleksową analizę danych dotyczących rynku nieruchomości, wykorzystując zaawansowane techniki Data Wranglingu, wizualizacji danych oraz analizy opisowej. Celem projektu było zrozumienie kluczowych czynników wpływających na wartość i atrakcyjność nieruchomości, a także identyfikacja trendów i zależności występujących w analizowanym zbiorze danych.

Proces Data Wranglingu obejmował oczyszczanie, transformację i przygotowanie danych do dalszej analizy. Dzięki temu udało się uzyskać spójny i wysokiej jakości zbiór danych, który stanowił podstawę dla kolejnych etapów projektu. Następnie, wykorzystując narzędzia do wizualizacji danych, stworzono szereg wykresów i grafik, które pozwoliły na przejrzyste przedstawienie zależności między różnymi zmiennymi, takimi jak cena, powierzchnia, lokalizacja, liczba sypialni, dostęp do infrastruktury oraz standard wyposażenia.

Analiza opisowa koncentrowała się na interpretacji uzyskanych wizualizacji, co pozwoliło na wyciągnięcie istotnych wniosków dotyczących rynku nieruchomości. W szczególności, zidentyfikowano czynniki, takie jak lokalizacja w preferowanych obszarach, dostęp do drogi głównej, obecność klimatyzacji, status umeblowania oraz funkcjonalność nieruchomości, które mają znaczący wpływ na ich wartość i atrakcyjność.

Projekt ten nie tylko dostarcza cennych informacji na temat rynku nieruchomości, ale również demonstruje, jak efektywne wykorzystanie technik analizy danych może prowadzić do głębszego zrozumienia złożonych zjawisk rynkowych. Wyniki analizy mogą stanowić cenne źródło informacji dla inwestorów, deweloperów oraz nabywców, umożliwiając bardziej świadome podejmowanie decyzji inwestycyjnych i rynkowych.

library(dplyr)
## Warning: pakiet 'dplyr' został zbudowany w wersji R 4.4.2
## 
## Dołączanie pakietu: 'dplyr'
## Następujące obiekty zostały zakryte z 'package:stats':
## 
##     filter, lag
## Następujące obiekty zostały zakryte z 'package:base':
## 
##     intersect, setdiff, setequal, union
library(naniar)
## Warning: pakiet 'naniar' został zbudowany w wersji R 4.4.2
library(ggplot2)
## Warning: pakiet 'ggplot2' został zbudowany w wersji R 4.4.2
library(VIM)
## Warning: pakiet 'VIM' został zbudowany w wersji R 4.4.2
## Ładowanie wymaganego pakietu: colorspace
## Ładowanie wymaganego pakietu: grid
## VIM is ready to use.
## Suggestions and bug-reports can be submitted at: https://github.com/statistikat/VIM/issues
## 
## Dołączanie pakietu: 'VIM'
## Następujący obiekt został zakryty z 'package:datasets':
## 
##     sleep
library(editrules)
## Warning: pakiet 'editrules' został zbudowany w wersji R 4.4.2
## Ładowanie wymaganego pakietu: igraph
## Warning: pakiet 'igraph' został zbudowany w wersji R 4.4.2
## 
## Dołączanie pakietu: 'igraph'
## Następujące obiekty zostały zakryte z 'package:dplyr':
## 
##     as_data_frame, groups, union
## Następujące obiekty zostały zakryte z 'package:stats':
## 
##     decompose, spectrum
## Następujący obiekt został zakryty z 'package:base':
## 
##     union
## 
## Dołączanie pakietu: 'editrules'
## Następujące obiekty zostały zakryte z 'package:igraph':
## 
##     blocks, normalize
## Następujący obiekt został zakryty z 'package:dplyr':
## 
##     contains
library(validate)
## Warning: pakiet 'validate' został zbudowany w wersji R 4.4.2
## 
## Dołączanie pakietu: 'validate'
## Następujące obiekty zostały zakryte z 'package:igraph':
## 
##     compare, hierarchy
## Następujący obiekt został zakryty z 'package:ggplot2':
## 
##     expr
## Następujący obiekt został zakryty z 'package:naniar':
## 
##     all_complete
## Następujący obiekt został zakryty z 'package:dplyr':
## 
##     expr
library(editrules)
library(xts)
## Warning: pakiet 'xts' został zbudowany w wersji R 4.4.2
## Ładowanie wymaganego pakietu: zoo
## 
## Dołączanie pakietu: 'zoo'
## Następujące obiekty zostały zakryte z 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## ######################### Warning from 'xts' package ##########################
## #                                                                             #
## # The dplyr lag() function breaks how base R's lag() function is supposed to  #
## # work, which breaks lag(my_xts). Calls to lag(my_xts) that you type or       #
## # source() into this session won't work correctly.                            #
## #                                                                             #
## # Use stats::lag() to make sure you're not using dplyr::lag(), or you can add #
## # conflictRules('dplyr', exclude = 'lag') to your .Rprofile to stop           #
## # dplyr from breaking base R's lag() function.                                #
## #                                                                             #
## # Code in packages is not affected. It's protected by R's namespace mechanism #
## # Set `options(xts.warn_dplyr_breaks_lag = FALSE)` to suppress this warning.  #
## #                                                                             #
## ###############################################################################
## 
## Dołączanie pakietu: 'xts'
## Następujące obiekty zostały zakryte z 'package:dplyr':
## 
##     first, last
library(classInt)
## Warning: pakiet 'classInt' został zbudowany w wersji R 4.4.2
library(kableExtra)
## Warning: pakiet 'kableExtra' został zbudowany w wersji R 4.4.2
## 
## Dołączanie pakietu: 'kableExtra'
## Następujący obiekt został zakryty z 'package:dplyr':
## 
##     group_rows
library(ggpubr)
## Warning: pakiet 'ggpubr' został zbudowany w wersji R 4.4.2
library(ggstatsplot) 
## Warning: pakiet 'ggstatsplot' został zbudowany w wersji R 4.4.2
## You can cite this package as:
##      Patil, I. (2021). Visualizations with statistical details: The 'ggstatsplot' approach.
##      Journal of Open Source Software, 6(61), 3167, doi:10.21105/joss.03167
library(psych)
## Warning: pakiet 'psych' został zbudowany w wersji R 4.4.2
## 
## Dołączanie pakietu: 'psych'
## Następujące obiekty zostały zakryte z 'package:ggplot2':
## 
##     %+%, alpha
library(qwraps2)
## Warning: pakiet 'qwraps2' został zbudowany w wersji R 4.4.2
## 
## Dołączanie pakietu: 'qwraps2'
## Następujący obiekt został zakryty z 'package:psych':
## 
##     logit
## Następujące obiekty zostały zakryte z 'package:ggpubr':
## 
##     mean_ci, mean_sd, median_iqr
## Następujący obiekt został zakryty z 'package:igraph':
## 
##     %s%
## Następujący obiekt został zakryty z 'package:ggplot2':
## 
##     mean_se
library(gtsummary)
## Warning: pakiet 'gtsummary' został zbudowany w wersji R 4.4.2
## 
## Dołączanie pakietu: 'gtsummary'
## Następujący obiekt został zakryty z 'package:editrules':
## 
##     contains
#Read data from .csv
data <- read.csv("agencja_nieruchomosci.csv")

Podgląd danych

#Data preview
head(data)
##      price area bedrooms bathrooms stories mainroad guestroom basement
## 1       NA 7420        4         2       3     <NA>        no       no
## 2 12250000 8960        4         4       4      yes        no       no
## 3 12250000 9960        3         2       2      yes        no      yes
## 4 12215000 7500        4         2       2      yes        no      yes
## 5 11410000 7420        4         1       2      yes       yes      yes
## 6 10850000 7500        3         3       1      yes        no      yes
##   hotwaterheating airconditioning parking prefarea furnishingstatus
## 1              no             yes       2      yes        furnished
## 2              no             yes       3       no        furnished
## 3              no              no       2      yes   semi-furnished
## 4              no             yes       3      yes        furnished
## 5              no             yes       2       no        furnished
## 6              no             yes       2      yes   semi-furnished

Struktura danych

str(data)
## 'data.frame':    545 obs. of  13 variables:
##  $ price           : int  NA 12250000 12250000 12215000 11410000 10850000 10150000 10150000 9870000 9800000 ...
##  $ area            : int  7420 8960 9960 7500 7420 7500 8580 16200 8100 5750 ...
##  $ bedrooms        : int  4 4 3 4 4 3 4 5 4 3 ...
##  $ bathrooms       : int  2 4 2 2 1 3 3 3 1 2 ...
##  $ stories         : int  3 4 2 2 2 1 4 2 2 4 ...
##  $ mainroad        : chr  NA "yes" "yes" "yes" ...
##  $ guestroom       : chr  "no" "no" "no" "no" ...
##  $ basement        : chr  "no" "no" "yes" "yes" ...
##  $ hotwaterheating : chr  "no" "no" "no" "no" ...
##  $ airconditioning : chr  "yes" "yes" "no" "yes" ...
##  $ parking         : int  2 3 2 3 2 2 2 0 2 1 ...
##  $ prefarea        : chr  "yes" "no" "yes" "yes" ...
##  $ furnishingstatus: chr  "furnished" "furnished" "semi-furnished" "furnished" ...

Data Wrangling

Eksploracja braków danych

Całkowita liczbę NA dla całej ramki danych lub dla określonej zmiennej (kolumny)

n_miss(data)
## [1] 210

Całkowita liczbę NA dla zmiennych (kolumn)

n_miss(data$price)
## [1] 110
n_miss(data$area)
## [1] 0
n_miss(data$bedrooms)
## [1] 0
n_miss(data$bathrooms)
## [1] 0
n_miss(data$stories)
## [1] 0
n_miss(data$mainroad)
## [1] 50
n_miss(data$guestroom)
## [1] 0
n_miss(data$basement)
## [1] 0
n_miss(data$hotwaterheating)
## [1] 0
n_miss(data$airconditioning)
## [1] 0
n_miss(data$parking)
## [1] 0
n_miss(data$prefarea)
## [1] 50
n_miss(data$furnishingstatus)
## [1] 0

liczba wartości innych niż NA w ramce danych lub zmiennej

n_complete(data)
## [1] 6875

Proporcja wartości będących NA dla całej ramki danych

prop_miss(data)
## [1] 0.02964008

Proporcja wartości będących NA dla poszczególnych kolumn

prop_miss(data$price)
## [1] 0.2018349
prop_miss(data$area)
## [1] 0
prop_miss(data$bedrooms)
## [1] 0
prop_miss(data$bathrooms)
## [1] 0
prop_miss(data$stories)
## [1] 0
prop_miss(data$mainroad)
## [1] 0.09174312
prop_miss(data$guestroom)
## [1] 0
prop_miss(data$basement)
## [1] 0
prop_miss(data$hotwaterheating)
## [1] 0
prop_miss(data$airconditioning)
## [1] 0
prop_miss(data$parking)
## [1] 0
prop_miss(data$prefarea)
## [1] 0.09174312
prop_miss(data$furnishingstatus)
## [1] 0

tabelę podsumowującą zawierającą liczbę brakujących NA

miss_var_summary(data) 
## # A tibble: 13 × 3
##    variable         n_miss pct_miss
##    <chr>             <int>    <num>
##  1 price               110    20.2 
##  2 mainroad             50     9.17
##  3 prefarea             50     9.17
##  4 area                  0     0   
##  5 bedrooms              0     0   
##  6 bathrooms             0     0   
##  7 stories               0     0   
##  8 guestroom             0     0   
##  9 basement              0     0   
## 10 hotwaterheating       0     0   
## 11 airconditioning       0     0   
## 12 parking               0     0   
## 13 furnishingstatus      0     0

Wizualizacja brakujących wartości

vis_miss(data)

Porządkowanie struktury danych

Zmiana wartości (yes/no) na wartości (TRUE/FALSE)

data$mainroad <- ifelse(data$mainroad == "yes", TRUE, 
                                ifelse(data$mainroad == "no", FALSE, NA))
                                
data$guestroom <- ifelse(data$guestroom == "yes", TRUE, 
                                ifelse(data$guestroom == "no", FALSE, NA))

data$basement <- ifelse(data$basement == "yes", TRUE, 
                                ifelse(data$basement == "no", FALSE, NA))

data$hotwaterheating <- ifelse(data$hotwaterheating == "yes", TRUE, 
                                ifelse(data$hotwaterheating == "no", FALSE, NA))

data$airconditioning <- ifelse(data$airconditioning == "yes", TRUE, 
                                ifelse(data$airconditioning == "no", FALSE, NA))
                                
data$prefarea <- ifelse(data$prefarea == "yes", TRUE, 
                                ifelse(data$prefarea == "no", FALSE, NA))

Definiowanie reguł w celu zwiększenia spójności danych

RULE <- editset(c("price > 0","area > 0", "bedrooms >= 1","bathrooms >= 1", "stories >= 1", "mainroad %in% c(TRUE,FALSE)","guestroom %in% c(TRUE,FALSE)", "basement %in% c(TRUE,FALSE)", "hotwaterheating %in% c(TRUE,FALSE)", "airconditioning %in% c(TRUE,FALSE)", "prefarea %in% c(TRUE,FALSE)", "parking >= 0", "furnishingstatus %in% c('furnished','semi-furnished','unfurnished')"))
RULE
## 
## Data model:
## dat1 : airconditioning %in% c(FALSE, TRUE)
## dat2 : basement %in% c(FALSE, TRUE)
## dat3 : furnishingstatus %in% c('furnished', 'semi-furnished', 'unfurnished')
## dat4 : guestroom %in% c(FALSE, TRUE)
## dat5 : hotwaterheating %in% c(FALSE, TRUE)
## dat6 : mainroad %in% c(FALSE, TRUE)
## dat7 : prefarea %in% c(FALSE, TRUE) 
## 
## Edit set:
## num1 : 0 < price
## num2 : 0 < area
## num3 : 1 <= bedrooms
## num4 : 1 <= bathrooms
## num5 : 1 <= stories
## num6 : 0 <= parking

Podsumowanie rekordów niespełniających ustalonej wyżej reguły

summary(violatedEdits(RULE, data))
## Edit violations, 545 observations, 0 completely missing (0%):
## 
##  editname freq  rel
##      dat6   50 9.2%
##      dat7   50 9.2%
## 
## Edit violations per record:
## 
##  errors freq   rel
##       0  363 66.6%
##       1  155 28.4%
##       2   26  4.8%
##       3    1  0.2%
violations_summary <- summary(violatedEdits(RULE, data))
## Edit violations, 545 observations, 0 completely missing (0%):
## 
##  editname freq  rel
##      dat6   50 9.2%
##      dat7   50 9.2%
## 
## Edit violations per record:
## 
##  errors freq   rel
##       0  363 66.6%
##       1  155 28.4%
##       2   26  4.8%
##       3    1  0.2%
str(violations_summary)
## 'data.frame':    4 obs. of  3 variables:
##  $ errors: chr  "0" "1" "2" "3"
##  $ freq  : int  363 155 26 1
##  $ rel   : chr  "66.6%" "28.4%" "4.8%" "0.2%"
#plot(violated)

Z podsumowania danych łamiących zapisaną wyżej regułę wynika, że większość wierszy (66.6%) w danych spełnia wszystkie reguły walidacyjne (errors = 0). 28.4% wierszy narusza jedną regułę (errors = 1). 4.8% wierszy narusza dwie reguły (errors = 2). 0.2% wierszy narusza trzy reguły (errors = 3).To jaka część obserwacji nie spełani reguł możemy zobaczyć na wykresie.

Dla spójności i poprawności danych stodujemy reguły walidacyjne. Wykorzystujemy zdefiniowane wcześniej reguły. Błędne wartości w danych zastąpujemy NA, co umożliwia ich łatwą identyfikację i w puźniejszych krokach ułatwi wykosztanie ich w analizie. Wykorzystujemy do tego celu bibliotekę validate, aby wszytskie obserwacje łamiące wspomniane regułu zastępujemy wartością NA.Oznacza to, że będzie możliwe implementacja w to miejsce wartości spełniające wymogi danych.

RULE <- validator(
  price > 0,
  area > 0,
  bedrooms >= 1,
  bathrooms >= 1,
  stories >= 1,
  mainroad %in% c('TRUE', 'FALSE'),
  guestroom %in% c('TRUE', 'FALSE'),
  basement %in% c('TRUE', 'FALSE'),
  hotwaterheating %in% c('TRUE', 'FALSE'),
  airconditioning %in% c('TRUE', 'FALSE'),
  prefarea %in% c('TRUE', 'FALSE'),
  parking >= 0,
  furnishingstatus %in% c('furnished', 'semi-furnished', 'unfurnished')
)

correct_with_rules <- function(data, rules) {
  violations <- confront(data, rules)
  for (col in names(data)) {
    if (col %in% names(rules)) {
      invalid_rows <- values(violations)[, col] == FALSE
      data[[col]][invalid_rows] <- NA
    }
  }
  return(data)
}

Wartości odstające

Analiza wartości odstających dla zmiennej ‘price’

Identyfikujemy wartości odstające w zmiennej price Następnie znajdujemy indeksy wierszy zawierających te wartości odstające za pomocą funkcji which. Używamy wykresu pudełkowegp do wizualizacji zmiennej price, gdzie outliery są automatycznie zaznaczane na wykresie. W kolejnych krokach modyfikujemy wartości w drugiej kolumnie dla wierszy z wartościami odstającymi w price, dzieląc je przez 10 w celu ich zmniejszenia. Ten proces pozwala nam spojrzeć na przeciętne wartości dla danych o sprzedaży mieszkań. Jeśli chodzi o cenę jest ona zmienną mocno subiektywną. Niekoniecznie wynika z faktycznej wartości produktu ale np. z bardzo konkretnej lokalizacji. Ponieważ w naszych danych nie mamy informacji o np. wspomnianej konkretnej lokalizacji nie możemy wziąć jej pod uwagę przy dalaszej interpretacji ceny. Dane bez wprowadzonych modyfikacji zostawiamy jako ’data_with_outliars’dla celów porównawczych.

outliers <- boxplot.stats(data$price)$out
outliers_idx <- which(data$price %in% outliers)
data[outliers_idx,]
##       price  area bedrooms bathrooms stories mainroad guestroom basement
## 2  12250000  8960        4         4       4     TRUE     FALSE    FALSE
## 3  12250000  9960        3         2       2     TRUE     FALSE     TRUE
## 4  12215000  7500        4         2       2     TRUE     FALSE     TRUE
## 5  11410000  7420        4         1       2     TRUE      TRUE     TRUE
## 6  10850000  7500        3         3       1     TRUE     FALSE     TRUE
## 7  10150000  8580        4         3       4     TRUE     FALSE    FALSE
## 8  10150000 16200        5         3       2     TRUE     FALSE    FALSE
## 9   9870000  8100        4         1       2     TRUE      TRUE     TRUE
## 10  9800000  5750        3         2       4     TRUE      TRUE    FALSE
## 11  9800000 13200        3         1       2     TRUE     FALSE     TRUE
## 12  9681000  6000        4         3       2     TRUE      TRUE     TRUE
##    hotwaterheating airconditioning parking prefarea furnishingstatus
## 2            FALSE            TRUE       3    FALSE        furnished
## 3            FALSE           FALSE       2     TRUE   semi-furnished
## 4            FALSE            TRUE       3     TRUE        furnished
## 5            FALSE            TRUE       2    FALSE        furnished
## 6            FALSE            TRUE       2     TRUE   semi-furnished
## 7            FALSE            TRUE       2     TRUE   semi-furnished
## 8            FALSE           FALSE       0    FALSE      unfurnished
## 9            FALSE            TRUE       2     TRUE        furnished
## 10           FALSE            TRUE       1     TRUE      unfurnished
## 11           FALSE            TRUE       2     TRUE        furnished
## 12            TRUE           FALSE       2    FALSE   semi-furnished
boxplot(data$price, 
        main = "Wartości odstające dla zmiennej 'price'",
        ylab = "Wartości price",
        col = "lightblue",
        outline = TRUE)

data[outliers_idx, 2] <- data[outliers_idx, 2] / 10

data_with_outliars <- read.csv("agencja_nieruchomosci.csv")

Analiza wartości odstających dla zmiennej ‘area’

Drugą zmienną w której mogą wystapić wartości odstające jest zmienna ‘area’. Dlatego przechodzimy do identyfikacji wartości odstających w zmiennej area do ich lepszego zobrazowania wykorzystamy wykres pudełkowy. Widzimy, że są to wartości ekstremalnie wysokie. Na razie nie będziemy modyfikować tych wartości. Z perspektywy biznesowej ważne jest aby zbadać jak duża powierzchnia wpływa na cenę. Czy w przypadku odstających pod katem wielkości są one również zdecydowanie droższe.

outliers <- boxplot.stats(data$area)$out
outliers_idx <- which(data$area %in% outliers)
data[outliers_idx,]
##       price  area bedrooms bathrooms stories mainroad guestroom basement
## 57  7343000 11440        4         1       2     TRUE     FALSE     TRUE
## 65       NA 11175        3         1       1     TRUE     FALSE     TRUE
## 67  6930000 13200        2         1       1     TRUE     FALSE     TRUE
## 70       NA 12090        4         2       2     TRUE     FALSE    FALSE
## 83  6615000 10500        3         2       1     TRUE     FALSE     TRUE
## 126 5943000 15600        3         1       1     TRUE     FALSE    FALSE
## 130 5873000 11460        3         1       3     TRUE     FALSE    FALSE
## 143 5600000 10500        4         2       2     TRUE     FALSE    FALSE
## 147 5600000 10500        2         1       1     TRUE     FALSE    FALSE
## 187 5110000 11410        2         1       2     TRUE     FALSE    FALSE
## 192 5040000 10700        3         1       2     TRUE      TRUE     TRUE
## 212 4900000 12900        3         1       1     TRUE     FALSE    FALSE
## 404 3500000 12944        3         1       1     TRUE     FALSE    FALSE
##     hotwaterheating airconditioning parking prefarea furnishingstatus
## 57            FALSE           FALSE       1     TRUE   semi-furnished
## 65            FALSE            TRUE       1       NA        furnished
## 67             TRUE           FALSE       1    FALSE        furnished
## 70            FALSE           FALSE       2     TRUE        furnished
## 83            FALSE            TRUE       1     TRUE        furnished
## 126           FALSE            TRUE       2    FALSE   semi-furnished
## 130           FALSE           FALSE       2     TRUE   semi-furnished
## 143           FALSE           FALSE       1    FALSE   semi-furnished
## 147           FALSE           FALSE       1    FALSE   semi-furnished
## 187           FALSE           FALSE       0     TRUE        furnished
## 192           FALSE           FALSE       0    FALSE   semi-furnished
## 212           FALSE           FALSE       2    FALSE        furnished
## 404           FALSE           FALSE       0    FALSE      unfurnished
boxplot(data$area, 
        main = "Wartości odstające dla zmiennej 'area'",
        ylab = "Wartości area",
        col = "lightblue",
        outline = TRUE)

Eksploracja danych

Sortowanie danych rosnąco według zmiennej ‘price’.

Ponieważ Dla naszej analizy kluczową zmienną będzie cena a pytania jake sobie postawimy będą głównie związane z tym jakie czynniki na nią wpływają. ustawienie danych roznąco pod kątem ceny ułatwi prace i podglądanie struktury danych. Łatwiej w ten sposób zauważyć jakie są

data %>% arrange('price')
##        price  area bedrooms bathrooms stories mainroad guestroom basement
## 1         NA  7420        4         2       3       NA     FALSE    FALSE
## 2   12250000   896        4         4       4     TRUE     FALSE    FALSE
## 3   12250000   996        3         2       2     TRUE     FALSE     TRUE
## 4   12215000   750        4         2       2     TRUE     FALSE     TRUE
## 5   11410000   742        4         1       2     TRUE      TRUE     TRUE
## 6   10850000   750        3         3       1     TRUE     FALSE     TRUE
## 7   10150000   858        4         3       4     TRUE     FALSE    FALSE
## 8   10150000  1620        5         3       2     TRUE     FALSE    FALSE
## 9    9870000   810        4         1       2     TRUE      TRUE     TRUE
## 10   9800000   575        3         2       4     TRUE      TRUE    FALSE
## 11   9800000  1320        3         1       2     TRUE     FALSE     TRUE
## 12   9681000   600        4         3       2     TRUE      TRUE     TRUE
## 13        NA  6550        4         2       2       NA     FALSE    FALSE
## 14   9240000  3500        4         2       2     TRUE     FALSE    FALSE
## 15   9240000  7800        3         2       2     TRUE     FALSE    FALSE
## 16   9100000  6000        4         1       2     TRUE     FALSE     TRUE
## 17   9100000  6600        4         2       2     TRUE      TRUE     TRUE
## 18   8960000  8500        3         2       4     TRUE     FALSE    FALSE
## 19   8890000  4600        3         2       2     TRUE      TRUE    FALSE
## 20   8855000  6420        3         2       2     TRUE     FALSE    FALSE
## 21   8750000  4320        3         1       2     TRUE     FALSE     TRUE
## 22   8680000  7155        3         2       1     TRUE      TRUE     TRUE
## 23        NA  8050        3         1       1     TRUE      TRUE     TRUE
## 24   8645000  4560        3         2       2     TRUE      TRUE     TRUE
## 25        NA  8800        3         2       2     TRUE     FALSE    FALSE
## 26   8540000  6540        4         2       2     TRUE      TRUE     TRUE
## 27   8463000  6000        3         2       4     TRUE      TRUE     TRUE
## 28   8400000  8875        3         1       1     TRUE     FALSE    FALSE
## 29   8400000  7950        5         2       2     TRUE     FALSE     TRUE
## 30   8400000  5500        4         2       2     TRUE     FALSE     TRUE
## 31   8400000  7475        3         2       4     TRUE     FALSE    FALSE
## 32   8400000  7000        3         1       4     TRUE     FALSE    FALSE
## 33   8295000  4880        4         2       2     TRUE     FALSE    FALSE
## 34   8190000  5960        3         3       2     TRUE      TRUE     TRUE
## 35   8120000  6840        5         1       2     TRUE      TRUE     TRUE
## 36   8080940  7000        3         2       4     TRUE     FALSE    FALSE
## 37   8043000  7482        3         2       3     TRUE     FALSE    FALSE
## 38   7980000  9000        4         2       4     TRUE     FALSE    FALSE
## 39   7962500  6000        3         1       4     TRUE      TRUE    FALSE
## 40   7910000  6000        4         2       4       NA     FALSE    FALSE
## 41   7875000  6550        3         1       2     TRUE     FALSE     TRUE
## 42        NA  6360        3         2       4     TRUE     FALSE    FALSE
## 43   7700000  6480        3         2       4     TRUE     FALSE    FALSE
## 44   7700000  6000        4         2       4     TRUE     FALSE    FALSE
## 45   7560000  6000        4         2       4     TRUE     FALSE    FALSE
## 46        NA  6000        3         2       3     TRUE     FALSE    FALSE
## 47   7525000  6000        3         2       4     TRUE     FALSE    FALSE
## 48        NA  6600        3         1       4     TRUE     FALSE    FALSE
## 49   7455000  4300        3         2       2     TRUE     FALSE     TRUE
## 50   7420000  7440        3         2       1     TRUE      TRUE     TRUE
## 51   7420000  7440        3         2       4     TRUE     FALSE    FALSE
## 52        NA  6325        3         1       4     TRUE     FALSE    FALSE
## 53   7350000  6000        4         2       4     TRUE      TRUE    FALSE
## 54   7350000  5150        3         2       4     TRUE     FALSE    FALSE
## 55        NA  6000        3         2       2     TRUE      TRUE    FALSE
## 56   7350000  6000        3         1       2     TRUE     FALSE    FALSE
## 57   7343000 11440        4         1       2     TRUE     FALSE     TRUE
## 58   7245000  9000        4         2       4     TRUE      TRUE    FALSE
## 59   7210000  7680        4         2       4     TRUE      TRUE    FALSE
## 60        NA  6000        3         2       4       NA      TRUE    FALSE
## 61   7140000  6000        3         2       2     TRUE      TRUE    FALSE
## 62   7070000  8880        2         1       1     TRUE     FALSE    FALSE
## 63        NA  6240        4         2       2     TRUE     FALSE    FALSE
## 64   7035000  6360        4         2       3     TRUE     FALSE    FALSE
## 65        NA 11175        3         1       1     TRUE     FALSE     TRUE
## 66   6930000  8880        3         2       2     TRUE     FALSE     TRUE
## 67   6930000 13200        2         1       1     TRUE     FALSE     TRUE
## 68   6895000  7700        3         2       1     TRUE     FALSE    FALSE
## 69   6860000  6000        3         1       1     TRUE     FALSE    FALSE
## 70        NA 12090        4         2       2     TRUE     FALSE    FALSE
## 71   6790000  4000        3         2       2     TRUE     FALSE     TRUE
## 72   6755000  6000        4         2       4     TRUE     FALSE    FALSE
## 73        NA  5020        3         1       4     TRUE     FALSE    FALSE
## 74   6685000  6600        2         2       4     TRUE     FALSE     TRUE
## 75   6650000  4040        3         1       2       NA     FALSE     TRUE
## 76        NA  4260        4         2       2     TRUE     FALSE    FALSE
## 77        NA  6420        3         2       3     TRUE     FALSE    FALSE
## 78   6650000  6500        3         2       3     TRUE     FALSE    FALSE
## 79   6650000  5700        3         1       1     TRUE      TRUE     TRUE
## 80        NA  6000        3         2       3     TRUE      TRUE    FALSE
## 81   6629000  6000        3         1       2     TRUE     FALSE    FALSE
## 82   6615000  4000        3         2       2     TRUE     FALSE     TRUE
## 83   6615000 10500        3         2       1     TRUE     FALSE     TRUE
## 84   6580000  6000        3         2       4     TRUE     FALSE    FALSE
## 85        NA  3760        3         1       2     TRUE     FALSE    FALSE
## 86   6510000  8250        3         2       3     TRUE     FALSE    FALSE
## 87   6510000  6670        3         1       3     TRUE     FALSE     TRUE
## 88   6475000  3960        3         1       1     TRUE     FALSE     TRUE
## 89   6475000  7410        3         1       1     TRUE      TRUE     TRUE
## 90   6440000  8580        5         3       2     TRUE     FALSE    FALSE
## 91   6440000  5000        3         1       2     TRUE     FALSE    FALSE
## 92   6419000  6750        2         1       1     TRUE      TRUE     TRUE
## 93   6405000  4800        3         2       4     TRUE      TRUE    FALSE
## 94   6300000  7200        3         2       1     TRUE     FALSE     TRUE
## 95   6300000  6000        4         2       4     TRUE     FALSE    FALSE
## 96   6300000  4100        3         2       3     TRUE     FALSE    FALSE
## 97   6300000  9000        3         1       1     TRUE     FALSE     TRUE
## 98   6300000  6400        3         1       1     TRUE      TRUE     TRUE
## 99   6293000  6600        3         2       3     TRUE     FALSE    FALSE
## 100  6265000  6000        4         1       3     TRUE      TRUE     TRUE
## 101  6230000  6600        3         2       1     TRUE     FALSE     TRUE
## 102       NA  5500        3         1       3     TRUE     FALSE    FALSE
## 103  6195000  5500        3         2       4     TRUE      TRUE    FALSE
## 104       NA  6350        3         2       3     TRUE      TRUE    FALSE
## 105  6195000  5500        3         2       1     TRUE      TRUE     TRUE
## 106  6160000  4500        3         1       4     TRUE     FALSE    FALSE
## 107  6160000  5450        4         2       1     TRUE     FALSE     TRUE
## 108  6125000  6420        3         1       3     TRUE     FALSE     TRUE
## 109  6107500  3240        4         1       3     TRUE     FALSE    FALSE
## 110       NA  6615        4         2       2     TRUE      TRUE    FALSE
## 111  6090000  6600        3         1       1     TRUE      TRUE     TRUE
## 112  6090000  8372        3         1       3     TRUE     FALSE    FALSE
## 113  6083000  4300        6         2       2     TRUE     FALSE    FALSE
## 114       NA  9620        3         1       1     TRUE     FALSE     TRUE
## 115  6020000  6800        2         1       1     TRUE      TRUE     TRUE
## 116  6020000  8000        3         1       1     TRUE      TRUE     TRUE
## 117       NA  6900        3         2       1     TRUE      TRUE     TRUE
## 118       NA  3700        4         1       2     TRUE      TRUE    FALSE
## 119  5950000  6420        3         1       1     TRUE     FALSE     TRUE
## 120  5950000  7020        3         1       1     TRUE     FALSE     TRUE
## 121  5950000  6540        3         1       1     TRUE      TRUE     TRUE
## 122  5950000  7231        3         1       2     TRUE      TRUE     TRUE
## 123  5950000  6254        4         2       1     TRUE     FALSE     TRUE
## 124  5950000  7320        4         2       2     TRUE     FALSE    FALSE
## 125  5950000  6525        3         2       4     TRUE     FALSE    FALSE
## 126  5943000 15600        3         1       1     TRUE     FALSE    FALSE
## 127  5880000  7160        3         1       1     TRUE     FALSE     TRUE
## 128  5880000  6500        3         2       3     TRUE     FALSE    FALSE
## 129  5873000  5500        3         1       3     TRUE      TRUE    FALSE
## 130  5873000 11460        3         1       3     TRUE     FALSE    FALSE
## 131       NA  4800        3         1       1     TRUE      TRUE     TRUE
## 132  5810000  5828        4         1       4     TRUE      TRUE    FALSE
## 133       NA  5200        3         1       3     TRUE     FALSE    FALSE
## 134  5810000  4800        3         1       3       NA     FALSE    FALSE
## 135  5803000  7000        3         1       1     TRUE     FALSE     TRUE
## 136  5775000  6000        3         2       4     TRUE     FALSE    FALSE
## 137  5740000  5400        4         2       2       NA     FALSE    FALSE
## 138  5740000  4640        4         1       2     TRUE     FALSE    FALSE
## 139  5740000  5000        3         1       3     TRUE     FALSE    FALSE
## 140  5740000  6360        3         1       1     TRUE      TRUE     TRUE
## 141  5740000  5800        3         2       4     TRUE     FALSE    FALSE
## 142  5652500  6660        4         2       2     TRUE      TRUE     TRUE
## 143  5600000 10500        4         2       2     TRUE     FALSE    FALSE
## 144  5600000  4800        5         2       3    FALSE     FALSE     TRUE
## 145       NA  4700        4         1       2     TRUE      TRUE     TRUE
## 146  5600000  5000        3         1       4     TRUE     FALSE    FALSE
## 147  5600000 10500        2         1       1     TRUE     FALSE    FALSE
## 148       NA  5500        3         2       2       NA     FALSE    FALSE
## 149  5600000  6360        3         1       3     TRUE     FALSE    FALSE
## 150       NA  6600        4         2       1     TRUE     FALSE     TRUE
## 151  5600000  5136        3         1       2     TRUE      TRUE     TRUE
## 152  5565000  4400        4         1       2     TRUE     FALSE    FALSE
## 153  5565000  5400        5         1       2     TRUE      TRUE     TRUE
## 154  5530000  3300        3         3       2     TRUE     FALSE     TRUE
## 155  5530000  3650        3         2       2     TRUE     FALSE    FALSE
## 156       NA  6100        3         2       1     TRUE     FALSE     TRUE
## 157       NA  6900        3         1       1     TRUE      TRUE     TRUE
## 158  5495000  2817        4         2       2    FALSE      TRUE     TRUE
## 159  5495000  7980        3         1       1     TRUE     FALSE    FALSE
## 160  5460000  3150        3         2       1       NA      TRUE     TRUE
## 161  5460000  6210        4         1       4     TRUE      TRUE    FALSE
## 162       NA  6100        3         1       3     TRUE      TRUE    FALSE
## 163  5460000  6600        4         2       2     TRUE      TRUE     TRUE
## 164  5425000  6825        3         1       1     TRUE      TRUE     TRUE
## 165       NA  6710        3         2       2     TRUE      TRUE     TRUE
## 166  5383000  6450        3         2       1     TRUE      TRUE     TRUE
## 167  5320000  7800        3         1       1     TRUE     FALSE     TRUE
## 168  5285000  4600        2         2       1     TRUE     FALSE    FALSE
## 169  5250000  4260        4         1       2     TRUE     FALSE     TRUE
## 170  5250000  6540        4         2       2    FALSE     FALSE    FALSE
## 171  5250000  5500        3         2       1     TRUE     FALSE     TRUE
## 172  5250000 10269        3         1       1     TRUE     FALSE    FALSE
## 173       NA  8400        3         1       2     TRUE      TRUE     TRUE
## 174  5250000  5300        4         2       1     TRUE     FALSE    FALSE
## 175  5250000  3800        3         1       2       NA      TRUE     TRUE
## 176  5250000  9800        4         2       2     TRUE      TRUE    FALSE
## 177  5250000  8520        3         1       1     TRUE     FALSE    FALSE
## 178  5243000  6050        3         1       1     TRUE     FALSE     TRUE
## 179       NA  7085        3         1       1     TRUE      TRUE     TRUE
## 180       NA  3180        3         2       2     TRUE     FALSE    FALSE
## 181  5215000  4500        4         2       1    FALSE     FALSE     TRUE
## 182       NA  7200        3         1       2     TRUE      TRUE     TRUE
## 183  5145000  3410        3         1       2    FALSE     FALSE    FALSE
## 184  5145000  7980        3         1       1     TRUE     FALSE    FALSE
## 185  5110000  3000        3         2       2     TRUE      TRUE     TRUE
## 186       NA  3000        3         1       2     TRUE     FALSE     TRUE
## 187  5110000 11410        2         1       2     TRUE     FALSE    FALSE
## 188  5110000  6100        3         1       1     TRUE     FALSE     TRUE
## 189  5075000  5720        2         1       2     TRUE     FALSE    FALSE
## 190  5040000  3540        2         1       1    FALSE      TRUE     TRUE
## 191  5040000  7600        4         1       2     TRUE     FALSE    FALSE
## 192  5040000 10700        3         1       2     TRUE      TRUE     TRUE
## 193  5040000  6600        3         1       1     TRUE      TRUE     TRUE
## 194       NA  4800        2         1       1       NA      TRUE     TRUE
## 195  5005000  8150        3         2       1       NA      TRUE     TRUE
## 196  4970000  4410        4         3       2     TRUE     FALSE     TRUE
## 197  4970000  7686        3         1       1     TRUE      TRUE     TRUE
## 198  4956000  2800        3         2       2    FALSE     FALSE     TRUE
## 199  4935000  5948        3         1       2     TRUE     FALSE    FALSE
## 200  4907000  4200        3         1       2     TRUE     FALSE    FALSE
## 201       NA  4520        3         1       2       NA     FALSE     TRUE
## 202  4900000  4095        3         1       2    FALSE      TRUE     TRUE
## 203  4900000  4120        2         1       1     TRUE     FALSE     TRUE
## 204  4900000  5400        4         1       2     TRUE     FALSE    FALSE
## 205  4900000  4770        3         1       1     TRUE      TRUE     TRUE
## 206  4900000  6300        3         1       1       NA     FALSE    FALSE
## 207  4900000  5800        2         1       1     TRUE      TRUE     TRUE
## 208  4900000  3000        3         1       2     TRUE     FALSE     TRUE
## 209       NA  2970        3         1       3     TRUE     FALSE    FALSE
## 210       NA  6720        3         1       1     TRUE     FALSE    FALSE
## 211  4900000  4646        3         1       2     TRUE      TRUE     TRUE
## 212  4900000 12900        3         1       1     TRUE     FALSE    FALSE
## 213       NA  3420        4         2       2     TRUE     FALSE     TRUE
## 214  4893000  4995        4         2       1     TRUE     FALSE     TRUE
## 215  4865000  4350        2         1       1     TRUE     FALSE     TRUE
## 216       NA  4160        3         1       3     TRUE     FALSE    FALSE
## 217       NA  6040        3         1       1     TRUE     FALSE    FALSE
## 218  4830000  6862        3         1       2     TRUE     FALSE    FALSE
## 219       NA  4815        2         1       1       NA     FALSE    FALSE
## 220  4795000  7000        3         1       2     TRUE     FALSE     TRUE
## 221  4795000  8100        4         1       4     TRUE     FALSE     TRUE
## 222  4767000  3420        4         2       2       NA     FALSE    FALSE
## 223       NA  9166        2         1       1     TRUE     FALSE     TRUE
## 224       NA  6321        3         1       2       NA     FALSE     TRUE
## 225  4760000 10240        2         1       1     TRUE     FALSE    FALSE
## 226  4753000  6440        2         1       1     TRUE     FALSE    FALSE
## 227  4690000  5170        3         1       4     TRUE     FALSE    FALSE
## 228  4690000  6000        2         1       1     TRUE     FALSE     TRUE
## 229       NA  3630        3         1       2     TRUE     FALSE    FALSE
## 230  4690000  9667        4         2       2     TRUE      TRUE     TRUE
## 231  4690000  5400        2         1       2       NA     FALSE    FALSE
## 232  4690000  4320        3         1       1       NA     FALSE    FALSE
## 233       NA  3745        3         1       2     TRUE     FALSE     TRUE
## 234  4620000  4160        3         1       1     TRUE      TRUE     TRUE
## 235  4620000  3880        3         2       2     TRUE     FALSE     TRUE
## 236  4620000  5680        3         1       2     TRUE      TRUE    FALSE
## 237  4620000  2870        2         1       2     TRUE      TRUE     TRUE
## 238  4620000  5010        3         1       2     TRUE     FALSE     TRUE
## 239  4613000  4510        4         2       2     TRUE     FALSE     TRUE
## 240  4585000  4000        3         1       2     TRUE     FALSE    FALSE
## 241  4585000  3840        3         1       2     TRUE     FALSE    FALSE
## 242  4550000  3760        3         1       1     TRUE     FALSE    FALSE
## 243       NA  3640        3         1       2     TRUE     FALSE    FALSE
## 244       NA  2550        3         1       2     TRUE     FALSE     TRUE
## 245       NA  5320        3         1       2     TRUE      TRUE     TRUE
## 246  4550000  5360        3         1       2     TRUE     FALSE    FALSE
## 247  4550000  3520        3         1       1     TRUE     FALSE    FALSE
## 248  4550000  8400        4         1       4     TRUE     FALSE    FALSE
## 249  4543000  4100        2         2       1     TRUE      TRUE     TRUE
## 250  4543000  4990        4         2       2     TRUE      TRUE     TRUE
## 251  4515000  3510        3         1       3       NA     FALSE    FALSE
## 252  4515000  3450        3         1       2       NA     FALSE     TRUE
## 253  4515000  9860        3         1       1     TRUE     FALSE    FALSE
## 254  4515000  3520        2         1       2     TRUE     FALSE    FALSE
## 255  4480000  4510        4         1       2     TRUE     FALSE    FALSE
## 256  4480000  5885        2         1       1     TRUE     FALSE    FALSE
## 257  4480000  4000        3         1       2     TRUE     FALSE    FALSE
## 258  4480000  8250        3         1       1     TRUE     FALSE    FALSE
## 259  4480000  4040        3         1       2     TRUE     FALSE    FALSE
## 260  4473000  6360        2         1       1     TRUE     FALSE     TRUE
## 261  4473000  3162        3         1       2     TRUE     FALSE    FALSE
## 262  4473000  3510        3         1       2     TRUE     FALSE    FALSE
## 263  4445000  3750        2         1       1     TRUE      TRUE     TRUE
## 264  4410000  3968        3         1       2    FALSE     FALSE    FALSE
## 265  4410000  4900        2         1       2     TRUE     FALSE     TRUE
## 266  4403000  2880        3         1       2     TRUE     FALSE    FALSE
## 267       NA  4880        3         1       1     TRUE     FALSE    FALSE
## 268  4403000  4920        3         1       2     TRUE     FALSE    FALSE
## 269  4382000  4950        4         1       2     TRUE     FALSE    FALSE
## 270  4375000  3900        3         1       2     TRUE     FALSE    FALSE
## 271  4340000  4500        3         2       3     TRUE     FALSE    FALSE
## 272  4340000  1905        5         1       2       NA     FALSE     TRUE
## 273  4340000  4075        3         1       1     TRUE      TRUE     TRUE
## 274  4340000  3500        4         1       2     TRUE     FALSE    FALSE
## 275  4340000  6450        4         1       2     TRUE     FALSE    FALSE
## 276       NA  4032        2         1       1       NA     FALSE     TRUE
## 277  4305000  4400        2         1       1       NA     FALSE    FALSE
## 278  4305000 10360        2         1       1     TRUE     FALSE    FALSE
## 279  4277000  3400        3         1       2     TRUE     FALSE     TRUE
## 280  4270000  6360        2         1       1       NA     FALSE    FALSE
## 281  4270000  6360        2         1       2     TRUE     FALSE    FALSE
## 282  4270000  4500        2         1       1     TRUE     FALSE    FALSE
## 283       NA  2175        3         1       2       NA      TRUE     TRUE
## 284  4270000  4360        4         1       2     TRUE     FALSE    FALSE
## 285       NA  7770        2         1       1     TRUE     FALSE    FALSE
## 286  4235000  6650        3         1       2     TRUE      TRUE    FALSE
## 287       NA  2787        3         1       1     TRUE     FALSE     TRUE
## 288  4200000  5500        3         1       2     TRUE     FALSE    FALSE
## 289  4200000  5040        3         1       2     TRUE     FALSE     TRUE
## 290  4200000  5850        2         1       1     TRUE      TRUE     TRUE
## 291  4200000  2610        4         3       2    FALSE     FALSE    FALSE
## 292  4200000  2953        3         1       2     TRUE     FALSE     TRUE
## 293  4200000  2747        4         2       2    FALSE     FALSE    FALSE
## 294  4200000  4410        2         1       1    FALSE     FALSE    FALSE
## 295  4200000  4000        4         2       2    FALSE     FALSE    FALSE
## 296  4200000  2325        3         1       2    FALSE     FALSE    FALSE
## 297       NA  4600        3         2       2     TRUE     FALSE    FALSE
## 298  4200000  3640        3         2       2     TRUE     FALSE     TRUE
## 299       NA  5800        3         1       1     TRUE     FALSE    FALSE
## 300  4200000  7000        3         1       1       NA     FALSE    FALSE
## 301  4200000  4079        3         1       3     TRUE     FALSE    FALSE
## 302  4200000  3520        3         1       2     TRUE     FALSE    FALSE
## 303  4200000  2145        3         1       3     TRUE     FALSE    FALSE
## 304  4200000  4500        3         1       1     TRUE     FALSE     TRUE
## 305       NA  8250        3         1       1     TRUE     FALSE     TRUE
## 306  4193000  3450        3         1       2     TRUE     FALSE    FALSE
## 307  4165000  4840        3         1       2     TRUE     FALSE    FALSE
## 308       NA  4080        3         1       2     TRUE     FALSE    FALSE
## 309  4165000  4046        3         1       2     TRUE     FALSE     TRUE
## 310       NA  4632        4         1       2     TRUE     FALSE    FALSE
## 311  4130000  5985        3         1       1     TRUE     FALSE     TRUE
## 312  4123000  6060        2         1       1       NA     FALSE     TRUE
## 313  4098500  3600        3         1       1     TRUE     FALSE     TRUE
## 314  4095000  3680        3         2       2     TRUE     FALSE    FALSE
## 315  4095000  4040        2         1       2     TRUE     FALSE    FALSE
## 316  4095000  5600        2         1       1     TRUE     FALSE    FALSE
## 317  4060000  5900        4         2       2    FALSE     FALSE     TRUE
## 318  4060000  4992        3         2       2     TRUE     FALSE    FALSE
## 319  4060000  4340        3         1       1     TRUE     FALSE    FALSE
## 320  4060000  3000        4         1       3     TRUE     FALSE     TRUE
## 321  4060000  4320        3         1       2     TRUE     FALSE    FALSE
## 322  4025000  3630        3         2       2     TRUE     FALSE    FALSE
## 323       NA  3460        3         2       1     TRUE     FALSE     TRUE
## 324  4025000  5400        3         1       1     TRUE     FALSE    FALSE
## 325  4007500  4500        3         1       2    FALSE     FALSE     TRUE
## 326  4007500  3460        4         1       2     TRUE     FALSE    FALSE
## 327  3990000  4100        4         1       1       NA     FALSE     TRUE
## 328  3990000  6480        3         1       2       NA     FALSE    FALSE
## 329  3990000  4500        3         2       2    FALSE     FALSE     TRUE
## 330  3990000  3960        3         1       2     TRUE     FALSE    FALSE
## 331  3990000  4050        2         1       2     TRUE      TRUE     TRUE
## 332  3920000  7260        3         2       1     TRUE      TRUE     TRUE
## 333  3920000  5500        4         1       2       NA      TRUE     TRUE
## 334  3920000  3000        3         1       2       NA     FALSE    FALSE
## 335       NA  3290        2         1       1       NA     FALSE    FALSE
## 336       NA  3816        2         1       1     TRUE     FALSE     TRUE
## 337  3920000  8080        3         1       1     TRUE     FALSE    FALSE
## 338  3920000  2145        4         2       1     TRUE     FALSE     TRUE
## 339  3885000  3780        2         1       2     TRUE      TRUE     TRUE
## 340  3885000  3180        4         2       2     TRUE     FALSE    FALSE
## 341  3850000  5300        5         2       2     TRUE     FALSE    FALSE
## 342       NA  3180        2         2       1     TRUE     FALSE     TRUE
## 343  3850000  7152        3         1       2     TRUE     FALSE    FALSE
## 344  3850000  4080        2         1       1     TRUE     FALSE    FALSE
## 345  3850000  3850        2         1       1     TRUE     FALSE    FALSE
## 346  3850000  2015        3         1       2     TRUE     FALSE     TRUE
## 347  3850000  2176        2         1       2     TRUE      TRUE    FALSE
## 348  3836000  3350        3         1       2     TRUE     FALSE    FALSE
## 349  3815000  3150        2         2       1    FALSE     FALSE     TRUE
## 350  3780000  4820        3         1       2     TRUE     FALSE    FALSE
## 351  3780000  3420        2         1       2       NA     FALSE    FALSE
## 352       NA  3600        2         1       1     TRUE     FALSE    FALSE
## 353  3780000  5830        2         1       1     TRUE     FALSE    FALSE
## 354  3780000  2856        3         1       3     TRUE     FALSE    FALSE
## 355       NA  8400        2         1       1     TRUE     FALSE    FALSE
## 356  3773000  8250        3         1       1     TRUE     FALSE    FALSE
## 357  3773000  2520        5         2       1    FALSE     FALSE     TRUE
## 358  3773000  6930        4         1       2    FALSE     FALSE    FALSE
## 359       NA  3480        2         1       1     TRUE     FALSE    FALSE
## 360  3710000  3600        3         1       1     TRUE     FALSE    FALSE
## 361  3710000  4040        2         1       1     TRUE     FALSE    FALSE
## 362       NA  6020        3         1       1     TRUE     FALSE    FALSE
## 363  3710000  4050        2         1       1     TRUE     FALSE    FALSE
## 364       NA  3584        2         1       1     TRUE     FALSE    FALSE
## 365       NA  3120        3         1       2    FALSE     FALSE     TRUE
## 366  3703000  5450        2         1       1     TRUE     FALSE    FALSE
## 367  3675000  3630        2         1       1     TRUE     FALSE     TRUE
## 368       NA  3630        2         1       1     TRUE     FALSE    FALSE
## 369       NA  5640        2         1       1    FALSE     FALSE    FALSE
## 370  3675000  3600        2         1       1     TRUE     FALSE    FALSE
## 371  3640000  4280        2         1       1     TRUE     FALSE    FALSE
## 372  3640000  3570        3         1       2     TRUE     FALSE     TRUE
## 373  3640000  3180        3         1       2    FALSE     FALSE     TRUE
## 374  3640000  3000        2         1       2     TRUE     FALSE    FALSE
## 375  3640000  3520        2         2       1     TRUE     FALSE     TRUE
## 376  3640000  5960        3         1       2     TRUE      TRUE     TRUE
## 377  3640000  4130        3         2       2     TRUE     FALSE    FALSE
## 378  3640000  2850        3         2       2    FALSE     FALSE     TRUE
## 379       NA  2275        3         1       3     TRUE     FALSE    FALSE
## 380  3633000  3520        3         1       1     TRUE     FALSE    FALSE
## 381  3605000  4500        2         1       1     TRUE     FALSE    FALSE
## 382  3605000  4000        2         1       1     TRUE     FALSE    FALSE
## 383  3570000  3150        3         1       2     TRUE     FALSE     TRUE
## 384  3570000  4500        4         2       2     TRUE     FALSE     TRUE
## 385  3570000  4500        2         1       1    FALSE     FALSE    FALSE
## 386  3570000  3640        2         1       1     TRUE     FALSE    FALSE
## 387       NA  3850        3         1       1     TRUE     FALSE    FALSE
## 388  3500000  4240        3         1       2     TRUE     FALSE    FALSE
## 389       NA  3650        3         1       2     TRUE     FALSE    FALSE
## 390  3500000  4600        4         1       2     TRUE     FALSE    FALSE
## 391  3500000  2135        3         2       2       NA     FALSE    FALSE
## 392       NA  3036        3         1       2     TRUE     FALSE     TRUE
## 393  3500000  3990        3         1       2     TRUE     FALSE    FALSE
## 394       NA  7424        3         1       1    FALSE     FALSE    FALSE
## 395  3500000  3480        3         1       1    FALSE     FALSE    FALSE
## 396  3500000  3600        6         1       2       NA     FALSE    FALSE
## 397  3500000  3640        2         1       1     TRUE     FALSE    FALSE
## 398  3500000  5900        2         1       1     TRUE     FALSE    FALSE
## 399  3500000  3120        3         1       2     TRUE     FALSE    FALSE
## 400  3500000  7350        2         1       1     TRUE     FALSE    FALSE
## 401  3500000  3512        2         1       1     TRUE     FALSE    FALSE
## 402       NA  9500        3         1       2     TRUE     FALSE    FALSE
## 403  3500000  5880        2         1       1       NA     FALSE    FALSE
## 404  3500000 12944        3         1       1     TRUE     FALSE    FALSE
## 405  3493000  4900        3         1       2    FALSE     FALSE    FALSE
## 406       NA  3060        3         1       1     TRUE     FALSE    FALSE
## 407  3465000  5320        2         1       1     TRUE     FALSE    FALSE
## 408       NA  2145        3         1       3     TRUE     FALSE    FALSE
## 409  3430000  4000        2         1       1     TRUE     FALSE    FALSE
## 410       NA  3185        2         1       1     TRUE     FALSE    FALSE
## 411  3430000  3850        3         1       1     TRUE     FALSE    FALSE
## 412  3430000  2145        3         1       3     TRUE     FALSE    FALSE
## 413  3430000  2610        3         1       2     TRUE     FALSE     TRUE
## 414  3430000  1950        3         2       2     TRUE     FALSE     TRUE
## 415  3423000  4040        2         1       1     TRUE     FALSE    FALSE
## 416  3395000  4785        3         1       2     TRUE      TRUE     TRUE
## 417  3395000  3450        3         1       1     TRUE     FALSE     TRUE
## 418  3395000  3640        2         1       1     TRUE     FALSE    FALSE
## 419  3360000  3500        4         1       2       NA     FALSE    FALSE
## 420  3360000  4960        4         1       3    FALSE     FALSE    FALSE
## 421  3360000  4120        2         1       2     TRUE     FALSE    FALSE
## 422       NA  4750        2         1       1     TRUE     FALSE    FALSE
## 423  3360000  3720        2         1       1    FALSE     FALSE    FALSE
## 424  3360000  3750        3         1       1       NA     FALSE    FALSE
## 425  3360000  3100        3         1       2    FALSE     FALSE     TRUE
## 426       NA  3185        2         1       1     TRUE     FALSE     TRUE
## 427  3353000  2700        3         1       1    FALSE     FALSE    FALSE
## 428  3332000  2145        3         1       2     TRUE     FALSE     TRUE
## 429       NA  4040        2         1       1     TRUE     FALSE    FALSE
## 430  3325000  4775        4         1       2     TRUE     FALSE    FALSE
## 431  3290000  2500        2         1       1    FALSE     FALSE    FALSE
## 432  3290000  3180        4         1       2     TRUE     FALSE     TRUE
## 433  3290000  6060        3         1       1     TRUE      TRUE     TRUE
## 434  3290000  3480        4         1       2    FALSE     FALSE    FALSE
## 435  3290000  3792        4         1       2       NA     FALSE    FALSE
## 436       NA  4040        2         1       1     TRUE     FALSE    FALSE
## 437  3290000  2145        3         1       2     TRUE     FALSE     TRUE
## 438  3290000  5880        3         1       1     TRUE     FALSE    FALSE
## 439  3255000  4500        2         1       1    FALSE     FALSE    FALSE
## 440  3255000  3930        2         1       1    FALSE     FALSE    FALSE
## 441  3234000  3640        4         1       2     TRUE     FALSE     TRUE
## 442  3220000  4370        3         1       2     TRUE     FALSE    FALSE
## 443  3220000  2684        2         1       1     TRUE     FALSE    FALSE
## 444  3220000  4320        3         1       1    FALSE     FALSE    FALSE
## 445       NA  3120        3         1       2       NA     FALSE    FALSE
## 446  3150000  3450        1         1       1     TRUE     FALSE    FALSE
## 447  3150000  3986        2         2       1    FALSE      TRUE     TRUE
## 448  3150000  3500        2         1       1    FALSE     FALSE     TRUE
## 449  3150000  4095        2         1       1     TRUE     FALSE    FALSE
## 450  3150000  1650        3         1       2    FALSE     FALSE     TRUE
## 451  3150000  3450        3         1       2     TRUE     FALSE     TRUE
## 452  3150000  6750        2         1       1     TRUE     FALSE    FALSE
## 453       NA  9000        3         1       2     TRUE     FALSE    FALSE
## 454       NA  3069        2         1       1     TRUE     FALSE    FALSE
## 455  3143000  4500        3         1       2     TRUE     FALSE    FALSE
## 456  3129000  5495        3         1       1     TRUE     FALSE     TRUE
## 457  3118850  2398        3         1       1     TRUE     FALSE    FALSE
## 458  3115000  3000        3         1       1    FALSE     FALSE    FALSE
## 459  3115000  3850        3         1       2     TRUE     FALSE    FALSE
## 460  3115000  3500        2         1       1     TRUE     FALSE    FALSE
## 461  3087000  8100        2         1       1     TRUE     FALSE    FALSE
## 462  3080000  4960        2         1       1     TRUE     FALSE     TRUE
## 463  3080000  2160        3         1       2    FALSE     FALSE     TRUE
## 464       NA  3090        2         1       1     TRUE      TRUE     TRUE
## 465  3080000  4500        2         1       2     TRUE     FALSE    FALSE
## 466  3045000  3800        2         1       1     TRUE     FALSE    FALSE
## 467  3010000  3090        3         1       2    FALSE     FALSE    FALSE
## 468       NA  3240        3         1       2     TRUE     FALSE    FALSE
## 469  3010000  2835        2         1       1     TRUE     FALSE    FALSE
## 470  3010000  4600        2         1       1     TRUE     FALSE    FALSE
## 471  3010000  5076        3         1       1    FALSE     FALSE    FALSE
## 472  3010000  3750        3         1       2     TRUE     FALSE    FALSE
## 473  3010000  3630        4         1       2     TRUE     FALSE    FALSE
## 474  3003000  8050        2         1       1     TRUE     FALSE    FALSE
## 475  2975000  4352        4         1       2    FALSE     FALSE    FALSE
## 476  2961000  3000        2         1       2       NA     FALSE    FALSE
## 477       NA  5850        3         1       2     TRUE     FALSE     TRUE
## 478  2940000  4960        2         1       1     TRUE     FALSE    FALSE
## 479       NA  3600        3         1       2    FALSE     FALSE    FALSE
## 480  2940000  3660        4         1       2    FALSE     FALSE    FALSE
## 481       NA  3480        3         1       2    FALSE     FALSE    FALSE
## 482  2940000  2700        2         1       1       NA     FALSE    FALSE
## 483  2940000  3150        3         1       2       NA     FALSE    FALSE
## 484  2940000  6615        3         1       2     TRUE     FALSE    FALSE
## 485  2870000  3040        2         1       1    FALSE     FALSE    FALSE
## 486  2870000  3630        2         1       1     TRUE     FALSE    FALSE
## 487  2870000  6000        2         1       1     TRUE     FALSE    FALSE
## 488  2870000  5400        4         1       2     TRUE     FALSE    FALSE
## 489  2852500  5200        4         1       3     TRUE     FALSE    FALSE
## 490  2835000  3300        3         1       2    FALSE     FALSE    FALSE
## 491  2835000  4350        3         1       2    FALSE     FALSE    FALSE
## 492       NA  2640        2         1       1    FALSE     FALSE    FALSE
## 493  2800000  2650        3         1       2     TRUE     FALSE     TRUE
## 494  2800000  3960        3         1       1     TRUE     FALSE    FALSE
## 495  2730000  6800        2         1       1     TRUE     FALSE    FALSE
## 496       NA  4000        3         1       2     TRUE     FALSE    FALSE
## 497       NA  4000        2         1       1     TRUE     FALSE    FALSE
## 498  2660000  3934        2         1       1       NA     FALSE    FALSE
## 499  2660000  2000        2         1       2       NA     FALSE    FALSE
## 500  2660000  3630        3         3       2    FALSE      TRUE    FALSE
## 501  2660000  2800        3         1       1     TRUE     FALSE    FALSE
## 502       NA  2430        3         1       1       NA     FALSE    FALSE
## 503       NA  3480        2         1       1     TRUE     FALSE    FALSE
## 504       NA  4000        3         1       1     TRUE     FALSE    FALSE
## 505  2653000  3185        2         1       1     TRUE     FALSE    FALSE
## 506  2653000  4000        3         1       2     TRUE     FALSE    FALSE
## 507  2604000  2910        2         1       1       NA     FALSE    FALSE
## 508  2590000  3600        2         1       1     TRUE     FALSE    FALSE
## 509       NA  4400        2         1       1     TRUE     FALSE    FALSE
## 510  2590000  3600        2         2       2     TRUE     FALSE     TRUE
## 511  2520000  2880        3         1       1    FALSE     FALSE    FALSE
## 512       NA  3180        3         1       1    FALSE     FALSE    FALSE
## 513  2520000  3000        2         1       2     TRUE     FALSE    FALSE
## 514  2485000  4400        3         1       2     TRUE     FALSE    FALSE
## 515  2485000  3000        3         1       2    FALSE     FALSE    FALSE
## 516  2450000  3210        3         1       2     TRUE     FALSE     TRUE
## 517  2450000  3240        2         1       1    FALSE      TRUE    FALSE
## 518  2450000  3000        2         1       1     TRUE     FALSE    FALSE
## 519  2450000  3500        2         1       1     TRUE      TRUE    FALSE
## 520       NA  4840        2         1       2     TRUE     FALSE    FALSE
## 521  2450000  7700        2         1       1     TRUE     FALSE    FALSE
## 522  2408000  3635        2         1       1    FALSE     FALSE    FALSE
## 523  2380000  2475        3         1       2     TRUE     FALSE    FALSE
## 524  2380000  2787        4         2       2     TRUE     FALSE    FALSE
## 525  2380000  3264        2         1       1     TRUE     FALSE    FALSE
## 526       NA  3640        2         1       1     TRUE     FALSE    FALSE
## 527  2310000  3180        2         1       1     TRUE     FALSE    FALSE
## 528       NA  1836        2         1       1    FALSE     FALSE     TRUE
## 529  2275000  3970        1         1       1    FALSE     FALSE    FALSE
## 530  2275000  3970        3         1       2       NA     FALSE     TRUE
## 531  2240000  1950        3         1       1    FALSE     FALSE    FALSE
## 532  2233000  5300        3         1       1    FALSE     FALSE    FALSE
## 533  2135000  3000        2         1       1    FALSE     FALSE    FALSE
## 534  2100000  2400        3         1       2     TRUE     FALSE    FALSE
## 535  2100000  3000        4         1       2     TRUE     FALSE    FALSE
## 536  2100000  3360        2         1       1     TRUE     FALSE    FALSE
## 537       NA  3420        5         1       2    FALSE     FALSE    FALSE
## 538       NA  1700        3         1       2     TRUE     FALSE    FALSE
## 539  1890000  3649        2         1       1     TRUE     FALSE    FALSE
## 540  1855000  2990        2         1       1    FALSE     FALSE    FALSE
## 541  1820000  3000        2         1       1     TRUE     FALSE     TRUE
## 542       NA  2400        3         1       1    FALSE     FALSE    FALSE
## 543  1750000  3620        2         1       1       NA     FALSE    FALSE
## 544  1750000  2910        3         1       1    FALSE     FALSE    FALSE
## 545  1750000  3850        3         1       2     TRUE     FALSE    FALSE
##     hotwaterheating airconditioning parking prefarea furnishingstatus
## 1             FALSE            TRUE       2     TRUE        furnished
## 2             FALSE            TRUE       3    FALSE        furnished
## 3             FALSE           FALSE       2     TRUE   semi-furnished
## 4             FALSE            TRUE       3     TRUE        furnished
## 5             FALSE            TRUE       2    FALSE        furnished
## 6             FALSE            TRUE       2     TRUE   semi-furnished
## 7             FALSE            TRUE       2     TRUE   semi-furnished
## 8             FALSE           FALSE       0    FALSE      unfurnished
## 9             FALSE            TRUE       2     TRUE        furnished
## 10            FALSE            TRUE       1     TRUE      unfurnished
## 11            FALSE            TRUE       2     TRUE        furnished
## 12             TRUE           FALSE       2    FALSE   semi-furnished
## 13            FALSE            TRUE       1     TRUE   semi-furnished
## 14             TRUE           FALSE       2    FALSE        furnished
## 15            FALSE           FALSE       0     TRUE   semi-furnished
## 16            FALSE           FALSE       2    FALSE   semi-furnished
## 17            FALSE            TRUE       1     TRUE      unfurnished
## 18            FALSE            TRUE       2    FALSE        furnished
## 19            FALSE            TRUE       2    FALSE        furnished
## 20            FALSE            TRUE       1     TRUE   semi-furnished
## 21             TRUE           FALSE       2    FALSE   semi-furnished
## 22            FALSE            TRUE       2       NA      unfurnished
## 23            FALSE            TRUE       1    FALSE        furnished
## 24            FALSE            TRUE       1    FALSE        furnished
## 25            FALSE            TRUE       2    FALSE        furnished
## 26            FALSE            TRUE       2     TRUE        furnished
## 27            FALSE            TRUE       0     TRUE   semi-furnished
## 28            FALSE           FALSE       1    FALSE   semi-furnished
## 29             TRUE           FALSE       2    FALSE      unfurnished
## 30            FALSE            TRUE       1     TRUE   semi-furnished
## 31            FALSE            TRUE       2    FALSE      unfurnished
## 32            FALSE            TRUE       2    FALSE   semi-furnished
## 33            FALSE            TRUE       1     TRUE        furnished
## 34            FALSE           FALSE       1    FALSE      unfurnished
## 35            FALSE            TRUE       1    FALSE        furnished
## 36            FALSE            TRUE       2    FALSE        furnished
## 37             TRUE           FALSE       1     TRUE        furnished
## 38            FALSE            TRUE       2    FALSE        furnished
## 39            FALSE            TRUE       2       NA      unfurnished
## 40            FALSE            TRUE       1       NA   semi-furnished
## 41            FALSE            TRUE       0     TRUE        furnished
## 42            FALSE            TRUE       0     TRUE        furnished
## 43            FALSE            TRUE       2    FALSE      unfurnished
## 44            FALSE           FALSE       2    FALSE   semi-furnished
## 45            FALSE            TRUE       1       NA        furnished
## 46            FALSE            TRUE       0    FALSE   semi-furnished
## 47            FALSE            TRUE       1    FALSE        furnished
## 48            FALSE            TRUE       3     TRUE        furnished
## 49            FALSE           FALSE       1       NA      unfurnished
## 50            FALSE            TRUE       0     TRUE   semi-furnished
## 51            FALSE           FALSE       1     TRUE      unfurnished
## 52            FALSE            TRUE       1    FALSE      unfurnished
## 53            FALSE            TRUE       1    FALSE        furnished
## 54            FALSE            TRUE       2    FALSE   semi-furnished
## 55            FALSE            TRUE       1    FALSE   semi-furnished
## 56            FALSE            TRUE       1    FALSE      unfurnished
## 57            FALSE           FALSE       1     TRUE   semi-furnished
## 58            FALSE            TRUE       1     TRUE        furnished
## 59            FALSE            TRUE       1    FALSE   semi-furnished
## 60            FALSE            TRUE       1    FALSE        furnished
## 61            FALSE           FALSE       1    FALSE   semi-furnished
## 62            FALSE            TRUE       1    FALSE   semi-furnished
## 63            FALSE            TRUE       1    FALSE        furnished
## 64            FALSE            TRUE       2     TRUE        furnished
## 65            FALSE            TRUE       1       NA        furnished
## 66            FALSE            TRUE       1    FALSE        furnished
## 67             TRUE           FALSE       1    FALSE        furnished
## 68            FALSE           FALSE       2    FALSE      unfurnished
## 69            FALSE            TRUE       1    FALSE        furnished
## 70            FALSE           FALSE       2     TRUE        furnished
## 71            FALSE            TRUE       0     TRUE   semi-furnished
## 72            FALSE            TRUE       0    FALSE      unfurnished
## 73            FALSE            TRUE       0     TRUE      unfurnished
## 74            FALSE           FALSE       0     TRUE        furnished
## 75             TRUE           FALSE       1    FALSE        furnished
## 76             TRUE           FALSE       0    FALSE   semi-furnished
## 77            FALSE            TRUE       0     TRUE        furnished
## 78            FALSE            TRUE       0     TRUE        furnished
## 79            FALSE            TRUE       2     TRUE        furnished
## 80            FALSE            TRUE       0    FALSE        furnished
## 81             TRUE           FALSE       1     TRUE   semi-furnished
## 82            FALSE            TRUE       1    FALSE   semi-furnished
## 83            FALSE            TRUE       1     TRUE        furnished
## 84            FALSE            TRUE       0    FALSE   semi-furnished
## 85             TRUE           FALSE       2    FALSE   semi-furnished
## 86            FALSE            TRUE       0    FALSE        furnished
## 87            FALSE           FALSE       0     TRUE      unfurnished
## 88            FALSE           FALSE       2    FALSE   semi-furnished
## 89            FALSE            TRUE       2     TRUE      unfurnished
## 90            FALSE           FALSE       2    FALSE        furnished
## 91            FALSE            TRUE       0    FALSE   semi-furnished
## 92            FALSE           FALSE       2     TRUE        furnished
## 93            FALSE            TRUE       0    FALSE        furnished
## 94            FALSE            TRUE       3    FALSE   semi-furnished
## 95            FALSE           FALSE       1       NA   semi-furnished
## 96            FALSE            TRUE       2    FALSE   semi-furnished
## 97            FALSE           FALSE       1     TRUE        furnished
## 98            FALSE            TRUE       1     TRUE   semi-furnished
## 99            FALSE            TRUE       0     TRUE      unfurnished
## 100           FALSE           FALSE       0     TRUE      unfurnished
## 101           FALSE            TRUE       0     TRUE      unfurnished
## 102           FALSE           FALSE       1     TRUE      unfurnished
## 103           FALSE            TRUE       1    FALSE   semi-furnished
## 104           FALSE            TRUE       0    FALSE        furnished
## 105           FALSE           FALSE       2     TRUE        furnished
## 106           FALSE            TRUE       0    FALSE      unfurnished
## 107           FALSE            TRUE       0     TRUE   semi-furnished
## 108           FALSE           FALSE       0     TRUE      unfurnished
## 109           FALSE           FALSE       1    FALSE   semi-furnished
## 110            TRUE           FALSE       1    FALSE   semi-furnished
## 111           FALSE           FALSE       2     TRUE   semi-furnished
## 112           FALSE            TRUE       2       NA      unfurnished
## 113           FALSE           FALSE       0    FALSE        furnished
## 114           FALSE           FALSE       2     TRUE        furnished
## 115           FALSE           FALSE       2       NA        furnished
## 116           FALSE            TRUE       2     TRUE   semi-furnished
## 117           FALSE           FALSE       0       NA      unfurnished
## 118           FALSE            TRUE       0    FALSE        furnished
## 119           FALSE            TRUE       0     TRUE        furnished
## 120           FALSE            TRUE       2     TRUE   semi-furnished
## 121           FALSE           FALSE       2     TRUE        furnished
## 122           FALSE            TRUE       0     TRUE   semi-furnished
## 123           FALSE           FALSE       1     TRUE   semi-furnished
## 124           FALSE           FALSE       0    FALSE        furnished
## 125           FALSE           FALSE       1    FALSE        furnished
## 126           FALSE            TRUE       2    FALSE   semi-furnished
## 127           FALSE           FALSE       2     TRUE      unfurnished
## 128           FALSE            TRUE       0       NA      unfurnished
## 129           FALSE            TRUE       1    FALSE        furnished
## 130           FALSE           FALSE       2     TRUE   semi-furnished
## 131           FALSE           FALSE       0       NA      unfurnished
## 132           FALSE           FALSE       0    FALSE   semi-furnished
## 133           FALSE            TRUE       0    FALSE   semi-furnished
## 134           FALSE            TRUE       0    FALSE      unfurnished
## 135           FALSE           FALSE       2     TRUE   semi-furnished
## 136           FALSE            TRUE       0    FALSE      unfurnished
## 137           FALSE            TRUE       2    FALSE      unfurnished
## 138           FALSE           FALSE       1    FALSE   semi-furnished
## 139           FALSE            TRUE       0    FALSE   semi-furnished
## 140           FALSE            TRUE       2     TRUE        furnished
## 141           FALSE            TRUE       0    FALSE      unfurnished
## 142           FALSE           FALSE       1     TRUE   semi-furnished
## 143           FALSE           FALSE       1    FALSE   semi-furnished
## 144            TRUE           FALSE       0    FALSE      unfurnished
## 145           FALSE            TRUE       1    FALSE        furnished
## 146           FALSE           FALSE       0    FALSE        furnished
## 147           FALSE           FALSE       1    FALSE   semi-furnished
## 148           FALSE           FALSE       1    FALSE   semi-furnished
## 149           FALSE           FALSE       0     TRUE   semi-furnished
## 150           FALSE           FALSE       0     TRUE   semi-furnished
## 151           FALSE            TRUE       0     TRUE      unfurnished
## 152           FALSE            TRUE       2     TRUE   semi-furnished
## 153           FALSE            TRUE       0     TRUE        furnished
## 154           FALSE           FALSE       0       NA   semi-furnished
## 155           FALSE           FALSE       2    FALSE   semi-furnished
## 156           FALSE           FALSE       2     TRUE        furnished
## 157           FALSE           FALSE       0     TRUE   semi-furnished
## 158           FALSE           FALSE       1    FALSE        furnished
## 159           FALSE           FALSE       2    FALSE   semi-furnished
## 160           FALSE            TRUE       0    FALSE        furnished
## 161           FALSE            TRUE       0       NA        furnished
## 162           FALSE            TRUE       0     TRUE   semi-furnished
## 163           FALSE           FALSE       0     TRUE   semi-furnished
## 164           FALSE            TRUE       0     TRUE   semi-furnished
## 165           FALSE           FALSE       1     TRUE        furnished
## 166            TRUE           FALSE       0    FALSE      unfurnished
## 167           FALSE            TRUE       2     TRUE      unfurnished
## 168           FALSE            TRUE       2    FALSE   semi-furnished
## 169           FALSE            TRUE       0    FALSE        furnished
## 170           FALSE            TRUE       0    FALSE   semi-furnished
## 171           FALSE           FALSE       0    FALSE   semi-furnished
## 172           FALSE           FALSE       1     TRUE   semi-furnished
## 173           FALSE            TRUE       2     TRUE      unfurnished
## 174           FALSE            TRUE       0     TRUE      unfurnished
## 175           FALSE           FALSE       1     TRUE      unfurnished
## 176           FALSE           FALSE       2    FALSE   semi-furnished
## 177           FALSE            TRUE       2    FALSE        furnished
## 178           FALSE           FALSE       0     TRUE   semi-furnished
## 179           FALSE           FALSE       2     TRUE   semi-furnished
## 180           FALSE           FALSE       2       NA   semi-furnished
## 181           FALSE            TRUE       2    FALSE   semi-furnished
## 182           FALSE           FALSE       1     TRUE        furnished
## 183           FALSE            TRUE       0    FALSE   semi-furnished
## 184           FALSE           FALSE       1     TRUE   semi-furnished
## 185           FALSE           FALSE       0    FALSE        furnished
## 186           FALSE           FALSE       0    FALSE      unfurnished
## 187           FALSE           FALSE       0     TRUE        furnished
## 188           FALSE            TRUE       0     TRUE   semi-furnished
## 189           FALSE            TRUE       0     TRUE      unfurnished
## 190           FALSE           FALSE       0    FALSE   semi-furnished
## 191           FALSE            TRUE       2    FALSE        furnished
## 192           FALSE           FALSE       0    FALSE   semi-furnished
## 193           FALSE           FALSE       0     TRUE        furnished
## 194           FALSE           FALSE       0    FALSE   semi-furnished
## 195           FALSE           FALSE       0    FALSE   semi-furnished
## 196           FALSE           FALSE       2    FALSE   semi-furnished
## 197            TRUE           FALSE       0    FALSE   semi-furnished
## 198           FALSE            TRUE       1    FALSE   semi-furnished
## 199           FALSE            TRUE       0    FALSE   semi-furnished
## 200           FALSE           FALSE       1       NA        furnished
## 201           FALSE            TRUE       0    FALSE   semi-furnished
## 202           FALSE            TRUE       0    FALSE   semi-furnished
## 203           FALSE           FALSE       1    FALSE   semi-furnished
## 204           FALSE           FALSE       0    FALSE   semi-furnished
## 205           FALSE           FALSE       0    FALSE   semi-furnished
## 206           FALSE            TRUE       2    FALSE   semi-furnished
## 207           FALSE            TRUE       0       NA   semi-furnished
## 208           FALSE            TRUE       0    FALSE   semi-furnished
## 209           FALSE           FALSE       0    FALSE   semi-furnished
## 210           FALSE           FALSE       0    FALSE      unfurnished
## 211           FALSE           FALSE       2    FALSE   semi-furnished
## 212           FALSE           FALSE       2    FALSE        furnished
## 213           FALSE            TRUE       2    FALSE   semi-furnished
## 214           FALSE           FALSE       0       NA   semi-furnished
## 215           FALSE           FALSE       0    FALSE      unfurnished
## 216           FALSE           FALSE       0    FALSE      unfurnished
## 217           FALSE           FALSE       2     TRUE   semi-furnished
## 218           FALSE            TRUE       2     TRUE        furnished
## 219           FALSE            TRUE       0     TRUE   semi-furnished
## 220           FALSE           FALSE       0    FALSE      unfurnished
## 221           FALSE            TRUE       2    FALSE   semi-furnished
## 222           FALSE           FALSE       0    FALSE   semi-furnished
## 223           FALSE            TRUE       2    FALSE   semi-furnished
## 224           FALSE            TRUE       1    FALSE        furnished
## 225           FALSE            TRUE       2     TRUE      unfurnished
## 226           FALSE            TRUE       3    FALSE   semi-furnished
## 227           FALSE            TRUE       0    FALSE   semi-furnished
## 228           FALSE            TRUE       1    FALSE        furnished
## 229           FALSE           FALSE       2    FALSE   semi-furnished
## 230           FALSE           FALSE       1    FALSE   semi-furnished
## 231           FALSE           FALSE       0     TRUE   semi-furnished
## 232           FALSE           FALSE       0     TRUE   semi-furnished
## 233           FALSE           FALSE       0       NA        furnished
## 234           FALSE            TRUE       0    FALSE      unfurnished
## 235           FALSE           FALSE       2    FALSE   semi-furnished
## 236           FALSE            TRUE       1    FALSE   semi-furnished
## 237           FALSE           FALSE       0     TRUE   semi-furnished
## 238           FALSE           FALSE       0    FALSE   semi-furnished
## 239           FALSE           FALSE       0    FALSE   semi-furnished
## 240           FALSE           FALSE       1       NA        furnished
## 241           FALSE           FALSE       1     TRUE   semi-furnished
## 242           FALSE           FALSE       2       NA   semi-furnished
## 243           FALSE            TRUE       0    FALSE        furnished
## 244           FALSE           FALSE       0    FALSE        furnished
## 245           FALSE           FALSE       0     TRUE   semi-furnished
## 246           FALSE           FALSE       2     TRUE      unfurnished
## 247           FALSE           FALSE       0     TRUE   semi-furnished
## 248           FALSE           FALSE       3    FALSE      unfurnished
## 249           FALSE           FALSE       0    FALSE   semi-furnished
## 250           FALSE           FALSE       0     TRUE        furnished
## 251           FALSE           FALSE       0    FALSE   semi-furnished
## 252           FALSE           FALSE       1    FALSE   semi-furnished
## 253           FALSE           FALSE       0    FALSE   semi-furnished
## 254           FALSE           FALSE       0     TRUE        furnished
## 255           FALSE            TRUE       2    FALSE   semi-furnished
## 256           FALSE            TRUE       1    FALSE      unfurnished
## 257           FALSE           FALSE       2       NA        furnished
## 258           FALSE           FALSE       0    FALSE        furnished
## 259           FALSE           FALSE       1    FALSE   semi-furnished
## 260           FALSE            TRUE       1    FALSE        furnished
## 261           FALSE            TRUE       1    FALSE        furnished
## 262           FALSE           FALSE       0    FALSE   semi-furnished
## 263           FALSE           FALSE       0    FALSE   semi-furnished
## 264           FALSE           FALSE       0    FALSE   semi-furnished
## 265           FALSE           FALSE       0    FALSE   semi-furnished
## 266           FALSE           FALSE       0     TRUE   semi-furnished
## 267           FALSE           FALSE       2     TRUE      unfurnished
## 268           FALSE           FALSE       1       NA   semi-furnished
## 269           FALSE            TRUE       0    FALSE   semi-furnished
## 270           FALSE           FALSE       0    FALSE      unfurnished
## 271            TRUE           FALSE       1       NA        furnished
## 272           FALSE           FALSE       0    FALSE   semi-furnished
## 273           FALSE           FALSE       2    FALSE   semi-furnished
## 274           FALSE           FALSE       2    FALSE        furnished
## 275           FALSE           FALSE       0    FALSE   semi-furnished
## 276           FALSE           FALSE       0    FALSE        furnished
## 277           FALSE           FALSE       1    FALSE   semi-furnished
## 278           FALSE           FALSE       1     TRUE   semi-furnished
## 279           FALSE           FALSE       2     TRUE   semi-furnished
## 280           FALSE           FALSE       0    FALSE        furnished
## 281           FALSE           FALSE       0    FALSE      unfurnished
## 282           FALSE            TRUE       2    FALSE        furnished
## 283           FALSE            TRUE       0    FALSE      unfurnished
## 284           FALSE           FALSE       0    FALSE        furnished
## 285           FALSE           FALSE       1    FALSE        furnished
## 286           FALSE           FALSE       0    FALSE   semi-furnished
## 287           FALSE           FALSE       0     TRUE        furnished
## 288           FALSE            TRUE       0    FALSE      unfurnished
## 289           FALSE            TRUE       0    FALSE      unfurnished
## 290           FALSE           FALSE       2    FALSE   semi-furnished
## 291           FALSE           FALSE       0       NA   semi-furnished
## 292           FALSE            TRUE       0    FALSE      unfurnished
## 293           FALSE           FALSE       0    FALSE   semi-furnished
## 294           FALSE           FALSE       1    FALSE      unfurnished
## 295           FALSE           FALSE       0    FALSE   semi-furnished
## 296           FALSE           FALSE       0    FALSE   semi-furnished
## 297           FALSE            TRUE       1    FALSE   semi-furnished
## 298           FALSE           FALSE       0    FALSE      unfurnished
## 299            TRUE           FALSE       2    FALSE   semi-furnished
## 300           FALSE           FALSE       3    FALSE        furnished
## 301           FALSE           FALSE       0    FALSE   semi-furnished
## 302           FALSE           FALSE       0     TRUE   semi-furnished
## 303           FALSE           FALSE       1     TRUE      unfurnished
## 304           FALSE           FALSE       0    FALSE        furnished
## 305           FALSE           FALSE       3    FALSE   semi-furnished
## 306           FALSE           FALSE       1    FALSE   semi-furnished
## 307           FALSE           FALSE       1    FALSE   semi-furnished
## 308           FALSE           FALSE       2    FALSE   semi-furnished
## 309           FALSE           FALSE       1    FALSE   semi-furnished
## 310           FALSE            TRUE       0    FALSE   semi-furnished
## 311           FALSE           FALSE       0    FALSE   semi-furnished
## 312           FALSE           FALSE       1    FALSE   semi-furnished
## 313           FALSE            TRUE       0     TRUE        furnished
## 314           FALSE           FALSE       0    FALSE   semi-furnished
## 315           FALSE           FALSE       1    FALSE   semi-furnished
## 316           FALSE            TRUE       0    FALSE   semi-furnished
## 317           FALSE           FALSE       1    FALSE      unfurnished
## 318           FALSE           FALSE       2    FALSE      unfurnished
## 319           FALSE           FALSE       0       NA   semi-furnished
## 320           FALSE            TRUE       2    FALSE   semi-furnished
## 321           FALSE           FALSE       2     TRUE        furnished
## 322            TRUE           FALSE       2    FALSE   semi-furnished
## 323           FALSE            TRUE       1    FALSE        furnished
## 324           FALSE           FALSE       3    FALSE   semi-furnished
## 325           FALSE            TRUE       0    FALSE   semi-furnished
## 326           FALSE            TRUE       0    FALSE   semi-furnished
## 327           FALSE           FALSE       0    FALSE      unfurnished
## 328           FALSE            TRUE       1    FALSE   semi-furnished
## 329           FALSE            TRUE       0    FALSE   semi-furnished
## 330           FALSE           FALSE       0    FALSE        furnished
## 331           FALSE           FALSE       0     TRUE      unfurnished
## 332           FALSE           FALSE       3    FALSE        furnished
## 333           FALSE           FALSE       0       NA   semi-furnished
## 334           FALSE           FALSE       0       NA   semi-furnished
## 335            TRUE           FALSE       1    FALSE        furnished
## 336           FALSE            TRUE       2    FALSE        furnished
## 337           FALSE            TRUE       2    FALSE   semi-furnished
## 338           FALSE           FALSE       0     TRUE      unfurnished
## 339           FALSE           FALSE       0    FALSE   semi-furnished
## 340           FALSE           FALSE       0    FALSE        furnished
## 341           FALSE           FALSE       0    FALSE   semi-furnished
## 342           FALSE           FALSE       2    FALSE   semi-furnished
## 343           FALSE            TRUE       0    FALSE        furnished
## 344           FALSE           FALSE       0    FALSE   semi-furnished
## 345           FALSE           FALSE       0    FALSE   semi-furnished
## 346           FALSE           FALSE       0       NA   semi-furnished
## 347           FALSE           FALSE       0     TRUE   semi-furnished
## 348           FALSE           FALSE       0    FALSE      unfurnished
## 349           FALSE           FALSE       0    FALSE   semi-furnished
## 350           FALSE           FALSE       0    FALSE   semi-furnished
## 351            TRUE           FALSE       1    FALSE   semi-furnished
## 352           FALSE           FALSE       0    FALSE   semi-furnished
## 353           FALSE           FALSE       2    FALSE      unfurnished
## 354           FALSE           FALSE       0     TRUE        furnished
## 355           FALSE           FALSE       1    FALSE        furnished
## 356           FALSE           FALSE       2    FALSE        furnished
## 357           FALSE            TRUE       1    FALSE        furnished
## 358           FALSE           FALSE       1    FALSE        furnished
## 359           FALSE           FALSE       0     TRUE   semi-furnished
## 360           FALSE           FALSE       1    FALSE      unfurnished
## 361           FALSE           FALSE       0    FALSE   semi-furnished
## 362           FALSE           FALSE       0    FALSE   semi-furnished
## 363           FALSE           FALSE       0    FALSE        furnished
## 364            TRUE           FALSE       0    FALSE   semi-furnished
## 365            TRUE           FALSE       0    FALSE   semi-furnished
## 366           FALSE           FALSE       0       NA        furnished
## 367           FALSE           FALSE       0    FALSE        furnished
## 368           FALSE            TRUE       0    FALSE      unfurnished
## 369           FALSE           FALSE       0    FALSE   semi-furnished
## 370           FALSE           FALSE       0    FALSE        furnished
## 371           FALSE            TRUE       2    FALSE   semi-furnished
## 372           FALSE           FALSE       0    FALSE   semi-furnished
## 373           FALSE           FALSE       0    FALSE   semi-furnished
## 374           FALSE            TRUE       0    FALSE        furnished
## 375           FALSE           FALSE       0    FALSE   semi-furnished
## 376           FALSE           FALSE       0    FALSE      unfurnished
## 377           FALSE           FALSE       2    FALSE   semi-furnished
## 378           FALSE           FALSE       0       NA      unfurnished
## 379            TRUE            TRUE       0       NA   semi-furnished
## 380           FALSE           FALSE       2     TRUE      unfurnished
## 381           FALSE           FALSE       0    FALSE   semi-furnished
## 382           FALSE           FALSE       0     TRUE   semi-furnished
## 383           FALSE           FALSE       0    FALSE        furnished
## 384           FALSE           FALSE       2    FALSE        furnished
## 385           FALSE           FALSE       0    FALSE        furnished
## 386           FALSE           FALSE       0    FALSE      unfurnished
## 387           FALSE           FALSE       2    FALSE      unfurnished
## 388           FALSE            TRUE       0    FALSE   semi-furnished
## 389           FALSE           FALSE       0    FALSE      unfurnished
## 390           FALSE           FALSE       0    FALSE   semi-furnished
## 391           FALSE           FALSE       0    FALSE      unfurnished
## 392           FALSE           FALSE       0    FALSE   semi-furnished
## 393           FALSE           FALSE       0    FALSE   semi-furnished
## 394           FALSE           FALSE       0    FALSE      unfurnished
## 395           FALSE            TRUE       0    FALSE      unfurnished
## 396           FALSE           FALSE       1    FALSE      unfurnished
## 397           FALSE           FALSE       1    FALSE   semi-furnished
## 398           FALSE           FALSE       1       NA        furnished
## 399           FALSE           FALSE       1    FALSE      unfurnished
## 400           FALSE           FALSE       1    FALSE   semi-furnished
## 401           FALSE           FALSE       1     TRUE      unfurnished
## 402           FALSE           FALSE       3     TRUE      unfurnished
## 403           FALSE           FALSE       0       NA      unfurnished
## 404           FALSE           FALSE       0    FALSE      unfurnished
## 405           FALSE           FALSE       0    FALSE      unfurnished
## 406           FALSE           FALSE       0    FALSE      unfurnished
## 407           FALSE           FALSE       1     TRUE      unfurnished
## 408           FALSE           FALSE       0     TRUE        furnished
## 409           FALSE           FALSE       0    FALSE      unfurnished
## 410           FALSE           FALSE       2    FALSE      unfurnished
## 411           FALSE           FALSE       0    FALSE      unfurnished
## 412           FALSE           FALSE       0     TRUE        furnished
## 413           FALSE           FALSE       0     TRUE      unfurnished
## 414           FALSE           FALSE       0     TRUE      unfurnished
## 415           FALSE           FALSE       0    FALSE      unfurnished
## 416           FALSE            TRUE       1    FALSE        furnished
## 417           FALSE           FALSE       2    FALSE      unfurnished
## 418           FALSE           FALSE       0    FALSE        furnished
## 419           FALSE            TRUE       2    FALSE      unfurnished
## 420           FALSE           FALSE       0    FALSE   semi-furnished
## 421           FALSE           FALSE       0    FALSE      unfurnished
## 422           FALSE           FALSE       0    FALSE      unfurnished
## 423           FALSE            TRUE       0    FALSE      unfurnished
## 424           FALSE           FALSE       0    FALSE      unfurnished
## 425           FALSE           FALSE       0    FALSE   semi-furnished
## 426           FALSE           FALSE       2    FALSE        furnished
## 427           FALSE           FALSE       0       NA        furnished
## 428           FALSE           FALSE       0     TRUE        furnished
## 429           FALSE           FALSE       1    FALSE      unfurnished
## 430           FALSE           FALSE       0    FALSE      unfurnished
## 431           FALSE            TRUE       0    FALSE      unfurnished
## 432           FALSE            TRUE       0    FALSE      unfurnished
## 433           FALSE           FALSE       0    FALSE        furnished
## 434           FALSE           FALSE       1    FALSE   semi-furnished
## 435           FALSE           FALSE       0    FALSE   semi-furnished
## 436           FALSE           FALSE       0    FALSE      unfurnished
## 437           FALSE           FALSE       0       NA        furnished
## 438           FALSE           FALSE       1       NA      unfurnished
## 439           FALSE           FALSE       0    FALSE   semi-furnished
## 440           FALSE           FALSE       0    FALSE      unfurnished
## 441           FALSE           FALSE       0    FALSE      unfurnished
## 442           FALSE           FALSE       0    FALSE      unfurnished
## 443           FALSE            TRUE       1    FALSE      unfurnished
## 444           FALSE           FALSE       1    FALSE      unfurnished
## 445           FALSE           FALSE       0    FALSE        furnished
## 446           FALSE           FALSE       0    FALSE        furnished
## 447           FALSE           FALSE       1       NA      unfurnished
## 448           FALSE           FALSE       0    FALSE   semi-furnished
## 449           FALSE           FALSE       2    FALSE   semi-furnished
## 450           FALSE           FALSE       0    FALSE      unfurnished
## 451           FALSE           FALSE       0    FALSE   semi-furnished
## 452           FALSE           FALSE       0    FALSE   semi-furnished
## 453           FALSE           FALSE       2    FALSE   semi-furnished
## 454           FALSE           FALSE       1    FALSE      unfurnished
## 455           FALSE            TRUE       0    FALSE      unfurnished
## 456           FALSE           FALSE       0    FALSE      unfurnished
## 457           FALSE           FALSE       0     TRUE   semi-furnished
## 458           FALSE            TRUE       0    FALSE      unfurnished
## 459           FALSE           FALSE       0    FALSE      unfurnished
## 460           FALSE           FALSE       0    FALSE      unfurnished
## 461           FALSE           FALSE       1       NA      unfurnished
## 462           FALSE            TRUE       0       NA      unfurnished
## 463           FALSE           FALSE       0    FALSE   semi-furnished
## 464           FALSE           FALSE       0    FALSE      unfurnished
## 465            TRUE           FALSE       1    FALSE   semi-furnished
## 466           FALSE           FALSE       0    FALSE      unfurnished
## 467           FALSE           FALSE       0       NA   semi-furnished
## 468           FALSE           FALSE       2    FALSE   semi-furnished
## 469           FALSE           FALSE       0    FALSE   semi-furnished
## 470           FALSE           FALSE       0    FALSE        furnished
## 471           FALSE           FALSE       0    FALSE      unfurnished
## 472           FALSE           FALSE       0    FALSE      unfurnished
## 473           FALSE           FALSE       3    FALSE   semi-furnished
## 474           FALSE           FALSE       0       NA      unfurnished
## 475           FALSE           FALSE       1    FALSE      unfurnished
## 476           FALSE           FALSE       0       NA   semi-furnished
## 477           FALSE           FALSE       1    FALSE      unfurnished
## 478           FALSE           FALSE       0    FALSE      unfurnished
## 479           FALSE           FALSE       1    FALSE      unfurnished
## 480           FALSE           FALSE       0    FALSE      unfurnished
## 481           FALSE           FALSE       1    FALSE   semi-furnished
## 482           FALSE           FALSE       0    FALSE        furnished
## 483           FALSE           FALSE       0    FALSE      unfurnished
## 484           FALSE           FALSE       0       NA   semi-furnished
## 485           FALSE           FALSE       0    FALSE      unfurnished
## 486           FALSE           FALSE       0    FALSE      unfurnished
## 487           FALSE           FALSE       0    FALSE   semi-furnished
## 488           FALSE           FALSE       0    FALSE      unfurnished
## 489           FALSE           FALSE       0    FALSE      unfurnished
## 490           FALSE           FALSE       1    FALSE   semi-furnished
## 491            TRUE           FALSE       1    FALSE      unfurnished
## 492           FALSE           FALSE       1       NA        furnished
## 493           FALSE           FALSE       1    FALSE      unfurnished
## 494           FALSE           FALSE       0       NA        furnished
## 495           FALSE           FALSE       0    FALSE      unfurnished
## 496           FALSE           FALSE       1    FALSE      unfurnished
## 497           FALSE           FALSE       0    FALSE      unfurnished
## 498           FALSE           FALSE       0    FALSE      unfurnished
## 499           FALSE           FALSE       0    FALSE   semi-furnished
## 500           FALSE           FALSE       0    FALSE      unfurnished
## 501           FALSE           FALSE       0    FALSE      unfurnished
## 502           FALSE           FALSE       0       NA      unfurnished
## 503           FALSE           FALSE       1    FALSE   semi-furnished
## 504           FALSE           FALSE       0       NA   semi-furnished
## 505           FALSE            TRUE       0    FALSE      unfurnished
## 506           FALSE            TRUE       0    FALSE      unfurnished
## 507           FALSE           FALSE       0    FALSE      unfurnished
## 508           FALSE           FALSE       0    FALSE      unfurnished
## 509           FALSE           FALSE       0    FALSE      unfurnished
## 510           FALSE           FALSE       1    FALSE        furnished
## 511           FALSE           FALSE       0    FALSE      unfurnished
## 512           FALSE           FALSE       0    FALSE      unfurnished
## 513           FALSE           FALSE       0    FALSE        furnished
## 514           FALSE           FALSE       0    FALSE      unfurnished
## 515           FALSE           FALSE       0    FALSE   semi-furnished
## 516           FALSE           FALSE       0    FALSE      unfurnished
## 517           FALSE           FALSE       1       NA      unfurnished
## 518           FALSE           FALSE       1    FALSE      unfurnished
## 519           FALSE           FALSE       0    FALSE      unfurnished
## 520           FALSE           FALSE       0    FALSE      unfurnished
## 521           FALSE           FALSE       0    FALSE      unfurnished
## 522           FALSE           FALSE       0    FALSE      unfurnished
## 523           FALSE           FALSE       0    FALSE        furnished
## 524           FALSE           FALSE       0    FALSE        furnished
## 525           FALSE           FALSE       0    FALSE      unfurnished
## 526           FALSE           FALSE       0    FALSE      unfurnished
## 527           FALSE           FALSE       0    FALSE      unfurnished
## 528           FALSE           FALSE       0    FALSE   semi-furnished
## 529           FALSE           FALSE       0    FALSE      unfurnished
## 530           FALSE           FALSE       0    FALSE      unfurnished
## 531            TRUE           FALSE       0    FALSE      unfurnished
## 532           FALSE            TRUE       0     TRUE      unfurnished
## 533           FALSE           FALSE       0    FALSE      unfurnished
## 534           FALSE           FALSE       0    FALSE      unfurnished
## 535           FALSE           FALSE       0    FALSE      unfurnished
## 536           FALSE           FALSE       1    FALSE      unfurnished
## 537           FALSE           FALSE       0    FALSE      unfurnished
## 538           FALSE           FALSE       0       NA      unfurnished
## 539           FALSE           FALSE       0    FALSE      unfurnished
## 540           FALSE           FALSE       1    FALSE      unfurnished
## 541           FALSE           FALSE       2    FALSE      unfurnished
## 542           FALSE           FALSE       0    FALSE   semi-furnished
## 543           FALSE           FALSE       0    FALSE      unfurnished
## 544           FALSE           FALSE       0    FALSE        furnished
## 545           FALSE           FALSE       0    FALSE      unfurnished

Analiza struktury danych pod kątem zmiennych

logical_columns <- c("mainroad", "guestroom", "basement", "hotwaterheating", "airconditioning", "prefarea")

for (col in logical_columns) {
  total <- sum(!is.na(data[[col]]))
  true_percent <- round(sum(data[[col]] == TRUE, na.rm = TRUE) / total * 100, 2)
  false_percent <- round(sum(data[[col]] == FALSE, na.rm = TRUE) / total * 100, 2)
  cat(sprintf("Kolumna: %s, TRUE: %.2f%%, FALSE: %.2f%%\n", col, true_percent, false_percent))
}
## Kolumna: mainroad, TRUE: 86.46%, FALSE: 13.54%
## Kolumna: guestroom, TRUE: 17.80%, FALSE: 82.20%
## Kolumna: basement, TRUE: 35.05%, FALSE: 64.95%
## Kolumna: hotwaterheating, TRUE: 4.59%, FALSE: 95.41%
## Kolumna: airconditioning, TRUE: 31.56%, FALSE: 68.44%
## Kolumna: prefarea, TRUE: 24.65%, FALSE: 75.35%

Kolumna: mainroad, TRUE: 86.46%, FALSE: 13.54% Kolumna: guestroom, TRUE: 17.80%, FALSE: 82.20% Kolumna: basement, TRUE: 35.05%, FALSE: 64.95% Kolumna: hotwaterheating, TRUE: 4.59%, FALSE: 95.41% Kolumna: airconditioning, TRUE: 31.56%, FALSE: 68.44% Kolumna: prefarea, TRUE: 24.65%, FALSE: 75.35%

Dodatkowo aby lepiej zobarzować dane pokazane w podsumowaniu tworzymy wykresy słupkowe dla podanych zmiennych

for (col in logical_columns) {
  true_percent <- mean(data[[col]] == TRUE, na.rm = TRUE) * 100
  false_percent <- mean(data[[col]] == FALSE, na.rm = TRUE) * 100
  
  barplot(
    c("TRUE" = true_percent, "FALSE" = false_percent),
    main = paste("Procent TRUE/FALSE dla", col),
    ylab = "Procent",
    col = c("lightblue", "lightcoral")
  )
}

Analiza struktury danych dla zmiennej ‘furnishingstatus’

furnishing_counts <- table(data$furnishingstatus)
furnishing_percentages <- round(prop.table(furnishing_counts) * 100, 2)


print(furnishing_percentages)
## 
##      furnished semi-furnished    unfurnished 
##          25.69          41.65          32.66
barplot(
  furnishing_percentages,
  main = "Procentowy rozkład furnishingstatus",
  ylab = "Procent",
  col = c("lightblue", "lightgreen", "lightcoral"),
  names.arg = names(furnishing_percentages)
)

Imputacja braków danych metodą sequential hotdeck

Zdecydowałyśmy się na metodę sequential hot-deck do imputacji brakujących danych.Metoda Sequential hot-deck wykorzystuje rzeczywiste wartości z naszego zbioru danych, co sprawia, że prawdopodobieństwo wprowadzenia sztucznych wartości jest małe. Dodatkowo załeży nam na zachowaniu naturalnego rozkładu danych. Metoda ta jest elastyczna i działa zarówno dla danych liczbowych, jak i kategorycznych, nie wymagając założeń o rozkładzie zmiennych. Dodatkowo, metoda ta jest odporna na outliery co było dla nas ważne po wcześniejszym zbadaniu ich występowania dla zmiennych price i area. na koniec prównamy brakujące dane przed i po imputacji aby upewnić się, że proces przebiegł pomyślnie.

data_not_cleaned <- hotdeck(data)


cat("Liczba brakujących wartości po imputacji:", sum(is.na(data_not_cleaned)), "\n")
## Liczba brakujących wartości po imputacji: 0
remove_imp_columns <- function(df) {
 
  if (!is.data.frame(df)) {
    stop("Podany obiekt nie jest ramką danych")
  }
  
 
  imp_cols <- grep("_imp$", colnames(df), value = TRUE)
  
 
  if (length(imp_cols) == 0) {
    message("Nie znaleziono kolumn z '_imp' w nazwie.")
    return(df)
  }
  

  df_cleaned <- df[, !colnames(df) %in% imp_cols]
  
  message("Usunięto następujące kolumny: ", paste(imp_cols, collapse = ", "))
  
  return(df_cleaned)
}


data_imputed <- remove_imp_columns(data_not_cleaned)
## Usunięto następujące kolumny: price_imp, area_imp, bedrooms_imp, bathrooms_imp, stories_imp, mainroad_imp, guestroom_imp, basement_imp, hotwaterheating_imp, airconditioning_imp, parking_imp, prefarea_imp, furnishingstatus_imp
cat("Struktura danych po usunięciu kolumn '_imp':")
## Struktura danych po usunięciu kolumn '_imp':
str(data_imputed)
## 'data.frame':    545 obs. of  13 variables:
##  $ price           : int  4403000 12250000 12250000 12215000 11410000 10850000 10150000 10150000 9870000 9800000 ...
##  $ area            : num  7420 896 996 750 742 750 858 1620 810 575 ...
##  $ bedrooms        : int  4 4 3 4 4 3 4 5 4 3 ...
##  $ bathrooms       : int  2 4 2 2 1 3 3 3 1 2 ...
##  $ stories         : int  3 4 2 2 2 1 4 2 2 4 ...
##  $ mainroad        : logi  TRUE TRUE TRUE TRUE TRUE TRUE ...
##  $ guestroom       : logi  FALSE FALSE FALSE FALSE TRUE FALSE ...
##  $ basement        : logi  FALSE FALSE TRUE TRUE TRUE TRUE ...
##  $ hotwaterheating : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
##  $ airconditioning : logi  TRUE TRUE FALSE TRUE TRUE TRUE ...
##  $ parking         : int  2 3 2 3 2 2 2 0 2 1 ...
##  $ prefarea        : logi  TRUE FALSE TRUE TRUE FALSE TRUE ...
##  $ furnishingstatus: chr  "furnished" "furnished" "semi-furnished" "furnished" ...
head(data_imputed)
##      price area bedrooms bathrooms stories mainroad guestroom basement
## 1  4403000 7420        4         2       3     TRUE     FALSE    FALSE
## 2 12250000  896        4         4       4     TRUE     FALSE    FALSE
## 3 12250000  996        3         2       2     TRUE     FALSE     TRUE
## 4 12215000  750        4         2       2     TRUE     FALSE     TRUE
## 5 11410000  742        4         1       2     TRUE      TRUE     TRUE
## 6 10850000  750        3         3       1     TRUE     FALSE     TRUE
##   hotwaterheating airconditioning parking prefarea furnishingstatus
## 1           FALSE            TRUE       2     TRUE        furnished
## 2           FALSE            TRUE       3    FALSE        furnished
## 3           FALSE           FALSE       2     TRUE   semi-furnished
## 4           FALSE            TRUE       3     TRUE        furnished
## 5           FALSE            TRUE       2    FALSE        furnished
## 6           FALSE            TRUE       2     TRUE   semi-furnished

Normalizacja zmiennych numerycznych

Kolejnym etapem jest normalizacja zmiennych numerycznych, takich jak cena, powierzchnia, liczba sypialni, czy liczba miejsc parkingowych, co pozwala na przekształcenie danych do wspólnej skali bez utraty relatywnej informacji. Do tego celu wykorzystano metodę min-max scaling, która przekształca wartości w przedziale od 0 do 1, co ułatwia dalsze analizy statystyczne oraz modelowanie. Proces normalizacji zapewnia większą spójność danych i eliminuje wpływ różnych skal poszczególnych zmiennych na wyniki analizy.Dzięki zastosowanym technikom przetwarzania danych uzyskane wyniki pozwolą na dokładniejszą interpretację wpływu poszczególnych cech nieruchomości na ich wartość rynkową oraz na lepsze przygotowanie danych do wykorzystania w modelach predykcyjnych.

minmax <- function(data, columns_to_normalize) {
  # Sprawdzenie, czy podane kolumny istnieją w danych
  missing_cols <- setdiff(columns_to_normalize, colnames(data))
  if (length(missing_cols) > 0) {
    stop(paste("Nie znaleziono kolumn:", paste(missing_cols, collapse = ", ")))
  }
  
  # Normalizacja wybranych kolumn
  data_imputed <- data %>%
    mutate(across(all_of(columns_to_normalize), 
                  ~ ifelse(all(is.na(.)), NA,  # Jeśli wszystkie wartości NA, zwróć NA
                           ifelse((max(., na.rm = TRUE) - min(., na.rm = TRUE)) == 0, 
                                  0,  # Jeśli brak rozstępu, przypisz 0
                                  (.-min(., na.rm = TRUE)) / (max(., na.rm = TRUE) - min(., na.rm = TRUE)))),
                  .names = "norm_{.col}"))
  
  return(data_imputed)
}

Analiza opisowa

Najwięcej mieszkań znajduje się w przedziale 2.750.000-3.750.000 zł oraz 3.750.000-4.750.000 zł, co sugeruje, że większość ofert dotyczy mieszkań o średnim poziomie cenowym w badanym zbiorze.

Obserwujemy również, że liczba mieszkań maleje wraz ze wzrostem ceny – nieruchomości powyżej 10 milionów złotych stanowią niewielką część rynku. Jest to zgodne z intuicją, ponieważ luksusowe apartamenty są mniej liczne niż standardowe mieszkania.

Obliczenie częstości względnych i skumulowanych pozwala lepiej zrozumieć strukturę cen. Możemy określić, jaki procent mieszkań mieści się w określonych przedziałach, co ułatwia interpretację dostępności mieszkań w różnych segmentach cenowych. #### Podstawowe wykresy

Histogram

Analizujemy rozkład cen mieszkań za pomocą histogramu oraz funkcji gęstości. Po usunięciu wartości brakujących (NA), sprawdzamy zakres cenowy, który wskazuje na minimalną i maksymalną wartość ceny mieszkań w zbiorze danych.

data_imputed$price <- as.numeric(data_imputed$price)

filtered_prices <- na.omit(data_imputed$price)
print(filtered_prices)
##   [1]  4403000 12250000 12250000 12215000 11410000 10850000 10150000 10150000
##   [9]  9870000  9800000  9800000  9681000  6405000  9240000  9240000  9100000
##  [17]  9100000  8960000  8890000  8855000  8750000  8680000  2800000  8645000
##  [25]  3640000  8540000  8463000  8400000  8400000  8400000  8400000  8400000
##  [33]  8295000  8190000  8120000  8080940  8043000  7980000  7962500  7910000
##  [41]  7875000  9800000  7700000  7700000  7560000  3710000  7525000  3115000
##  [49]  7455000  7420000  7420000  6419000  7350000  7350000  4690000  7350000
##  [57]  7343000  7245000  7210000 10150000  7140000  7070000  3325000  7035000
##  [65]  1750000  6930000  6930000  6895000  6860000  3780000  6790000  6755000
##  [73]  6685000  6685000  6650000  4200000  4200000  6650000  6650000  2450000
##  [81]  6629000  6615000  6615000  6580000  6300000  6510000  6510000  6475000
##  [89]  6475000  6440000  6440000  6419000  6405000  6300000  6300000  6300000
##  [97]  6300000  6300000  6293000  6265000  6230000  3675000  6195000  6475000
## [105]  6195000  6160000  6160000  6125000  6107500  4473000  6090000  6090000
## [113]  6083000  3080000  6020000  6020000  4900000  6293000  5950000  5950000
## [121]  5950000  5950000  5950000  5950000  5950000  5943000  5880000  5880000
## [129]  5873000  5873000  9800000  5810000  4620000  5810000  5803000  5775000
## [137]  5740000  5740000  5740000  5740000  5740000  5652500  5600000  5600000
## [145]  3080000  5600000  5600000  7910000  5600000  5215000  5600000  5565000
## [153]  5565000  5530000  5530000  2940000  5145000  5495000  5495000  5460000
## [161]  5460000  5040000  5460000  5425000  2100000  5383000  5320000  5285000
## [169]  5250000  5250000  5250000  5250000  5215000  5250000  5250000  5250000
## [177]  5250000  5243000  5250000  3990000  5215000  8855000  5145000  5145000
## [185]  5110000  4025000  5110000  5110000  5075000  5040000  5040000  5040000
## [193]  5040000  2940000  5005000  4970000  4970000  4956000  4935000  4907000
## [201]  3290000  4900000  4900000  4900000  4900000  4900000  4900000  4900000
## [209]  9870000  4007500  4900000  4900000  3150000  4893000  4865000  5005000
## [217]  4543000  4830000  1820000  4795000  4795000  4767000  3423000  5950000
## [225]  4760000  4753000  4690000  4690000  9870000  4690000  4690000  4690000
## [233]  3129000  4620000  4620000  4620000  4620000  4620000  4613000  4585000
## [241]  4585000  4550000  2100000  3003000  6510000  4550000  4550000  4550000
## [249]  4543000  4543000  4515000  4515000  4515000  4515000  4480000  4480000
## [257]  4480000  4480000  4480000  4473000  4473000  4473000  4445000  4410000
## [265]  4410000  4403000  7140000  4403000  4382000  4375000  4340000  4340000
## [273]  4340000  4340000  4340000  4480000  4305000  4305000  4277000  4270000
## [281]  4270000  4270000  3675000  4270000  2800000  4235000  5145000  4200000
## [289]  4200000  4200000  4200000  4200000  4200000  4200000  4200000  4200000
## [297]  5565000  4200000  8043000  4200000  4200000  4200000  4200000  4200000
## [305] 12250000  4193000  4165000  7245000  4165000  6300000  4130000  4123000
## [313]  4098500  4095000  4095000  4095000  4060000  4060000  4060000  4060000
## [321]  4060000  4025000  3080000  4025000  4007500  4007500  3990000  3990000
## [329]  3990000  3990000  3990000  3920000  3920000  3920000  8080940  3990000
## [337]  3920000  3920000  3885000  3885000  3850000  4690000  3850000  3850000
## [345]  3850000  3850000  3850000  3836000  3815000  3780000  3780000  6195000
## [353]  3780000  3780000  5950000  3773000  3773000  3773000  3675000  3710000
## [361]  3710000  5810000  3710000  4200000  5460000  3703000  3675000  3290000
## [369]  7700000  3675000  3640000  3640000  3640000  3640000  3640000  3640000
## [377]  3640000  3640000  4900000  3633000  3605000  3605000  3570000  3570000
## [385]  3570000  3570000  2940000  3500000  4305000  3500000  3500000  1820000
## [393]  3500000  2450000  3500000  3500000  3500000  3500000  3500000  3500000
## [401]  3500000  2660000  3500000  3500000  3493000  4620000  3465000  7700000
## [409]  3430000  2408000  3430000  3430000  3430000  3430000  3423000  3395000
## [417]  3395000  3395000  3360000  3360000  3360000  5460000  3360000  3360000
## [425]  3360000  2520000  3353000  3332000  2450000  3325000  3290000  3290000
## [433]  3290000  3290000  3290000  4123000  3290000  3290000  3255000  3255000
## [441]  3234000  3220000  3220000  3220000  4060000  3150000  3150000  3150000
## [449]  3150000  3150000  3150000  3150000  6755000  4123000  3143000  3129000
## [457]  3118850  3115000  3115000  3115000  3087000  3080000  3080000  3150000
## [465]  3080000  3045000  3010000  5040000  3010000  3010000  3010000  3010000
## [473]  3010000  3003000  2975000  2961000  2660000  2940000  8295000  2940000
## [481]  2852500  2940000  2940000  2940000  2870000  2870000  2870000  2870000
## [489]  2852500  2835000  2835000  3395000  2800000  2800000  2730000  4795000
## [497]  4200000  2660000  2660000  2660000  2660000  4613000  7350000  4515000
## [505]  2653000  2653000  2604000  2590000  4690000  2590000  2520000  6300000
## [513]  2520000  2485000  2485000  2450000  2450000  2450000  2450000  3360000
## [521]  2450000  2408000  2380000  2380000  2380000  5040000  2310000  3675000
## [529]  2275000  2275000  2240000  2233000  2135000  2100000  2100000  2100000
## [537]  3773000  4515000  1890000  1855000  1820000  3290000  1750000  1750000
## [545]  1750000
price_range <- range(filtered_prices, na.rm = TRUE)
print(price_range)
## [1]  1750000 12250000

Definiowanie przerw dla histogramu

breaks <- seq(floor(price_range[1] / 1000000) * 1000000, ceiling(price_range[2] / 1000000) * 1000000, by = 1000000)
print(breaks)
##  [1] 1.0e+06 2.0e+06 3.0e+06 4.0e+06 5.0e+06 6.0e+06 7.0e+06 8.0e+06 9.0e+06
## [10] 1.0e+07 1.1e+07 1.2e+07 1.3e+07

Rysowanie histogramu i gęstości

hist(filtered_prices, prob = TRUE, breaks = breaks, main = "Price", sub = "in PLN")
lines(density(filtered_prices), col = 2)

Histogram przedstawia liczbę mieszkań w różnych przedziałach cenowych, a dodatkowa linia gęstości (density()) pomaga zidentyfikować kształt rozkładu danych.

Na załączonym wykresie widzimy, że rozkład cen mieszkań jest prawostronnie skośny, co oznacza, że większość ofert dotyczy tańszych mieszkań, natomiast ceny luksusowych nieruchomości są bardziej rozproszone i występują rzadziej.

Najwięcej mieszkań znajduje się w przedziale około 3-5 mln zł, co jest zgodne z wcześniejszymi wynikami analizy tabeli częstości. Zauważamy również długi ogon rozkładu, wskazujący na obecność drogich nieruchomości, których ceny przekraczają 10 milionów złotych.

Tabela przedziałów cenowych

Tworzymy tabelę przedziałów cenowych z użyciem metody podziału na stałe klasy cenowe, co pozwala na czytelne przedstawienie częstości występowania mieszkań w określonych przedziałach.

kbl(table1, caption = "Ceny mieszkań") %>%
  kable_material(c("striped", "hover"))
Ceny mieszkań
limits Freq
1.750.000-2.750.000 46
2.750.000-3.750.000 135
3.750.000-4.750.000 137
4.750.000-5.750.000 83
5.750.000-6.750.000 64
6.750.000-7.750.000 28
7.750.000-8.750.000 23
8.750.000-9.750.000 9
9.750.000-10.750.000 10
10.750.000-11.750.000 2
tab1<-classIntervals(data_imputed$price,n=10,style="fixed",fixedBreaks=seq(1750000,12250000,by=1000000))
## Warning in classIntervals(data_imputed$price, n = 10, style = "fixed",
## fixedBreaks = seq(1750000, : variable range greater than fixedBreaks
price_range <- range(data_imputed$price, na.rm=TRUE)
print(price_range)
## [1]  1750000 12250000
jenks.tests(tab1)
##        # classes  Goodness of fit Tabular accuracy 
##       10.0000000        0.9792290        0.8414573

Obliczamy wskaźnik dokładności tabeli (TAI), który informuje nas, jak dobrze wybrane przedziały odzwierciedlają rzeczywisty rozkład danych.

Wskaźnik TAI jest dość wysoki. 0,84 oznacza, że możemy zaakceptować zaproponowaną konstrukcję tablicy częstości, czyli możemy uznać ten podział za reprezentatywny dla zbioru danych.

Dodatkowo, wartość Goodness of Fit = 0,978 sugeruje, że klasyfikacja danych według wybranej metody pozwala na bardzo dobre odwzorowanie rzeczywistego rozkładu cen. Oznacza to, że analizowane przedziały cenowe są sensowne i dobrze opisują strukturę rynku mieszkań. #### Analiza skumulowanego rozkładu cen mieszkań z wykorzystaniem ECDF.

tab1<-classIntervals(data_imputed$price,n=10,style="fixed",fixedBreaks=seq(1750000,12250000,by=1000000))
## Warning in classIntervals(data_imputed$price, n = 10, style = "fixed",
## fixedBreaks = seq(1750000, : variable range greater than fixedBreaks
pcol= c('darkblue', 'blue', 'lightblue', 'palegreen', 'lightpink', 'brown3', 'red', 'yellow', 'brown', 'black')
colcode=findColours(tab1,pcol)
plot(tab1,pal=pcol,ylab='Cumulative %')

Wykres ten przedstawia, jaka część obserwacji znajduje się poniżej określonych wartości cenowych, co pozwala na ocenę struktury rynku nieruchomości.

Krzywa dystrybuanty pokazuje, że większość mieszkań znajduje się w niższych przedziałach cenowych – około 80% nieruchomości kosztuje mniej niż 8 milionów złotych, a tylko niewielki odsetek przekracza 10 milionów złotych.

Dodatkowo, na wykresie zastosowane zostały kolorowe segmenty, które odpowiadają poszczególnym przedziałom cenowym, co ułatwia interpretację skumulowanego rozkładu. Można zauważyć, że największy wzrost wartości skumulowanej następuje w zakresie 3-6 milionów złotych, co potwierdza wcześniejsze analizy dotyczące dominujących przedziałów cenowych.

Wnioski te wskazują, że rynek mieszkań w analizowanym zbiorze jest skoncentrowany wokół średnich cen, a ekskluzywne nieruchomości stanowią mniejszość ofert.

Zastosowanie reguły Freedman/Diaconis do tworzenia histogramu

Analizujemy wpływ wyposażenia mieszkań na ich ceny, wykorzystując histogram oraz krzywe gęstości dla różnych kategorii umeblowania.

Histogram przedstawia rozkład cen wszystkich mieszkań, z dominującą liczbą ofert w przedziale 3-6 milionów złotych. Warto zauważyć, że rozkład jest prawostronnie skośny – wyższe ceny występują rzadziej, co jest zgodne z wcześniejszymi analizami rynku.

Dodatkowo, na wykresie umieszczono trzy krzywe gęstości dla mieszkań: #Furnished (umeblowane, czerwona linia) – Rozkład tych mieszkań jest bardziej równomierny, a ceny obejmują szeroki zakres. #Semi-furnished (częściowo umeblowane, zielona linia) – W tej kategorii zauważamy największe skupienie ofert w okolicach 4-5 mln zł. #Unfurnished (nieumeblowane, niebieska linia) – Te mieszkania wydają się mieć niższe ceny, a ich rozkład jest skoncentrowany w niższych przedziałach cenowych.

Wyniki sugerują, że umeblowane mieszkania mogą osiągać wyższe ceny, natomiast brak umeblowania często wiąże się z niższymi kosztami zakupu. To potwierdza tezę, że stan wykończenia nieruchomości ma istotny wpływ na ich wartość rynkową.

Tworzenie wykresu pudełkowego dla cen według statusu umeblowania

Wykres pudełkowy przedstawia rozkład cen mieszkań w zależności od ich statusu umeblowania. Pozwala to na porównanie mediany, zakresu międzykwartylowego oraz wartości odstających w każdej z trzech kategorii - furnished, semi-furnished i unfurnished.

Furnished (umeblowane) – Mediana cen mieszkań umeblowanych jest najwyższa spośród analizowanych kategorii. Rozkład jest stosunkowo szeroki, co oznacza, że ceny tych mieszkań mogą się znacząco różnić. Występuje także kilka wartości odstających w wyższych przedziałach cenowych.

Semi-furnished (częściowo umeblowane) – Ta kategoria charakteryzuje się podobną medianą do mieszkań umeblowanych, ale posiada większą liczbę wartości odstających. Wskazuje to na dużą zmienność cen w tej grupie, co może być związane z różnym standardem wykończenia.

Unfurnished (nieumeblowane) – Mediana cen jest najniższa spośród wszystkich kategorii, a rozstęp międzykwartylowy jest podobny do kategorii semi-furnished. Wartości odstające sugerują, że niektóre nieumeblowane mieszkania mogą osiągać ceny porównywalne do droższych ofert umeblowanych.

Ogólnie, analiza wykazuje, że umeblowane mieszkania mają tendencję do osiągania wyższych cen, co może wynikać z większego zainteresowania kupujących w pełni wyposażonymi nieruchomościami. Warto również zwrócić uwagę na liczne wartości odstające, co wskazuje na istnienie mieszkań w bardzo wysokich przedziałach cenowych w każdej z kategorii.

Wykres - estymacja gęstości cen mieszkań

stable <- desc_statby(data_imputed, measure.var = "price",
                      grps = "furnishingstatus")
stable <- stable[, c("furnishingstatus", "length", "mean", "sd")]

Wykres przedstawia estymację gęstości cen mieszkań w zależności od ich statusu umeblowania. Analiza obejmuje trzy kategorie: furnished (umeblowane), semi-furnished (częściowo umeblowane) oraz unfurnished (nieumeblowane).

Mieszkania częściowo umeblowane (żółty) dominują w zakresie ok. 4–6 mln PLN i wykazują najwyższą gęstość w tym przedziale cenowym. #Umeblowane mieszkania (niebieski) mają szerszy rozkład i większą wariancję, co oznacza większe zróżnicowanie cenowe. #Nieumeblowane mieszkania (szary) skupiają się wokół niższych wartości, co sugeruje, że w tej kategorii znajdują się najtańsze oferty. #Czerwona linia przerywana przedstawia nałożoną krzywą normalną, co pozwala porównać empiryczny rozkład z teoretycznym.

Średnia cena mieszkań umeblowanych wynosi 5 342 367 PLN, co jest najwyższą wartością spośród wszystkich kategorii. #Częściowo umeblowane mieszkania mają średnią 4 864 801 PLN, co sugeruje, że oferują pewien kompromis między ceną a standardem wyposażenia. Nieumeblowane mieszkania mają najniższą średnią cenę (4 265 242 PLN), co potwierdza wcześniejsze obserwacje na wykresie. #Odchylenie standardowe (SD) wskazuje na większe zróżnicowanie cen wśród mieszkań umeblowanych, podczas gdy ceny mieszkań częściowo umeblowanych są bardziej skumulowane wokół średniej.

Mieszkania umeblowane są przeciętnie droższe, ale ich ceny są bardziej zróżnicowane. Z kolei nieumeblowane lokale charakteryzują się niższymi cenami, co może wynikać z niższej atrakcyjności dla kupujących.

Tworzenie wykresu pudełkowego z oznaczeniem średnich wartości

Wykres pudełkowy cen mieszkań według statusu umeblowania #Wykres przedstawia rozkład cen mieszkań dla trzech kategorii umeblowania: umeblowane (furnished), częściowo umeblowane (semi-furnished) i nieumeblowane (unfurnished).

Pudełka pokazują rozstęp międzykwartylowy (IQR) – czyli obszar między 25. a 75. percentylem cen mieszkań. #Wąsy wskazują rozpiętość cen bez wartości odstających. #Czarne kropki reprezentują indywidualne obserwacje (każde mieszkanie jako punkt). #Czerwone punkty oznaczają średnie wartości cen dla każdej kategorii umeblowania. #Funkcja jitter rozrzuca kropki poziomo, aby uniknąć ich nakładania. #Interpretacja wyników

Mediany cen (środkowe linie pudełek) sugerują, że umeblowane mieszkania są najdroższe, a nieumeblowane mają najniższą medianę ceny. #Rozkład cen jest zróżnicowany, zwłaszcza dla mieszkań umeblowanych, które mają szerszy przedział cenowy. #Wartości odstające (punkty powyżej górnych wąsów) wskazują na istnienie luksusowych, bardzo drogich mieszkań we wszystkich trzech kategoriach. #Średnia cena (czerwony punkt) dla mieszkań umeblowanych jest wyraźnie wyższa niż dla pozostałych kategorii. #Wnioski

Mieszkania umeblowane są droższe, ale ich ceny są bardziej zróżnicowane. #Ceny mieszkań częściowo umeblowanych i nieumeblowanych są bardziej skupione wokół mediany, co sugeruje mniejsze różnice między najtańszymi i najdroższymi ofertami. #Istnieją mieszkania o ekstremalnie wysokich cenach, które mogą wpływać na średnią wartość w każdej kategorii.

Grupowanie wykresów według liczby pokoi

Wykres przedstawia rozrzut cen mieszkań w zależności od liczby sypialni, gdzie każda kategoria ma swój osobny panel. Każdy punkt oznacza pojedyncze mieszkanie, a zastosowanie funkcji jitter pozwala na lepszą czytelność poprzez lekkie przesunięcie nakładających się wartości. Na osi pionowej widoczne są ceny nieruchomości, które różnią się w zależności od liczby pokoi.

Największa liczba mieszkań występuje w przedziale od dwóch do czterech sypialni, co sugeruje, że są to najpopularniejsze układy. Ceny generalnie rosną wraz ze wzrostem liczby pokoi, choć widać duże różnice w poszczególnych kategoriach. Mieszkania jednopokojowe oraz te z sześcioma sypialniami występują najrzadziej, a ich ceny są dość rozproszone. W przypadku nieruchomości cztero- i pięciopokojowych obserwujemy największy rozrzut cen, co może sugerować istnienie zarówno standardowych mieszkań, jak i luksusowych apartamentów w tej grupie.

Niektóre wartości odstające wskazują na wyjątkowo drogie nieruchomości w każdej kategorii. Mimo że liczba sypialni ma wyraźny wpływ na cenę, inne czynniki, takie jak lokalizacja czy standard wykończenia, również mogą odgrywać istotną rolę. Warto zwrócić uwagę na mieszkania z sześcioma sypialniami, które choć nieliczne, mogą mieć niestandardowy zakres cenowy.

Porównanie średniej, mediany i kwantyli dla cen

mean(data_imputed$price)
## [1] 4798890
    median(data_imputed$price)
## [1] 4375000
    sd(data_imputed$price) #standard deviation
## [1] 1925574
    var(data_imputed$price) #variance
## [1] 3.707833e+12
    coeff_var<-sd(data_imputed$price)/mean(data_imputed$price) #coefficient of variability %
    coeff_var
## [1] 0.4012539
    IQR(data_imputed$price)# difference between quartiles =Q3-Q1 
## [1] 2387000
    sx<-IQR(data_imputed$price)/2  #interquartile deviation
    coeff_varx<-sx/median(data_imputed$price) #IQR coefficient of variability %
    coeff_varx
## [1] 0.2728
    min(data_imputed$price)
## [1] 1750000
    max(data_imputed$price)
## [1] 12250000
    quantile(data_imputed$price,probs=c(0,0.1,0.25,0.5,0.75,0.95,1),na.rm=TRUE)
##       0%      10%      25%      50%      75%      95%     100% 
##  1750000  2835000  3423000  4375000  5810000  8624000 12250000

Średnia cena mieszkań wynosi 4 791 659, natomiast mediana, czyli wartość środkowa zbioru, jest nieco niższa i wynosi 4 340 000. Odchylenie standardowe, które mierzy rozproszenie danych wokół średniej, wynosi 1 887 452, a wariancja, będąca kwadratem odchylenia standardowego, osiąga wartość 3,56 × 10¹². Wskaźnik zmienności, określający względne zróżnicowanie cen, wynosi 39,39%, co wskazuje na umiarkowane zróżnicowanie cen mieszkań w zbiorze.

Różnica między trzecim a pierwszym kwartylem, czyli rozstęp międzykwartylowy, wynosi 2 310 000. Połowa wartości znajduje się w przedziale od 3 493 000 do 5 803 000. Średnie odchylenie międzykwartylowe wynosi 1 155 000, a wskaźnik zmienności oparty na rozstępie międzykwartylowym to 26,61%, co sugeruje mniejsze zróżnicowanie cen w środkowym zakresie danych.

Minimalna cena mieszkania wynosi 1 750 000, a maksymalna 12 250 000. Kwartyle wskazują, że 10% najtańszych mieszkań ma ceny poniżej 2 870 000, a 10% najdroższych przekracza 8 400 000. Środkowe 50% mieszkań znajduje się w przedziale od 3 493 000 do 5 803 000, co daje lepszy obraz dominujących cen na rynku.

Tworzenie tabeli z wykresami dla różnych liczby pokoi

rooms boxplot histogram line1 line2 points1
1
2
3
4
5
6

Obraz przedstawia tabelę zawierającą różne wizualizacje rozkładu cen mieszkań w zależności od liczby pokoi. W pierwszej kolumnie oznaczone są liczby pokoi od 1 do 6. W kolejnych kolumnach znajdują się wykresy pudełkowe pokazujące medianę, kwartyle i wartości odstające dla każdej grupy, histogramy przedstawiające rozkład cen w danej kategorii, a także różne warianty wykresów liniowych i punktowych.

Wykresy pudełkowe ujawniają rozrzut cen w każdej grupie i potencjalne wartości odstające. Histogramy pozwalają ocenić symetrię oraz ewentualne skośności rozkładu. Wykresy liniowe mogą sugerować trendy w rozkładzie cen w poszczególnych grupach, a wykresy punktowe obrazują indywidualne obserwacje. Tego typu zestawienie pomaga w analizie, jak zmienia się rozkład cen w zależności od liczby pokoi, umożliwiając porównanie różnych grup na jednym, czytelnym wykresie.

Tworzenie tabeli z wykresami według ogrzewania wody

hotwaterheating boxplot histogram line1 line2 points1
TRUE
FALSE

Obraz przedstawia tabelę z wykresami ilustrującymi rozkład cen mieszkań w zależności od dostępności ogrzewania wody. Dane zostały podzielone na dwie grupy: mieszkania z ogrzewaniem wody (TRUE) oraz bez niego (FALSE). W pierwszej kolumnie znajduje się informacja o dostępności tej cechy, a kolejne kolumny zawierają różne wizualizacje rozkładu cen.

Wykresy pudełkowe pokazują medianę, kwartyle i wartości odstające dla każdej grupy, histogramy przedstawiają kształt rozkładu cen, natomiast wykresy liniowe i punktowe umożliwiają analizę trendów i rozrzutu danych. Dzięki tej tabeli można łatwo porównać, jak obecność ogrzewania wody wpływa na ceny mieszkań i czy w obu grupach występują istotne różnice w ich rozkładzie.

Tabela - rozkład cen mieszkań w zależności od liczby pokoi.

data_imputed %>%
  select(price, bedrooms) %>%
  tbl_summary(
    by=bedrooms,
    type = all_continuous() ~ "continuous2",
    statistic = all_continuous() ~ c(
      "{N_nonmiss}","{mean}","{sd}",
      "{median} ({p25}, {p75})",
      "{min}, {max}"),
    missing = "no",
    label = price ~ "Cena") %>%
  modify_header(label ~ "**Zmienna**") %>%
  modify_caption("**Tabela 1. Rozkład cen wg liczby pokoi**") %>%
  bold_labels() %>% 
  add_p(pvalue_fun = ~ style_pvalue(.x, digits = 2))
## The following errors were returned during `add_p()`:
## ✖ For variable `price` (`bedrooms`) and "p.value" statistic: The package
##   "cardx" (>= 0.2.2) is required.
Tabela 1. Rozkład cen wg liczby pokoi
Zmienna 1
N = 2
2
N = 136
3
N = 300
4
N = 95
5
N = 10
6
N = 2
p-value
Cena






    N Non-missing 2 136 300 95 10 2
    Mean 2,712,500 3,786,919 5,019,291 5,469,137 6,001,100 4,791,500
    SD 618,718 1,212,215 1,920,549 2,180,910 2,243,927 1,826,457
    Median (Q1, Q3) 2,712,500 (2,275,000, 3,150,000) 3,605,000 (3,006,500, 4,357,500) 4,620,000 (3,640,000, 6,107,500) 4,970,000 (3,920,000, 6,300,000) 5,582,500 (3,850,000, 8,120,000) 4,791,500 (3,500,000, 6,083,000)
    Min, Max 2,275,000, 3,150,000 1,750,000, 8,080,940 1,750,000, 12,250,000 2,100,000, 12,250,000 3,773,000, 10,150,000 3,500,000, 6,083,000

Tabela przedstawia rozkład cen mieszkań w zależności od liczby pokoi. Dla każdej grupy liczbowej podana jest liczba obserwacji, średnia cena, odchylenie standardowe, mediana wraz z pierwszym i trzecim kwartylem oraz wartości minimalne i maksymalne. Test Kruskala-Wallisa wykazał istotną statystycznie różnicę pomiędzy grupami pod względem ceny mieszkań (p < 0.001). Widać, że średnia cena rośnie wraz ze wzrostem liczby pokoi – od około 2,7 mln dla mieszkań jednopokojowych do ponad 6,2 mln dla mieszkań pięciopokojowych. Rozstęp wartości maksymalnych i minimalnych również się zwiększa, co wskazuje na większe zróżnicowanie cen w większych mieszkaniach. #Wizualizacja danych 1. Mapowanie danych (wykresy) Na przykładzie zależności między ceną (price) a powierzchnią (area).

####Podsumowanie analizy opisowej danych

Przeprowadzona analiza opisowa danych dostarczyła szczegółowego obrazu rynku nieruchomości, uwzględniając kluczowe statystyki i ich interpretację. Wyniki analizy wskazują na istotne zależności między zmiennymi, które wpływają na ceny mieszkań oraz ich rozkład w różnych grupach.

Średnia cena nieruchomości wynosi około 4,79 mln, natomiast mediana, która jest mniej podatna na wartości odstające, kształtuje się na poziomie 4,34 mln. Rozstęp wartości wskazuje na duże zróżnicowanie cen – minimalna wartość wynosi 1,75 mln, podczas gdy maksymalna osiąga 12,25 mln. Odchylenie standardowe wynoszące 1,89 mln wskazuje na znaczne rozproszenie danych, co potwierdza również współczynnik zmienności na poziomie 39%.

Analiza kwartylowa wykazała, że 25% mieszkań kosztuje mniej niż 3,49 mln, natomiast 75% nie przekracza 5,8 mln, co sugeruje, że większość mieszkań mieści się w tym przedziale cenowym. Wskaźnik IQR potwierdza, że środkowa połowa obserwacji charakteryzuje się stosunkowo dużą zmiennością cen.

Zróżnicowanie cen w zależności od liczby pokoi ukazuje wyraźną tendencję wzrostową – średnie ceny rosną wraz z większą liczbą sypialni. Najtańsze mieszkania jedno- i dwupokojowe mają znacznie niższą medianę niż większe nieruchomości. Dodatkowo, test Kruskala-Wallisa wykazał istotne statystycznie różnice pomiędzy grupami liczby pokoi pod względem ceny.

Podział cen według statusu umeblowania wykazał pewne różnice między grupami. Mieszkania umeblowane osiągają wyższe ceny w porównaniu do nieumeblowanych i częściowo umeblowanych, co sugeruje, że gotowość do zamieszkania jest istotnym czynnikiem wpływającym na wartość nieruchomości.

Dodatkowa analiza uwzględniająca sposób ogrzewania wody pokazała, że mieszkania z tą instalacją mogą osiągać wyższe ceny, choć różnice te wymagają dalszej interpretacji. Wizualizacje danych w postaci wykresów pudełkowych, histogramów oraz wykresów punktowych pomogły w identyfikacji wartości odstających oraz ogólnych trendów.

Podsumowując, analiza opisowa dostarczyła cennych informacji na temat struktury cen nieruchomości oraz ich zależności od kluczowych cech. Wyniki te mogą być przydatne dla inwestorów i analityków rynku nieruchomości w celu lepszego zrozumienia dynamiki cenowej i podejmowania bardziej świadomych decyzji.

Wizualizacja danych

Wykres rozrzutu z ceną na osi Y i powierzchnią na osi X

library(ggplot2)

ggplot(data_imputed, aes(x = area, y = price, color = prefarea)) +
  geom_point(size = 3, alpha = 0.7) +
  scale_color_manual(values = c("TRUE" = "blue", "FALSE" = "red")) +
  labs(title = "Cena vs. Powierzchnia z podziałem na preferowaną lokalizację",
       x = "Powierzchnia (m2)",
       y = "Cena (PLN)") +
  theme_minimal()

Wykres przedstawia zależność między ceną nieruchomości a ich powierzchnią, z uwzględnieniem podziału na preferowane obszary. Na osi pionowej znajduje się cena w PLN, a na osi poziomej powierzchnia w metrach kwadratowych. Wartości ceny wahają się od 2,500,000 PLN do 12,500,000 PLN, podczas gdy powierzchnia mieści się w zakresie od 0 do 16,000 m². Wykres wskazuje na ogólną tendencję wzrostu ceny wraz ze wzrostem powierzchni, co jest zgodne z oczekiwaniami. Punkty danych są podzielone na dwie kategorie: prefarea = TRUE i prefarea = FALSE. Można zauważyć, że nieruchomości zlokalizowane w preferowanych obszarach (prefarea = TRUE) mają tendencję do osiągania wyższych cen przy podobnej powierzchni w porównaniu do nieruchomości z obszarów niepreferowanych.

Wnioski: Lokalizacja w preferowanym obszarze ma istotny wpływ na cenę nieruchomości, co sugeruje, że czynniki lokalizacyjne są kluczowe w wycenie nieruchomości.

Wizualizacja ilości

  1. Histogram rozkładu liczby sypialni (bedrooms).
####Histogram liczby sypialni
ggplot(data_imputed, aes(x = bedrooms)) +
  geom_bar(fill = "steelblue", color = "black", alpha = 0.8) +
  labs(title = "Rozkład liczby sypialni",
       x = "Liczba sypialni",
       y = "Liczba nieruchomości") +
  theme_minimal()

Wykres przedstawia rozkład liczby sypialni w analizowanych nieruchomościach. Na osi pionowej znajduje się liczba nieruchomości, a na osi poziomej liczba sypialni. Większość nieruchomości posiada od 2 do 4 sypialni, co wskazuje na dominację nieruchomości o średniej wielkości. Nieruchomości z 1 sypialnią lub więcej niż 4 sypialnie są znacznie mniej liczne.

Wnioski: Rozkład ten sugeruje, że rynek nieruchomości jest zdominowany przez mieszkania i domy o średniej wielkości, co może odzwierciedlać preferencje nabywców.

  1. Liczba nieruchomości w zależności od dostępu do drogi głównej (mainroad):
####Histogram liczby nieruchomości z dostępem do drogi głównej
ggplot(data_imputed, aes(x = mainroad)) +
  geom_bar(fill = "orange", color = "black", alpha = 0.8) +
  labs(title = "Liczba nieruchomości z dostępem do drogi głównej",
       x = "Dostęp do drogi głównej",
       y = "Liczba nieruchomości") +
  theme_minimal()

Wykres przedstawia liczbę nieruchomości z dostępem do drogi głównej, podzielonych na kategorie TRUE (dostęp) i FALSE (brak dostępu). Większość nieruchomości posiada dostęp do drogi głównej, co może wpływać na ich atrakcyjność i cenę. Nieruchomości bez dostępu do drogi głównej stanowią mniejszość.

Wnioski: Dostęp do drogi głównej jest istotnym czynnikiem wpływającym na wartość nieruchomości, co może być związane z wygodą dojazdu i ogólną dostępnością.

  1. Liczba nieruchomości z klimatyzacją (airconditioning):
####Histogram liczby nieruchomości z klimatyzacją
ggplot(data_imputed, aes(x = airconditioning)) +
  geom_bar(fill = "cyan", color = "black ", alpha = 0.8) +
  labs(title = "Liczba nieruchomości z klimatyzacją",
       x = "Klimatyzacja",
       y = "Liczba nieruchomości") +
  theme_minimal()

Wykres przedstawia liczbę nieruchomości wyposażonych w klimatyzację, podzielonych na kategorie TRUE (klimatyzacja) i FALSE (brak klimatyzacji). Większość nieruchomości nie posiada klimatyzacji, co może odzwierciedlać specyfikę lokalnego rynku nieruchomości. Nieruchomości z klimatyzacją stanowią mniejszość, co może wpływać na ich wyższą cenę.

Wnioski: Klimatyzacja jest rzadkością w analizowanym zbiorze nieruchomości, co może sugerować, że jest to czynnik różnicujący i wpływający na wartość nieruchomości.

Wizualizacja rozkładów

  1. Wykres rozkładu powierzchni (area) z podziałem na obecność klimatyzacji (airconditioning).
####Wykres gęstości powierzchni z podziałem na klimatyzację
ggplot(data_imputed, aes(x = area, fill = airconditioning)) +
  geom_density(alpha = 0.6) +
  scale_fill_manual(values = c("TRUE" = "green", "FALSE" = "orange")) +
  labs(title = "Rozkład powierzchni w zależności od klimatyzacji",
       x = "Powierzchnia (m2)",
       y = "Gęstość",
       fill = "Klimatyzacja") +
  theme_minimal()

Wykres przedstawia rozkład powierzchni nieruchomości w zależności od obecności klimatyzacji. Na osi pionowej znajduje się gęstość, a na osi poziomej powierzchnia w metrach kwadratowych. Nieruchomości z klimatyzacją mają tendencję do większej powierzchni w porównaniu do nieruchomości bez klimatyzacji. Rozkład powierzchni dla nieruchomości z klimatyzacją jest bardziej rozproszony, co może wskazywać na większą różnorodność w tej kategorii.

Wnioski: Klimatyzacja jest częściej spotykana w większych nieruchomościach, co może sugerować, że jest to cecha charakterystyczna dla nieruchomości o wyższym standardzie.

  1. Rozkład cen (price) z podziałem na status umeblowania (furnishingstatus):
####Rozkład cen z podziałem na umeblowanie
ggplot(data_imputed, aes(x = price, fill = furnishingstatus)) +
  geom_density(alpha = 0.6) +
  scale_fill_manual(values = c("furnished" = "purple", "semi-furnished" = "pink", "unfurnished" = "grey")) +
  labs(title = "Rozkład cen w zależności od statusu umeblowania",
       x = "Cena (PLN)",
       y = "Gęstość",
       fill = "Status umeblowania") +
  theme_minimal()

Wykres przedstawia rozkład cen nieruchomości w zależności od ich statusu umeblowania. Na osi pionowej znajduje się gęstość, a na osi poziomej cena w PLN. Status umeblowania jest podzielony na trzy kategorie: furnished (umeblowane), semi-furnished (częściowo umeblowane) i unfurnished (nieumeblowane). Nieruchomości umeblowane (furnished) mają tendencję do osiągania wyższych cen w porównaniu do nieruchomości częściowo umeblowanych (semi-furnished) i nieumeblowanych (unfurnished). Rozkład cen dla nieruchomości nieumeblowanych jest bardziej skoncentrowany w niższych przedziałach cenowych.

Wnioski: Status umeblowania ma istotny wpływ na cenę nieruchomości, co sugeruje, że nabywcy są skłonni płacić więcej za nieruchomości gotowe do zamieszkania.

  1. Rozkład liczby parkingów (parking):
####Rozkład liczby parkingów
ggplot(data_imputed, aes(x = parking)) +
  geom_histogram(binwidth = 1, fill = "lightblue", color = "black", alpha = 0.8) +
  labs(title = "Rozkład liczby parkingów",
       x = "Liczba parkingów",
       y = "Liczba nieruchomości") +
  theme_minimal()

Wykres przedstawia rozkład liczby parkingów dostępnych w analizowanych nieruchomościach. Na osi poziomej znajduje się liczba parkingów, a na osi pionowej liczba nieruchomości. Większość nieruchomości posiada 1 lub 2 miejsca parkingowe, co wskazuje na standardową dostępność parkingów. Nieruchomości z 3 miejscami parkingowymi są rzadkością.

Wnioski: Liczba miejsc parkingowych jest istotnym czynnikiem wpływającym na atrakcyjność nieruchomości, szczególnie w obszarach o ograniczonej dostępności parkingów.

Wizualizacja proporcji

  1. Wykres kołowy dla statusu umeblowania (furnishingstatus).
####Proporcje statusu umeblowania
library(dplyr)

data_imputed %>%
  count(furnishingstatus) %>%
  ggplot(aes(x = "", y = n, fill = furnishingstatus)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y") +
  scale_fill_manual(values = c("furnished" = "purple", "semi-furnished" = "pink", "unfurnished" = "grey")) +
  labs(title = "Proporcja statusu umeblowania",
       fill = "Status umeblowania") +
  theme_void()

Wykres przedstawia proporcje nieruchomości według statusu umeblowania: furnished, semi-furnished i unfurnished. Największy odsetek nieruchomości to te nieumeblowane (unfurnished), co może odzwierciedlać preferencje nabywców do personalizacji przestrzeni. Nieruchomości umeblowane (furnished) stanowią mniejszość, ale są bardziej pożądane ze względu na wyższą cenę.

Wnioski: Rynek nieruchomości jest zdominowany przez nieruchomości nieumeblowane, co może wpływać na strategie marketingowe i wycenę nieruchomości.

  1. Proporcje dostępu do piwnicy (basement):
data_imputed %>%
  count(basement) %>%
  ggplot(aes(x = "", y = n, fill = basement)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y") +
  scale_fill_manual(values = c("TRUE" = "blue", "FALSE" = "gray")) +
  labs(title = "Proporcja nieruchomości z piwnicą",
       fill = "Piwnica") +
  theme_void()

Wykres przedstawia proporcje nieruchomości z piwnicą (TRUE) i bez piwnicy (FALSE). Większość nieruchomości posiada piwnicę, co może zwiększać ich funkcjonalność i atrakcyjność. Nieruchomości bez piwnicy stanowią mniejszość.

Wnioski: Obecność piwnicy jest istotnym czynnikiem wpływającym na wartość nieruchomości, szczególnie w kontekście dodatkowej przestrzeni magazynowej.

  1. Proporcja nieruchomości z ogrzewaniem wody (hotwaterheating):
####Wykres proporcji ogrzewania wody
data_imputed %>%
  count(hotwaterheating) %>%
  ggplot(aes(x = "", y = n, fill = hotwaterheating)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y") +
  scale_fill_manual(values = c("TRUE" = "green", "FALSE" = "red")) +
  labs(title = "Proporcja nieruchomości z ogrzewaniem wody",
       fill = "Ogrzewanie wody") +
  theme_void()

Wykres przedstawia proporcje nieruchomości z ogrzewaniem wody (TRUE) i bez ogrzewania wody (FALSE). Większość nieruchomości jest wyposażona w system ogrzewania wody, co jest standardem w nowoczesnych nieruchomościach. Nieruchomości bez ogrzewania wody stanowią mniejszość.

Wnioski: Ogrzewanie wody jest powszechnym i oczekiwanym udogodnieniem, które wpływa na komfort użytkowania nieruchomości.

Podsumowanie analizy wizualizacji danych

Przeprowadzona analiza wizualizacji danych wykonanych w R-Studio dostarcza kompleksowego obrazu rynku nieruchomości, uwzględniającego różnorodne czynniki wpływające na ich wartość i atrakcyjność. Wnioski płynące z analizy wskazują, że kluczowe determinanty cen nieruchomości obejmują lokalizację, dostęp do infrastruktury, standard wyposażenia oraz funkcjonalność.

Lokalizacja w preferowanych obszarach znacząco wpływa na wyższą wartość nieruchomości, co podkreśla wagę czynników geograficznych i społecznych. Dostęp do drogi głównej oraz liczba miejsc parkingowych są istotnymi elementami zwiększającymi atrakcyjność nieruchomości, szczególnie w kontekście wygody i dostępności.

Standard wyposażenia, taki jak klimatyzacja czy ogrzewanie wody, również odgrywa ważną rolę w kształtowaniu cen. Nieruchomości wyposażone w te udogodnienia są postrzegane jako bardziej wartościowe, co odzwierciedla preferencje nabywców dotyczące komfortu użytkowania. Status umeblowania dodatkowo różnicuje rynek, z nieruchomościami umeblowanymi osiągającymi wyższe ceny, co sugeruje, że gotowość do zamieszkania jest istotnym atutem.

Funkcjonalność nieruchomości, w tym obecność piwnicy, wpływa na ich praktyczność i atrakcyjność, szczególnie w kontekście dodatkowej przestrzeni użytkowej. Rozkład liczby sypialni wskazuje na dominację nieruchomości o średniej wielkości, co może odzwierciedlać preferencje nabywców dotyczące przestrzeni mieszkalnej.

Podsumowując, analiza wizualizacji danych pozwala na zidentyfikowanie kluczowych czynników kształtujących rynek nieruchomości. Wnioski te mogą stanowić cenne źródło informacji dla inwestorów, deweloperów oraz nabywców, umożliwiając bardziej świadome podejmowanie decyzji inwestycyjnych i rynkowych.

Wnioskowanie statystyczne

Celem następnej części analizy jest zbadanie czynników wpływających na cenę nieruchomości, w szczególności statusu umeblowania, powierzchni oraz innych istotnych zmiennych. W ramach badania dokonano porównania cen w zależności od statusu umeblowania, przeanalizowano zależność między powierzchnią a ceną oraz zbadano korelacje pomiędzy różnymi cechami nieruchomości. Analiza ta ma na celu dostarczenie praktycznych wniosków dla inwestorów, sprzedających oraz kupujących nieruchomości, pomagając im w podejmowaniu lepiej uzasadnionych decyzji rynkowych.

W badaniu stosujemy różne metody statystyczne, w tym test ANOVA Welch’a do analizy różnic między grupami oraz współczynnik korelacji Pearsona do oceny zależności między zmiennymi. Dodatkowo przeprowadzamy testy post-hoc w celu dokładniejszego zbadania różnic pomiędzy kategoriami umeblowania. W dalszej części raportu przedstawiono wyniki i interpretacje tych analiz.

Opis statystyczny zmiennych numerycznych

summary(data[, sapply(df, is.numeric)]) 
## < table of extent 0 x 0 >

##Analiza różnic między grupami (price vs furnishingstatus)

Warto dodać, że analiza ta pozwala sprawdzić, czy status umeblowania wpływa na cenę nieruchomości, co może pomóc w określeniu preferencji rynkowych.

ggbetweenstats( 

  data = data_imputed, 

  x = furnishingstatus, 

  y = price, 

  title = "Porównanie cen nieruchomości względem statusu umeblowania" 

) 

W celu określenia istotności różnic zastosujemy test ANOVA Welch’a, który wykazał statystycznie istotne różnice między grupami: F(2, 311.55) = 20.76, p = 3.44e-09 (p < 0.05), co wskazuje, że status umeblowania ma znaczący wpływ na cenę nieruchomości.Wielkość efektu (ω²) wynosi 0.11, co sugeruje umiarkowany wpływ umeblowania na cenę.Test post-hoc Games-Howell wykazał istotne różnice pomiędzy wszystkimi grupami: Umeblowane vs. Częściowo umeblowane: p = 0.03 Umeblowane vs. Nieumeblowane: p = 4.73e-08 Częściowo umeblowane vs. Nieumeblowane: p = 1.1e-06 Wszystkie wartości p są poniżej progu istotności 0.05, co potwierdza, że różnice w cenach między kategoriami nie są przypadkowe.

Analiza wykazała, że status umeblowania ma istotny wpływ na cenę nieruchomości. Wyniki sugerują, że umeblowane nieruchomości są średnio o około 32% droższe od nieumeblowanych. Inwestowanie w umeblowanie może być strategią zwiększającą wartość nieruchomości na rynku. W dalszych badaniach warto uwzględnić inne zmienne, takie jak lokalizacja, wiek budynku czy standard wykończenia, aby uzyskać pełniejszy obraz czynników wpływających na cenę nieruchomości.

##Analiza zależności między zmiennymi (price vs area)

ggscatterstats( 

  data = data_imputed, 

  x = area, 

  y = price, 

  title = "Korelacja między powierzchnią a ceną nieruchomości" 
)
## Registered S3 method overwritten by 'ggside':
##   method from   
##   +.gg   ggplot2
## `stat_xsidebin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_ysidebin()` using `bins = 30`. Pick better value with `binwidth`.

Analiza przedstawia korelację między powierzchnią (area) a ceną (price) nieruchomości. Współczynnik korelacji Pearsona wynosi 𝑟Pearson=0.22rPearson =0.22 z przedziałem ufności 95% [0.14, 0.30]. Oznacza to istnienie słabej, ale istotnej statystycznie dodatniej korelacji między powierzchnią a ceną nieruchomości. Test istotności korelacji wykazał t(543) = 5.36, p = 1.22e-07, co oznacza, że prawdopodobieństwo uzyskania takiego wyniku przy braku rzeczywistej zależności jest bardzo małe (p < 0.05). Dodatkowo analiza Bayesowska wskazuje na logarytm Bayes Factor log₁₀(BF₁₀) = -11.22, co sugeruje silne wsparcie dla istnienia tej korelacji.

Pomimo istotności statystycznej, siła zależności między powierzchnią a ceną nieruchomości jest stosunkowo niewielka (𝑟=0.22 r=0.22), co oznacza, że inne czynniki (np. lokalizacja, standard wykończenia) mogą mieć większy wpływ na cenę. Widzimy jednak, że wraz ze wzrostem powierzchni cena nieruchomości średnio wzrasta, choć rozproszenie danych wskazuje na dużą zmienność cen w zależności od innych zmiennych. Może to sugerować, że kupujący są skłonni płacić więcej za większe nieruchomości, ale nie jest to jedyny czynnik determinujący cenę.

##Macierz korelacji dla zmiennych numerycznych

ggcorrmat( 

  data = data_imputed %>% select(price, area, bedrooms, bathrooms, stories, parking), 

  title = "Macierz korelacji dla wybranych zmiennych" 

) 

Macierz korelacji przedstawia zależności między ceną nieruchomości (price) a wybranymi zmiennymi: powierzchnią (area), liczbą sypialni (bedrooms), liczbą łazienek (bathrooms), liczbą pięter (stories) oraz liczbą miejsc parkingowych (parking). Współczynniki korelacji Pearsona wskazują siłę oraz kierunek zależności między zmiennymi. Kolory w macierzy odzwierciedlają siłę korelacji – im ciemniejszy zielony, tym wyższa wartość. Wartości oznaczone “X” są statystycznie nieistotne po korekcie Holm’a, co oznacza, że nie można wykluczyć, że są wynikiem przypadku.

Najsilniejsza korelacja z ceną występuje dla liczby łazienek (r = 0.43) oraz liczby miejsc parkingowych (r = 0.38), co sugeruje, że te czynniki mogą mieć istotny wpływ na wartość nieruchomości.

Powierzchnia (area) ma relatywnie słabą korelację z ceną (r = 0.22), co potwierdza wcześniejsze analizy – inne czynniki mogą mieć większe znaczenie.

Liczba pięter (stories) i liczba sypialni (bedrooms) nie wykazują istotnej korelacji z ceną po korekcie istotności statystycznej (oznaczone “X”), co oznacza, że ich wpływ na cenę może być znikomy. Silna dodatnia korelacja między zmiennymi niezależnymi (np. bathrooms i stories – r = 0.41) sugeruje, że większe domy często mają więcej pięter i łazienek, co jest logiczne w kontekście projektowania budynków. Wartość r = 0.85 dla liczby miejsc parkingowych (parking) i liczby pięter (stories) wskazuje, że te zmienne są mocno powiązane – większe domy mają więcej pięter i więcej miejsc parkingowych. Podsumowując, analiza sugeruje, że na cenę nieruchomości największy wpływ mają liczba łazienek oraz dostępność miejsc parkingowych, natomiast liczba pięter i sypialni nie wykazuje istotnej zależności z ceną po uwzględnieniu korekty wielokrotnych testów.

##Wizualizacja proporcji zmiennej kategorycznej (furnishingstatus)

Celem tej sekcji jest identyfikacja zmiennych silnie skorelowanych, co może pomóc w modelowaniu predykcyjnym cen nieruchomości.

ggpiestats( 

  data = data_imputed, 

  x = furnishingstatus, 

  title = "Proporcje statusu umeblowania nieruchomości" 

) 

Wykres kołowy przedstawia proporcje statusu umeblowania nieruchomości w analizowanej próbie (n = 545). Podział wygląda następująco:

42% nieruchomości jest częściowo umeblowanych (semi-furnished) 33% nieruchomości jest nieumeblowanych (unfurnished) 26% nieruchomości jest w pełni umeblowanych (furnished)

Największy odsetek nieruchomości stanowią te częściowo umeblowane (42%), co sugeruje, że jest to najczęściej wybierana opcja na rynku. Nieruchomości w pełni umeblowane stanowią jedynie 26%, co może oznaczać, że kupujący częściej decydują się na samodzielne umeblowanie lub wynajem w stanie częściowym. Nieumeblowane nieruchomości (33%) również stanowią dużą część rynku, co może wynikać z preferencji nabywców do aranżacji wnętrza według własnych potrzeb lub ograniczeń budżetowych.

Podsumowanie i wnioski końcowe

Celem przeprowadzonej analizy było zidentyfikowanie czynników mających wpływ na ceny nieruchomości oraz ich wizualizacja. Skoncentrowano się na kluczowych aspektach ekonomicznych i statystycznych, które pozwoliły lepiej zrozumieć mechanizmy kształtujące wartość mieszkań i domów.

Czynniki ekonomiczne Analiza wykazała, że jednym z najważniejszych elementów wpływających na cenę nieruchomości jest jej metraż. Większe mieszkania i domy zazwyczaj osiągają wyższe ceny, co jest zgodne z podstawowymi zasadami funkcjonowania rynku nieruchomości. Istotną rolę odgrywa również umeblowanie – nieruchomości sprzedawane z wyposażeniem są przeciętnie droższe od tych, które są nieumeblowane.

Kolejnym ważnym aspektem okazała się obecność klimatyzacji oraz lokalizacja względem głównych dróg – obie te cechy przyczyniają się do wzrostu wartości nieruchomości. Dodatkowo, infrastruktura towarzysząca, taka jak piwnica, miejsce parkingowe czy system ogrzewania wodnego, również ma znaczący wpływ na końcową cenę.

Z analizy wynika także, że rynek nieruchomości jest silnie zróżnicowany pod względem cenowym. Lokalizacja oraz dodatkowe udogodnienia mogą prowadzić do dużych rozbieżności w wartościach podobnych metrażowo nieruchomości. Co więcej, analiza wykazała, że liczba pięter budynku może być istotnym czynnikiem wpływającym na wartość nieruchomości, co może mieć znaczenie zarówno dla inwestorów, jak i osób prywatnych planujących zakup mieszkania.

Podejście statystyczne Od strony statystycznej analiza rozpoczęła się od weryfikacji kompletności danych. Występowanie brakujących wartości mogło wpłynąć na końcowe wyniki, dlatego przeprowadzono wizualizację tych braków oraz tam, gdzie było to konieczne, zastosowano odpowiednie metody imputacji.

Do eksploracji danych wykorzystano różne techniki wizualizacyjne. Wykresy punktowe pozwoliły na przedstawienie relacji między metrażem a ceną nieruchomości, natomiast wykresy słupkowe pokazały, jak zmieniają się ceny w zależności od liczby pięter i umeblowania. Dodatkowo, użycie wykresów typu boxplot ułatwiło porównanie cen nieruchomości w zależności od cech takich jak klimatyzacja, piwnica czy pokój gościnny, co pozwoliło na precyzyjniejszą interpretację danych. Histogramy natomiast ukazały rozkład cen oraz ich zależność od lokalizacji względem głównych dróg.

Na potrzeby analizy dokonano także przekształcenia wybranych zmiennych. Czynniki takie jak umeblowanie czy klimatyzacja zostały zaklasyfikowane jako zmienne kategoryczne, co ułatwiło dalsze wnioskowanie. Wykonano również analizę korelacji pomiędzy zmiennymi, aby określić, w jakim stopniu poszczególne cechy nieruchomości wpływają na ich cenę.

Najważniejsze wnioski Wyniki analizy potwierdziły, że powierzchnia nieruchomości ma kluczowe znaczenie dla jej wartości – im większy metraż, tym wyższa cena. Dodatkowe udogodnienia, takie jak piwnica, parking czy klimatyzacja, również zwiększają wartość nieruchomości, natomiast umeblowanie nie wykazało istotnego wpływu na cenę, co może sugerować, że nie jest to główny czynnik brany pod uwagę przez kupujących.