Caricamento dataset e librerie

# Caricamento delle librerie necessarie
library(tidyverse)
library(ggplot2)
library(gghalves)
library(dplyr)
library(ineq)
library(knitr)
library(moments)
library(kableExtra)
# Caricamento del dataset
data <- read.csv("C:/Users/eapol/OneDrive/Desktop/PROFESSION AI CORSO/R STATISTICA DESCRITTIVA/PROGETTO/realestate_texas.csv")

Analisi delle variabili

city: Variabile qualitativa nominale che indica la città di riferimento.

year: Variabile quantitativa continua, trattata come qualitativa ordinale in questo caso, rappresenta l’anno di riferimento.

month: Variabile qualitativa nominale (ciclica), codificata in numeri da 1 a 12, rappresenta il mese di riferimento.

sales: Variabile quantitativa discreta che indica il numero totale di vendite.

volume: Variabile quantitativa continua su scala di rapporti, indica il valore totale delle vendite (in milioni di dollari).

median_price: Variabile quantitativa continua su scala di rapporti, indica il prezzo mediano di vendita (in dollari).

listings: Variabile quantitativa discreta che indica il numero totale di annunci attivi.

months_inventory: Variabile quantitativa continua su scala di rapporti, indica il tempo necessario per vendere tutte le inserzioni correnti, espresso in mesi.

Per le variabili quantitative come: sales, volume, median_price, listings, months_inventory possiamo calcolare indici di posizione (media, mediana), variabilità (deviazione standard, varianza) e forma (asimmetria e curtosi).

Per le variabili qualitative (city, month, year): possiamo creare tabelle di frequenza, grafici a barre o analizzare differenze tra gruppi.

Indici di posizione, variabilità e forma

#Esplorazione iniziale
head(data)
##       city year month sales volume median_price listings months_inventory
## 1 Beaumont 2010     1    83 14.162       163800     1533              9.5
## 2 Beaumont 2010     2   108 17.690       138200     1586             10.0
## 3 Beaumont 2010     3   182 28.701       122400     1689             10.6
## 4 Beaumont 2010     4   200 26.819       123200     1708             10.6
## 5 Beaumont 2010     5   202 28.833       123100     1771             10.9
## 6 Beaumont 2010     6   189 27.219       122800     1803             11.1
str(data)
## '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(data)
##      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

Con head andiamo ad osservare le prime 6 righe del dataset, per avere un’idea dei dati. Con str, osserviamo la struttura del dataset, inclusi i tipi di dati per ogni variabile. Infine, con summary, mostriamo il riassunto statistico di ogni variabile, utile per identificare ad esempio valori anomali o la distribuzione iniziale.

Calcolo delle deviazioni standard

# Calcolo delle deviazioni standard per le variabili quantitative
sd_values <- data.frame(
  Variabile = c("Sales", "Volume", "Median_Price", "Listings", "Months_Inventory"),
  Deviazione_Standard = c(sd(data$sales),
                          sd(data$volume),
                          sd(data$median_price),
                          sd(data$listings),
                          sd(data$months_inventory))
)

# Arrotondamento a due cifre decimali
sd_values$Deviazione_Standard <- round(sd_values$Deviazione_Standard, 2)

# Visualizzazione della tabella di variabilità
kable(sd_values, caption = "Variabilità - Deviazione Standard per Variabile") %>%
  kable_styling(latex_options = c("hold_position"))
Variabilità - Deviazione Standard per Variabile
Variabile Deviazione_Standard
Sales 79.65
Volume 16.65
Median_Price 22662.15
Listings 752.71
Months_Inventory 2.30

Con questo codice, calcoliamo la deviazione standard per ciascuna variabile quantitativa per misurare la variabilità dei dati. La deviazione standard va confrontata rispetto alla media della variaible per comprendere se elevata o meno.

Nello specifico possiamo desumere i seguenti risultati:

  1. sales: ha una media di 192.3 con una deviazione standard di 79.65. La deviazione standard rappresenta una variabilità relativamente alta rispetto alla media, indicando che il numero di vendite mensili può variare considerevolmente da un mese all’altro.

  2. volume: con una media di 31.005 e una deviazione standard di 16.65, questa variabile mostra una variabilità significativa, quasi la metà della media, suggerendo fluttuazioni notevoli nel volume di vendite.

  3. median_price: la media è 132,665 con una deviazione standard di 22,662.15, circa il 17% della media. Questo indica una variabilità moderata nei prezzi medi di vendita attraverso il tempo.

  4. listings: la media di 1738 e una deviazione standard di 752.71 mostrano una variabilità abbastanza elevata, indicando che il numero di annunci può differire sensibilmente di mese in mese.

  5. months_inventory: ha una media di 9.193 con una deviazione standard di 2.30. Questo rivela che i mesi di inventario possono variare, ma non estremamente, suggerendo una certa consistenza nel tempo che impiega per vendere le case.

Calcolo dell’asimmetria

