Analisi del mercato immobiliare del Texas

1. Descrizione del progetto

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”

2. Scopo del progetto

Lo scopo principale è fornire insight statistici e visivi che supportino le decisioni strategiche di vendita e ottimizzazione delle inserzioni immobiliari.

3. Obiettivi

  • Identificare e interpretare i trend storici delle vendite immobiliari in Texas.
  • Valutare l’efficacia delle strategie di marketing delle inserzioni immobiliari.
  • Offrire una rappresentazione grafica dei dati che evidenzi la distribuzione dei prezzi e delle vendite tra città, mesi, anni.

4. Descrizione del dataset

4.1 Descrizione del dataset

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.

5. Calcolare indice di posizione, variabilità e forma.

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)
tab.1 - Tabella degli indici di posizione, variabilità e forma
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

5.1 Commento dati indici di posizione, variabilità e forma

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.

6. Distribuzione di frequenza

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)
tab.2 - Tabella delle distribuzione di frequenza per la variabile city
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)
tab.3 - Tabella delle distribuzione di frequenza per la variabile year
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

7.Identificazione delle variabili con maggiore variabilità e asimmetria

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.

8. Creazione di classi per una variabile quantitativa

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()

8.1 Calcolo dell’indice di eterogeneità Gini

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.

9. Calcolo delle probabilità

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%.

10. Creazioni nuove variabili

#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à.

11. Boxplot prezzo mediano diviso per anni nelle diverse 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.

12. Grafico a Barre per confrontare il totale vendite per mese e città.

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.

13. Line charts per confrontare l’andamento delle vendite in periodi storici differenti

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.

14. Conclusioni

14.1 Visione Generale del mercato Il mercato immobiliare del Texas negli anni dal 2010 al 2014

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.

14.2 Visione nel dettaglio delle singole città

  • 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.