IMPORTAZIONE LIBRERIE

library(moments)
library(ggplot2)
library(dplyr)
## 
## Caricamento pacchetto: 'dplyr'
## I seguenti oggetti sono mascherati da 'package:stats':
## 
##     filter, lag
## I seguenti oggetti sono mascherati da 'package:base':
## 
##     intersect, setdiff, setequal, union

IMPORTAZIONE DATASET

dati <- read.csv("realestate_texas.csv",sep = ",", encoding = "latin1")
dati$month <- factor(dati$month, levels = 1:12, labels = month.abb)
head(dati)
##       city year month sales volume median_price listings months_inventory
## 1 Beaumont 2010   Jan    83 14.162       163800     1533              9.5
## 2 Beaumont 2010   Feb   108 17.690       138200     1586             10.0
## 3 Beaumont 2010   Mar   182 28.701       122400     1689             10.6
## 4 Beaumont 2010   Apr   200 26.819       123200     1708             10.6
## 5 Beaumont 2010   May   202 28.833       123100     1771             10.9
## 6 Beaumont 2010   Jun   189 27.219       122800     1803             11.1
attach(dati)

INDAGINI PRELIMINARI

range(year)
## [1] 2010 2014
unique(city)
## [1] "Beaumont"              "Bryan-College Station" "Tyler"                
## [4] "Wichita Falls"
  1. ANALISI DELLE VARIABILI
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           : Factor w/ 12 levels "Jan","Feb","Mar",..: 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 ...

Il Dataset riporta l’insieme di vendite immobiliari condotte in 4 città del texas nell’arco di cinque anni(2010, 2011, 2012, 2013, 2014). Ogni riga corrisponde ad una serie di vendite immobiliari effettuate in una specifica città e riconducibili ciascuna ad un preciso mese dell’anno. In totale abbiamo 240 osservazioni inerenti a otto differenti variabili.

1.1 VARIABILI:

  1. CITY: variabile qualitativa nominale, in quanto tale serve per classificare i dati in categorie distintive che non hanno un ordine intrinseco

  2. YEAR: variabile qualitativa su scala ordinale

  3. MONTH: variabile qualitativa su scala ordinale

  4. SALES: variabile quantitativa discreta dato che rappresenta il numero di unità vendute in un mese specifico dell’anno. Inoltre poichè ha un punto zero naturale che indica l’assenza totale della quantità misurata è anche su scala di rapporti.

  5. VOLUME: valiabile quantitativa continua su scala di rapporti, giacchè ha un punto zero naturale che indica l’assenza totale della quantità misurata: zero milioni di dollari rappresentano l’assenza totale di vendite.

  6. MEDIAN_PRICE: è un parametro descrittivo che rappresenta una misura di tendenza centrale. Non è propriamente una variabile di per sé, ma piuttosto una statistica che sintetizza un aspetto della distribuzione di una variabile quantitativa continua, in questo caso, i prezzi. La mediana dei prezzi delle case viene spesso riportata perché i prezzi estremamente alti o bassi possono distorcere la media. Al contrario la mediana è meno sensibile agli outlier e questo la rende particolarmente utile quando la distribuzione dei dati è asimmetrica o contiene valori anomali, in quanto fornisce un quadro più accurati del mercato.

  7. LISTINGS: variabile quantitativa discreta su scala di rapporti. Si riferisce ai dati delle inserzioni di proprietà immobiliari. In questo contesto, ogni “listings” rappresenta una singola proprietà con attributi come prezzo, ubicazione, numero di camere, ecc.

  8. MONTHS_INVENTORY: variabile quantitativa continua. È una misura che indica il numero di mesi necessari per vendere o esaurire l’inventario corrente.In sintesi, “months inventory” è una variabile che può fornire informazioni preziose sulla velocità con cui un inventario si sta esaurendo.

1.2 TIPOLOGIE DI ANALISI STATISTICHE