# Calcolo dell'asimmetria per le variabili quantitative
skew_values <- data.frame(
  Variabile = c("Sales", "Volume", "Median_Price", "Listings", "Months_Inventory"),
  Asimmetria = c(skewness(data$sales),
                 skewness(data$volume),
                 skewness(data$median_price),
                 skewness(data$listings),
                 skewness(data$months_inventory))
)

# Arrotondamento a due cifre decimali
skew_values$Asimmetria <- round(skew_values$Asimmetria, 2)

# Visualizzazione della tabella di asimmetria
kable(skew_values, caption = "Asimmetria per Variabile") %>%
  kable_styling(latex_options = c("hold_position"))
Asimmetria per Variabile
Variabile Asimmetria
Sales 0.72
Volume 0.88
Median_Price -0.36
Listings 0.65
Months_Inventory 0.04

Calcolo della curtosi

# Calcolo della curtosi (eccesso) per le variabili quantitative
kurt_values <- data.frame(
  Variabile = c("Sales", "Volume", "Median_Price", "Listings", "Months_Inventory"),
  Curtosi = c(kurtosis(data$sales) - 3,
              kurtosis(data$volume) - 3,
              kurtosis(data$median_price) - 3,
              kurtosis(data$listings) - 3,
              kurtosis(data$months_inventory) - 3)
)

# Arrotondamento a due cifre decimali
kurt_values$Curtosi <- round(kurt_values$Curtosi, 2)

# Visualizzazione della tabella di curtosi
kable(kurt_values, caption = "Curtosi (Eccesso) per Variabile") %>%
  kable_styling(latex_options = c("hold_position"))
Curtosi (Eccesso) per Variabile
Variabile Curtosi
Sales -0.31
Volume 0.18
Median_Price -0.62
Listings -0.79
Months_Inventory -0.17
  1. Sales:
  • Asimmetria (0.72): Distribuzione leggermente spostata a destra, con valori estremi più alti.
  • Curtosi (-0.31): Distribuzione leggermente platicurtica, con code meno pronunciate.
  1. Volume:
  • Asimmetria (0.88): Presenza di valori estremamente alti nel volume delle vendite.
  • Curtosi (0.18): Distribuzione mesocurtica, simile alla normale.
  1. Median_Price:
  • Asimmetria (-0.36): Distribuzione leggermente spostata a sinistra.
  • Curtosi (-0.62): Distribuzione platicurtica.
  1. Listings:
  • Asimmetria (0.65): Presenza di alcuni valori estremamente alti nel numero di annunci.
  • Curtosi (-0.79): Distribuzione platicurtica.
  1. Months_Inventory:
  • Asimmetria (0.04): Distribuzione simmetrica.
  • Curtosi (-0.17): Distribuzione leggermente platicurtica.

Identificazione delle variabili con maggiore variabilità e asimmetria

Per calcolare quanto richiesto, ho deciso di calcolare le statistiche di media (mean), deviazione standard (sd), coefficiente di variazione (cv) ed infine asimmetria (skewness).

# Definiamo una funzione per il coefficiente di variazione (CV) in percentuale
cv <- function(x) {
  sd(x) / mean(x) * 100
}

# Calcoliamo le statistiche per le variabili quantitative utilizzando un separatore unico '__'
stats <- data %>%
  summarise(across(
    c(sales, volume, median_price, listings, months_inventory),
    list(media = mean, sd = sd, cv = cv, asimmetria = skewness),
    .names = "{.col}__{.fn}"
  ))

# Riorganizziamo i dati per la presentazione utilizzando 'names_sep = "__"'
stats_long <- stats %>%
  pivot_longer(
    cols = everything(),
    names_to = c("Variabile", "Statistica"),
    names_sep = "__",
    values_to = "Valore"
  ) %>%
  pivot_wider(names_from = Statistica, values_from = Valore)

# Arrotondamento a due cifre decimali
stats_long <- stats_long %>%
  mutate(across(where(is.numeric), ~ round(., 2)))

# Visualizzazione delle statistiche
kable(stats_long, caption = "Statistiche delle Variabili Quantitative") %>%
  kable_styling(latex_options = c("hold_position"))
Statistiche delle Variabili Quantitative
Variabile media sd cv asimmetria
sales 192.29 79.65 41.42 0.72
volume 31.01 16.65 53.71 0.88
median_price 132665.42 22662.15 17.08 -0.36
listings 1738.02 752.71 43.31 0.65
months_inventory 9.19 2.30 25.06 0.04

La variabile con il coefficiente di variazione più alto è volume, il che significa che il valore totale delle vendite (in milioni di dollari) varia maggiormente rispetto alla sua media.

La variabile con l’asimmetria più elevata è volume, indicando che la distribuzione del volume delle vendite è la più asimmetrica.

Un alto coefficiente di variazione in volume suggerisce che ci sono significative fluttuazioni nel valore totale delle vendite, il che potrebbe indicare opportunità o rischi nel mercato immobiliare.

L’asimmetria positiva in volume indica che ci sono alcuni valori estremamente elevati che influenzano la distribuzione, probabilmente dovuti a periodi o città con vendite eccezionalmente alte.

Creazione di classi per una variabile quantitativa

