Questo report offre un’analisi dettagliata del mercato immobiliare
texano per il periodo 2010–2014, utilizzando
esclusivamente i dati forniti nel file
texas_data.csv.
Le città analizzate sono: Beaumont, Bryan-College Station,
Tyler, Wichita Falls.
Principali evidenze: - Bryan-College Station si distingue per prezzi medi significativamente più elevati e maggiore stabilità. - Tyler rappresenta il mercato più voluminoso in termini di numero di transazioni e valore. - Wichita Falls si conferma il più accessibile per prezzo e mostra una progressiva contrazione dell’inventario. - Tutte le città presentano stagionalità con picchi di vendite tra aprile e agosto. - Le correlazioni tra variabili mettono in luce relazioni chiave tra prezzo, volume e inventario.
File analizzato: texas_data.csv
Città coperte: Beaumont, Bryan-College Station, Tyler,
Wichita Falls
Anni: 2010-2014
Numero totale di osservazioni: 240
| Variabile | Tipo | Significato |
|---|---|---|
| city | Categoriale | Area metropolitana |
| year | Intero | Anno di osservazione |
| month | Intero | Mese di osservazione |
| sales | Intero | Numero di immobili venduti |
| volume | Numerico | Volume transato (milioni di USD) |
| median_price | Numerico | Prezzo mediano di vendita |
| listings | Intero | Numero di immobili in vendita (inventario) |
| months_inventory | Numerico | Mesi per assorbire l’inventario al ritmo attuale |
| city | year | month | sales | volume | median_price | listings | months_inventory |
|---|---|---|---|---|---|---|---|
| Beaumont | 2010 | 1 | 83 | 14.162 | 163800 | 1533 | 9.5 |
| Beaumont | 2010 | 2 | 108 | 17.690 | 138200 | 1586 | 10.0 |
| Beaumont | 2010 | 3 | 182 | 28.701 | 122400 | 1689 | 10.6 |
| Beaumont | 2010 | 4 | 200 | 26.819 | 123200 | 1708 | 10.6 |
| Beaumont | 2010 | 5 | 202 | 28.833 | 123100 | 1771 | 10.9 |
| Beaumont | 2010 | 6 | 189 | 27.219 | 122800 | 1803 | 11.1 |
| Beaumont | 2010 | 7 | 164 | 22.706 | 124300 | 1857 | 11.7 |
| Beaumont | 2010 | 8 | 174 | 25.237 | 136800 | 1830 | 11.6 |
| Beaumont | 2010 | 9 | 124 | 17.233 | 121100 | 1829 | 11.7 |
| Beaumont | 2010 | 10 | 150 | 23.904 | 138500 | 1779 | 11.5 |
| Colonna | Tipo | Esempi | |
|---|---|---|---|
| city | city | character | Beaumont, Beaumont, Beaumont |
| year | year | numeric | 2010, 2010, 2010 |
| month | month | numeric | 1, 2, 3 |
| sales | sales | numeric | 83, 108, 182 |
| volume | volume | numeric | 14.162, 17.69, 28.701 |
| median_price | median_price | numeric | 163800, 138200, 122400 |
| listings | listings | numeric | 1533, 1586, 1689 |
| months_inventory | months_inventory | numeric | 9.5, 10, 10.6 |
freq_city <- as.data.frame(table(df$city))
colnames(freq_city) <- c("Città", "Frequenza")
kable(freq_city, caption = "Distribuzione di frequenza delle città", align = "l", escape = TRUE) %>%
kable_styling(bootstrap_options = "condensed", full_width = FALSE, position = "left")| Città | Frequenza |
|---|---|
| Beaumont | 60 |
| Bryan-College Station | 60 |
| Tyler | 60 |
| Wichita Falls | 60 |
freq_year <- as.data.frame(table(df$year))
colnames(freq_year) <- c("Anno", "Frequenza")
kable(freq_year, caption = "Distribuzione di frequenza degli anni", align = "l", escape = TRUE) %>%
kable_styling(bootstrap_options = "condensed", full_width = FALSE, position = "left")| Anno | Frequenza |
|---|---|
| 2010 | 48 |
| 2011 | 48 |
| 2012 | 48 |
| 2013 | 48 |
| 2014 | 48 |
freq_month <- as.data.frame(table(df$month))
colnames(freq_month) <- c("Mese", "Frequenza")
kable(freq_month, caption = "Distribuzione di frequenza dei mesi", align = "l", escape = TRUE) %>%
kable_styling(bootstrap_options = "condensed", full_width = FALSE, position = "left")| Mese | Frequenza |
|---|---|
| 1 | 20 |
| 2 | 20 |
| 3 | 20 |
| 4 | 20 |
| 5 | 20 |
| 6 | 20 |
| 7 | 20 |
| 8 | 20 |
| 9 | 20 |
| 10 | 20 |
| 11 | 20 |
| 12 | 20 |
df_agg_mese <- df %>%
group_by(year, month) %>%
summarise(
vendite_mese = sum(sales),
volume_mese = sum(volume),
annunci_attivi_mese = sum(listings),
prezzo_medio_pesato = sum(median_price * sales) / sum(sales),
mesi_inventory_pesato = sum(months_inventory * sales) / sum(sales),
.groups = "drop"
)
totale_vendite <- sum(df$sales)
vendite_medie_mensili <- mean(df_agg_mese$vendite_mese)
totale_volume <- sum(df$volume)
volume_medio_mensile <- mean(df_agg_mese$volume_mese)
prezzo_medio_aggregato <- mean(df_agg_mese$prezzo_medio_pesato)
annunci_attivi_medio <- mean(df_agg_mese$annunci_attivi_mese)
mesi_inventory_medio <- mean(df_agg_mese$mesi_inventory_pesato)
stats_utili <- data.frame(
Indicatore = c(
"Totale vendite",
"Vendite medie mensili",
"Totale volume transato (milioni USD)",
"Volume medio mensile (milioni USD)",
"Prezzo mediano aggregato (USD)",
"Annunci attivi medi mensili",
"Mesi di inventario medi"
),
Valore = c(
totale_vendite,
round(vendite_medie_mensili,1),
round(totale_volume,1),
round(volume_medio_mensile,1),
round(prezzo_medio_aggregato,0),
round(annunci_attivi_medio,0),
round(mesi_inventory_medio,2)
),
stringsAsFactors = FALSE
)
kable(
stats_utili,
caption = "Statistiche descrittive globali utili (Texas aggregato mese per mese)",
align = "l",
escape = TRUE
) %>%
kable_styling(full_width = FALSE, bootstrap_options = "striped", position = "left")| Indicatore | Valore |
|---|---|
| Totale vendite | 46150.00 |
| Vendite medie mensili | 769.20 |
| Totale volume transato (milioni USD) | 7441.20 |
| Volume medio mensile (milioni USD) | 124.00 |
| Prezzo mediano aggregato (USD) | 136708.00 |
| Annunci attivi medi mensili | 6952.00 |
| Mesi di inventario medi | 9.49 |
stats_citta <- df %>%
group_by(city) %>%
summarise(
Totale_vendite = sum(sales),
Prezzo_medio_pesato = round(sum(median_price * sales) / sum(sales), 0),
Volume_totale = round(sum(volume), 1)
) %>%
arrange(desc(Totale_vendite))
kable(stats_citta, caption = "Statistiche chiave per città (valori aggregati)", align = "l", escape = TRUE) %>%
kable_styling(full_width = FALSE, bootstrap_options = "striped", position = "left")| city | Totale_vendite | Prezzo_medio_pesato | Volume_totale |
|---|---|---|---|
| Tyler | 16185 | 142969 | 2746.0 |
| Bryan-College Station | 12358 | 158642 | 2291.5 |
| Beaumont | 10643 | 130555 | 1567.9 |
| Wichita Falls | 6964 | 102376 | 835.8 |
| Variabile | Asimmetria | |
|---|---|---|
| sales | Vendite mensili | 0.71 |
| volume | Volume transato (milioni USD) | 0.88 |
| median_price | Prezzo mediano (USD) | -0.36 |
| listings | Annunci attivi | 0.65 |
| months_inventory | Mesi inventario | 0.04 |
num_classi <- 5
df$median_price_class <- cut(
df$median_price,
breaks = quantile(df$median_price, probs = seq(0, 1, length.out = num_classi + 1), na.rm = TRUE),
include.lowest = TRUE, dig.lab = 8
)
tab_classi <- as.data.frame(table(df$median_price_class))
colnames(tab_classi) <- c("Classe Prezzo Mediano", "Frequenza")
kable(tab_classi, caption = "Distribuzione di frequenza delle classi di prezzo mediano", align = "l", escape = TRUE) %>%
kable_styling(bootstrap_options = "condensed", full_width = FALSE, position = "left")| Classe Prezzo Mediano | Frequenza |
|---|---|
| [73800,110000] | 49 |
| (110000,130700] | 48 |
| (130700,141220] | 47 |
| (141220,152360] | 48 |
| (152360,180000] | 48 |
gini_median_price <- ineq::Gini(df$median_price, na.rm=TRUE)
ggplot(tab_classi, aes(x=`Classe Prezzo Mediano`, y=Frequenza)) +
geom_bar(stat="identity", fill="#440154FF", alpha=0.8) +
labs(
title="Distribuzione delle classi di prezzo mediano",
x="Classe prezzo mediano",
y="Frequenza"
) +
theme_minimal()Commento al grafico:
Questo istogramma mostra la distribuzione delle osservazioni in 5 classi
di prezzo mediano. Le barre rappresentano la frequenza delle
osservazioni per ciascun intervallo di prezzo.
Il grafico viene utilizzato per valutare la dispersione dei prezzi
mediani e la loro equità tra le diverse aree e periodi. L’indice di Gini
calcolato per il prezzo mediano (qui sotto) fornisce una misura
sintetica della disuguaglianza nella distribuzione: nel nostro caso il
valore vicino a zero indica una distribuzione molto uniforme.
Indice di Gini per il prezzo mediano:
9.7%
Nota:
L’indice di Gini misura la disuguaglianza di una distribuzione: 0 è
perfetta uguaglianza, 1 massima disuguaglianza. Qui, un valore vicino a
0 (ad esempio 9,7%) indica che i prezzi mediani sono molto simili tra le
osservazioni, quindi il mercato è molto omogeneo.
| city | Prezzo_Mediano_Medio | Dev_Std_Prezzo | Vendite_Medie | Volume_Medio_M | Inventario_Medio |
|---|---|---|---|---|---|
| Bryan-College Station | 157488 | 8852 | 206.0 | 38.19 | 1458.1 |
| Tyler | 141442 | 9337 | 269.8 | 45.77 | 2905.1 |
| Beaumont | 129988 | 10105 | 177.4 | 26.13 | 1679.3 |
| Wichita Falls | 101743 | 11320 | 116.1 | 13.93 | 909.6 |
Commento al grafico e tabella:
La tabella riassume i valori medi dei principali indicatori di mercato
per ciascuna città; permette di confrontare le diverse realtà locali in
termini di prezzi, vendite, volumi, inventario e variabilità dei prezzi.
Questo confronto è essenziale per identificare aree premium, mercati
dinamici o accessibili e differenze strutturali tra città.
Commento al grafico:
Questo grafico mostra l’andamento del prezzo mediano mensile per
ciascuna città dal 2010 al 2014. È utile per individuare tendenze
temporali dei prezzi, differenze tra aree e periodi di crescita o
stabilità nei valori immobiliari.
Commento al grafico:
La serie storica delle vendite mensili per città consente di analizzare
la stagionalità e la ciclicità del mercato, confrontando la vivacità dei
diversi mercati locali e identificando i periodi di maggiore
attività.
Commento al grafico:
Il grafico mostra la dinamica mensile dei volumi di transato immobiliare
per città, utile per valutare la liquidità e la dimensione effettiva dei
diversi mercati locali.
Commento al grafico:
Il grafico evidenzia la stagionalità delle vendite immobiliari: permette
di vedere in quali mesi si concentrano tradizionalmente le transazioni
per ciascuna città, utile per pianificare strategie di vendita.
Commento al grafico:
Questo grafico mostra la stagionalità dei prezzi mediani per città:
consente di identificare periodi dell’anno in cui i prezzi tendono a
salire o scendere, fornendo indicazioni utili per il timing delle
operazioni di acquisto o vendita.
| sales | volume | median_price | listings | months_inventory | |
|---|---|---|---|---|---|
| sales | 1.000 | 0.976 | 0.590 | 0.621 | 0.147 |
| volume | 0.976 | 1.000 | 0.704 | 0.570 | 0.055 |
| median_price | 0.590 | 0.704 | 1.000 | 0.396 | -0.035 |
| listings | 0.621 | 0.570 | 0.396 | 1.000 | 0.735 |
| months_inventory | 0.147 | 0.055 | -0.035 | 0.735 | 1.000 |
Commento al grafico:
La matrice di correlazione visualizza la forza e il segno delle
relazioni lineari tra le principali variabili di mercato. Le
correlazioni sono utili per capire quali fattori (ad esempio, prezzo e
vendite) tendono a muoversi insieme o in senso opposto, supportando
decisioni data-driven.
p_beaumont <- sum(df$city == "Beaumont") / nrow(df)
p_july <- sum(df$month == 7) / nrow(df)
p_dec2012 <- sum(df$month == 12 & df$year == 2012) / nrow(df)
risultati <- data.frame(
Domanda = c(
"P(city = 'Beaumont')",
"P(month = 7)",
"P(month = 12 & year = 2012)"
),
Probabilita = percent(
c(p_beaumont, p_july, p_dec2012),
accuracy = 0.1
)
)
kable(risultati, caption = "Probabilità specifiche richieste", align = "l", escape = TRUE) %>%
kable_styling(bootstrap_options = "condensed", full_width = FALSE, position = "left")| Domanda | Probabilita |
|---|---|
| P(city = ‘Beaumont’) | 25.0% |
| P(month = 7) | 8.3% |
| P(month = 12 & year = 2012) | 1.7% |
Commento al calcolo:
Questa tabella riporta alcune probabilità specifiche calcolate sul
dataset: ad esempio, la probabilità che un’osservazione riguardi la
città di Beaumont o ricada nel mese di luglio. Questi dati aiutano a
quantificare la rappresentatività delle varie categorie nel campione
analizzato.
Commento al grafico:
Il grafico mostra l’andamento nel tempo degli annunci attivi per
ciascuna città: consente di valutare la disponibilità di immobili sul
mercato e di identificare eventuali trend di saturazione o scarsità.
Commento al grafico:
L’indicatore “mesi di inventario” mostra quanti mesi servirebbero per
assorbire tutto l’invenduto al ritmo attuale di vendita. Il grafico
aiuta a valutare se il mercato è in equilibrio, in eccesso di offerta o
in tensione.
| Variabile | Media | Mediana | Dev_Std | Min | Max | Coeff_Variazione_pct | Asimmetria | |
|---|---|---|---|---|---|---|---|---|
| prezzo_medio_unitario | Prezzo medio per unità (USD) | 154320.37 | 156588.48 | 27147.46 | 97010.2 | 213233.94 | 17.59 | -0.07 |
| efficacia_annunci | Efficacia annunci (%) | 11.9% | 11.0% | 4.7% | 5.0% | 38.7% | 39.50 | 2.08 |
Commento alla tabella:
Si riportano le principali statistiche descrittive per le due nuove
variabili derivate: il prezzo medio per unità e l’efficacia degli
annunci (ora espressa in percentuale, ad esempio “12,8%”). Questo
consente di valutare la dispersione, la tendenza centrale e l’asimmetria
di questi nuovi indicatori di mercato.
| city | Prezzo_Medio_Unitario_Medio | Efficacia_Annunci_Media |
|---|---|---|
| Bryan-College Station | 183534 | 14.7% |
| Tyler | 167677 | 9.3% |
| Beaumont | 146640 | 10.6% |
| Wichita Falls | 119430 | 12.8% |
Commento alla tabella:
La tabella confronta, per ciascuna città, il prezzo medio unitario e
l’efficacia degli annunci (in percentuale). Si evidenziano i mercati più
“efficienti” (valore più alto) e quelli più costosi, facilitando la
lettura per il cliente finale.
Commento al grafico:
Il boxplot mostra la distribuzione del prezzo medio unitario per
ciascuna città, mettendo in evidenza differenze, outlier e dispersione
tra i diversi mercati locali.
Commento al grafico:
Questo grafico mostra l’evoluzione nel tempo dell’efficacia degli
annunci per città, espressa in percentuale. Consente di monitorare la
capacità del mercato di assorbire l’offerta e può mettere in luce
periodi o città con maggiore o minore efficienza.
Commento al grafico:
Il boxplot evidenzia le differenze e la variabilità del prezzo mediano
tra le città analizzate, facilitando il confronto diretto delle fasce di
prezzo prevalenti e la presenza di eventuali outlier.
Commento al grafico:
La heatmap mostra l’andamento mensile delle vendite per anno e città,
mettendo in evidenza pattern stagionali e differenze tra mercati locali
nel tempo.
L’analisi dei dati 2010–2014 sui mercati immobiliari di Bryan-College Station, Tyler, Beaumont e Wichita Falls evidenzia:
Questi risultati delineano le caratteristiche specifiche e le opportunità di ciascun mercato locale, fornendo una base oggettiva per eventuali strategie di pricing, promozione e posizionamento.