Grazie alle variabili MONTHS e YEAR possiamo utilizzare il poligono di frequenza per percepire l’andamento del mercato immobiliare nel tempo. Nello specifico:

Così facendo possiamo identificare con maggior precisione quali città hanno registrato, o stanno registrando, un maggior aumento di vendite immobiliare nel tempo, ottenendo così una solida base su cui effettuare possibili investimenti futuri.

  1. CITY:
  1. SALES:
  1. VOLUME:
  1. MEDIAN_PRICE:
  1. LISTINGS:
  1. MONTHS_INVENTORY:

2.INDICI DI POSIZIONE, VARIABILITà E FORMA

FUNZIONE PER IL CALCOLO DEGLI INDICI:

funzione_IPVF <- function(x){
  options(scipen=999)
  x_sorted <- sort(x)
  n <- length(x_sorted)
  minimo = round(min(x),2)
  massimo = round(max(x),2)
  media = round(mean(x),2)
  mediana = round(median(x),2)
  Q1 <- round(quantile(x, 0.25),2)
  Q3 <- round(quantile(x, 0.75),2)
  IQR = round(IQR(x),2)
  varianza = round(var(x),2)
  dev_s = round(sd(x),2)
  CV = VR_sales <- round(sd(x)/mean(x) * 100, 2)
  simmetria = round(skewness(x), 2)
  curtosi = round(kurtosis(x)-3, 2)
  
  distr_indici <- as.data.frame(cbind(minimo, massimo, media, mediana, Q1, Q3,
                                      IQR, varianza, dev_s, CV, simmetria, curtosi))
  
  rownames(distr_indici) <- deparse(substitute(x))
  
  return(distr_indici)
}

CALCOLO DEGLI INDICI:

df_sales <- funzione_IPVF(sales)
df_volume <- funzione_IPVF(volume)
df_median_price <- funzione_IPVF(median_price)
df_listings <- funzione_IPVF(listings)
df_months_inventory <- funzione_IPVF(months_inventory)

final_df <- rbind(df_sales, df_volume, df_median_price, df_listings, df_months_inventory)

print(final_df)
##                    minimo   massimo     media   mediana        Q1        Q3
## sales               79.00    423.00    192.29    175.50    127.00    247.00
## volume               8.17     83.55     31.01     27.06     17.66     40.89
## median_price     73800.00 180000.00 132665.42 134500.00 117300.00 150050.00
## listings           743.00   3296.00   1738.02   1618.50   1026.50   2056.00
## months_inventory     3.40     14.90      9.19      8.95      7.80     10.95
##                       IQR     varianza    dev_s    CV simmetria curtosi
## sales              120.00      6344.30    79.65 41.42      0.72   -0.31
## volume              23.23       277.27    16.65 53.71      0.88    0.18
## median_price     32750.00 513572983.09 22662.15 17.08     -0.36   -0.62
## listings          1029.50    566568.97   752.71 43.31      0.65   -0.79
## months_inventory     3.15         5.31     2.30 25.06      0.04   -0.17

2.1 DISTRIBUZIONE DI FREQUENZE VARIABILI QUALITATIVE

FUNZIONE PER IL CALCOLO FREQUENZE

N<-dim(dati)[1]

funzione_freq <- function(x){
  ni<-table(x)
  fi<-ni/N
  Ni<-cumsum(ni)
  Fi<-Ni/N

  distr_freq<-as.data.frame(cbind(ni,fi,Ni,Fi))
  return(distr_freq)
}

CALCOLO DELLE FREQUENZE PER VARIABILI QUALITATIVE

df_year <- funzione_freq(year)
df_month <- funzione_freq(month)
df_city <- funzione_freq(city)

df_freq <- rbind(df_year, df_month, df_city)