La variabile quantitativa che ho scelto per la distribuzione di frequenze e la suddivisione in classi è sales.

Per prima cosa, ho diviso in n classi utilizzando la regola di Sturges con /\(n=⌈1+log 2 ​ (N)]/\) dove N è il numero totale di osservazioni.

# Determinazione del numero di classi usando la regola di Sturges
N <- nrow(data)
n_classes <- ceiling(1 + log2(N))

# Creazione delle classi per 'sales'
data$sales_class <- cut(data$sales, breaks = n_classes, include.lowest = TRUE)

# Creazione della distribuzione di frequenze
freq_sales_class <- table(data$sales_class)

# Visualizzazione della distribuzione di frequenze
kable(as.data.frame(freq_sales_class), col.names = c("Classe di Sales", "Frequenza"), caption = "Distribuzione di Frequenze per 'Sales'") %>%
  kable_styling(latex_options = c("hold_position"))
Distribuzione di Frequenze per ‘Sales’
Classe di Sales Frequenza
[78.7,117] 46
(117,155] 51
(155,194] 44
(194,232] 27
(232,270] 23
(270,308] 26
(308,347] 10
(347,385] 9
(385,423] 4
# Rappresentazione grafica con un istogramma
ggplot(data, aes(x = sales_class)) +
  geom_bar(fill = "lightblue", color = "black") +
  xlab("Classi di Sales") +
  ylab("Frequenza") +
  ggtitle("Distribuzione di Frequenza delle Vendite (Sales)") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Regola di Sturges: Ho utilizzato la regola di Sturges per determinare il numero ottimale di classi per la suddivisione della variabile sales. Questa regola è comunemente utilizzata in statistica per creare istogrammi che rappresentino adeguatamente la distribuzione dei dati.

Distribuzione di Frequenze: La tabella e l’istogramma mostrano che le vendite sono concentrate maggiormente nelle classi con valori più bassi di sales. Questo potrebbe indicare che la maggior parte delle vendite riguarda transazioni di dimensioni minori.

Asimmetria della Distribuzione: L’istogramma suggerisce che la distribuzione delle vendite è asimmetrica positiva, con una coda che si estende verso valori più alti. Ciò significa che ci sono meno osservazioni con vendite molto elevate.

Calcolo dell’indice di Gini

L’indice di Gini è una misura di disuguaglianza che varia tra 0 (perfetta uguaglianza) e 1 (massima disuguaglianza). In questo contesto, viene utilizzato per valutare la disuguaglianza nella distribuzione delle vendite tra le classi.

# Calcolo dell'indice di Gini per 'sales'
gini_sales <- ineq(data$sales, type = "Gini")

# Arrotondamento a due cifre decimali
gini_sales <- round(gini_sales, 2)

# Visualizzazione dell'indice di Gini
cat("Indice di Gini per la variabile 'sales':", gini_sales)
## Indice di Gini per la variabile 'sales': 0.23

Un indice di Gini di, 0.23 indica una moderata disuguaglianza nella distribuzione delle vendite tra le classi. Ciò significa che le vendite non sono distribuite uniformemente tra le classi, con alcune classi che contengono un numero maggiore di osservazioni.

Calcolo della probabilità

In questo script ho calcolato la probabilità che, presa una riga a caso dal dataset, essa riporti la città “Beaumont”, il mese di Luglio, o il mese di dicembre 2012.

# Numero totale di osservazioni
total_rows <- nrow(data)

# Probabilità che una riga riporti la città "Beaumont"
beaumont_count <- sum(data$city == "Beaumont")
prob_beaumont <- beaumont_count / total_rows

# Probabilità che una riga riporti il mese di Luglio (mese = 7)
july_count <- sum(data$month == 7)
prob_july <- july_count / total_rows

# Probabilità che una riga riporti il mese di dicembre 2012
dec2012_count <- sum(data$month == 12 & data$year == 2012)
prob_dec2012 <- dec2012_count / total_rows

# Creazione della tabella dei risultati
prob_results <- data.frame(
  Evento = c("Città 'Beaumont'", "Mese di Luglio", "Dicembre 2012"),
  Probabilità = c(prob_beaumont, prob_july, prob_dec2012)
)

# Arrotondamento a quattro cifre decimali
prob_results$Probabilità <- round(prob_results$Probabilità, 4)

# Visualizzazione dei risultati
kable(prob_results, caption = "Probabilità Calcolate") %>%
  kable_styling(latex_options = c("hold_position"))
Probabilità Calcolate
Evento Probabilità
Città ‘Beaumont’ 0.2500
Mese di Luglio 0.0833
Dicembre 2012 0.0167
  1. La probabilità di selezionare una riga relativa a Beaumont è di 0.25, indicando che il 25% delle osservazioni nel dataset riguardano questa città.

  2. La probabilità di selezionare una riga del mese di Luglio è di 0.08, suggerendo che i dati sono distribuiti uniformemente durante l’anno.

  3. La probabilità di selezionare una riga del mese di dicembre 2012 è di 0.016, il che indica che questo specifico mese e anno rappresenta una piccola porzione del dataset (circa l’1.67%).

