Projekt z przedmiotu Analiza danych

Model predykcji cen domów jednorodzinnych sprzedanych na Miami.

Wprowadzenie

Raport został stworzony na podstawie danych pobranych ze strony Kaggle.com, jest to strona tworzona przez społeczność zajmująca się danymi i zagadnieniami z nimi związanymi takimi jak modelowanie. Strona ta pozwala na publikacje jak i pobieranie najróżniejszych zestawów danych takich jak niniejszy zbiór danych z cenami domów jednorodzinnych sprzedanych na Miami wraz z innymi zmiennymi, które zostały odnotowane.

(https://www.kaggle.com/deepcontractor/miami-housing-dataset)

Pytanie badawcze

Jakie czynniki wpływaja na ceny domów jednorodzinnych w Miami oraz oszacowanie modelu, który będzie z jak największą dokładnością na podstawie zmiennych wchodzących do modelu przewidywał ceny tych domów.

Opis Danych

# funkcja str pokazuje jakie kolumny sa w data frame oraz jakiego typu wartosci sie w nich znajduja
str((plik))
## 'data.frame':    13932 obs. of  17 variables:
##  $ LATITUDE         : num  25.9 25.9 25.9 25.9 25.9 ...
##  $ LONGITUDE        : num  -80.2 -80.2 -80.2 -80.2 -80.2 ...
##  $ PARCELNO         : num  622280070620 622280100460 622280100470 622280100530 622280100200 ...
##  $ SALE_PRC         : num  440000 349000 800000 988000 755000 630000 1020000 850000 250000 1220000 ...
##  $ LND_SQFOOT       : int  9375 9375 9375 12450 12800 9900 10387 10272 9375 13803 ...
##  $ TOT_LVG_AREA     : int  1753 1715 2276 2058 1684 1531 1753 1663 1493 3077 ...
##  $ SPEC_FEAT_VAL    : int  0 0 49206 10033 16681 2978 23116 34933 11668 34580 ...
##  $ RAIL_DIST        : num  2816 4359 4413 4585 4063 ...
##  $ OCEAN_DIST       : num  12811 10648 10574 10156 10837 ...
##  $ WATER_DIST       : num  348 338 297 0 327 ...
##  $ CNTR_DIST        : num  42815 43505 43530 43798 43600 ...
##  $ SUBCNTR_DI       : num  37742 37341 37329 37423 37551 ...
##  $ HWY_DIST         : num  15955 18125 18201 18514 17903 ...
##  $ age              : int  67 63 61 63 42 41 63 21 56 63 ...
##  $ avno60plus       : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ month_sold       : int  8 9 2 9 7 2 2 9 3 11 ...
##  $ structure_quality: int  4 4 4 4 4 4 5 4 4 5 ...

Zbiór danych zawiera 13,932 obserwacji oraz 17 zmiennych:

  • LATITUDE - szerokość geograficzna,
  • LONGITUDE - długość geograficzna,
  • PARCELNO - unikalny identyfikator,
  • SALE_PRC - cena po jakiej mieszkanie zostało sprzedane w $ (zmienna celu),
  • LND_SQFOOT - powierzchnia terenu w stopach kwadratowych,
  • TOT_LVG_AREA - metraż domu w stopach kwadratowych,
  • SPEC_FEAT_VAL - wartość dodatkowych funkcji w $ np. basen,
  • RAIL_DIST - odległość do najbliższej stacji kolejowej w stopach (wskaźnik hałasu),
  • OCEAN_DIST - odległość do oceanu w stopach,
  • WATER_DIST - odległość do najbliższego zbiornika wodnego,
  • CNTR_DIST - odległość do centrum Miami w stopach,
  • SUBCNTR_DI - odległość do najbliższego subcentrum w stopach,
  • HWY_DIST - odległość do najbliższej autostrady w stopach (wskaźnik hałasu),
  • AGE - wiek domu/ konstrukcji,
  • AVNO60PLUS - zmienna binarna dla halasu samolotu przekraczajacego dopuszczalny poziom,
  • MONTH_SOLD - miesiac sprzedazy,
  • STRUCTURE_QUALITY - jakość domu/ konstrukcji.

Analiza braków danych

Na tym etapie projektow powinna być przeprowadzona analiza braków niestety w zbiorze wykorzystanym do stworzenia sprawozdania nie pojawiły się żadne braki danych. Co za tym idzie, powinno zostać sprawdzone ile jest braków zmiennych i w jakich zmiennych one wystepują. Nastepnie powinna zostać podjęta decyzja o przeprowadzeniu imputacji tych braków. Podstawowymi metodami jest uzupełnianie braków średnia, mediana bądź dominanta. Bardziej rozwinięte metody zakładają imputacje za pomocą rozkładu innych zmiennych co oznacza, że badamy jak wygladają wartości zmiennej, której brakuje dla obserwacji o podobnych wartościach innych zmiennych. Jeszcze inna metoda jest stworzenie sztucznej zmiennej zero-jedynkowej gdzie 1 oznacza brak danych a 0 wręcz przeciwnie co może być wykorzystane w momencie, kiedy chcemy uzyć braków danych jako informacji. Bardziej drastycznymi metodami sa usuwanie obserwacji z brakami danych czy też całych zmiennych, gdzie tych braków wystepuje zbyt dużo np. ponad 20% czy ponad 50%.

# sprawdzenie czy wystepuja jakies braki danych w naszym zbiorze
any(is.na(plik))
## [1] FALSE

Identyfikacja Wartości odstających

W tym kroku będziemy identyfikować wartości odstające, których często nie da się wyjaśnić. Są niespójne z innymi obserwacjami oraz zaburzają szacowanie modelu.

Na rozkładzie zmiennej objaśnianej można zaobserwować fakt, iż ogromna większość obserwacji znajduje się w przedziale cenowym poniżej 500,000 USD. Reszta obserwacji znajduje się powyżej tej kwoty jednak ta liczebność jest znikoma. W celu wygładzenia rozkładu zostanie zastosowane logarytmowanie zmiennej co pozwoli na znormalizowanie zmiennej oraz wartości jakie przyjmuje oraz lepszego szacowania modelu co zostanie zaprezentowane poprzez porównanie modelu w którym zmienna celu zostanie zlogarytmizowana z modelem gdzie taka transformacja nie nastąpi.

Pierwsza rzeczą jaka rzuca się w oczy to zbliżony rozkład powierzchni terenu do rozkładu cen mieszkań, nie jest to nic nadzwyczajnego, ponieważ nasuwa się logiczny wniosek: im większa działka na której leży dom tym większa cena takiego budynku. Dodatkowo można zauważyć na wykresie boxplot dużo wartości odstających.

Rozkład powierzchni domu już nieco odbiega od rozkładu cen domów jednak nadal delikatnie jest zbliżony. Rozkład powierzchni użytkowej danej nieruchomości również posiada wartości odstające jednak na pierwszy rzut oka jest to mniej liczna grupa niż w przypadku powierzchni całkowitej nieruchomości.

Rozkład wartości dodatkowych funkcji wchodzących w skład nieruchomości pokazuje, ze wśród nich większość obserwacji miała dodatkowe funkcje o wartości poniżej 1000 USD co przyczyniło się do identyfikacji pokaźnej grupy outsiderów.

Rozkład odległości od najbliższej stacji kolejowej pokazuje iż sprzedane nieruchomości w większości znajdowały się dosyć blisko stacji kolejowej. Dla tej zmiennej obserwacji odstających jest już znacznie mniej.

Odległości od oceanu mierzona w stopach nie posiada zmiennych odstających co jest spowodowane lokalizacja miasta przy samym oceanie.

Jak można zauważyć na poniższym wykresie rozkład odległości do najbliższego zbiornika wodnego rożni się znacznie od rozkładu odległości od oceanu. Większość obserwacji znajduje się bliżej niż 10,000 stop od zbiornika wodnego. Dla tej zmiennej występują wartości odstające.

Rozkład odległości od centrum Miami jest niedaleki od rozkładu normalnego co oznacza, że obserwacje rozkładają się po równo do okoła średniej. Dla tej zmiennej występuje tylko jedna obserwacja odstająca.

Rozkład odległości od najbliższego subcentrum Miami pokazuje zróżnicowane położenie oraz na wykresie pudełkowym widać grupę wartości odstających znajdujących się powyżej 3 kwartyla + 1.5 rozstępu między kwartylowego.

Rozkład odległości od najbliżej autostrady przedstawia fakt, iż znaczna większość nieruchomości znajduje się w odległości mniejszej niż 10,000 stop od autostrady. Dodatkowo dla tej zmiennej również występują outliersy.

Rozkład zmiennej wieku konstrukcji nie pokazał nic nadzwyczajnego 50% domów jest młodszych niż 25 lat, dodatkowo występuje tylko jedna wartość odstająca.

Dla poniższych zmiennych: szerokość geograficzna, długość geograficzna, hałas przekraczający dopuszczalny poziom, miesiąc sprzedaży oraz rodzaj konstrukcji nie będzie wykresów pudełkowych przedstawiających obserwacje odstające, ponieważ koordynaty geograficzne są bardzo zbliżone dla jednej lokalizacji i nie różnią się znacznie, a pozostałe zmienne przyjmują wartości określone kategoriami. Prawie wszystkie obserwacje znajdują się w lokalizacji, gdzie dopuszczany poziom hałasu nie jest przekraczany. Rozkład miesiąca sprzedaży nieruchomości dla każdego miesiąca przyjmuje identyczne liczebności poza styczniem, gdzie doszło do największej liczby sprzedaży. Jeśli chodzi o jakość konstrukcji to przeważna większość przyjmuje wartości 4 i 5 dobra i bardzo dobra jakość konstrukcji.

Z wartościami odstajacymi mozna sobie poradzić na wiele sposobow analogicznie do braków danych mozemy je zamienić na mediane czy średnia lub usunac. Innymi metodami jest log logarytmizacja zmiennej i jest to wykorzystane dla zmiennej objasnianej lub mozna zastosowac metody imputacji 95 percentylem dla wartosci odstających z góry i 5 percentylem dla wartości odstających z dołu, co zostanie zastosowane dla wszystkich zmiennych z wartościami odstającymi. Kolejnym ciekawym sposobem jest użycie rozstępu miedzy kwartylowego i transformacja górnych outliersow według wzoru (Q3+IQRx1.5) gdzie Q3 oznacza kwartyl trzeci a IQR różnice miedzy kwartylem 3 a 1, dolne outliersy są transformowane według wzoru (Q1-IQRx1.5) gdzie Q1 oznacza kwartyl 1.

Przykładowa linijka z kodem imputate_outlier(plik, LND_SQFOOT, “capping”)

Eksploracja zmiennych

Zmienna objaśniana przed logarytmizacja osiągała wartości z zakresu od 72,000 USD do 2,650,000 USD przy średniej wynoszącej 399,942 USD i medianie 310,00 USD.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   72000  235000  310000  399942  428000 2650000

po logarytmizacji zmiennej wartości już plasowały się między 11.18 a 14.79 co znacznie zawęziło rozkład zmiennej.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   11.18   12.37   12.64   12.71   12.97   14.79

Wszystkie sprzedane nieruchomości mieściły się na szerokości geograficznej od 25.41 do 25.97 North przy średniej 25.73 N.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   25.43   25.62   25.73   25.73   25.85   25.97

Wszystkie sprzedane domy leżały na długości geograficznej od 80.12 do 80.54 West przy średniej długości 80.34 W.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -80.54  -80.40  -80.34  -80.33  -80.26  -80.12

####Przeciętnie struktura nieruchomości była oceniana na 3.51 a środkowa wartość wyniosła 4.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   2.000   4.000   3.514   4.000   5.000

Nieruchomość znajdująca się najbliżej oceanu była oddalona o 236.1 stop a dom znajdujący się najdalej oceanu był oddalony o 75,744.9 stop, przy czym przeciętnie nieruchomości były oddalone o 31,691 stop.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   236.1 18079.3 28541.8 31691.0 44310.7 75744.9

Przed poradzeniem sobie ze zmiennymi odstającymi powierzchnia terenu, na którym znajduje się nieruchomość zawierała się pomiędzy 1,248 a 57,064 stop kwadratowych po imputacji maksymalna wartość została zredukowana do 17,400 stop kwadratowych. Przeciętna powierzchnia wyrażona w stopach kwadratowych z 8,6200.88 stop kwadratowych spadla do 8,110.61 stop kwadratowych.

## Impute outliers with capping
## 
## * Information of Imputation (before vs after)
##              Original   Imputation
## n        13932.000000 13932.000000
## na           0.000000     0.000000
## mean      8620.879917  8110.614987
## sd        6070.088742  3789.398200
## se_mean     51.426659    32.104323
## IQR       3726.250000  3726.250000
## skewness     3.830115     1.279125
## kurtosis    19.076805     1.006327
## p00       1248.000000  1248.000000
## p01       2794.480000  2794.480000
## p05       3761.650000  3761.650000
## p10       4439.100000  4439.100000
## p20       5050.000000  5050.000000
## p25       5400.000000  5400.000000
## p30       5850.000000  5850.000000
## p40       6634.000000  6634.000000
## p50       7500.000000  7500.000000
## p60       7875.000000  7875.000000
## p70       8512.700000  8512.700000
## p75       9126.250000  9126.250000
## p80      10000.000000 10000.000000
## p90      14499.000000 14499.000000
## p95      17400.000000 17400.000000
## p99      39640.000000 17400.000000
## p100     57064.000000 17400.000000

Całkowitą powierzchnia użytkowa nieruchomości przed zmiana wartości odstających wynosiła od 854 stop kwadratowych do 6,287 stop kwadratowych ze średnia w wysokości 2,058 stop kwadratowych po imputacji było to już od 854 stop kwadratowych do 3,971 stop kwadratowych z przeciętna wartości w wysokości 718 stop kwadratowych.

## Impute outliers with capping
## 
## * Information of Imputation (before vs after)
##              Original    Imputation
## n        13932.000000 13932.0000000
## na           0.000000     0.0000000
## mean      2058.044574  2025.5628768
## sd         813.538535   718.1800865
## se_mean      6.892415     6.0845242
## IQR       1001.000000  1001.0000000
## skewness     1.346930     0.7115608
## kurtosis     2.487290    -0.2380715
## p00        854.000000   854.0000000
## p01        927.000000   927.0000000
## p05       1087.000000  1087.0000000
## p10       1205.000000  1205.0000000
## p20       1392.000000  1392.0000000
## p25       1470.000000  1470.0000000
## p30       1546.000000  1546.0000000
## p40       1706.000000  1706.0000000
## p50       1877.500000  1877.5000000
## p60       2093.600000  2093.6000000
## p70       2319.000000  2319.0000000
## p75       2471.000000  2471.0000000
## p80       2612.800000  2612.8000000
## p90       3115.000000  3115.0000000
## p95       3630.000000  3630.0000000
## p99       4850.660000  3755.0700000
## p100      6287.000000  3971.0000000

Wartości dodatków w nieruchomościach przed imputacja zawierały się miedzy 0 USD a 175,025 USD po imputacji największa wartością było już tylko 38,452 USD przeciętna wartość przed imputacja wynosiła 9,564 USD a po zastosowaniu imputacji było to 9,424 USD.

## Impute outliers with capping
## 
## * Information of Imputation (before vs after)
##               Original   Imputation
## n         13932.000000 13932.000000
## na            0.000000     0.000000
## mean       9564.382372  9424.986664
## sd        13894.299546 13076.750949
## se_mean     117.714490   110.788101
## IQR       11542.250000 11542.250000
## skewness      1.901757     1.370669
## kurtosis      4.661942     0.309750
## p00           0.000000     0.000000
## p01           0.000000     0.000000
## p05           0.000000     0.000000
## p10           0.000000     0.000000
## p20         439.200000   439.200000
## p25         810.000000   810.000000
## p30        1185.300000  1185.300000
## p40        1904.800000  1904.800000
## p50        2765.500000  2765.500000
## p60        4085.600000  4085.600000
## p70        7016.000000  7016.000000
## p75       12352.250000 12352.250000
## p80       21968.000000 21968.000000
## p90       31916.900000 38452.400000
## p95       38460.320000 38452.400000
## p99       53921.670000 38452.400000
## p100     175020.000000 38452.400000

Najmniejsza odległości od najbliższej stacji kolejowej w badanym zbiorze wyniosła 10.5 stopy, największa odległość wyniosła 29,621 przed imputacja i 25,298 po imputacji przeciętna wartości wynosiły 8,348 i 8,285 odpowiednio przed imputacja i po imputacji.

## Impute outliers with capping
## 
## * Information of Imputation (before vs after)
##                Original    Imputation
## n        13932.00000000 13932.0000000
## na           0.00000000     0.0000000
## mean      8348.18522143  8285.9205057
## sd        6177.17835323  6021.7575862
## se_mean     52.33393709    51.0171902
## IQR       8803.15000000  8803.1500000
## skewness     0.82382585     0.7192548
## kurtosis    -0.01392866    -0.3652482
## p00         10.50000000    10.5000000
## p01        216.29900000   216.2990000
## p05        760.28000000   760.2800000
## p10       1426.35000000  1426.3500000
## p20       2692.68000000  2692.6800000
## p25       3299.45000000  3299.4500000
## p30       3946.77000000  3946.7700000
## p40       5442.54000000  5442.5400000
## p50       7106.30000000  7106.3000000
## p60       8688.78000000  8688.7800000
## p70      10848.12000000 10848.1200000
## p75      12102.60000000 12102.6000000
## p80      13671.78000000 13671.7800000
## p90      17726.49000000 17726.4900000
## p95      20242.49225000 20242.4922500
## p99      25238.29300000 23883.9190000
## p100     29621.50000000 25298.3000000

Najmniejsza odległość od zbiornika wodnego wyniosła 401.5 stopy a największa odległość to 50,400 stop co po obcięciu wartości odstających wyniosło 43,985 stop. wartości średnie wyniosły odpowiednio 11,960 stop przed i 11,800 stop po.

## Impute outliers with capping
## 
## * Information of Imputation (before vs after)
##              Original     Imputation
## n        13932.000000 13932.00000000
## na           0.000000     0.00000000
## mean     11959.781804 11799.62801105
## sd       11931.789024 11525.01771113
## se_mean    101.087820    97.64159578
## IQR      16524.150000 16524.15000000
## skewness     1.137793     1.02466835
## kurtosis     0.328186    -0.09963465
## p00          0.000000     0.00000000
## p01          7.431000     7.43100000
## p05        401.470000   401.47000000
## p10        873.060000   873.06000000
## p20       2050.280000  2050.28000000
## p25       2675.850000  2675.85000000
## p30       3344.200000  3344.20000000
## p40       4963.380000  4963.38000000
## p50       6922.600000  6922.60000000
## p60      10193.160000 10193.16000000
## p70      16196.820000 16196.82000000
## p75      19200.000000 19200.00000000
## p80      22368.700000 22368.70000000
## p90      31485.510000 31485.51000000
## p95      36969.870500 36969.87050000
## p99      45713.074000 41253.94400000
## p100     50399.800000 43984.80000000

Odległość od centrum Miami przeciętnie wynosiła około 68,500 stop z minimalna wartością 3,825 stóp i maksimum wynoszącym ponad 15,900 stóp.

## Impute outliers with capping
## 
## * Information of Imputation (before vs after)
##                Original     Imputation
## n         13932.0000000  13932.0000000
## na            0.0000000      0.0000000
## mean      68488.3884281  68484.4358771
## sd        32003.8002255  31994.2348693
## se_mean     271.1407655    271.0597265
## IQR       46535.2250000  46535.2250000
## skewness      0.4268998      0.4254593
## kurtosis     -0.3157679     -0.3195756
## p00        3825.6000000   3825.6000000
## p01       12231.4260000  12231.4260000
## p05       21199.5750000  21199.5750000
## p10       28572.6500000  28572.6500000
## p20       37590.8600000  37590.8600000
## p25       42823.1000000  42823.1000000
## p30       48196.3400000  48196.3400000
## p40       58856.3800000  58856.3800000
## p50       65852.4000000  65852.4000000
## p60       75421.1600000  75421.1600000
## p70       84317.4300000  84317.4300000
## p75       89358.3250000  89358.3250000
## p80       94324.0000000  94324.0000000
## p90      110372.2400000 110372.2400000
## p95      132150.0960000 132150.0960000
## p99      145484.1900000 145406.9060000
## p100     159976.5000000 159017.5000000

Przeciętna odległość do najbliższego scentruj Miami wynosiła 22,161 i 21,767 przed oraz po imputacji. Minimalna odległość wyniosła 1,462 stopy a maksymalna przed imputacja 110,554 stopy a po imputacji to było 98,739 stopy.

## Impute outliers with capping
## 
## * Information of Imputation (before vs after)
##                Original    Imputation
## n         13932.0000000 13932.0000000
## na            0.0000000     0.0000000
## mean      41115.0472653 40949.8078452
## sd        22161.8259350 21767.7346460
## se_mean     187.7581539   184.4193563
## IQR       29953.1250000 29953.1250000
## skewness      0.4541499     0.3688204
## kurtosis     -0.2112611    -0.4310498
## p00        1462.8000000  1462.8000000
## p01        4294.5550000  4294.5550000
## p05        8912.2550000  8912.2550000
## p10       11971.0600000 11971.0600000
## p20       19779.1400000 19779.1400000
## p25       23996.2500000 23996.2500000
## p30       27731.7700000 27731.7700000
## p40       34734.9200000 34734.9200000
## p50       41109.9000000 41109.9000000
## p60       45579.9800000 45579.9800000
## p70       50394.8700000 50394.8700000
## p75       53949.3750000 53949.3750000
## p80       58732.7800000 58732.7800000
## p90       70831.7400000 70831.7400000
## p95       83551.6100000 83551.1645000
## p99       96787.2770000 92914.5490000
## p100     110553.8000000 98738.8000000

Odległość do najbliższej autostrady przeciętnie wynosiła 7,724 stopy razem z obserwacjami odstającymi po ich wygładzeniu było to 7,611 stop. Minimalna odległość od autostrady wyniosła 90.2 stopy a maksymalna w przypadku wartości odstających wyniosła 48,167 stop po zmianie ich na 95 percentyl to było już tylko 22,627 stóp.

## Impute outliers with capping
## 
## * Information of Imputation (before vs after)
##              Original    Imputation
## n        13932.000000 13932.0000000
## na           0.000000     0.0000000
## mean      7723.770693  7610.9003682
## sd        6068.936108  5750.0840769
## se_mean     51.416893    48.7155334
## IQR       7856.075000  7856.0750000
## skewness     1.116250     0.8417494
## kurtosis     1.102694    -0.2454321
## p00         90.200000    90.2000000
## p01        266.072000   266.0720000
## p05        759.460000   759.4600000
## p10       1354.130000  1354.1300000
## p20       2459.780000  2459.7800000
## p25       2998.125000  2998.1250000
## p30       3548.020000  3548.0200000
## p40       4800.640000  4800.6400000
## p50       6159.750000  6159.7500000
## p60       7652.540000  7652.5400000
## p70       9617.870000  9617.8700000
## p75      10854.200000 10854.2000000
## p80      12631.160000 12631.1600000
## p90      17014.370000 17014.3700000
## p95      20068.930000 20068.0885000
## p99      24101.683000 21779.0830000
## p100     48167.300000 22626.7000000

Przeciętny wiek konstrukcji w badanej populacji wyniósł 31 lat. Najmłodsza konstrukcja była sprzedana odrazu po jej powstaniu (udostepnieniu do sprzedaży). Najstarsza konstrukcja miała 96 lat po wygładzeniu były to 94 lata.

## Impute outliers with capping
## 
## * Information of Imputation (before vs after)
##               Original    Imputation
## n        13932.0000000 13932.0000000
## na           0.0000000     0.0000000
## mean        30.6692506    30.6630060
## sd          21.1530682    21.1380551
## se_mean      0.1792118     0.1790846
## IQR         32.0000000    32.0000000
## skewness     0.5050145     0.5017126
## kurtosis    -0.6531312    -0.6636402
## p00          0.0000000     0.0000000
## p01          0.0000000     0.0000000
## p05          0.0000000     0.0000000
## p10          4.0000000     4.0000000
## p20         12.0000000    12.0000000
## p25         14.0000000    14.0000000
## p30         16.0000000    16.0000000
## p40         21.0000000    21.0000000
## p50         26.0000000    26.0000000
## p60         32.0000000    32.0000000
## p70         40.0000000    40.0000000
## p75         46.0000000    46.0000000
## p80         54.0000000    54.0000000
## p90         62.0000000    62.0000000
## p95         67.0000000    67.0000000
## p99         79.0000000    79.0000000
## p100        96.0000000    94.0000000

Rozkłady zmiennych względem zmiennej celu (logarytm z ceny nieruchomości) przed i po usunięciu zmiennych odstających

Na większość wykresów została nałożona niebieska linia trendu pokazująca jak bardzo wzrost danej zmiennej wpływa na wzrost ceny nieruchomości i czy jest to wpływ dodani lub ujemny.

Pierwszy wykres zawiera rozkład szerokości geograficznej względem logarytmu z cen nieruchomości. Drugi wykres zawiera rozkład długości geograficznej również względem logarytmu cen nieruchomości. Obie zmienne nie miały obserwacji odstających.

Rozkład powierzchni terenu według logarytmu z wartości nieruchomości przed i po imputacji.

Rozkład powierzchni użytkowej nieruchomości według jej wartości przed i po imputacji

Rozkład wartości dodatkowych funkcji w nieruchomości według logarytmu wartości nieruchomości.

Rozkład odległości do najbliższej stacji kolejowej według logarytmu z ceny nieruchomości przed i po usunięciu obserwacji odstających.

Rozkład wieku konstrukcji oraz odległości od oceanu względem logarytmu z wartości nieruchomości.

Rozkład odległości od najbliższego zbiornika wodnego według logarytmu z ceny, po której nieruchomość została sprzedana przed oraz po imputacji wartości odstających.

Rozkład odległości od centrum przed usunięciem outliersow oraz po ich usunięciu według zmiennej celu.

Rozkład odległości od najbliższego subcentrum według logarytmu wartości po jakiej dana nieruchomość została sprzedana przed oraz po poradzeniu sobie z wartościami odstającymi.

Rozkład odległości od najbliższej autostrady przed i po imputacji obserwacji odstających względem logarytmu z wartości nieruchomości.

Na pierwszym wykresie od lewej znajduje się rozkład nieprzekroczenia dopuszczalnego poziomu hałasu (0) lub jego przekroczenia (1) pod względem logarytmu z ceny danej nieruchomości. Drugi wykres zawiera rozkład miesięcy, w których dane nieruchomości zostały sprzedane względem logarytmu z ich cen. Ostatni wykres zawiera rozkład jakości konstrukcji względem zmiennej celu.

Modelowanie

W tym kroku zostało wykonane modelowanie wykonane zostaną 4 modele regresji logistycznej w celu pokazania, które kroki polepszają jakość modelu oraz opisywana przez niego rzeczywistość. Dla wszystkich modeli została zastosowana metoda krokowa polegająca na zaczęciu od pustego modelu gdzie zmienna objaśniana jest szacowana w pełni za pomocą parametru stałego a następnie krok po kroku są dodawane zmienne z największym wpływem do momentu, aż takiej zmiennej nie będzie. Czasem mogą wystąpić sytuacje, że na skutek dodawania zmiennych istotność statystyczna jednej zmiennej spadnie co spowodowuje wyrzucenie jej z modelu. Dodatkowo dla każdego z modeli użyto opcji trace=0 w celu zbędnego niewydłużania raportu. Opcja ta spowodowała, ze nie wyświetli się w raporcie krok po korku jak metoda została przeprowadzona.

Pierwszy model jest modelem podstawowym w którym zmienna celu są ceny nieruchomości oraz nie zostały zastąpione wartości odstające. Ten model ma na celu zobrazowanie tego jak bardzo poprawi się model, jeśli zlogarytmizujemy zmienna celu.

Drugi model uwzględnia zlogarytmizowana zmienna celu jednak zmienne objaśniające nadal nie są poddane imputacji.

Trzeci model uwzględnia również zlogarytmizowana zmienna celu oraz usunięte wartości odstające ze zmiennych objaśniających.

Ostatni model przedstawia trzeci model jednak został na nim obliczony wskaźnik inflacji wariancji (VIF), gdzie otrzymanie wartości powyżej 5 jednostek wskazuje na istotny problem ze współliniowością

Na końcu zostanie zinterpretowany model z największym R-kwadrat.

W poniższej tabeli otrzymujemy oszacowane 3 pierwsze modele (4 się nie mieścił i tabela wyglądała brzydko). Na ten moment pominiemy analizę parametrów przy zmiennych i skupimy się na samym współczynniku determinacji (R-kwadrat), określającym w jakim stopniu dane są tłumaczone przez model.

W pierwszym modelu otrzymujemy R-kwadrat na poziomie 0.71 co oznacza, ze dane są objaśniane przez model w 71. Po logarytmizacji zmiennej objaśnianej wytłumaczalność dany przez model wzrasta do 79% co jest znaczna poprawa modelu. Dla trzeciego modelu w którym pokusiliśmy się o imputacje obserwacji odstających współczynnik determinacji wzrost o 0.01 co znaczy, ze dane są o 1 punkt procentowy bardziej wytłumaczalne przez model z przeprowadzona imputacja niż bez jej przeprowadzania. Zmiana ta jest niewielka jednak pokazuje, ze gdyby posłużyć się innymi metodami takimi jak logarytmizacja niektórych zmiennych z duża liczba obserwacji odstających, zastosowanie innej metody imputacji lub użycie obcięcia mogłoby przynieść lepsze rezultaty niż standardowa metoda polegająca na zamienieniu wartości odstających na 95 percentyl.

## 
## ==========================================================================================================
##                                                         Modele liniowe                                    
##                     --------------------------------------------------------------------------------------
##                               SALE_PRC                  log(SALE_PRC)                 SALE_PRC_LOG        
##                                 (1)                          (2)                          (3)             
## ----------------------------------------------------------------------------------------------------------
## TOT_LVG_AREA                 190.75***                    0.0003***                    0.0004***          
##                                (2.44)                      (0.0000)                     (0.0000)          
##                                                                                                           
## CNTR_DIST                     1.04***                     0.0000***                    0.0000***          
##                                (0.31)                      (0.0000)                     (0.0000)          
##                                                                                                           
## OCEAN_DIST                    1.15***                     -0.0000***                   -0.0000***         
##                                (0.38)                      (0.0000)                     (0.0000)          
##                                                                                                           
## structure_quality           73,077.69***                   0.15***                      0.15***           
##                              (1,668.21)                    (0.003)                      (0.002)           
##                                                                                                           
## PARCELNO                     -0.0000***                    -0.00***                     -0.00***          
##                                (0.00)                       (0.00)                       (0.00)           
##                                                                                                           
## SPEC_FEAT_VAL                 2.97***                     0.0000***                    0.0000***          
##                                (0.13)                      (0.0000)                     (0.0000)          
##                                                                                                           
## age                         -2,056.30***                  -0.005***                     -0.01***          
##                               (91.22)                      (0.0001)                     (0.0001)          
##                                                                                                           
## RAIL_DIST                     4.93***                     0.0000***                    0.0000***          
##                                (0.28)                      (0.0000)                     (0.0000)          
##                                                                                                           
## HWY_DIST                      3.91***                     0.0000***                    0.0000***          
##                                (0.28)                      (0.0000)                     (0.0000)          
##                                                                                                           
## LND_SQFOOT                    3.48***                     0.0000***                    0.0000***          
##                                (0.30)                      (0.0000)                     (0.0000)          
##                                                                                                           
## avno60plus                 -118,451.00***                  -0.14***                     -0.15***          
##                             (12,353.78)                     (0.02)                       (0.02)           
##                                                                                                           
## month_sold                                                 0.004***                     0.004***          
##                                                            (0.001)                      (0.001)           
##                                                                                                           
## SUBCNTR_DI                    -4.19***                    -0.0000***                   -0.0000***         
##                                (0.31)                      (0.0000)                     (0.0000)          
##                                                                                                           
## LONGITUDE                 1,416,650.00***                  -0.52***                     -0.50***          
##                             (113,779.60)                    (0.17)                       (0.16)           
##                                                                                                           
## LATITUDE                   -441,927.80***                  0.95***                      0.96***           
##                             (53,128.42)                     (0.08)                       (0.08)           
##                                                                                                           
## WATER_DIST                    -1.03***                    -0.0000***                   -0.0000***         
##                                (0.24)                      (0.0000)                     (0.0000)          
##                                                                                                           
## Constant                 125,043,615.00***                -54.24***                    -53.13***          
##                           (10,202,036.00)                  (15.45)                      (14.56)           
##                                                                                                           
## ----------------------------------------------------------------------------------------------------------
## Observations                   13,932                       13,932                       13,932           
## R2                              0.71                         0.80                         0.80            
## Adjusted R2                     0.71                         0.79                         0.80            
## Residual Std. Error   169,779.80 (df = 13916)         0.26 (df = 13915)            0.25 (df = 13915)      
## F Statistic         2,314.36*** (df = 15; 13916) 3,374.95*** (df = 16; 13915) 3,572.63*** (df = 16; 13915)
## ==========================================================================================================
## Note:                                                                          *p<0.1; **p<0.05; ***p<0.01

Jak już wcześniej zostało wspomniane w modelu został użyty wskaźnik inflacji wariancji zaprezentowany w trakcie zajęć. Funkcja ta została użyta tylko na modelu trzecim, który osiągnął największy współczynnik determinacji ze wszystkich prostych modeli..

# uzycie wskaznika vif poruszanego na zajeciach
car::vif(najlepszy_model_log_o)
##      TOT_LVG_AREA        SUBCNTR_DI structure_quality          PARCELNO 
##          1.877119         21.469623          1.617441          1.904653 
##               age        LND_SQFOOT     SPEC_FEAT_VAL         RAIL_DIST 
##          1.859584          1.797134          1.457794          1.410113 
##        OCEAN_DIST          HWY_DIST          LATITUDE         CNTR_DIST 
##         19.961389          1.363132         26.763777         45.325045 
##        WATER_DIST        avno60plus        month_sold         LONGITUDE 
##          3.724886          1.088449          1.003436         46.065886

Z ostatecznego modelu zostały wyrzucone zmienne ze wskaźnikiem VIF powyżej 5 i były to długość geograficzna, szerokość geograficzna, odległość od najbliższego subcentrum, odległość od oceanu oraz odległość od centrum.

W tym etapie zostało przedstawione porównanie dwóch modeli: modelu trzeciego z najwyższym R-kwadrat oraz model na jego bazie z którego wyrzucono na podstawie wskaźnika VIF. Po porównaniu tych dwóch modeli okazało się, ze wyrzucenie tych zmiennych sprawiło obniżenie się współczynnika determinacji z wartości 0.8 do 0.69 co było dość niespodziewanym zjawiskiem.

## 
## =============================================================================
##                                          Modele liniowe                      
##                     ---------------------------------------------------------
##                                           SALE_PRC_LOG                       
##                                 (1)                          (2)             
## -----------------------------------------------------------------------------
## TOT_LVG_AREA                 0.0004***                    0.0004***          
##                               (0.0000)                     (0.0000)          
##                                                                              
## SUBCNTR_DI                   -0.0000***                                      
##                               (0.0000)                                       
##                                                                              
## structure_quality             0.15***                      0.16***           
##                               (0.002)                      (0.003)           
##                                                                              
## PARCELNO                      -0.00***                                       
##                                (0.00)                                        
##                                                                              
## age                           -0.01***                    -0.002***          
##                               (0.0001)                     (0.0002)          
##                                                                              
## LND_SQFOOT                   0.0000***                    0.0000***          
##                               (0.0000)                     (0.0000)          
##                                                                              
## SPEC_FEAT_VAL                0.0000***                    0.0000***          
##                               (0.0000)                     (0.0000)          
##                                                                              
## RAIL_DIST                    0.0000***                    -0.0000***         
##                               (0.0000)                     (0.0000)          
##                                                                              
## OCEAN_DIST                   -0.0000***                                      
##                               (0.0000)                                       
##                                                                              
## HWY_DIST                     0.0000***                    0.0000***          
##                               (0.0000)                     (0.0000)          
##                                                                              
## LATITUDE                      0.96***                                        
##                                (0.08)                                        
##                                                                              
## CNTR_DIST                    0.0000***                                       
##                               (0.0000)                                       
##                                                                              
## WATER_DIST                   -0.0000***                   -0.0000***         
##                               (0.0000)                     (0.0000)          
##                                                                              
## avno60plus                    -0.15***                     -0.13***          
##                                (0.02)                       (0.02)           
##                                                                              
## month_sold                    0.004***                     0.004***          
##                               (0.001)                      (0.001)           
##                                                                              
## LONGITUDE                     -0.50***                                       
##                                (0.16)                                        
##                                                                              
## Constant                     -53.13***                     11.17***          
##                               (14.56)                       (0.02)           
##                                                                              
## -----------------------------------------------------------------------------
## Observations                   13,932                       13,932           
## R2                              0.80                         0.69            
## Adjusted R2                     0.80                         0.69            
## Residual Std. Error      0.25 (df = 13915)            0.32 (df = 13921)      
## F Statistic         3,572.63*** (df = 16; 13915) 3,040.74*** (df = 10; 13921)
## =============================================================================
## Note:                                             *p<0.1; **p<0.05; ***p<0.01

Interpretacja modelu

W modelu wszystkie zmienne są istotne statystycznie:

  • Wraz ze wzrostem Powierzchni terenu na której znajduje się nieruchomość o jedna stopę kwadratowa cena tej nieruchomości zwiększy się o 0.03% (+/- 0.0004 punkta procentowego) przy założeniu niezmienności pozostałych czynników,
  • Wraz ze wzrostem odległości od najbliższego subcentrum o jedna stopę cena mieszkania spadnie o 0.0012% z przeciętnym bledem estymacji na poziomie plus/ minu 0.00004 punkta procentowego,
  • Wzrost jakości struktury o jedna jednostkę na skali 5 punktowej powoduje wzrost ceny o 15.11% z przeciętnym bledem oszacowania 0.24 punkta procentowego,
  • Wraz ze wzrostem wieku konstrukcji o rok jego cena spada o 0.52% (+/- 0.014 punkta procentowego),
  • Wraz ze wzrostem powierzchni użytkowej nieruchomości o jedna stopę kwadratowa jej cena wzrośnie o 0.0015% USD (+/- 0.00008 punkta procentowego),
  • Wraz ze wzrostem wartości dodatkowych funkcji o 1 USD cena nieruchomości wzrośnie o 0.0004% ze średnim bledem +/- 0.00002 punkta procentowego,
  • Wraz ze wzrostem odległości od najbliższej stacji kolejowej o 1 stopę wartość nieruchomości wzrośnie o 0.00096% +/- 0000042 punkta procentowego,
  • Wraz ze wzrostem odległości od oceanu o 1 stopę wartość nieruchomości maleje o 0.00044% +/- 0.000054 punktu procentowego,
  • Wraz ze wzrostem odległości od najbliższej autostrady o 1 stopę cena domu wzrasta o 0.00069% z przeciętnym bledem estymacji +/- 0.00004 punktu procentowego,
  • Wraz ze wzrostem szerokości geograficznej o 1 stopień wartość nieruchomości zwiększa się o 95.68% z bledem standardowym plus/ minus 7.83 punkta procentowego,
  • Wraz ze wzrostem odległości od centrum Miami cena nieruchomości wzrasta o 0.00048% +/- 0.00045 punkta procentowego,
  • Wraz ze wzrostem odległości od najbliższego zbiornika wodnego cena nieruchomości spada 0.00044% z przeciętnym błędem plus/ minus 0.00036 punkta procentowego,
  • Wraz z przekroczeniem dopuszczalnego poziomu hałasu (przejście z 0 na 1), cena nieruchomości spada o 15.48% z przeciętnym bledem 1.83 punkta procentowego,
  • Wraz ze wzrostem o jeden miesiąc miesiąca sprzedaży cena nieruchomości wrasta o 0.4% +/- 0.064 punkta procentowego,
  • Wraz ze wzrostem długości geograficznej o 1 stopień wartość nieruchomości spada o 50.24% z bledem standardowym plus/ minus 16.21%.

Dane są opisywane przez model w 80.4% co znaczy, że model nie opisuje rzeczywistości w 19.6%.

## 
## Call:
## lm(formula = SALE_PRC_LOG ~ TOT_LVG_AREA + SUBCNTR_DI + structure_quality + 
##     PARCELNO + age + LND_SQFOOT + SPEC_FEAT_VAL + RAIL_DIST + 
##     OCEAN_DIST + HWY_DIST + LATITUDE + CNTR_DIST + WATER_DIST + 
##     avno60plus + month_sold + LONGITUDE, data = plik2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.17354 -0.14865 -0.00746  0.13844  1.89930 
## 
## Coefficients:
##                                 Estimate             Std. Error t value
## (Intercept)       -53.130294689889716153  14.563870699873668002  -3.648
## TOT_LVG_AREA        0.000388893770376423   0.000004063048674189  95.715
## SUBCNTR_DI         -0.000012064700378049   0.000000453355086439 -26.612
## structure_quality   0.151162027012444244   0.002468148823437173  61.245
## PARCELNO           -0.000000000000108756   0.000000000000002451 -44.374
## age                -0.005200307674799565   0.000137398615546210 -37.848
## LND_SQFOOT          0.000015312722604581   0.000000753458800514  20.323
## SPEC_FEAT_VAL       0.000004019085251359   0.000000196647183475  20.438
## RAIL_DIST           0.000009589520356024   0.000000419994173045  22.833
## OCEAN_DIST         -0.000004444179435305   0.000000540808690750  -8.218
## HWY_DIST            0.000006899172404654   0.000000432448449891  15.954
## LATITUDE            0.956899756025369808   0.078347490712210130  12.214
## CNTR_DIST           0.000004751411884209   0.000000448163937081  10.602
## WATER_DIST         -0.000004359298233687   0.000000356660005586 -12.223
## avno60plus         -0.154830914965603555   0.018321854935370464  -8.451
## month_sold          0.004083796174192351   0.000646204550566268   6.320
## LONGITUDE          -0.502446161158508375   0.162057409307450689  -3.100
##                               Pr(>|t|)    
## (Intercept)                   0.000265 ***
## TOT_LVG_AREA      < 0.0000000000000002 ***
## SUBCNTR_DI        < 0.0000000000000002 ***
## structure_quality < 0.0000000000000002 ***
## PARCELNO          < 0.0000000000000002 ***
## age               < 0.0000000000000002 ***
## LND_SQFOOT        < 0.0000000000000002 ***
## SPEC_FEAT_VAL     < 0.0000000000000002 ***
## RAIL_DIST         < 0.0000000000000002 ***
## OCEAN_DIST        0.000000000000000226 ***
## HWY_DIST          < 0.0000000000000002 ***
## LATITUDE          < 0.0000000000000002 ***
## CNTR_DIST         < 0.0000000000000002 ***
## WATER_DIST        < 0.0000000000000002 ***
## avno60plus        < 0.0000000000000002 ***
## month_sold        0.000000000270119832 ***
## LONGITUDE                     0.001936 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2514 on 13915 degrees of freedom
## Multiple R-squared:  0.8042, Adjusted R-squared:  0.804 
## F-statistic:  3573 on 16 and 13915 DF,  p-value: < 0.00000000000000022

Na pierwszym wykresie mamy do czynienia z dopasowaniem reszt. Reszty rozkładają się wokół linii poziomej bez żadnych wyraźnych wzorców co jest dobrym wynikiem i pokazuje, że w modelu nie mamy relacji nieliniowych.

Na wykresie numer dwa “Normal Q-Q” możemy zaobserwować, czy reszty mają rozkład normalny, jeśli wartości resztkowe podążają wzdłuż linii prostej to znaczy, że mamy do czynienia z rozkładem normalnym, jeśli tak nie jest to reszty nie maja rozkładu normalnego. Na otrzymanym wykresie widać, że mamy problem z rozkładem normalnym, nasze obserwacje mają bardziej ekstremalne wartości, niż można by się spodziewać, gdyby rzeczywiście pochodziły z rozkładu normalnego. zostaje naruszone założenie o rozkładzie normalnym. Na pierwszy rzut oka wygląda na to, że cześć zmiennych powinna zostać zlogarytmizowana co powinno wpłynąć na wygładzenie rozkładu.

Trzeci wykres pokazuje Lokalizacje skali, wykres ten pokazuje, czy reszty są równomiernie rozłożone wzdłuż zakresów predykatorów. W ten sposób sprawdzamy założenie równej wariancji, czyli homoskedatycznosci. jeśli otrzymamy linie pozioma z równymi (losowymi) punktami rozłożenia to założenie jest spełnione. W naszym przypadku linia jest w miarę pozioma i reszty rozkładają się dość równomiernie poza grupka obserwacji między 12 a 13. Można powiedzie, iż założenie o homoskedatycznoci jest spełnione na granicy.

Czwarty wykres pozwala znaleźć wpływowe przypadki jest owe istnieją, ponieważ nie wszystkie wartości mają wpływ na wyznaczenie linii regresji co oznacza, że po ich usunięciu wyniki nie różniłyby się zbytnio. wykluczenie wpływowych obserwacji może znacznie zmienić wyniki regresji liniowej. Powinniśmy uważać na wartości odstające w prawym górnym rogu lub prawym dolnym rogu to miejsca, w których przypadki mogą mieć istotny wpływ na Linei regresji. Szukamy obserwacji poza linia Cooka. Na naszym wykresie linia Cooka się nie pojawia co pokazuje, że w naszym zbiorze nie ma obserwacji wpływowych i ich wyrzucenie z modelu znacznie nie zmieniłoby wyników regresji liniowej.

Podsumowanie

Podsumowując najlepszy się okazał model, który spowodował wygładzenie rozkładu zmiennej objaśnianej za pomocą logarytmizacji co spowodowało wzrost objaśnianej rzeczywistosci przez model o 8 punktów procentowych. Dodatkowo wykonanie imputacji obserwacji odstających polepszyło ten wynik o 1 punkt procentowy co pokazuje, iż zastosowanie innych metod odnośnie wartości odstających mogłoby by spowodować jeszcze większa poprawę modelu. Interesującym zjawiskiem jest fakt iż zastosowanie VIF, nie polepszyło modelu tylko wręcz przeciwnie spowodowało, iż stal się on gorszy pod względem R-kwadrat od modelu bazowego. Oprócz tego finalny model nie spełnia założenia o rozkładzie normalnym co powinno zostać poprawione poprzez wyrzucenie obserwacji odstających ze zbioru, inna metodę imputacji lub logarytmizacje niektórych zmiennych.