print(df_freq)
##                       ni         fi  Ni         Fi
## 2010                  48 0.20000000  48 0.20000000
## 2011                  48 0.20000000  96 0.40000000
## 2012                  48 0.20000000 144 0.60000000
## 2013                  48 0.20000000 192 0.80000000
## 2014                  48 0.20000000 240 1.00000000
## Jan                   20 0.08333333  20 0.08333333
## Feb                   20 0.08333333  40 0.16666667
## Mar                   20 0.08333333  60 0.25000000
## Apr                   20 0.08333333  80 0.33333333
## May                   20 0.08333333 100 0.41666667
## Jun                   20 0.08333333 120 0.50000000
## Jul                   20 0.08333333 140 0.58333333
## Aug                   20 0.08333333 160 0.66666667
## Sep                   20 0.08333333 180 0.75000000
## Oct                   20 0.08333333 200 0.83333333
## Nov                   20 0.08333333 220 0.91666667
## Dec                   20 0.08333333 240 1.00000000
## Beaumont              60 0.25000000  60 0.25000000
## Bryan-College Station 60 0.25000000 120 0.50000000
## Tyler                 60 0.25000000 180 0.75000000
## Wichita Falls         60 0.25000000 240 1.00000000

CONSIDERAZIONI GENERALI

Per le variabili quantitative (discrete e continue) sono stati calcolati gli indici di posizione, variabilità e forma. Questi valori sono essenziali per capire come i dati a nostra disposizione si distribuiscono, consentendoci di individuare quali, tra queste, sono quelle soggette ad una maggiore variabilità. Nel nostro contesto, essa può tornarci utile per due motivi:

Nello specifico:

  1. IDENTIFICAZIONE DELLE VARIABILI CON MAGGIOR VARIABILITà E ASIMMETRIA

Per valutare quali tra le precedenti variabili possieda una maggiore variabilità e asimmetria, dobbiamo avvalerci di due strumenti: il COEFFICENTE DI VARIAZIONE e la SKEWNESS. Anche se “Median_Price” ha la varianza e la deviazione standard assolute più elevate, il coefficiente di variazione di “Volume” è il più alto (53.71%). Infatti Il CV è particolarmente utile perché normalizza la misura di dispersione, permettendo un confronto equo tra variabili con diverse scale e unità di misura. Questo significa che, rispetto alla sua media, i dati di “Volume” sono più dispersi rispetto alle altre variabili. Quindi, se consideriamo la variabilità in termini relativi alla media, “Volume” è la variabile con la maggiore variabilità. È per questo che, anche se “Median_price” ha valori assoluti di varianza e deviazione standard più alti, “Volume” risulta avere una maggiore variabilità relativa. Invece, per ciò che concerne la simmetricità di una variabile è di vitale importanza ricordare che un valore di skewness vicino a 0 indica una distribuzione simmetrica. Al contrario, valori positivi indicano una distribuzione asimmetrica con una coda più lunga a destra, mentre valori negativi indicano una distribuzione con una coda più lunga a sinistra. Detto ciò, la variabile “volume” ha il valore di skewness più alto (0.88), pertanto possiamo concludere che è la più asimmetrica e con una coda più lunga a destra rispetto alle altre variabili. Da un punto di vista statistico un CV alto può indicare che c’è una grande variabilità nei dati rispetto alla media. Questo significa che le vendite e prezzi immobiliari possono fluttuare significativamente da un periodo all’altro o tra diverse unità di analisi (nel nostro caso, tra città). Quanto alla skewness 0.88 potrebbe indicare che in alcuni periodi(un anno specifico, o alcuni mesi, per esempio estivi) per alcune città ci sono vendite eccezionalmente elevate. Questi picchi potrebbero essere dovuti a eventi stagionali, promozioni, o campagne pubblicitarie efficaci. L’identificazione dei fattori che causano questi picchi è essenziale per replicare il successo. Inoltre, la variabilità potrebbe dipendre anche dalla presenza di immobili con prezzi elevati, il che suggerirebbe che in alcune zone il mercato sia orientato per lo più su case di lusso. In sintesi, è utile condurre un’analisi più dettagliata per comprendere le cause sottostanti della variabilità e dell’asimmetria. Questo potrebbe includere l’analisi di fattori stagionali, promozionali o economici.

  1. CREAZIONE CLASSI PER UNA VARIABILE QUANTITATIVA E RAPPRESENTAZIONE GRAFICA

