Il committente “Texas Reality Insights”, desidera analizzare le tendenze del mercato immobiliare nello stato del Texas. L’analisi verrà effettuata utilizzando i dati relativi alle vendite di immobili tra il periodo di 01/2010 e 12/2014 presenti nel dataset “Realestate_Texas.csv”
Lo scopo principale è fornire insight statistici e visivi che supportino le decisioni strategiche di vendita e ottimizzazione delle inserzioni immobiliari.
Di seguito si può visualizzare le variabili del dataset “realestate_texas.csv”
## [1] "city" "year" "month" "sales"
## [5] "volume" "median_price" "listings" "months_inventory"
Le variabili del dataset, dove a fianco si descrive il tipo della variabile ed un suo possibile utilizzo all’interno delle analisi:
city: Qualitativa nominale. Capire l’efficacia delle strategie di marketing attuate nelle diverse città incrociandola con la variabile sales.
year: Quantitativa continua, verrà trattata come qualitativa ordinale crescente per descrivere meglio il trend delle vendite con una serie storica.
month: Qualitativa nominale, fissando in numeri anzichè in stringa il nome del mese possiamo analizzare i trend all’interno di ogni anno in modo da individuare eventauli correlazioni di aumento o diminuizione delle vendite legate a determinati periodi dell’anno.
sales: Quantitativa discreta. Con sales verifichiamo il trend delle vendite per anno, mese ma anche l’efficacia delle strategia markenting per ogni città.
volume: Quantitativa continua.
median price: Quantitativa continua.
listings: Quantitativa discreta.
months_inventory: Quantitativa continua. Ci serve per analizzare quanto è il lasso di tempo necessario per vendere un immobile dopo averla messa sul mercato attraverso le inserzioni.
Calcolo gli indici di posizioni, variabilità e forma per tutte le variabili quantitative. Per le variabili qualitative verranno create delle distrubuzoni di frequenza.
library(knitr)
library(kableExtra)
library(moments)
library(ggplot2)
variable_Q<-c("sales","volume","median_price","listings","months_inventory")
# Calcola la media
mu<- apply(realestate_texas[, variable_Q], 2, mean)
# Calcola la mediana
medians <- apply(realestate_texas[, variable_Q], 2, median)
# Calcola la varianza
variances <- apply(realestate_texas[, variable_Q], 2, var)
# Calcola la deviazione standard
sds <- apply(realestate_texas[, variable_Q], 2, sd)
# Calcola il valore massimo
maximum <- apply(realestate_texas[, variable_Q], 2, max)
# Calcola il valore minimo
minimum <- apply(realestate_texas[, variable_Q], 2, min)
# Calcola Percentili
percentile <- apply(realestate_texas[, variable_Q], 2, quantile, probs= c(0.25, 0.75))
#calcolo asimmentria
asymmetry<- apply(realestate_texas[, variable_Q], 2, skewness)
#calcolo curtosi
kurtosis_q<- apply(realestate_texas[, variable_Q], 2, function(x) {kurtosis(x) - 3})
# Funzione per calcolare il coefficiente di variazione
cv_q <- apply(realestate_texas[, variable_Q], 2,function(x) {sd(x) / mean(x)})
# Funzione per calcolare la moda
getmode <- function(x) {
uniqv <- unique(x)
uniqv[which.max(tabulate(match(x, uniqv)))]
}
# Crea un dataset di esempio
variable_dataset <- data.frame(
MIN=minimum,
MAX=maximum,
MEAN= round(mu,2),
DEV.STD=round(sds,2),
VARIANCE=round(variances,0),
Q2=percentile[1,],
MEDIAN= round(medians,2),
Q3=percentile[2,],
ASYMMETRY= asymmetry,
KURTOSIS= kurtosis_q,
CV=cv_q
)
kable(variable_dataset,caption="tab.1 - Tabella degli indici di posizione, variabilità e forma")%>%
kable_styling(htmltable_class = "lightable-classic", html_font = "Arial Narrow", row_label_position = "c" ) %>%
column_spec(1, bold = T)
| MIN | MAX | MEAN | DEV.STD | VARIANCE | Q2 | MEDIAN | Q3 | ASYMMETRY | KURTOSIS | CV | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| sales | 79.000 | 423.000 | 192.29 | 79.65 | 6344 | 127.0000 | 175.50 | 247.000 | 0.7181040 | -0.3131764 | 0.4142203 |
| volume | 8.166 | 83.547 | 31.01 | 16.65 | 277 | 17.6595 | 27.06 | 40.893 | 0.8847420 | 0.1769870 | 0.5370536 |
| median_price | 73800.000 | 180000.000 | 132665.42 | 22662.15 | 513572983 | 117300.0000 | 134500.00 | 150050.000 | -0.3645529 | -0.6229618 | 0.1708218 |
| listings | 743.000 | 3296.000 | 1738.02 | 752.71 | 566569 | 1026.5000 | 1618.50 | 2056.000 | 0.6494982 | -0.7917900 | 0.4330833 |
| months_inventory | 3.400 | 14.900 | 9.19 | 2.30 | 5 | 7.8000 | 8.95 | 10.950 | 0.0409753 | -0.1744475 | 0.2506031 |
I dati nella tab.1 ci indicano che dal 01/2010 e 12/2014 nelle città del Texas presenti nel dataset, si sono registrate una media di vendite 192.29, con un range che va da un minimo di 79 ad un massimo di 423. La media è maggiore della mediana per la variabile “sales” questo denota un asimmetria positiva, infatti questa variabile fa registrare un’asimmetria di +0.71, questo dato è influenzato da mesi dove le vendite registrate sono più alte rispetto alla maggioranza. Il fattore di curtosi, ci indica una curva platicurtica delle vendite. Una distribuzione platicurtica può indicare la presenza di fattori che influenzano la variabilità dei dati in modo più marcato rispetto a una distribuzione normale.
Per quello che concerne il volume delle vendite, anche qui abbiamo un’asimmetria positiva influenzata da volume di vendite registrate in zone dove gli immobili hanno un costo più alto. Una distribuzione leptocurtica può indicare la presenza di fattori che influenzano in modo significativo la variabilità dei prezzi immobiliari, come la presenza di zone molto richieste.
N<-dim(realestate_texas)[1]
ni_city<-table(realestate_texas$city)
fi_city<-table(realestate_texas$city)/N
Ni_city<-cumsum(ni_city)
Fi_city<-Ni_city/N
freq_city<-cbind(ni_city,fi_city,Ni_city,Fi_city)
kable(freq_city,caption="tab.2 - Tabella delle distribuzione di frequenza per la variabile city")%>%
kable_styling(htmltable_class = "lightable-classic", html_font = "Arial Narrow", row_label_position = "c" ) %>%
column_spec(1, bold = T)
| ni_city | fi_city | Ni_city | Fi_city | |
|---|---|---|---|---|
| Beaumont | 60 | 0.25 | 60 | 0.25 |
| Bryan-College Station | 60 | 0.25 | 120 | 0.50 |
| Tyler | 60 | 0.25 | 180 | 0.75 |
| Wichita Falls | 60 | 0.25 | 240 | 1.00 |
ni_year<-table(realestate_texas$year)
fi_year<-table(realestate_texas$year)/N
Ni_year<-cumsum(ni_year)
Fi_year<-Ni_year/N
freq_year<-cbind(ni_year,fi_year,Ni_year,Fi_year)
kable(freq_year,caption="tab.3 - Tabella delle distribuzione di frequenza per la variabile year")%>%
kable_styling(htmltable_class = "lightable-classic", html_font = "Arial Narrow", row_label_position = "c" ) %>%
column_spec(1, bold = T)
| ni_year | fi_year | Ni_year | Fi_year | |
|---|---|---|---|---|
| 2010 | 48 | 0.2 | 48 | 0.2 |
| 2011 | 48 | 0.2 | 96 | 0.4 |
| 2012 | 48 | 0.2 | 144 | 0.6 |
| 2013 | 48 | 0.2 | 192 | 0.8 |
| 2014 | 48 | 0.2 | 240 | 1.0 |
La variabile con più alta variabilità è volume in
quanto presenta un coefficiente di variazione più elevato (circa
53.7%).
Tutti i valori di asimmetria dalla Tab.1 sono prossimi a 1 ed indicando
una distribuzione più o meno simmetriche. Il valore più elevato è quello
che corrisponde alla variabile volume (circa 0.885) che
quindi è la distribuzione più asimmetrica positiva.
realestate_texas$sales_cl<- cut(realestate_texas$sales, breaks = c(78, 148,219, 290,361,423))
ggplot(realestate_texas)+
geom_bar(aes(x=sales_cl),
stat="count",
col="black",
fill="blue"
)+
geom_text(stat="count",aes(label=after_stat(count),x=sales_cl ), vjust = -0.5)+
labs(title = "Distribuzione di frequenza della variabile sales",
x="Vendite suddivise in classi",
y= "Frequenza assoluta"
)+
scale_y_continuous(breaks = seq(0,80,25))+
theme_classic()
gini.index<- function(x){
ni<-table(x)
fi<-ni/length(x)
fi2<-fi^2
J<-length(table(x))
gini<-1-sum(fi2)
gini.norm<- gini/((J-1)/J)
return(gini.norm)
}
gini.index(realestate_texas$sales_cl)
## [1] 0.9038628
L’indice di Gini è 0.9038628.
La distribuzione di frequenza indica una distribuzione etereogena tra le
varie classi. La classe che rappresenta il numero di vendite più basso è
quella con frequenza maggiore e la frequenza delle osservazioni nelle
classi diminuisce per le classi con il numero di vendite crescenti,
arrivando al minimo per la classe con numero di vendite maggiori.
Beaumont ha un frequenza assoluta nel datates di 60/240, la
probabilità che presa una riga a caso di questo dataset essa riporti la
città “Beaumont” è del 25%. Calcolo classico, casi favorevoli/casi
possibili.
Luglio ha una frequenza assoluta nel dataset di 20, le osservazioni sono
240 quindi la probabilità che presa una riga a caso di questo dataset
essa riporti il mese di luglio è del 8.3%.
Dicembre 2012 compare nel dataset una volta per ogni città, 4
osservazioni su 240, quindi la probabilità che presa una riga a caso di
questo dataset essa riporti Dicembre 2012 è del 1.67%.
#aggiungo colonna prezzo medio
realestate_texas$mean_price <- realestate_texas$volume*10^6/realestate_texas$sales
#aggiungo colonna efficacia
realestate_texas$ad_effectiveness <- realestate_texas$sales / realestate_texas$listings
ggplot(realestate_texas)+
geom_boxplot(aes(x=reorder(city, ad_effectiveness),
y=ad_effectiveness, fill = city
)
)+
labs(x = "Città", y = "Efficacia degli annunci di vendita")+
facet_wrap(~ year, ncol = 5)+
scale_x_discrete(expand = c(0.1, 0.1))+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Il grafico rappresenta l’andamento diviso per anno del rapporto vendite e annunci attivi diviso per città nei quattro anni. Si può notare come l’efficienza degli annunci è per tutte le città molto basso. Evidenziando una bassa efficacia degli annunci di vendita. Si nota negli anni un aumento dell’efficacia degli annunci per tutte le città.
ggplot(realestate_texas)+
geom_boxplot(aes(x=reorder(city, median_price),
y=median_price, fill = city
)
)+
labs(title = "Prezzo mediamo negli anni", x = "Città", y = "Prezzo mediano")+
facet_wrap(~ year, ncol = 5)+
scale_x_discrete(expand = c(0.1, 0.1))+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Da come si evince dal grafico sopra mostrato, negli anni c’è un rialzo generale dei prezzi. Bryan-College Station è la città con immobili più cari mentre a Wichita Falls i meno cari. All’interno delle stesse città, ci sono zone più o meno care, questa differenza si vede principalmente in alcune città come Wichita Falls e Beaumont che hanno un IQR ampio.
library(ggplot2)
# Trasforma i mesi numerici in lettere
realestate_texas$month <- month.abb[realestate_texas$month]
ggplot(realestate_texas, aes(x = month, y = sales, fill = city)) +
geom_col(position = "stack") +
labs(title = "Vendite mensili per città",
x = "Mese",
y = "Vendite totali")+
facet_wrap(~ year, scales = "free_x")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Da questo confronto notiamo che c’è un aumento delle vendite importante nei mesi del 2013 e 2014, con un picco massimo a giugno 2014. Le zone dove si registrano le maggiori vendite sono nelle città di Tyler e Bryan-Collegge Station; che sono anche le stesse dove l’efficacia degli annunci hanno il valore più alto. Negli anni, nei mesi di giugno e luglio e dove si registrato più vendite, qui si può suggerire di ridurre gli investimenti sugli annunci e rafforzarli nei mesi invernali che registrano negli anni un minor numero di vendite.
ggplot(realestate_texas, aes(x = year, y = sales, colour = city)) +
geom_smooth(method = "loess", se = FALSE)+
labs(title = "Andamento delle vendite per città negli anni",
x = "Anni",
y = "Vendite")
## `geom_smooth()` using formula = 'y ~ x'
Il grafico evidenzia un’aumento importante delle vendite nella città di Tyler, anche in Beaumont e Bryan-College station però sembra aver raggiunto un plateau. Diverso per la città di Wichita Falls che ha avuto una crescita da metà 2011 fino a stabilizzarsi nel prima metà del 2013, mentre dalla seconda metà del 2013 al 2014 si sta registrando un trend in ribasso.
Si vede una generale ripresa con un aumento del prezzo medio e del prezzo mediano delle unità immobiliari soprattutto per le città di Bryan-College Station e Tyler; questo aumento genereale ha avuto conseguenze sull’aumento del valore totale delle vendite. Si registra anche miglioramento dell’efficacia degli annunci.
Ci sono anche dei trend stagionali nelle vendite con il minor numero di vendite durante l’inverno (mesi di Novembre, Dicembre, Gennaio e Febbraio), con un picco nei mesi estivi (Giugno/Luglio) e successiva diminuzione a partire dal mese di Agosto. Se si considera il cambiamento dei trend stagionali negli anni, si vede come nel 2010 il picco di vendite sia più spostato verso sinistra (ovvero nei mesi di Aprile, Maggio e Giugno), nel 2011 e nel 2014 il picco si sposta invece nel mese di Giugno, mentre nel 2012 e nel 2013 il picco si verifica nei mesi di Luglio e Agosto.
Tyler registra il più alto numero di vendite e il più alto valore totale di vendite. Si registra però anche il più alto numero di annunci attivi e la più bassa percentuale di efficacia degli annunci e identificando un mercato saturo in eccesso di offerta, però mostra un trend in crescita per le vendite.
Bryan-College Station è seconda per valore totale delle vendite e numero di vendite, il valore degli immobili risulta essere il più alto rispetto alle altre tre città. Ha il più alto incremento dell’efficacia del annunci immobiliare. Questi andamenti indicano che Bryan-College Station è la città con il mercato immobiliare più florido, dal line chart stare raggiungendo un plateau.
Beaumont si posiziona al terzo posto sia per valore totale delle vendite. Registra un’efficacia degli annunci leggermente in aumento negli anni.
Wichita Falls come Beaumont mostra un’andamento del prezzo abbastanza costante differentemente dalle altre città il numero delle vendite è minore tra le quattro città e sta avendo un andamento negativo nelle vendite. Wichita Falls è anche l’unica città a registrare, dopo un miglioramento dal 2011 al 2013, una diminuzione dell’efficacia degli annunci nel 2014.