Creazione di nuove variabili

Creazione della colonna del prezzo medio

Per prima cosa creerò una nuova colonna che calcoli il prezzo medio degli immobili. Dato da: Average_price = Volume / Sales.

Moltiplico il volume per 1 x 10^6 per ottenere il prezzo medio in dollari.

# Creazione della colonna 'average_price'
data <- data %>%
  mutate(average_price = (volume * 1e6) / sales)

Creazione della colonna che misura l’efficacia degli annunci

Per misurare l’efficacia degli annunci, si crea un indicatore che confronta il numero di vendite (sales) con il numero di annunci attivi (listings).

# Creazione della colonna 'efficacia_annunci'
data <- data %>%
  mutate(efficacia_annunci = sales / listings)

Con il prezzo medio sarà possibile definire il trend dei prezzi identificando come varia tra le diverse città, mesi e anni.

L’efficacia degli annunci invece può essere utilizzato per identificare il tasso di conversione e conseguentemente comprendere se il mercato è saturo o gli annunci non sono efficaci.

Analisi condizionata

In questi script, ho effettuato l’analisi statistica condizionata per città, mese e anno. Ho generato dei summary (media e dev.std) e rappresentato i risultati graficamente.

Analisi condizionata per città

# Calcolo delle statistiche per città
city_summary <- data %>%
  group_by(city) %>%
  summarise(
    mean_sales = mean(sales),
    sd_sales = sd(sales),
    mean_volume = mean(volume),
    sd_volume = sd(volume),
    mean_median_price = mean(median_price),
    sd_median_price = sd(median_price),
    mean_efficacia_annunci = mean(efficacia_annunci),
    sd_efficacia_annunci = sd(efficacia_annunci)
  )

# Arrotondamento a due cifre decimali
city_summary <- city_summary %>%
  mutate(across(where(is.numeric), ~ round(., 2)))

# Visualizzazione dei risultati
kable(city_summary, caption = "Statistiche Riassuntive per Città") %>%
  kable_styling(latex_options = c("hold_position"))
Statistiche Riassuntive per Città
city mean_sales sd_sales mean_volume sd_volume mean_median_price sd_median_price mean_efficacia_annunci sd_efficacia_annunci
Beaumont 177.38 41.48 26.13 6.97 129988.3 10104.99 0.11 0.03
Bryan-College Station 205.97 84.98 38.19 17.25 157488.3 8852.24 0.15 0.07
Tyler 269.75 61.96 45.77 13.11 141441.7 9336.54 0.09 0.02
Wichita Falls 116.07 22.15 13.93 3.24 101743.3 11320.03 0.13 0.02
  1. Vendite Medie (mean_sales):
  • Tyler ha il numero medio di vendite più alto (269.75).
  • Wichita Falls ha il numero medio di vendite più basso (116.07).
  1. Deviazione Standard delle Vendite (sd_sales):
  • Bryan-College Station presenta la maggiore variabilità nelle vendite (84.98).
  1. Prezzo Mediano Medio (mean_median_price):
  • Bryan-College Station ha il prezzo mediano medio più alto (157,488.33 dollari).
  • Wichita Falls ha il prezzo mediano medio più basso (101,743.33 dollari).
  1. Efficacia Media degli Annunci (mean_efficacia_annunci):
  • Bryan-College Station ha l’efficacia degli annunci più alta (0.15), indicando che il 15% degli annunci si convertono in vendite.
  • Tyler ha l’efficacia degli annunci più bassa (0.09).

Esistono differenze significative tra le città, sia in termini di vendite che di prezzi. Bryan-College Station si distingue per prezzi più alti e maggiore efficacia degli annunci. La Deviazione std più alta in Bryan-College Station suggerisce una maggiore volatitlità o diversità nel mercato immobiliare locale.

Boxplot del prezzo mediano per città

# Boxplot del prezzo mediano per città
ggplot(data, aes(x = city, y = median_price, fill = city)) +
  geom_boxplot() +
  xlab("Città") +
  ylab("Prezzo Mediano") +
  ggtitle("Distribuzione del Prezzo Mediano per Città") +
  theme_minimal() +
  theme(legend.position = "none")

  1. La città Bryan-College Station presenta un prezzo mediano più alto rispetto alle altre città.

  2. Dal grafico si notano alcuni outlier, indicando vendite con prezzi mediani significativamente diversi dalla media.

  3. La variabilità dei prezzi è maggiore in Bryan-College Station, suggerendo una maggiore diversità nel mercato immobiliare locale.

Boxplot dell’efficacia degli annunci per città

# Boxplot dell'efficacia degli annunci per città
ggplot(data, aes(x = city, y = efficacia_annunci, fill = city)) +
  geom_boxplot() +
  xlab("Città") +
  ylab("Efficacia degli Annunci") +
  ggtitle("Distribuzione dell'Efficacia degli Annunci per Città") +
  theme_minimal() +
  theme(legend.position = "none")

  1. Efficacia media degli annunci per città:

  2. Bryan-College Station:

Ha una mediana dell’efficacia degli annunci più alta rispetto alle altre città. Questo indica che, in media, una maggiore percentuale di annunci si traduce in vendite in questa città.

  1. Wichita Falls:

Presenta una mediana dell’efficacia simile a quella di Beaumont, ma con una variabilità inferiore.

  1. Tyler:

Ha la mediana dell’efficacia degli annunci più bassa. Questo potrebbe suggerire che, nonostante abbia un alto numero di vendite, l’efficacia degli annunci è minore, forse a causa di un mercato più competitivo o di un elevato numero di annunci non convertiti in vendite.

  1. Variabilità dell’Efficacia degli Annunci:

  2. Bryan-College Station:

Mostra una maggiore variabilità, evidenziata dall’altezza della boxplot e dalla presenza di whiskers più lunghi. Ciò indica che l’efficacia degli annunci varia notevolmente all’interno della città. Outlier:

Non sono presenti outlier significativi, suggerendo che i valori estremi sono entro limiti accettabili.

  1. Considerazioni Generali:

  2. Mercato Immobiliare: Un’efficacia degli annunci più alta potrebbe indicare un mercato immobiliare più attivo o una domanda maggiore rispetto all’offerta. Al contrario, un’efficacia più bassa potrebbe suggerire un mercato saturo o una maggiore competizione tra gli annunci.

Analisi condizionata per anno

# Summary statistico per anno
year_summary <- data %>%
  group_by(year) %>%
  summarise(
    mean_sales = mean(sales),
    sd_sales = sd(sales),
    mean_volume = mean(volume),
    sd_volume = sd(volume),
    mean_median_price = mean(median_price),
    sd_median_price = sd(median_price)
  )

# Arrotondamento a due cifre decimali
year_summary <- year_summary %>%
  mutate(across(where(is.numeric), ~ round(., 2)))

# Visualizzazione dei risultati
kable(year_summary, caption = "Statistiche Riassuntive per Anno") %>%
  kable_styling(latex_options = c("hold_position"))
Statistiche Riassuntive per Anno
year mean_sales sd_sales mean_volume sd_volume mean_median_price sd_median_price
2010 168.67 60.54 25.68 10.80 130191.7 21821.76
2011 164.12 63.87 25.16 12.20 127854.2 21317.80
2012 186.15 70.91 29.27 14.52 130077.1 21431.52
2013 211.92 84.00 35.15 17.93 135722.9 21708.08
2014 230.60 95.51 39.77 21.19 139481.2 25625.41
  1. Vendite Medie (mean_sales):

Si osserva un incremento costante delle vendite medie dal 2010 (168.67) al 2014 (230.60). Questo suggerisce una crescita nel numero di vendite immobiliari nel periodo considerato.

  1. Deviazione Standard delle Vendite (sd_sales):

La deviazione standard aumenta nel tempo, passando da 60.54 nel 2010 a 95.51 nel 2014. Indica una maggiore variabilità nelle vendite, con differenze più marcate tra i mesi o le città.

  1. Volume Medio delle Vendite (mean_volume):

Il volume medio delle vendite aumenta da 25.68 milioni di dollari nel 2010 a 39.77 milioni di dollari nel 2014. Questo riflette non solo un aumento del numero di vendite ma anche un possibile incremento del valore delle transazioni.

  1. Prezzo Mediano Medio (mean_median_price):

Il prezzo mediano medio aumenta da 130,191.67 dollari nel 2010 a 139,481.25 dollari nel 2014. Indica una tendenza al rialzo dei prezzi degli immobili nel periodo considerato.

Line chart delle vendite medie per anno

# Line chart delle vendite medie per anno
ggplot(year_summary, aes(x = year, y = mean_sales)) +
  geom_line(color = "blue") +
  geom_point() +
  xlab("Anno") +
  ylab("Vendite Medie") +
  ggtitle("Vendite Medie per Anno") +
  theme_minimal()

Si osserva un trend crescente delle vendite medie dal 2010 al 2014. Questo potrebbe indicare una ripresa del mercato immobiliare in quel periodo. Questo incremento, come visibile anche nella tabella soprariportata, potrebbe essere dovuto a una ripresa economica dopo la crisi finanziaria del 2008-2009.

Per quanto riguarda l’aumento della domanda immobiliare, potrebbe riflettere un aumento della domanda di immobili in Texas, forse dovuto a crescita demografica o migrazione verso lo stato.

Sarebbe utile analizzare ulteriori fattori, come i tassi di interesse ipotecari, le politiche governative o altri indicatori economici, per comprendere meglio le cause di questo trend.

Analisi condizionata per mese

# Summary statistico per mese
month_summary <- data %>%
  group_by(month) %>%
  summarise(
    mean_sales = mean(sales),
    sd_sales = sd(sales),
    mean_volume = mean(volume),
    sd_volume = sd(volume)
  )

# Arrotondamento a due cifre decimali
month_summary <- month_summary %>%
  mutate(across(where(is.numeric), ~ round(., 2)))