CLASSI MEDIAN_PRICE

#creazione classi
dati$median_price_cl <- cut(dati$median_price,
                            breaks = c(73700,91500,109200,126900,
                                       144600,162300,180000),
                            include.lowest = TRUE, right = FALSE)

#creazione etichette personalizzate per gli intervalli
breaks <- c(73700, 91500, 109200, 126900, 144600, 162300, 180000)
labels <- sprintf("[%d, %d)", breaks[-length(breaks)], breaks[-1])

# Assegna le etichette personalizzate ai livelli del fattore
levels(dati$median_price_cl) <- labels

#distribuzione di frequenze
N<-dim(dati)[1]

ni<-table(dati$median_price_cl)
fi<-ni/N
Ni<-cumsum(ni)
Fi<-Ni/N

distr_freq_median_price_cl<-as.data.frame(cbind(ni,fi,Ni,Fi))
distr_freq_median_price_cl$class <- rownames(distr_freq_median_price_cl)

distr_freq_median_price_cl$class <- factor(distr_freq_median_price_cl$class, levels = rownames(distr_freq_median_price_cl))

RAPPRESENTAZIONE GRAFICA

ggplot(data = distr_freq_median_price_cl)+
  geom_col(    
    aes(x=class,
        y=ni,
        fill=class),
    col="black")+
  labs(x="Classi prezzo mediano",
       y="Frequenze assolute",
       title="Grafico a barre Classi prezzo mediano")+
  theme_bw()+
  scale_y_continuous(breaks = seq(0,80,10))+
  theme(legend.position = "bottom")

4.1 CALCOLO INDICE ETEROGENEITà DI GINI

FUNZIONE INDICE DI 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)
}

CALCOLO INDICE DI GINI PER CLASSI MEDIAN_PRICE

gini_index(dati$median_price_cl)
## [1] 0.9328333

4.2 CONSIDERAZIONI

Un indice di Gini di 0.9285417 (molto vicino a 1) conferma quanto illustrato dal grafico precedente, ovvero che c’è una grande disparità tra i prezzi delle proprietà. Pochi immobili rientrano nelle fasce di prezzo molto basso e molto alto, mentre la maggior parte tende a concentrarsi nelle restanti classi. Tutto ciò suggerisce che il mercato è segmentato in modo acuto, con una chiara distinzione tra diverse fasce di prezzo, il che potrebbe dipendere da vari fattori come la localizzazione geografica (ad esempio, proprietà in aree turistiche rispetto a zone residenziali) o il tipo di proprietà (ad esempio, case più economiche rispetto ad appartamenti di lusso).Grazie a queste informazioni siamo in grado di pianificare strategie di investimento o politiche di sviluppo urbano, nello specifico idetificare quelle zone in cui il mercato può rendere maggiormente.

5.CALCOLO DELLE PROBABILITA

BEAMONT:

#Filtro  righe per Beaumont

Beamont_data <- dati[dati$city == "Beaumont", ]

#calcolo probabilità

prob_Beamont = nrow(Beamont_data)/N
formatted_prob_Beamont <- sprintf("%.f%%", prob_Beamont * 100)
cat("La probabilità che una riga a caso riporti la città di Beaumont è:",formatted_prob_Beamont) 
## La probabilità che una riga a caso riporti la città di Beaumont è: 25%

LUGLIO:

#Filtro  righe per luglio

Jul_data <- dati[dati$month == "Jul", ]

#calcolo probabilità

