Analiza danych

Analiza opisowa

Martyna Krezymon

2023-01-04

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:

Mieszkania we Wrocławiu - ceny w kPLN
x label Freq Percent Valid Percent Cumulative Percent
Valid 350-450 kPLN 9 4.5 4.5 4.5
450-550 kPLN 21 10.5 10.5 15.0
550-650 kPLN 33 16.5 16.5 31.5
650-750 kPLN 36 18.0 18.0 49.5
750-850 kPLN 31 15.5 15.5 65.0
850-950 kPLN 36 18.0 18.0 83.0
950-1050 kPLN 21 10.5 10.5 93.5
1050-1150 kPLN 10 5.0 5.0 98.5
1150-1250 kPLN 2 1.0 1.0 99.5
1250-1350 kPLN 1 0.5 0.5 100.0
Total 200 100.0 100.0
Missing <blank> 0 0.0
<NA> 0 0.0
Total 200 100.0
##        # 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.

Tabela 1. Mieszkania we Wrocławiu - ceny w PLN wg liczby pokoi.
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$.

Tabela 3. Mediana wartości domów zamieszkałych przez właścicieli w 1000$ wg graniczenia z rzeką.
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