# Visualizzazione dei risultati
kable(month_summary, caption = "Statistiche Riassuntive per Mese") %>%
  kable_styling(latex_options = c("hold_position"))
Statistiche Riassuntive per Mese
month mean_sales sd_sales mean_volume sd_volume
1 127.40 43.38 19.00 8.37
2 140.85 51.07 21.65 10.09
3 189.45 59.18 29.38 12.02
4 211.70 65.40 33.30 14.52
5 238.85 83.12 39.70 19.02
6 243.55 95.00 41.30 21.08
7 235.75 96.27 39.12 21.41
8 231.45 79.23 38.01 18.05
9 182.35 72.52 29.60 15.22
10 179.90 74.95 29.08 15.13
11 156.85 55.47 24.81 11.15
12 169.40 60.75 27.09 12.57

Vendite Medie per Mese (mean_sales):

Le vendite medie raggiungono il picco nei mesi estivi, da Maggio (238.85) a Luglio (235.75). Questo potrebbe essere dovuto a fattori stagionali, come il clima favorevole o le vacanze scolastiche.

I mesi invernali, come Gennaio (127.40) e Febbraio (140.85), registrano vendite medie più basse.

Deviazione Standard delle Vendite (sd_sales):

La deviazione standard è più alta nei mesi con vendite medie più alte, indicando una maggiore variabilità in quei mesi.

Volume Medio delle Vendite (mean_volume):

Segue un andamento simile alle vendite medie, con valori più alti nei mesi estivi.

Line chart delle vendite per mese

# Line chart delle vendite medie per mese
ggplot(month_summary, aes(x = month, y = mean_sales)) +
  geom_line(color = "red") +
  geom_point() +
  xlab("Mese") +
  ylab("Vendite Medie") +
  ggtitle("Andamento delle Vendite Medie per Mese") +
  scale_x_continuous(breaks = 1:12) +
  theme_minimal()

Il grafico mostra chiaramente un andamento stagionale delle vendite medie.

Le vendite iniziano ad aumentare da Marzo, raggiungendo il picco tra Maggio e Luglio.

Dopo Agosto, le vendite medie iniziano a diminuire, raggiungendo i valori più bassi nei mesi invernali.

  1. Possibili Cause:

  2. Fattori Climatici: Il clima favorevole nei mesi primaverili ed estivi può incentivare gli acquirenti a cercare nuove case.

  3. Ciclo Scolastico: Le famiglie possono preferire trasferirsi durante le vacanze estive per minimizzare l’impatto sul percorso scolastico dei figli.

  4. Feste e Vacanze: Le attività immobiliari possono rallentare durante le festività invernali, come il Natale e il Capodanno.

  5. Considerazioni per le Strategie di Vendita:

  6. Pianificazione delle Campagne: Le agenzie immobiliari potrebbero intensificare le campagne di marketing nei mesi primaverili per capitalizzare sull’aumento della domanda.

  7. Gestione delle Risorse: Prepararsi a un aumento del carico di lavoro nei mesi estivi e pianificare adeguatamente il personale.

Conclusione analisi condizionata per città, anno e mese

L’analisi condizionata per città, anno e mese ha rivelato importanti tendenze nel mercato immobiliare del Texas:

  1. Differenze tra le Città:

Esistono variazioni significative nell’efficacia degli annunci e nei prezzi mediani tra le diverse città. Bryan-College Station emerge come una città con prezzi medi più alti e maggiore efficacia degli annunci.

  1. Trend Temporali:

Anno: Dal 2010 al 2014, si osserva una crescita costante nelle vendite medie e nei prezzi mediani, suggerendo una ripresa del mercato immobiliare.

Mese: Le vendite mostrano una chiara stagionalità, con picchi nei mesi estivi e cali nei mesi invernali.

  1. Implicazioni per il Mercato Immobiliare:

Strategie di Marketing: Le agenzie immobiliari possono adattare le loro strategie in base alle tendenze stagionali e alle peculiarità di ogni città.

Politiche Abitative: I politici potrebbero utilizzare queste informazioni per sviluppare politiche che supportino il mercato immobiliare nei periodi di bassa attività.

Creazione di grafici

In questa sezione effettuerò:

Un boxplot per confrontare la distribuzione del prezzo mediano tra le città

Grafici a barre per confrontare il totale delle vendite per mese e città

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

Boxplot per il prezzo mediano tra le città

ggplot(data, aes(x=city, y=median_price, fill=city))+
  geom_boxplot()+
  xlab("citta")+
  ylab("Prezzo mediano")+
  ggtitle("confronto del prezzo mediano tra le città") +
  theme(legend.position = "None")

  1. Posizione Centrale (Mediana):

Beaumont: La mediana del prezzo mediano è circa $125,000, questa posizione centrale suggerisce che Beaumont ha prezzi relativamente accessibili rispetto ad altre città nel dataset.

Bryan-College Station: La mediana è più alta, circa $150,000, riflettendo prezzi generalmente più elevati delle proprietà rispetto a Beaumont.