prob_Jul = nrow(Jul_data)/N
formatted_prob_Jul <- sprintf("%.2f%%", prob_Jul * 100)
cat("La probabilità che una riga a caso riporti il mese di Luglio è:", formatted_prob_Jul) 
## La probabilità che una riga a caso riporti il mese di Luglio è: 8.33%

DICEMBRE 2012

#Filtro righe per dicembre 2012

Dic_2012_data <- dati[dati$year == 2012 & dati$month == "Dec", ]

#calcolo probabilità

prob_Dec_2012 <- nrow(Dic_2012_data)/N
formatted_prob_Dec_2012 <- sprintf("%.2f%%", prob_Dec_2012 * 100)
cat("La probabilità che una riga a caso riporti dicembre 2012 è:", formatted_prob_Dec_2012)
## La probabilità che una riga a caso riporti dicembre 2012 è: 1.67%
  1. CREAZIONE NUOVE VARIABILI
#nuova colonna prezzo medio
dati$prezzo_medio <- dati$volume/dati$sales * 1000 
dati$prezzo_medio <- round(dati$prezzo_medio, 2) 

#nuova colonna tasso di conversione
dati$TC <- dati$sales/dati$listings * 100
dati$TC <- round(dati$TC, 2)

attach(dati)
## I seguenti oggetti sono mascherati da dati (pos = 3):
## 
##     city, listings, median_price, month, months_inventory, sales,
##     volume, year

INDICI POSIZIONE, VARIABILITà E FORMA TASSO DI CONVERSIONE

funzione_IPVF(TC)
##    minimo massimo media mediana   Q1   Q3  IQR varianza dev_s   CV simmetria
## TC   5.01   38.71 11.87   10.96 8.98 13.5 4.52       22  4.69 39.5      2.09
##    curtosi
## TC    6.88

GRAFICO A BARRE TOTALE INSERZIONI

ggplot(data = dati) +
  geom_bar(aes(x = month,
               y = listings,
               fill = city),
           position = 'stack', 
           stat = 'identity') +
  facet_wrap(~ year)+
  labs(title = 'Inserzioni totali mensili',
       x = 'Mese',
       y = 'Inserzioni Totali') +
  theme_minimal()+
  theme(axis.text.x = element_text(angle = 90, hjust = 1))

GRAFICO A LINEE EFFICACIA ANNUNCI

ggplot(data = dati, aes(x = month, y = TC, color = city, group = city)) +
  geom_line() + 
  facet_wrap(~ year) +
  labs(title = "Andamento mensile del tasso di conversione",
       x = "Mese",
       y = "Efficacia (%)") +
  theme_minimal()+
  theme(axis.text.x = element_text(angle = 90, hjust = 1))

CONSIDERAZIONI

Dalla nostra analisi circa gli indici di posizione, variabilità e forma riguardanti la nuova variabile precedentemente creata, TC (tasso di conversione: fornisce una percentuale che indica quante delle inserzioni si sono effettivamente convertite in vendite), emerge una modesta variabilità (39% stando al CV calcolato) unita ad un’alta simmetricità positiva, la quale fa intuire la presenza di valori alti nella distribuzione. Pertanto, potrebbe risultare molto utile un’analisi sulle cause che determinano questo picco nei valori riguardanti il nostro TC (molto probabile la presenza di campagne pubblicitarie efficaci, caratterizzate da inserzioni ben strutturate). Inoltre, dalle visualizzazioni grafiche emergono alcuni aspetti degni di nota:

  1. ANALISI CONDIZIONATA
dati_aggregati <- dati %>%
  group_by(city, year ) %>%  
  summarize(total_sales = sum(sales),
            mean_sales = mean(sales),
            sd_sales = sd(sales),
            total_volume = sum(volume),
            mean_volume = mean(volume),
            sd_volume = sd(volume)
            )
