Il dataset contiene variabili di tipo categorico/temporale (città, anno, mese) e variabili quantitative (sales, volume, median_price, listings, months_inventory).
Queste ultime ci permettono di studiare vendite, prezzi e l’efficacia del mercato nel tempo.
str(dati)
## 'data.frame': 240 obs. of 8 variables:
## $ city : chr "Beaumont" "Beaumont" "Beaumont" "Beaumont" ...
## $ year : int 2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 ...
## $ month : int 1 2 3 4 5 6 7 8 9 10 ...
## $ sales : int 83 108 182 200 202 189 164 174 124 150 ...
## $ volume : num 14.2 17.7 28.7 26.8 28.8 ...
## $ median_price : num 163800 138200 122400 123200 123100 ...
## $ listings : int 1533 1586 1689 1708 1771 1803 1857 1830 1829 1779 ...
## $ months_inventory: num 9.5 10 10.6 10.6 10.9 11.1 11.7 11.6 11.7 11.5 ...
summary(dati)
## city year month sales
## Length:240 Min. :2010 Min. : 1.00 Min. : 79.0
## Class :character 1st Qu.:2011 1st Qu.: 3.75 1st Qu.:127.0
## Mode :character Median :2012 Median : 6.50 Median :175.5
## Mean :2012 Mean : 6.50 Mean :192.3
## 3rd Qu.:2013 3rd Qu.: 9.25 3rd Qu.:247.0
## Max. :2014 Max. :12.00 Max. :423.0
## volume median_price listings months_inventory
## Min. : 8.166 Min. : 73800 Min. : 743 Min. : 3.400
## 1st Qu.:17.660 1st Qu.:117300 1st Qu.:1026 1st Qu.: 7.800
## Median :27.062 Median :134500 Median :1618 Median : 8.950
## Mean :31.005 Mean :132665 Mean :1738 Mean : 9.193
## 3rd Qu.:40.893 3rd Qu.:150050 3rd Qu.:2056 3rd Qu.:10.950
## Max. :83.547 Max. :180000 Max. :3296 Max. :14.900
Dalla sintesi emerge che:
Le vendite mensili variano da circa 80 a oltre 400 unità.
Il prezzo mediano varia tra 73.800 $ e 180.000 $.
Per quanto riguarda le specifiche città, Bryan-College Station è la città con il valore degli immobili mediamente più alto, mentre Tyler è la città dove avvengono più compravendite.
La città che risulta meno redditizia è Wichita.
Si calcolano alcuni indici statistici per misurare la dispersione dei dati.
IQR(dati$sales)
## [1] 120
IQR(dati$median_price)
## [1] 32750
IQR(dati$months_inventory)
## [1] 3.15
skewness(dati$sales)
## [1] 0.718104
skewness(dati$median_price)
## [1] -0.3645529
skewness(dati$months_inventory)
## [1] 0.04097527
Le vendite hanno un intervallo interquartile di circa 120 unità.
I prezzi hanno un intervallo interquartile di circa 32.750 $.
La distribuzione delle vendite risulta più asimmetrica rispetto alle altre variabili.
Per confrontare le variabili in termini di variabilità relativa, si utilizza il coefficiente di variazione (CV).
cv <- function(x){ sd(x) / mean(x) * 100 }
cv(dati$sales)
## [1] 41.42203
cv(dati$volume)
## [1] 53.70536
cv(dati$median_price)
## [1] 17.08218
cv(dati$listings)
## [1] 43.30833
cv(dati$months_inventory)
## [1] 25.06031
Il CV più alto si osserva per la variabile sales, indicando che il numero di vendite mensili è la più variabile.
La maggiore asimmetria invece si riscontra ancora nelle vendite, che presentano valori estremi in alcuni mesi.
Si suddivide la variabile sales in classi da 50 unità.
dati$sales_cl <- cut(dati$sales, breaks = seq(50, 450, 50))
table(dati$sales_cl)
##
## (50,100] (100,150] (150,200] (200,250] (250,300] (300,350] (350,400] (400,450]
## 21 72 56 32 34 13 9 3
ggplot(dati, aes(x = sales_cl)) +
geom_bar(fill = "steelblue") +
labs(title = "Distribuzione delle vendite per classi", x = "Classi di vendite", y = "Frequenza") +
theme_bw()
gini.index<-function(x){
ni=table(x)
fi=ni/length(x)
fi2=fi^2
J=length(table(x))
gini=1-sum(fi2)
gini.normalizzato=gini/((J-1)/J)
return(gini.normalizzato)
}
gini.index(dati$sales)
## [1] 0.998379
Le classi mostrano che l’andamento delle vendite si concentra per lo pù tra i 100 e 200 immobili al mese.
Grazie all’indice di Gini si può evidenziare che le vendite sono una variabile molto eterogenea.
Si calcolano alcune probabilità di estrazione casuale di una riga dal dataset.
p_beaumont <- mean(dati$city == "Beaumont")
p_march <- mean(dati$month == "3")
p_dec2012 <- mean(dati$month == "12" & dati$year == 2012)
p_beaumont; p_march; p_dec2012
## [1] 0.25
## [1] 0.08333333
## [1] 0.01666667
Probabilità che la riga appartenga ad una città specifica (60 su 240): 25%
Probabilità che esca un mese specifico (20 su 240): 8,3%
Probabilità che sia di un mese e di un anno specifico (4 su 240): 1,6%
Si introducono due nuove variabili:
mean_price: prezzo medio degli immobili (volume / numero vendite).
efficiency: efficacia degli annunci (listings / months_inventory).
dati$mean_price <- (dati$volume * 1e6) / dati$sales
dati$efficiency <- dati$listings / dati$months_inventory
summary(dati$mean_price)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 97010 132939 156588 154320 173915 213234
summary(dati$efficiency)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 106.8 140.1 176.0 187.3 236.0 329.3
Queste variabili aiutano a capire meglio il valore medio delle case e quanto rapidamente vengono smaltite le inserzioni.
Un locale in un annuncio medio si può stimare che venga venduto in 176 giorni.
Si calcolano statistiche descrittive per città e anno.
dati %>%
group_by(city, year) %>%
summarize(
mean_sales = mean(sales),
sd_sales = sd(sales),
mean_price = mean(median_price),
sd_price = sd(median_price)
)
## # A tibble: 20 × 6
## # Groups: city [4]
## city year mean_sales sd_sales mean_price sd_price
## <chr> <int> <dbl> <dbl> <dbl> <dbl>
## 1 Beaumont 2010 156. 36.9 133117. 13354.
## 2 Beaumont 2011 144 22.7 125642. 9603.
## 3 Beaumont 2012 172. 28.4 126533. 7973.
## 4 Beaumont 2013 201. 37.7 132400 7785.
## 5 Beaumont 2014 214. 36.5 132250 9835.
## 6 Bryan-College Station 2010 168. 70.8 153533. 5474.
## 7 Bryan-College Station 2011 167. 62.2 151417. 3709.
## 8 Bryan-College Station 2012 197. 74.3 153567. 7096.
## 9 Bryan-College Station 2013 238. 95.8 159392. 5429.
## 10 Bryan-College Station 2014 260. 86.7 169533. 7776.
## 11 Tyler 2010 228. 49.0 135175 4782.
## 12 Tyler 2011 239. 49.6 136217. 8505.
## 13 Tyler 2012 264. 46.4 139250 7983.
## 14 Tyler 2013 287. 53.0 146100 6726.
## 15 Tyler 2014 332. 56.9 150467. 8543.
## 16 Wichita Falls 2010 123. 26.6 98942. 10361.
## 17 Wichita Falls 2011 106. 19.8 98142. 10632.
## 18 Wichita Falls 2012 112. 14.2 100958. 12347.
## 19 Wichita Falls 2013 121. 26.0 105000 10383.
## 20 Wichita Falls 2014 117 21.1 105675 12444.
Prezzi mediani per città
ggplot(data = dati, aes(x = city, y = median_price)) +
geom_boxplot(fill = "green") +
labs(title = "Prezzi mediani per città") +
theme_bw()
Volume delle vendite per città e anno
ggplot(data = dati, aes(x = city, y = volume, fill = factor(year))) +
geom_boxplot() +
labs(title = "Volume vendite per città e anno") +
theme_bw()
Vendite per mese e città
library(lubridate)
ggplot(data = dati, aes(x = factor(month), y = sales, fill = city)) +
geom_col(position = "dodge") +
facet_wrap(~year, scales="free", nrow=3) +
labs(title = "Vendite mensili per città e anno",
x = "Mese", y = "Numero di vendite") +
theme_bw()
Vendite nel tempo
# Creazione della variabile data (primo giorno del mese)
dati$date <- ymd(paste(dati$year, dati$month, "01", sep = "-"))
# Line chart delle vendite nel tempo
ggplot(dati, aes(x = date, y = sales, color = city)) +
geom_line(linewidth = 1) +
labs(title = "Andamento delle vendite nel tempo per città",
x = "Data", y = "Numero di vendite") +
theme_bw()
I mesi estivi, in particolare agosto, registrano il numero più alto di vendite.
Tra le città, Bryan-College Station ha i prezzi mediani più elevati.
Tyler è la città con il maggior numero di compravendite.
Wichita Falls risulta la meno redditizia.
In generale, l’analisi evidenzia una forte stagionalità e differenze significative tra città, utili per ottimizzare le strategie di mercato.