Tyler: Presenta una mediana vicina a quella di Bryan-College Station, suggerendo che il livello dei prezzi è simile tra queste due città.

Wichita Falls: Con una mediana intorno ai $115,000, mostra il livello più basso di prezzi mediani, rendendola la città più economica tra quelle esaminate.

  1. Variabilità (Range Interquartile e Valori Estremi):

Beaumont: Ha un range interquartile ristretto, indicativo di una minore variabilità nei prezzi delle proprietà. Questo indica che non c’è troppa disparità di valore degli immobili in questa città

Bryan-College Station: Mostra un range interquartile non troppo ampio, indicando una variabilità nei prezzi contenuta. La presenza di valori estremi (outliers) sopra il limite superiore del boxplot suggerisce che ci sono alcune proprietà significativamente più costose, che potrebbero influenzare il mercato immobiliare locale.

Tyler: Anche se la mediana è simile a quella di Bryan-College Station, il range interquartile è più elevato, suggerendo prezzi più variaibli tra le proprietà.

Wichita Falls: Ha il range interquartile maggiore, mostrando la una maggiore variabilità dei prezzi. Rispetto al prezzo mediano vi è un’elevata differenza tra i prezzi inferiori e maggiori, indicando zone, all’interno della stessa città, con disparità elevata di valore degli immobili

  1. Implicazioni Economiche:

La variazione dei prezzi nelle diverse città può riflettere differenze nel contesto economico, demografico o nel valore percepito delle proprietà. Ad esempio, nelle città con una variaibilità elevta può essere sinonimo di una differenza tra la qualità di vita minore in determinate zone della città, che influenza negativamente il prezzo degli immobili. In generale le città con mediana e variabilità più elevate possono essere percepite come aree con maggiori opportunità di investimento o con un mercato immobiliare in crescita.

Grafici a barre per il totale delle vendite per mese e città

# Calcolo del totale delle vendite per mese e città
sales_month_city <- data %>%
  group_by(city, month) %>%
  summarise(total_sales = sum(sales), .groups = "drop")

# Grafico a barre
ggplot(sales_month_city, aes(x = factor(month), y = total_sales, fill = city)) +
  geom_bar(stat = "identity") +
  xlab("Mese") +
  ylab("Totale vendite") +
  ggtitle("Totale vendite per mese e città")

Grafico a barre normalizzato

# Grafico a barre normalizzato
ggplot(sales_month_city, aes(x = factor(month), y = total_sales, fill = city)) +
  geom_bar(stat = "identity", position = "fill") +
  xlab("Mese") +
  ylab("Proporzione Vendite") +
  ggtitle("Proporzione delle Vendite per Mese e Città (Normalizzato)") +
  scale_x_discrete(breaks = 1:12) +
  theme_minimal()

Il grafico a barre mostrato illustra il totale delle vendite per mese e per città, utilizzando i dati aggregati da te calcolati. Questa visualizzazione aiuta a identificare le tendenze stagionali e le differenze regionali nelle vendite immobiliari. Ecco alcuni punti salienti basati sulla tua descrizione e sul grafico visualizzato:

  1. Stagionalità delle Vendite:

Si osserva una tendenza generale al crescere delle vendite nei mesi estivi per tutte le città, con picchi evidenti nei mesi centrali dell’anno (da Maggio a Luglio). Durante i mesi invernali, il volume delle vendite tende a diminuire, mostrando il minimo in gennaio e febbraio per la maggior parte delle città.

  1. Distribuzione delle Vendite tra le Città:

Tyler mostra una forte presenza nelle vendite nei mesi iniziali dell’anno, suggerendo una particolare vivacità del mercato immobiliare in questo periodo. Bryan-College Station sembra recuperare e superare le altre città nei mesi estivi, indicando un mercato più attivo in quel periodo dell’anno. Beaumont e Wichita Falls mostrano una contribuzione più uniforme durante l’anno, con Beaumont che sembra avere un picco leggermente superiore durante i mesi estivi.

  1. Grafico Normalizzato:

Il grafico a barre normalizzato offre una visione della proporzione delle vendite per ciascuna città in relazione al totale mensile, permettendo di identificare quale città ha una quota maggiore del mercato in un dato mese, indipendentemente dal volume totale delle vendite.

Questa visualizzazione evidenzia come alcune città, come Bryan-College Station e Tyler, dominano il mercato in certi mesi, mostrando una maggiore attività rispetto alle altre città. Il grafico aiuta a osservare le variazioni nella quota di mercato di ogni città mese per mese, fornendo una chiara indicazione delle dinamiche competitive nel mercato immobiliare locale.

Comprendere le quote di mercato mensili attraverso il grafico normalizzato può aiutare gli stakeholder a sviluppare strategie di marketing più mirate, adattando le campagne promozionali e le iniziative di vendita per colpire il mercato nei periodi di maggiore attività delle loro città.

Aggiungere la variabile ‘year’