## `summarise()` has grouped output by 'city'. You can override using the
## `.groups` argument.
print(dati_aggregati)
## # A tibble: 20 × 8
## # Groups:   city [4]
##    city            year total_sales mean_sales sd_sales total_volume mean_volume
##    <chr>          <int>       <int>      <dbl>    <dbl>        <dbl>       <dbl>
##  1 Beaumont        2010        1874       156.     36.9         272.        22.7
##  2 Beaumont        2011        1728       144      22.7         253.        21.1
##  3 Beaumont        2012        2063       172.     28.4         294.        24.5
##  4 Beaumont        2013        2414       201.     37.7         364.        30.3
##  5 Beaumont        2014        2564       214.     36.5         386.        32.1
##  6 Bryan-College…  2010        2011       168.     70.8         345.        28.7
##  7 Bryan-College…  2011        2009       167.     62.2         347.        28.9
##  8 Bryan-College…  2012        2361       197.     74.3         424.        35.4
##  9 Bryan-College…  2013        2854       238.     95.8         541.        45.1
## 10 Bryan-College…  2014        3123       260.     86.7         634.        52.8
## 11 Tyler           2010        2730       228.     49.0         436.        36.3
## 12 Tyler           2011        2866       239.     49.6         463.        38.6
## 13 Tyler           2012        3162       264.     46.4         528.        44.0
## 14 Tyler           2013        3449       287.     53.0         604.        50.3
## 15 Tyler           2014        3978       332.     56.9         715.        59.6
## 16 Wichita Falls   2010        1481       123.     26.6         180.        15.0
## 17 Wichita Falls   2011        1275       106.     19.8         145.        12.1
## 18 Wichita Falls   2012        1349       112.     14.2         159.        13.2
## 19 Wichita Falls   2013        1455       121.     26.0         178.        14.9
## 20 Wichita Falls   2014        1404       117      21.1         175.        14.5
## # ℹ 1 more variable: sd_volume <dbl>

RAPPRESENTAZIONE GRAFICA

ggplot(dati_aggregati, aes(x = year, y = mean_sales, color = city, group = city)) +
  geom_line() +
  geom_point() +
  labs(title = "Media delle Vendite per Città e Anno",
       x = "Anno",
       y = "Media Vendite Mensili") +
  scale_y_continuous(breaks = seq(120,320,20))+
  theme_minimal()

ggplot(dati_aggregati, aes(x = year, y = mean_volume, fill = city)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Volume Medio delle Vendite per Anno e Città",
       x = "Anno",
       y = "Volume Medio Mensile ($)") +
  theme_minimal()

8.CREAZIONE DI VISUALIZZAZIONI CON GGPLOT2

8.1 BOXPLOT PREZZO MEDIANO

ggplot(data=dati, aes(x = city, y = median_price, fill = city)) +
  geom_boxplot() +
  labs(title = "Confronto prezzo mediano",
       x = "City",
       y = "Median Price") + 
  theme_minimal()

ggplot(data=dati, aes(x = city,
                      y = median_price,
                      fill = factor(year))) +
  geom_boxplot() +
  labs(title = "Confronto prezzo mediano tra le Città, Anno per Anno",
       x = "City",
       y = "Prezzo mediano",
       fill = "Year") +
  theme_minimal()

CONSIDERAZIONI

Il primo box plot ci consente di fare le seguenti osservazioni sul prezzo mediano delle case tra le città:

Per ciò che concerne il box plot sui prezzi mediani suddivisi per anno, esso non fa che confermare le osservazioni fatte in precedenza:

Conclusione: Bryan-College Station e Tyler emergono come mercati con prezzi più alti e minor dispersione, indicativi di mercati più stabili e prevedibili. Beaumont e Wichita Falls, al contrario, mostrano una maggiore variabilità, con Wichita Falls che evidenzia il mercato più economico e volatile.

8.2 BOXPLOT VALORE TOTALE VENDITE

