Data wrangling
Jak widać nie wszystkie formaty naszych zmiennych są dostosowane. Musimy przygotować odpowiednie formaty naszych zmiennych zgodnie z ich skalą pomiarową i przyszłym zastosowaniem.
mieszkania$district<-as.factor(mieszkania$district)
mieszkania$building_type<-as.factor(mieszkania$building_type)
mieszkania$rooms<-factor(mieszkania$rooms,ordered=TRUE)
attach(mieszkania)
mieszkania$price_PLN<-as.numeric(mieszkania$price_PLN)
mieszkania$price_EUR<-as.numeric(mieszkania$price_EUR)
Tabele liczności oraz TAI
W pierwszym etapie naszej analizy pogrupujemy nasze dane w postaci prostej tabeli częstości.
Najpierw przyjrzyjmy się rozkładowi cen mieszkań w naszej próbie i zweryfikujmy poprawność tabelaryczną za pomocą miary TAI:
|
## # classes Goodness of fit Tabular accuracy
## 10.0000000 0.9780872 0.8508467
Jak widzimy - wskaźnik TAI jest dość wysoki. 0,85 oznacza, że możemy zaakceptować zaproponowaną konstrukcję tablicy częstości.
Podstawowe wykresy
W tej części powinniśmy przedstawić nasze dane za pomocą podstawowych (preinstalowanych w R) grafik. Wybrać najbardziej odpowiednie wykresy w zależności od skali wybranych zmiennych. Zbadaj heterogeniczność rozkładu prezentując dane w podziale na grupy (np. według dzielnic, typów budynków itp.). Nie zapomnij o tytułach głównych, etykietach i legendzie. Przeczytaj więcej o parametrach graficznych tutaj.
Zauważ, że parametr echo = FALSE
został dodany do
fragmentu kodu, aby zapobiec drukowaniu kodu R, który wygenerował
wykres.
ggplot2 plots
W tym rozdziale przedstawimy te same wykresy, ale z wykorzystaniem pakietów ggplot2 i ggpubr.
Ggplot2 pozwala na pokazanie średniej wartości dla każdej grupy za pomocą funkcji stat_summary(). Nie musisz już obliczać wartości średnich przed tworzeniem wykresu!
Grupowanie grafik
Faceting generuje małe wielokrotności, z których każda pokazuje inny podzbiór danych. Są one potężnym narzędziem do eksploracyjnej analizy danych: możesz szybko porównać wzorce w różnych częściach danych i zobaczyć czy są takie same czy różne. Przeczytaj więcej tutaj.
Statystyki opisowe
Bardzo przyjemny w użyciu dla generowania tabel opisowych jest pakiet “summarytools”. Zerknij na jego stronę domową tutaj
Przed automatycznym raportowaniem pełnej tabeli podsumowującej statystyki opisowe, tym razem Twoim celem jest zmierzenie tendencji centralnej rozkładu cen. Porównaj średnią, medianę i tryb wraz z miarami pozycyjnymi - kwantylami - według dzielnic i typów budynków lub liczby pokoi w mieszkaniu.
mean(price_PLN)
median(price_PLN)
sd(price_PLN) #standard deviation
var(price_PLN) #variance
coeff_var<-sd(price_PLN)/mean(price_PLN) #coefficient of variability %
coeff_var
IQR(price_PLN)# difference between quartiles =Q3-Q1
sx<-IQR(price_PLN)/2 #interquartile deviation
coeff_varx<-sx/median(price_PLN) #IQR coefficient of variability %
coeff_varx
min(price_PLN)
max(price_PLN)
quantile(price_PLN,probs=c(0,0.1,0.25,0.5,0.75,0.95,1),na.rm=TRUE)
Podsumowanie opisu danych
Przed automatycznym raportowaniem pełnej tabeli podsumowującej statystyki opisowe, tym razem Twoim celem jest zmierzenie tendencji centralnej rozkładu cen.
rooms | boxplot | histogram | line1 | line2 | points1 |
---|---|---|---|---|---|
1 | |||||
2 | |||||
3 | |||||
4 |
Ok, teraz w końcu podsumujemy podstawowe miary tendencji centralnej dla cen według dzielnic/typów budynków używając pakietu ‘kable’. Możesz dostosować swój raport końcowy do własnych potrzeb. Zobacz kilka podpowiedzi tutaj.
1 pokój | 2 pokoje | 3 pokoje | 4 pokoje | |
---|---|---|---|---|
Min | 359769.00 | 590286.00 | 632770.00 | 736669.00 |
Max | 657146.00 | 888634.00 | 965829.00 | 1277691.00 |
Q1 | 479684.75 | 634757.25 | 769683.75 | 909371.50 |
Mediana | 520507.00 | 677260.00 | 846303.50 | 964338.50 |
Q3 | 555024.75 | 717728.50 | 901078.75 | 1050976.75 |
Mean | 515518.05 | 683567.70 | 833706.02 | 974809.96 |
Odch. std. | 66951.03 | 65072.66 | 86943.90 | 113819.21 |
IQR | 75340.00 | 82971.25 | 131395.00 | 141605.25 |
Sx | 37670.00 | 41485.62 | 65697.50 | 70802.62 |
Var % | 0.13 | 0.10 | 0.10 | 0.12 |
IQR Var % | 0.14 | 0.12 | 0.16 | 0.15 |
Skośność | -0.20 | 0.80 | -0.42 | 0.33 |
Kurtoza | -0.38 | 0.48 | -0.83 | 0.05 |
Macierze korelacji
## Twoja kolej!
Na podstawie danych dot. rynku nieruchomości z pewnego regionu USA, dokonaj podobnej analizy opisowej.
Naszym celem jest przewidywanie wartości nieruchomości. Zanim jednak się tym zajmiemy na kolejnych zajęciach, postaraj się wykonać pełną analizę opisową wraz z grafiką dla tej bazy danych.
Zobaczmy, jakie mamy zmienne:
glimpse(houses)
## Rows: 506
## Columns: 14
## $ crim <dbl> 0.00632, 0.02731, 0.02729, 0.03237, 0.06905, 0.02985, 0.08829,…
## $ zn <dbl> 18.0, 0.0, 0.0, 0.0, 0.0, 0.0, 12.5, 12.5, 12.5, 12.5, 12.5, 1…
## $ indus <dbl> 2.31, 7.07, 7.07, 2.18, 2.18, 2.18, 7.87, 7.87, 7.87, 7.87, 7.…
## $ chas <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ nox <dbl> 0.538, 0.469, 0.469, 0.458, 0.458, 0.458, 0.524, 0.524, 0.524,…
## $ rm <dbl> 6.575, 6.421, 7.185, 6.998, 7.147, 6.430, 6.012, 6.172, 5.631,…
## $ age <dbl> 65.2, 78.9, 61.1, 45.8, 54.2, 58.7, 66.6, 96.1, 100.0, 85.9, 9…
## $ dis <dbl> 4.0900, 4.9671, 4.9671, 6.0622, 6.0622, 6.0622, 5.5605, 5.9505…
## $ rad <int> 1, 2, 2, 3, 3, 3, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4,…
## $ tax <int> 296, 242, 242, 222, 222, 222, 311, 311, 311, 311, 311, 311, 31…
## $ ptratio <dbl> 15.3, 17.8, 17.8, 18.7, 18.7, 18.7, 15.2, 15.2, 15.2, 15.2, 15…
## $ black <dbl> 396.90, 396.90, 392.83, 394.63, 396.90, 394.12, 395.60, 396.90…
## $ lstat <dbl> 4.98, 9.14, 4.03, 2.94, 5.33, 5.21, 12.43, 19.15, 29.93, 17.10…
## $ medv <dbl> 24.0, 21.6, 34.7, 33.4, 36.2, 28.7, 22.9, 27.1, 16.5, 18.9, 15…
Nasz zbiór danych zawiera informacje o losowej próbie nieruchomości i różnych cechach dla ich sąsiedztwa.
Ta ramka danych ma 506 wierszy i 14 kolumn (predyktorów). Mamy opisy i podsumowania predyktorów jak poniżej: - crim: wskaźnik przestępczości na mieszkańca według miasta. - zn: proporcja gruntów mieszkalnych przeznaczonych na działki powyżej 25 000 stóp kwadratowych. - indus: proporcja akrów biznesu niedetalicznego na miasto. - chas: zmienna dummy river (= 1, jeśli działka graniczy z rzeką; 0 w przeciwnym razie). - nox: stężenie tlenków azotu (cząsteczek na 10 milionów). - rm: średnia liczba pokoi na mieszkanie. - age: odsetek mieszkań zamieszkanych przez właścicieli zbudowanych przed 1940 rokiem. - dis: średnia ważona odległości do miejskich centrów zatrudnienia. - rad: indeks dostępności do autostrad radialnych. - tax: stawka podatku od nieruchomości o pełnej wartości za 10 000 USD. - ptratio: współczynnik uczeń-nauczyciel według miasta. - black: 1000(Bk - 0.63)^2 gdzie Bk jest odsetkiem czarnoskórych w danym mieście. - lstat: status populacji poniżej progu ubóstwa (procent). - medv: mediana wartości domów zamieszkałych przez właścicieli w 1000$.
działka graniczy z rzekąj | działka nie graniczy z rzeką | |
---|---|---|
Min | 5.00 | 13.40 |
Max | 50.00 | 50.00 |
Q1 | 16.60 | 21.10 |
Mediana | 20.90 | 23.30 |
Q3 | 24.80 | 33.15 |
Mean | 22.09 | 28.44 |
Odch. std. | 8.83 | 11.82 |
IQR | 8.20 | 12.05 |
Sx | 4.10 | 6.03 |
Var % | 0.40 | 0.42 |
IQR Var % | 0.39 | 0.52 |
Skośność | 1.05 | 0.86 |
Kurtoza | 1.49 | -0.68 |