# Grafico a barre per mese, città e anno
ggplot(data, aes(x = factor(month), y = sales, fill = city)) +
  geom_bar(stat = "identity", position = "dodge") +
  facet_wrap(~ year, ncol = 2) +
  xlab("Mese") +
  ylab("Vendite") +
  ggtitle("Vendite per Mese, Città e Anno") +
  scale_x_discrete(breaks = 1:12) +
  theme_minimal()

Il grafico mostrato analizza le vendite per mese, città e anno, suddividendole in pannelli annuali dal 2010 al 2014. Questo layout facilita il confronto diretto delle tendenze delle vendite tra gli anni per ogni città, rivelando le fluttuazioni stagionali e le variazioni interannuali.

  1. Tendenze Stagionali:

In tutti gli anni, si osserva un aumento delle vendite nei mesi estivi (maggio-agosto), con picchi spesso in luglio o agosto, che è tipico del mercato immobiliare, dove le vendite tendono ad aumentare nei mesi caldi. I mesi invernali (gennaio-febbraio) mostrano generalmente il numero più basso di vendite, indicativo della stagionalità del settore immobiliare, dove l’attività di vendita rallenta durante i mesi più freddi.

  1. Confronto Annuale:

Il 2011 e il 2013 mostrano volumi di vendita più elevati rispetto agli altri anni, suggerendo un possibile clima economico favorevole o cambiamenti nel mercato immobiliare in quegli anni. Il 2012 mostra una leggera diminuzione delle vendite rispetto al 2011, potenzialmente indicativo di un’inversione di tendenza o di condizioni di mercato meno favorevoli.

  1. Contributo per Città:

Bryan-College Station e Tyler tendono a mostrare le vendite più consistenti e spesso dominano il grafico in termini di volumi di vendita, soprattutto nei mesi estivi. Beaumont e Wichita Falls presentano una partecipazione meno dominante, ma con contributi significativi che variano di mese in mese e di anno in anno.

  1. Variazioni di Anno in Anno:

Ogni città mostra una variabilità nelle vendite che potrebbe essere influenzata da fattori locali, economici o da politiche immobiliari. Ad esempio, alcuni anni mostrano un incremento marcato per una città specifica mentre in altri la stessa città mostra un decremento. Questo tipo di visualizzazione è estremamente utile per analizzare le tendenze di vendita nel contesto di più variabili (città e tempo). Permette agli stakeholder di valutare la performance del mercato immobiliare su base mensile, stagionale e annuale, fornendo insights cruciali per la pianificazione strategica e la presa di decisioni.

Line Chart per confrontare le vendite

# Creazione di una variabile 'date' per rappresentare il tempo
data$date <- as.Date(paste(data$year, data$month, "1", sep = "-"), "%Y-%m-%d")

# Line chart delle vendite nel tempo per ciascuna città
ggplot(data, aes(x = date, y = sales, color = city)) +
  geom_line() +
  xlab("Data") +
  ylab("Vendite") +
  ggtitle("Andamento delle Vendite nel Tempo per Città") +
  scale_x_date(date_labels = "%b %Y", date_breaks = "6 months") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Il grafico a linee presentato illustra l’andamento delle vendite nel tempo, da aprile 2010 a ottobre 2014, per quattro città: Beaumont, Bryan-College Station, Tyler e Wichita Falls. Questo tipo di grafico è particolarmente utile per visualizzare le tendenze e le variazioni stagionali o annuali nelle vendite.

  1. Tendenze Generali:

Tutte e quattro le città mostrano chiare fluttuazioni stagionali nelle vendite con picchi durante i mesi primaverili ed estivi, tipici per il mercato immobiliare che tende ad essere più attivo in questi periodi. Le vendite tendono a diminuire durante i mesi autunnali e invernali, un modello comune nel settore immobiliare dovuto a fattori come le condizioni meteorologiche e le abitudini di acquisto.

  1. Performance delle Città:

Tyler (verde) e Bryan-College Station (rosso) emergono come le città con il volume di vendite più elevato per la maggior parte del periodo osservato, mostrando picchi significativi e consistenti attività di vendita. Beaumont (blu) e Wichita Falls (viola) hanno volumi di vendita generalmente più bassi, con Wichita Falls che mostra il minor numero di vendite tra le quattro città.

  1. Variazioni Anno per Anno:

Il 2013 appare come un anno particolarmente forte per le vendite in tutte le città, con picchi notevoli rispetto ad altri anni. Il 2014 mostra un calo delle vendite, come osservato nei dati fino a ottobre, indicando una possibile diminuzione dell’attività immobiliare o un ritardo nella raccolta dei dati.

  1. Implicazioni Economiche e di Mercato:

Le fluttuazioni evidenziate possono riflettere cambiamenti nel clima economico locale, modifiche nelle politiche immobiliari, o altre variabili economiche che influenzano il mercato immobiliare. Analizzare questi trend può aiutare i decisori e gli investitori a comprendere meglio i cicli di mercato e a pianificare strategie di intervento o di investimento basate su dati storici di vendita. In sintesi, il grafico a linee fornisce una rappresentazione chiara delle tendenze di vendita nel tempo, offrendo insights utili per analisi di mercato più dettagliate e per decisioni strategiche nel settore immobiliare.