ggplot(data=dati, aes(x = city,
                      y = volume,
                      fill = factor(year))) +
  geom_boxplot() +
  labs(title = "Confronto del valore totale delle vendite tra le Città per Anno",
       x = "City",
       y = "Volume in dollari",
       fill = "Year") +
  theme_minimal()+
  scale_y_continuous(breaks = seq(0,100,10))

CONSIDERAZIONI

Riguardo al grafico sul valore totale delle vendite possiamo fare le seguenti considerazioni:

8.3 BAR PLOT VENDITE

ggplot(data = dati) +
  geom_bar(aes(x = month,
               y = sales,
               fill = city),
           position = 'stack', 
           stat = 'identity') +
  facet_wrap(~ year)+
  labs(title = 'Vendite totali per mese e città',
       x = 'Mese',
       y = 'Totale vendite') +
  theme_minimal()+
  theme(axis.text.x = element_text(angle = 90, hjust = 1))+
  scale_y_continuous(breaks = seq(0, 1000, 200))+
  theme(legend.position = "bottom")

8.4 BAR PLOT NORMALIZZATO

ggplot(data = dati) +
  geom_bar(aes(x = month,
               y = sales,
               fill = city),
           position = "fill",
           stat = 'identity') +
  facet_wrap(~ year) + 
  labs(title = 'Vendite totali per mese e città',
       x = 'Mese',
       y = 'Proporzione vendite (%)') +
  theme_classic()+
  scale_y_continuous(breaks = seq(0, 1, 0.1))+
  theme(axis.text.x = element_text(angle = 90, hjust = 1))+
  theme(legend.position = "bottom")

CONSIDERAZIONI

Entrambi i grafici ci consentono di osservare una stagionalità delle vendite. Ad esempio, mesi estivi come Maggio, Giugno e Luglio, registrano volumi di vendite più alti, mentre mesi invernali, come Gennaio e Febbraio, si distinguono per una minore attività. Grazie al grafico normalizzato, possiamo facilmente notare come Bryan-College Station e Tyler contribuiscano in misura maggiore alle vendite totali rispetto alle altre due città. Nello specifico, Tyler è la città che regista il numero di vendite mensili più alto in tutti e 5 gli anni. Al contrario, Wichita Falls e Beaumont mostrano mercati meno dinamici sebbene la proporzione di vendite risulti essere più costante rispetto a Bryan-College Station, la quale mostra oscillazioni significative durante i mesi estivi. Infine, un ultimo aspetto da tenere in considerazione è che Bryan-College Station, Tyler e Beaumont registrano un aumento della loro proporzione di vendite nel tempo segno di un rafforzamento del mercato in queste località.

8.5 SERIE STORICA ANDAMENTO VENDITE MENSILE

ggplot(data=dati)+
  geom_line(aes(x=month, 
                y=volume, 
                group = interaction(year, city),
                color=city),lwd=1)+
  facet_wrap(~ year)+
  labs(title = 'Andamento Mercato Immobiliare Texas',
       x = 'Mesi',
       y = 'Milioni di dollari guadagnati')+
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 90, hjust = 1))+
  scale_y_continuous(breaks = seq(0, 80, 10))

8.6 SERIE STORICA ANDAMENTO VENDITE ANNUALE

dati_aggregati_year <- dati %>%
  group_by(year, city) %>%  
  summarize(total_sales = sum(sales, na.rm = TRUE))  
## `summarise()` has grouped output by 'year'. You can override using the
## `.groups` argument.
ggplot(data=dati_aggregati_year)+
  geom_line(aes(x=year,y=total_sales, color=city))+
  labs(title = 'Andamento Mercato Immobiliare Texas',
       x = 'Anno',
       y = 'Totale Vendite')+
  scale_y_continuous(breaks = seq(0, 4000, 200))

dati$year <- as.numeric(dati$year)
dati$month <- as.numeric(dati$month)

# Crea la variabile 'date' con controllo
dati_temp <- dati %>%
  mutate(date = as.Date(paste(year, month, "01", sep = "-"), format = "%Y-%m-%d"))

# Crea il grafico
ggplot(data = dati_temp) +
  geom_line(aes(x = date, y = volume, colour = city, group = city)) +
  labs(title = "Andamento Mensile delle Vendite nelle Città",
       x = "Anno",
       y = "Volume in Dollari($)",
       color = "Città") +
  scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
  theme_minimal() 

  1. CONCLUSIONI

Dalle analisi effettuate sul dataset relativo al mercato immobiliare del Texas, possiamo trarre diverse conclusioni utili per comprendere meglio le dinamiche del mercato e identificare opportunità di miglioramento o investimento.

  1. Analisi delle vendite:

Le vendite mostrano una significativa variabilità tra le città e nei diversi mesi. Città come Bryan-College Station e Tyler tendono ad avere vendite costantemente elevate rispetto ad altre città come Wichita Falls o Beaumont, che mostrano un’attività più bassa e irregolare. Inoltre, le vendite sono influenzate dalla stagionalità, con picchi nei mesi primaverili ed estivi e cali durante l’inverno. Questo indica che il mercato immobiliare del Texas segue una ciclicità tipica. Per ciò che concerne il loro andamento temporale, Bryan-College Station, Tyler e Beaumont mostrano una crescita costante nel tempo,con Tyler posizionata al primo posto, mentre Whichita Falls evidenzia un calo netto, segnalando un mercato meno appetibile.

  1. Volume delle vendite:

Il volume totale delle vendite è fortemente influenzato dalle città più grandi e attive. Bryan-College Station e Tyler sono in testa, indicando mercati immobiliari forti con un’alta domanda. Anche qui l’alta variabilità e l’alta simmetricità positiva suggeriscono la presenza di mesi in cui le vendite si fanno più consistenti, fenomeno che trova conferma nel grafico sull’Andamento Mensile delle Vendite nelle Città.

  1. Prezzo mediano:

Il prezzo mediano delle case è relativamente stabile rispetto ad altre variabili, con una distribuzione simmetrica e una variabilità moderata. Questo suggerisce che, nonostante la variabilità delle vendite, i prezzi delle case non subiscono oscillazioni drastiche, rendendo il mercato del Texas relativamente prevedibile in termini di valore degli immobili. Nello specifico, città come Tyler e Bryan-College Station hanno prezzi medi più alti rispetto a Wichita Falls e Beaumont, segnalando un divario economico tra le diverse regioni del Texas (data la presenza di immobili di lusso) e dunque un maggior potere d’acquisto da parte dei loro abitanti.

  1. Listings:

Il numero di annunci è molto variabile tra le città, con alcune aree che mostrano un’alta concentrazione di inserzioni attive. Questa variabilità è strettamente connessa alla stagionalità del mercato immobiliare del texas. Degno di nota è il fatto che Bryan College Station sia la città con il tasso di conversione migliore, nonostante il numero di annunci attivi registri un calo nel corso degli anni.

In sintesi, Città come Bryan-College Station e Tyler (e in misura minore Beaumont) rappresentano ottime opportunità di investimento. Infatti, come possiamo evincere dai grafici, esse si contraddistinguono non solo perchè presentano beni immobiliari più costosi, ma anche perchè registrano un aumento costante delle vendite nel tempo, oltre che dei prezzi. Tuttavia, risulta necessaria un’ottimizzazione delle strategie di vendita. Infatti, città come tyler presentano un numero consistente di inserzione che non si traducono in vendite. Può essere utile uno studio più dettagliato delle strategie di marketing di Bryan College Station, la quale, nonostante il basso numero di inserzioni, ha il tasso di conversione più alto tra tutte le città oggetto di studio.

Dunque, è di vitale importanza adattare le strategie di marketing di Bryan College Station alle città meno attive per aumentare la visibilità delle inserzioni e, di conseguenza, anche le vendite.