Il presente è il risultato dell’analisi richiesta sul dataset Real Estate Texas.csv contentente 240 osservazioni mensili relative alle città di Beaumont, Bryan-College Station, Tyler e Wichita Falls negli anni dal 2010 al 2014 tramite un’ interpretazione economico-aziendale.
library(tidyverse)
library(readxl)
library(e1071)
library(scales)
# Impostazione della cartella di lavoro
setwd("C:/Users/Rosse/Desktop/master/primo progetto/Analisi di Mercato_Texas")
# Importazione del dataset
realestate_texas <- read_csv("realestate_texas.csv")
## Verifichiamo le dimensioni del dataset, i nomi delle variabili, la struttura e le principali statistiche descrittive.
dim(realestate_texas)
## [1] 240 8
names(realestate_texas)
## [1] "city" "year" "month" "sales"
## [5] "volume" "median_price" "listings" "months_inventory"
head(realestate_texas)
## # A tibble: 6 × 8
## city year month sales volume median_price listings months_inventory
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Beaumont 2010 1 83 14.2 163800 1533 9.5
## 2 Beaumont 2010 2 108 17.7 138200 1586 10
## 3 Beaumont 2010 3 182 28.7 122400 1689 10.6
## 4 Beaumont 2010 4 200 26.8 123200 1708 10.6
## 5 Beaumont 2010 5 202 28.8 123100 1771 10.9
## 6 Beaumont 2010 6 189 27.2 122800 1803 11.1
str(realestate_texas)
## spc_tbl_ [240 × 8] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ city : chr [1:240] "Beaumont" "Beaumont" "Beaumont" "Beaumont" ...
## $ year : num [1:240] 2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 ...
## $ month : num [1:240] 1 2 3 4 5 6 7 8 9 10 ...
## $ sales : num [1:240] 83 108 182 200 202 189 164 174 124 150 ...
## $ volume : num [1:240] 14.2 17.7 28.7 26.8 28.8 ...
## $ median_price : num [1:240] 163800 138200 122400 123200 123100 ...
## $ listings : num [1:240] 1533 1586 1689 1708 1771 ...
## $ months_inventory: num [1:240] 9.5 10 10.6 10.6 10.9 11.1 11.7 11.6 11.7 11.5 ...
## - attr(*, "spec")=
## .. cols(
## .. city = col_character(),
## .. year = col_double(),
## .. month = col_double(),
## .. sales = col_double(),
## .. volume = col_double(),
## .. median_price = col_double(),
## .. listings = col_double(),
## .. months_inventory = col_double()
## .. )
## - attr(*, "problems")=<externalptr>
summary(realestate_texas)
## 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
#controllo che non ci siano valori mancanti nel dataset
missing_values <- colSums(is.na(realestate_texas))
missing_values
## city year month sales
## 0 0 0 0
## volume median_price listings months_inventory
## 0 0 0 0
Il dataset è completo e non presenta valori mancanti.
Le variabili presenti nel dataset possono essere classificate in variabili qualitative, quantitative e temporali.
La variabile city è una variabile qualitativa nominale, in quanto rappresenta le città di riferimento (Beaumont, Bryan-College Station, Tyler e Wichita Falls) e non presenta un ordinamento naturale tra le modalità. Pertanto, può essere utilizzata per effettuare confronti tra le diverse città.
Le variabili sales, listings, volume, median_price e months_inventory sono variabili quantitative.
In particolare, sales e listings rappresentano conteggi e possono quindi essere considerate quantitative discrete, mentre volume, median_price e months_inventory sono quantitative continue.
Pertanto è possibile effettuare analisi descrittive, come il calcolo di media, mediana, deviazione standard, quartili, valori minimi e massimi oltre che individuare le eventuali correlazioni tra di loro.
Le variabili year e month richiedono invece rappresentano una dimensione temporale. Year può essere considerata una variabile temporale ordinata e può essere utilizzata principalmente per studiare l’evoluzione delle variabili nel tempo, ad esempio attraverso l’analisi dei trend annuali. Month rappresenta invece la componente mensile del tempo e può essere utilizzata per individuare eventuali fenomeni di stagionalità, confrontando i valori osservati nei diversi mesi dell’anno.
Pertanto, l’analisi del dataset può essere condotta combinando la dimensione territoriale, rappresentata da city, con quella temporale, rappresentata da year e month, e con le variabili quantitative relative al mercato.
In questo modo è possibile studiare sia le differenze tra le città sia l’evoluzione nel tempo e l’eventuale presenza di fenomeni stagionali.
Creo due nuove variabili per poter analizzare l’andamento delle variabili nel tempo.
#creo una variabile qualitativa ordinata per rappresentare i mesi nei grafici.
realestate_texas$month_factor <- factor(
realestate_texas$month,
levels = 1:12,
labels = c(
"January", "February", "March", "April",
"May", "June", "July", "August",
"September", "October", "November", "December"
),
ordered = TRUE
)
#creo la variabile 'date' per poter analizzare l'andamento delle variabili nel tempo.
realestate_texas$date <- as.Date(
paste(
realestate_texas$year,
realestate_texas$month,
"01",
sep = "-"
)
)
head(realestate_texas$date)
## [1] "2010-01-01" "2010-02-01" "2010-03-01" "2010-04-01" "2010-05-01"
## [6] "2010-06-01"
Per la variabile qualitativa city, trattata come una
qualitativa normale, è opportuno utilizzare una distribuzione di
frequenza.
realestate_texas$city <- as.factor(realestate_texas$city)
table(realestate_texas$city)
##
## Beaumont Bryan-College Station Tyler
## 60 60 60
## Wichita Falls
## 60
#frequenze relative
round(
prop.table(table(realestate_texas$city)),
4
)
##
## Beaumont Bryan-College Station Tyler
## 0.25 0.25 0.25
## Wichita Falls
## 0.25
La distribuzione delle osservazioni rispetto alla variabile city risulta perfettamente uniforme. Ciascuna delle quattro città presenti nel dataset — Beaumont, Bryan-College Station, Tyler e Wichita Falls — rappresenta il 25% del totale delle osservazioni. Questo indica che il dataset è bilanciato rispetto alla dimensione geografica considerata e che nessuna città risulta sovra o sottorappresentata.
Viene calcolata anche la distribuzione per ‘year’ e per ‘month_factory’
table(realestate_texas$year)
##
## 2010 2011 2012 2013 2014
## 48 48 48 48 48
La distribuzione della variabile year mostra una perfetta uniformità anche rispetto agli anni. Per ciascuno degli anni compresi tra 2010 e 2014 sono presenti 48 osservazioni. Complessivamente, quindi, ogni anno rappresenta il 20% delle osservazioni. Non emergono pertanto squilibri nella copertura temporale del dataset, rendendo possibile un confronto tra gli anni senza che uno di essi sia maggiormente rappresentato rispetto agli altri.
table(realestate_texas$month_factor)
##
## January February March April May June July August
## 20 20 20 20 20 20 20 20
## September October November December
## 20 20 20 20
Anche la variabile month_factor presenta una distribuzione perfettamente uniforme: per ciascuno dei 12 mesi dell’anno sono presenti 20 osservazioni. Ogni mese rappresenta quindi circa l’8,33% del totale. Questo evidenzia che il dataset è bilanciato anche dal punto di vista della componente mensile e consente di analizzare eventuali variazioni stagionali senza che la numerosità delle osservazioni nei singoli mesi influenzi il confronto.
Pertanto, i risultati mostrano che il dataset è perfettamente bilanciato rispetto alla dimensioni geografiche (city) e temporali(year e month_factory). In particolare, la presenza dello stesso numero di osservazioni per città, anno e mese costituisce un elemento positivo per le successive analisi statistiche, poiché riduce il rischio che eventuali differenze osservate nelle variabili di interesse siano dovute a una diversa numerosità delle categorie considerate.
Per le variabili quantitative vengono calcolati:
variabili_quantitative <- c(
"sales",
"volume",
"median_price",
"listings",
"months_inventory"
)
calcola_statistiche <- function(x) {
x <- x[!is.na(x)]
c(
Media = mean(x),
Mediana = median(x),
Minimo = min(x),
Q1 = quantile(x, 0.25),
Q3 = quantile(x, 0.75),
Massimo = max(x),
Range = max(x) - min(x),
Varianza = var(x),
Deviazione_Standard = sd(x),
CV_percentuale = sd(x) / mean(x) * 100,
Asimmetria = skewness(x),
Curtosi = kurtosis(x)
)
}
statistiche <- sapply(
realestate_texas[variabili_quantitative],
calcola_statistiche
)
statistiche <- round(statistiche, 3)
statistiche
## sales volume median_price listings months_inventory
## Media 192.292 31.005 132665.417 1738.021 9.193
## Mediana 175.500 27.062 134500.000 1618.500 8.950
## Minimo 79.000 8.166 73800.000 743.000 3.400
## Q1.25% 127.000 17.660 117300.000 1026.500 7.800
## Q3.75% 247.000 40.893 150050.000 2056.000 10.950
## Massimo 423.000 83.547 180000.000 3296.000 14.900
## Range 344.000 75.381 106200.000 2553.000 11.500
## Varianza 6344.300 277.271 513572983.089 566568.966 5.307
## Deviazione_Standard 79.651 16.651 22662.149 752.708 2.304
## CV_percentuale 41.422 53.705 17.082 43.308 25.060
## Asimmetria 0.714 0.879 -0.362 0.645 0.041
## Curtosi -0.336 0.151 -0.643 -0.810 -0.198
for (v in variabili_quantitative) {
media <- mean(realestate_texas[[v]], na.rm = TRUE)
mediana <- median(realestate_texas[[v]], na.rm = TRUE)
cat("\nVariabile:", v, "\n")
cat("Media:", round(media, 2), "\n")
cat("Mediana:", round(mediana, 2), "\n")
if (media > mediana) {
cat(
"Interpretazione: la media è superiore alla mediana, ",
"possibile indicazione di asimmetria positiva.\n"
)
} else if (media < mediana) {
cat(
"Interpretazione: la media è inferiore alla mediana, ",
"possibile indicazione di asimmetria negativa.\n"
)
} else {
cat(
"Interpretazione: media e mediana sono molto simili, ",
"indicando una distribuzione relativamente simmetrica.\n"
)
}
}
##
## Variabile: sales
## Media: 192.29
## Mediana: 175.5
## Interpretazione: la media è superiore alla mediana, possibile indicazione di asimmetria positiva.
##
## Variabile: volume
## Media: 31.01
## Mediana: 27.06
## Interpretazione: la media è superiore alla mediana, possibile indicazione di asimmetria positiva.
##
## Variabile: median_price
## Media: 132665.4
## Mediana: 134500
## Interpretazione: la media è inferiore alla mediana, possibile indicazione di asimmetria negativa.
##
## Variabile: listings
## Media: 1738.02
## Mediana: 1618.5
## Interpretazione: la media è superiore alla mediana, possibile indicazione di asimmetria positiva.
##
## Variabile: months_inventory
## Media: 9.19
## Mediana: 8.95
## Interpretazione: la media è superiore alla mediana, possibile indicazione di asimmetria positiva.
Commento complessivo degli indici
L’analisi degli indici descrittivi evidenzia caratteristiche differenti tra le variabili considerate.
Per quanto riguarda ‘sales’, il numero medio di vendite è pari a 192,292, mentre la mediana è 175,5. Il fatto che la media sia superiore alla mediana, insieme al valore di asimmetria positivo pari a 0,714, indica una distribuzione moderatamente asimmetrica a destra. La deviazione standard è pari a 79,651 e il coefficiente di variazione è del 41,422%, evidenziando una variabilità piuttosto elevata dei valori. Le vendite variano da un minimo di 79 a un massimo di 423, con un range di 344. La curtosi pari a -0,336 indica una distribuzione leggermente più piatta rispetto a quella normale.
La variabile volume presenta una media di 31,005 e una mediana di 27,062. Anche in questo caso la media è maggiore della mediana e l’indice di asimmetria (0,879) conferma una asimmetria positiva, più marcata rispetto a quella osservata per sales. I valori sono compresi tra 8,166 e 83,547, con un range di 75,381. La deviazione standard è 16,651, mentre il coefficiente di variazione raggiunge il 53,705%, il valore più elevato tra le variabili analizzate. Questo indica che volume presenta la maggiore variabilità relativa. La curtosi, pari a 0,151, è molto vicina a quella di una distribuzione normale, anche se leggermente superiore rispetto al valore di riferimento dell’eccesso di curtosi pari a zero.
Per median_price, la media è pari a 132.665,417, mentre la mediana è 134.500. In questo caso la media è leggermente inferiore alla mediana, suggerendo una possibile asimmetria negativa, coerentemente con il valore di asimmetria pari a -0,362. La variabilità relativa è invece più contenuta: il coefficiente di variazione è pari al 17,082%, il valore più basso tra le variabili considerate. I prezzi variano da 73.800 a 180.000, con un range di 106.200 e una deviazione standard di circa 22.662. La curtosi pari a -0,643 indica una distribuzione più piatta rispetto alla distribuzione normale.
La variabile listings presenta una media di 1.738,021 e una mediana di 1.618,5. La media superiore alla mediana è coerente con il valore di asimmetria positivo (0,645), indicando una moderata asimmetria a destra. La variabilità è abbastanza elevata: la deviazione standard è pari a 752,708 e il coefficiente di variazione raggiunge il 43,308%. I valori oscillano tra 743 e 3.296, con un range di 2.553. La curtosi negativa (-0,810) indica una distribuzione relativamente più piatta rispetto alla normale.
Infine, months_inventory presenta una media di 9,193 mesi e una mediana di 8,950 mesi. La differenza molto contenuta tra i due valori suggerisce una distribuzione abbastanza equilibrata. L’indice di asimmetria, pari a 0,041, è infatti molto vicino a zero e indica una distribuzione quasi perfettamente simmetrica. La deviazione standard è 2,304, mentre il coefficiente di variazione è del 25,060%, indicando una variabilità relativa moderata. I valori sono compresi tra 3,4 e 14,9 mesi. La curtosi pari a -0,198 è prossima allo zero e indica una forma abbastanza vicina a quella di una distribuzione normale, sebbene leggermente più piatta.
Nel complesso,pertanto, le variabili sales, volume e listings mostrano una moderata asimmetria positiva, con valori della media superiori alla mediana. Tra queste, volume presenta l’asimmetria più accentuata (0,879) e anche la maggiore variabilità relativa, con un CV del 53,705%.
Al contrario, median_price presenta una lieve asimmetria negativa, mentre months_inventory risulta la variabile più simmetrica, con un indice di asimmetria praticamente nullo (0,041).
Dal punto di vista della variabilità relativa, median_price è la variabile più omogenea (CV = 17,082%), mentre volume è quella maggiormente eterogenea (CV = 53,705%). Questo confronto è particolarmente utile perché il coefficiente di variazione consente di confrontare la dispersione di variabili espresse in unità di misura differenti.
Per quanto riguarda la forma, tutte le variabili presentano valori di curtosi relativamente contenuti e nessuna mostra una curtosi particolarmente elevata. I valori negativi osservati per sales, median_price, listings e months_inventory indicano distribuzioni leggermente più piatte rispetto alla normale.
In sintesi, il dataset presenta una buona varietà nei livelli di dispersione delle variabili: volume e listings risultano relativamente più variabili, median_price è più stabile, mentre months_inventory mostra una distribuzione particolarmente equilibrata e simmetrica. Inoltre, la variabile volume presenta anche la distribuzione più asimmetrica a destra (0,879). Ciò significa che la maggior parte dei mesi registra volumi ordinari, ma esistono mesi eccezionali di picco estivo che allungano la coda verso destra.
Per confrontare variabili espresse in unità di misura diverse, non è corretto utilizzare direttamente la deviazione standard o la varianza, perché dipendono dalla scala di misura della variabile. È quindi opportuno utilizzare il coefficiente di variazione (CV) per confrontare la variabilità relativa.
Si riportano i risultati ottenuti in precedenza:
statistiche
Pertanto, la distribuzione più asimmetrica è quindi quella di volume, con un indice di asimmetria pari a 0,879. Il valore positivo indica che l’asimmetria è verso destra, cioè sono presenti valori relativamente elevati che tendono a spostare la coda della distribuzione verso destra.
Per confrontare la variabilità tra variabili con diverse unità di misura è stato utilizzato il coefficiente di variazione, che evidenzia volume come la variabile maggiormente variabile (CV = 53,705%).
La variabile quantitativa ‘median_price’, che rappresenta il prezzo mediano degli immobili, è stata suddivisa in cinque classi utilizzando i quintili. Questa scelta permette di ottenere gruppi con un numero di osservazioni pressoché uguale, facilitando il confronto tra le diverse fasce di prezzo.
quantili_prezzo <- quantile(
realestate_texas$median_price,
probs = seq(0, 1, 0.2),
na.rm = TRUE
)
quantili_prezzo
## 0% 20% 40% 60% 80% 100%
## 73800 110000 130700 141220 152360 180000
breaks_prezzo <- unique(quantili_prezzo)
if (length(breaks_prezzo) < 2) {
stop(
"Non è possibile creare classi di prezzo."
)
}
realestate_texas$price_class <- cut(
realestate_texas$median_price,
breaks = breaks_prezzo,
include.lowest = TRUE,
labels = c(
"Molto Basso",
"Basso",
"Medio",
"Alto",
"Molto Alto"
)
)
Le classi di prezzo vengono suddivise in:
Tramite la distribuzione di frequenza controlliamo l’uniformità delle classi
freq_price <- table(realestate_texas$price_class)
freq_price_rel <- prop.table(freq_price)
freq_price_percent <- freq_price_rel * 100
freq_price
##
## Molto Basso Basso Medio Alto Molto Alto
## 49 48 47 48 48
tabella_prezzo <- data.frame(
Classe = names(freq_price),
Frequenza = as.vector(freq_price),
Frequenza_relativa =
round(as.vector(freq_price_rel), 3),
Percentuale =
round(as.vector(freq_price_percent), 3)
)
tabella_prezzo
## Classe Frequenza Frequenza_relativa Percentuale
## 1 Molto Basso 49 0.204 20.417
## 2 Basso 48 0.200 20.000
## 3 Medio 47 0.196 19.583
## 4 Alto 48 0.200 20.000
## 5 Molto Alto 48 0.200 20.000
La distribuzione delle frequenze evidenzia una sostanziale uniformità tra le cinque classi con una media di 48 osservazioni pari a circa il 20% delle stesse.
La classe “Molto Basso” presenta la frequenza più elevata, con 49 osservazioni, mentre la classe “Medio” presenta la frequenza più bassa, con 47 osservazioni.
grafico_classi_prezzo <- ggplot(
realestate_texas,
aes(x = price_class)
) +
geom_bar(fill = "steelblue") +
labs(
title = "Distribuzione degli immobili per classe di prezzo",
subtitle = "Classificazione basata sui quintili",
x = "Classe di prezzo",
y = "Frequenza"
) +
theme_minimal() +
theme(
axis.text.x =
element_text(angle = 45, hjust = 1)
)
grafico_classi_prezzo
L’uniformità delle classi viene confermata graficamente dal grafico a
barre. Le stesse hanno altezze pressoché identiche, indicando che
nessuna classe raccoglie una quota nettamente superiore di osservazioni
rispetto alle altre.
Questo risultato è coerente con il metodo dei quintili, che mira a ripartire le osservazioni in cinque gruppi di dimensione simile. Le piccole differenze nelle frequenze possono dipendere dalla presenza di valori ripetuti in corrispondenza dei limiti delle classi.
p <- prop.table(freq_price)
Gini <- 1 - sum(p^2)
cat(
"Indice di eterogeneità di Gini:",
round(Gini, 3)
)
## Indice di eterogeneità di Gini: 0.8
k <- length(freq_price)
gini_norm <-
Gini / ((k - 1) / k)
cat(
"\nIndice di Gini normalizzato:",
round(gini_norm, 3)
)
##
## Indice di Gini normalizzato: 1
L’indice di Gini pari a 0,80 (valore vicino a 0) e l’indice di Gini normalizzato pari a 1 indicano che una maggiore concentrazione delle osservazioni in poche classi e che la distribuzione delle osservazioni tra le classi è massimamente eterogenea rispettivamente.
Questo risultato è in parte atteso, poiché la suddivisione mediante quintili è stata scelta proprio per ottenere gruppi di numerosità simile. Pertanto, l’indice di Gini descrive efficacemente l’equilibrio della distribuzione tra le classi, ma non deve essere interpretato come una misura della dispersione dei prezzi in termini monetari.
Inoltre, è importante precisare che questo risultato descrive l’equilibrio delle frequenze tra le classi, non la variabilità dei prezzi all’interno delle classi.
P_Beaumont <-
mean(
realestate_texas$city == "Beaumont",
na.rm = TRUE
)
cat(
"P(city = Beaumont) =",
round(P_Beaumont, 3),
"\n"
)
## P(city = Beaumont) = 0.25
cat(
"Percentuale =",
round(P_Beaumont * 100, 2),
"%"
)
## Percentuale = 25 %
Presa una riga a caso del dataset, la probabilità che riporti la città “Beaumont” è del 25%.
P_Luglio <-
mean(
realestate_texas$month == 7,
na.rm = TRUE
)
cat(
"P(month = Luglio) =",
round(P_Luglio, 3),
"\n"
)
## P(month = Luglio) = 0.083
cat(
"Percentuale =",
round(P_Luglio * 100, 2),
"%"
)
## Percentuale = 8.33 %
Presa una riga a caso del dataset, la probabilità che riporti il mese di ‘Luglio’ è dell’8,33%.
P_Dicembre_2012 <-
mean(
realestate_texas$month == 12 &
realestate_texas$year == 2012,
na.rm = TRUE
)
cat(
"P(month = Dicembre AND year = 2012) =",
round(P_Dicembre_2012, 3),
"\n"
)
## P(month = Dicembre AND year = 2012) = 0.017
cat(
"Percentuale =",
round(P_Dicembre_2012 * 100, 2),
"%"
)
## Percentuale = 1.67 %
Per arricchire l’analisi del dataset realestate_texas sono state create due nuove variabili: total_sales_value, ottenuto dal prodotto tra sales e median_price, che fornisce una stima del valore complessivo delle vendite e non rappresenta il valore reale delle singole transazioni e listing_effectiveness_pct, ottenuto dal rapporto tra vendite e numero di annunci moltiplicato per 100, che rappresenta un indicatore descrittivo dell’efficacia degli annunci immobiliari e non come vera probabilità di vendita di un singolo immobile, poiché gli annunci possono rimanere presenti per più periodi.
realestate_texas$total_sales_value <-
realestate_texas$sales *
realestate_texas$median_price
realestate_texas$listing_effectiveness <-
realestate_texas$sales /
realestate_texas$listings
realestate_texas$listing_effectiveness_pct <-
realestate_texas$sales /
realestate_texas$listings *
100
summary(realestate_texas$total_sales_value)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 7173200 15270250 23501800 26570396 35216950 69557800
summary(
realestate_texas$listing_effectiveness_pct
)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5.014 8.980 10.963 11.874 13.492 38.713
Le statistiche descrittive di total_sales_value mostrano che la media, pari a circa 26,57 milioni, è superiore alla mediana, pari a circa 23,50 milioni. Questa differenza suggerisce che la distribuzione presenti una possibile asimmetria positiva, dovuta alla presenza di alcune osservazioni con valori stimati particolarmente elevati. Anche l’ampio intervallo tra il valore minimo e quello massimo evidenzia differenze significative nel valore economico stimato delle vendite tra le osservazioni considerate. È importante precisare che questa variabile rappresenta una stima indicativa e non il valore reale delle transazioni immobiliari. Infatti, il prezzo mediano non coincide necessariamente con il prezzo effettivo di ciascun immobile venduto. Per questo motivo, il prodotto tra vendite e prezzo mediano è utile per confrontare indicativamente il volume economico dei diversi periodi o mercati, ma non deve essere interpretato come un dato contabile esatto.
Mentre quelle di listing_effectiveness_pct mostrano che la media dell’indicatore è pari all’11,87%, mentre la mediana è pari al 10,96%. Ciò significa che, in media, il rapporto tra vendite e annunci è di circa 11,87 vendite ogni 100 annunci, secondo le definizioni e il periodo di riferimento dei dati utilizzati. La media superiore alla mediana suggerisce una possibile asimmetria positiva: alcune osservazioni presentano rapporti particolarmente elevati, che contribuiscono ad aumentare il valore medio. Si osserva inoltre una certa variabilità tra le osservazioni. Il 50% centrale dei valori è compreso tra il 8,98% e il 13,49%, mentre il valore massimo raggiunge il 38,71%. Questo indica che in alcune osservazioni il rapporto tra vendite e annunci è decisamente superiore rispetto ai livelli più comuni. È tuttavia necessario interpretare l’indicatore con cautela: non rappresenta la probabilità che un singolo immobile venga venduto, perché gli annunci possono rimanere attivi per più periodi e le vendite registrate in un determinato intervallo potrebbero non corrispondere agli annunci presenti nello stesso momento. Per misurare una vera efficacia degli annunci sarebbe necessario disporre di informazioni collegate sui singoli immobili, sulle date di pubblicazione e di vendita e sulla durata degli annunci.
Pertanto, le nuove variabili permettono di osservare il mercato immobiliare da due prospettive complementari. La variabile total_sales_value fornisce una stima del valore economico associato alle vendite, mentre listing_effectiveness_pct consente di confrontare il rapporto tra vendite e annunci disponibili. I risultati evidenziano una notevole variabilità del valore stimato delle vendite e differenze nell’indicatore relativo agli annunci. In entrambi i casi, la media superiore alla mediana suggerisce che alcune osservazioni presentino valori elevati rispetto a quelli più centrali della distribuzione.
L’analisi condizionata consente di approfondire le caratteristiche del mercato immobiliare del Texas considerando separatamente le diverse città, gli anni e i mesi. L’obiettivo è individuare eventuali differenze territoriali, tendenze temporali e variazioni stagionali attraverso il confronto delle medie, delle deviazioni standard e delle distribuzioni rappresentate graficamente.
La prima analisi confronta le principali variabili quantitative tra Beaumont, Bryan-College Station, Tyler e Wichita Falls (city).
summary_city <- realestate_texas %>%
group_by(city) %>%
summarise(
n = n(),
media_sales = mean(sales, na.rm = TRUE),
sd_sales = sd(sales, na.rm = TRUE),
media_price = mean(median_price, na.rm = TRUE),
sd_price = sd(median_price, na.rm = TRUE),
media_volume = mean(volume, na.rm = TRUE),
sd_volume = sd(volume, na.rm = TRUE),
media_listings = mean(listings, na.rm = TRUE),
sd_listings = sd(listings, na.rm = TRUE),
media_inventory =
mean(months_inventory, na.rm = TRUE),
sd_inventory =
sd(months_inventory, na.rm = TRUE),
media_total_value =
mean(total_sales_value, na.rm = TRUE),
.groups = "drop"
)
summary_city
## # A tibble: 4 × 13
## city n media_sales sd_sales media_price sd_price media_volume sd_volume
## <fct> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Beaumo… 60 177. 41.5 129988. 10105. 26.1 6.97
## 2 Bryan-… 60 206. 85.0 157488. 8852. 38.2 17.2
## 3 Tyler 60 270. 62.0 141442. 9337. 45.8 13.1
## 4 Wichit… 60 116. 22.2 101743. 11320. 13.9 3.24
## # ℹ 5 more variables: media_listings <dbl>, sd_listings <dbl>,
## # media_inventory <dbl>, sd_inventory <dbl>, media_total_value <dbl>
Per ciascuna città sono disponibili 60 osservazioni, pertanto il confronto avviene sulla base di gruppi con la stessa numerosità.
Anche il volume medio (media_volume) segue un andamento simile: Tyler raggiunge 45,8, Bryan-College Station 38,2, Beaumont 26,1 e Wichita Falls 13,9. La coerenza tra questi risultati suggerisce che Tyler sia il mercato più dinamico in termini di vendite e volume, mentre Wichita Falls presenta livelli inferiori.
Le differenze territoriali emergono anche dai prezzi. Bryan-College Station presenta il prezzo mediano medio più elevato, pari a circa 157.488, seguita da Tyler con 141.442, Beaumont con 129.988 e Wichita Falls con 101.743. È quindi importante distinguere tra dimensione del mercato e livello dei prezzi: Tyler registra il maggior numero medio di vendite, mentre Bryan-College Station presenta i prezzi medi più elevati.
Le deviazioni standard evidenziano inoltre differenze nella variabilità. Per le vendite, Bryan-College Station presenta una deviazione standard di 85,0, superiore a quella delle altre città, mentre Wichita Falls registra il valore più contenuto, pari a 22,2. Questo indica che a Bryan-College Station il numero di vendite è maggiormente variabile tra le osservazioni, mentre a Wichita Falls è relativamente più stabile.
Nel complesso, l’analisi suggerisce la presenza di mercati immobiliari con caratteristiche differenti: Tyler si distingue per l’intensità delle vendite, Bryan-College Station per i livelli di prezzo e la variabilità delle vendite, mentre Wichita Falls presenta prezzi e volumi medi più bassi.
L’analisi temporale (variabile year) considera il periodo compreso tra il 2010 e il 2014.
summary_year <- realestate_texas %>%
group_by(year) %>%
summarise(
n = n(),
media_sales = mean(sales, na.rm = TRUE),
sd_sales = sd(sales, na.rm = TRUE),
media_price = mean(median_price, na.rm = TRUE),
sd_price = sd(median_price, na.rm = TRUE),
media_volume = mean(volume, na.rm = TRUE),
sd_volume = sd(volume, na.rm = TRUE),
media_listings = mean(listings, na.rm = TRUE),
sd_listings = sd(listings, na.rm = TRUE),
media_inventory =
mean(months_inventory, na.rm = TRUE),
sd_inventory =
sd(months_inventory, na.rm = TRUE),
media_total_value =
mean(total_sales_value, na.rm = TRUE),
.groups = "drop"
)
summary_year
## # A tibble: 5 × 13
## year n media_sales sd_sales media_price sd_price media_volume sd_volume
## <dbl> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2010 48 169. 60.5 130192. 21822. 25.7 10.8
## 2 2011 48 164. 63.9 127854. 21318. 25.2 12.2
## 3 2012 48 186. 70.9 130077. 21432. 29.3 14.5
## 4 2013 48 212. 84.0 135723. 21708. 35.2 17.9
## 5 2014 48 231. 95.5 139481. 25625. 39.8 21.2
## # ℹ 5 more variables: media_listings <dbl>, sd_listings <dbl>,
## # media_inventory <dbl>, sd_inventory <dbl>, media_total_value <dbl>
Per ciascun anno sono presenti 48 osservazioni, quindi anche in questo caso la numerosità dei gruppi è uniforme.
Il numero medio di vendite mostra una tendenza complessivamente crescente: si passa da circa 169 vendite nel 2010 a 164 nel 2011, per poi aumentare a 186 nel 2012, 212 nel 2013 e 231 nel 2014. Dopo una lieve flessione nel 2011, si osserva dunque una crescita progressiva negli anni successivi.
Anche il volume medio aumenta nel tempo, passando da 25,7 nel 2010 a 39,8 nel 2014. Questo andamento è coerente con quello delle vendite e suggerisce un’intensificazione dell’attività del mercato immobiliare nel periodo considerato.
Il prezzo mediano medio mostra invece una crescita più contenuta. Dopo essere sceso da 130.192 nel 2010 a 127.854 nel 2011, aumenta progressivamente fino a raggiungere 139.481 nel 2014. Si osserva quindi una ripresa dei prezzi dopo il 2011, accompagnata dall’incremento delle vendite e dei volumi.
Per quanto riguarda la variabilità, la deviazione standard delle vendite cresce da 60,5 nel 2010 a 95,5 nel 2014. Ciò indica che, oltre all’aumento del livello medio delle vendite, nel tempo aumenta anche la dispersione dei valori osservati.
Nel complesso, i risultati evidenziano un mercato caratterizzato da una crescita delle vendite e dei volumi nel periodo analizzato, accompagnata da un incremento più moderato dei prezzi. Queste evidenze descrivono un’associazione temporale, ma non sono sufficienti da sole a dimostrare le cause della crescita.
L’analisi mensile (variabile month) consente di verificare la presenza di possibili variazioni stagionali.
summary_month <- realestate_texas %>%
group_by(month) %>%
summarise(
n = n(),
media_sales = mean(sales, na.rm = TRUE),
sd_sales = sd(sales, na.rm = TRUE),
media_price = mean(median_price, na.rm = TRUE),
sd_price = sd(median_price, na.rm = TRUE),
media_volume = mean(volume, na.rm = TRUE),
sd_volume = sd(volume, na.rm = TRUE),
media_listings = mean(listings, na.rm = TRUE),
sd_listings = sd(listings, na.rm = TRUE),
media_inventory =
mean(months_inventory, na.rm = TRUE),
sd_inventory =
sd(months_inventory, na.rm = TRUE),
media_total_value =
mean(total_sales_value, na.rm = TRUE),
.groups = "drop"
)
summary_month
## # A tibble: 12 × 13
## month n media_sales sd_sales media_price sd_price media_volume sd_volume
## <dbl> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 20 127. 43.4 124250 25151. 19.0 8.37
## 2 2 20 141. 51.1 130075 22823. 21.7 10.1
## 3 3 20 189. 59.2 127415 23442. 29.4 12.0
## 4 4 20 212. 65.4 131490 21458. 33.3 14.5
## 5 5 20 239. 83.1 134485 18796. 39.7 19.0
## 6 6 20 244. 95.0 137620 19231. 41.3 21.1
## 7 7 20 236. 96.3 134750 21945. 39.1 21.4
## 8 8 20 231. 79.2 136675 22488. 38.0 18.0
## 9 9 20 182. 72.5 134040 24344. 29.6 15.2
## 10 10 20 180. 75.0 133480 26358. 29.1 15.1
## 11 11 20 157. 55.5 134305 24691. 24.8 11.2
## 12 12 20 169. 60.7 133400 22810. 27.1 12.6
## # ℹ 5 more variables: media_listings <dbl>, sd_listings <dbl>,
## # media_inventory <dbl>, sd_inventory <dbl>, media_total_value <dbl>
Per ciascun mese sono presenti 20 osservazioni.
Il numero medio di vendite presenta un andamento variabile nel corso dell’anno. A gennaio si registra il valore più basso, pari a 127, mentre le vendite aumentano nei mesi successivi, raggiungendo 239 a maggio e il massimo di 244 a giugno. Da luglio si osserva una graduale riduzione: le vendite medie passano da 236 a luglio a 182 a settembre e 157 a novembre. A dicembre si registra una lieve ripresa, con 169 vendite medie.
Anche il volume medio segue un andamento simile: cresce da 19,0 a gennaio fino a raggiungere 41,3 a giugno, per poi diminuire nei mesi successivi. Questa corrispondenza tra vendite e volume rafforza l’evidenza di una maggiore attività del mercato nella parte centrale dell’anno.
I prezzi mostrano invece un andamento meno marcato. Il prezzo mediano medio varia da 124.250 a gennaio a 137.620 a giugno, mentre nei mesi successivi rimane su livelli relativamente simili, con alcune oscillazioni. Il massimo delle vendite coincide quindi con un periodo in cui anche il prezzo medio risulta relativamente elevato.
Questi risultati suggeriscono una possibile componente stagionale, con maggiore attività immobiliare tra la primavera e l’estate e livelli più contenuti nei mesi invernali. Per confermare questa interpretazione sarebbe opportuno confrontare gli stessi mesi nei diversi anni e nelle diverse città, distinguendo la stagionalità dalle variazioni generali del mercato.
L’analisi congiunta permette di osservare come si siano evoluti i mercati delle quattro città tra il 2010 e il 2014. (variabili: city e year)
summary_city_year <- realestate_texas %>%
group_by(city, year) %>%
summarise(
n = n(),
media_sales = mean(sales, na.rm = TRUE),
sd_sales = sd(sales, na.rm = TRUE),
media_price = mean(median_price, na.rm = TRUE),
sd_price = sd(median_price, na.rm = TRUE),
media_total_value =
mean(total_sales_value, na.rm = TRUE),
.groups = "drop"
)
summary_city_year
## # A tibble: 20 × 8
## city year n media_sales sd_sales media_price sd_price media_total_value
## <fct> <dbl> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Beau… 2010 12 156. 36.9 133117. 13354. 20475667.
## 2 Beau… 2011 12 144 22.7 125642. 9603. 18189383.
## 3 Beau… 2012 12 172. 28.4 126533. 7973. 21881350
## 4 Beau… 2013 12 201. 37.7 132400 7785. 26740500
## 5 Beau… 2014 12 214. 36.5 132250 9835. 28504700
## 6 Brya… 2010 12 168. 70.8 153533. 5474. 25539775
## 7 Brya… 2011 12 167. 62.2 151417. 3709. 25259617.
## 8 Brya… 2012 12 197. 74.3 153567. 7096. 30297950
## 9 Brya… 2013 12 238. 95.8 159392. 5429. 38162042.
## 10 Brya… 2014 12 260. 86.7 169533. 7776. 44115525
## 11 Tyler 2010 12 228. 49.0 135175 4782. 30812450
## 12 Tyler 2011 12 239. 49.6 136217. 8505. 32775808.
## 13 Tyler 2012 12 264. 46.4 139250 7983. 36918483.
## 14 Tyler 2013 12 287. 53.0 146100 6726. 42223217.
## 15 Tyler 2014 12 332. 56.9 150467. 8543. 50099317.
## 16 Wich… 2010 12 123. 26.6 98942. 10361. 12328017.
## 17 Wich… 2011 12 106. 19.8 98142. 10632. 10531908.
## 18 Wich… 2012 12 112. 14.2 100958. 12347. 11409800
## 19 Wich… 2013 12 121. 26.0 105000 10383. 12722517.
## 20 Wich… 2014 12 117 21.1 105675 12444. 12419900
I risultati evidenziano differenze territoriali significative.
Tyler mantiene il livello più elevato di vendite medie in tutti gli anni e passa da circa 228 vendite nel 2010 a 332 nel 2014.
Bryan-College Station presenta una crescita altrettanto evidente, passando da 168 a 260 vendite medie. Beaumont mostra un incremento da 156 a 214, mentre Wichita Falls rimane su livelli più contenuti, senza una crescita continua.
Anche i prezzi confermano le differenze tra città. Bryan-College Station mantiene i livelli più elevati, raggiungendo una media di circa 169.533 nel 2014. Tyler passa da 135.175 nel 2010 a 150.467 nel 2014, mentre Beaumont mostra oscillazioni più contenute. Wichita Falls presenta i prezzi più bassi, sebbene in lieve crescita nel periodo.
La variabile media_total_value, relativa al valore totale stimato delle vendite, rafforza queste differenze. Tyler passa da circa 30,8 milioni nel 2010 a 50,1 milioni nel 2014, mentre Bryan-College Station cresce da circa 25,5 a 44,1 milioni. Beaumont registra un incremento da circa 20,5 a 28,5 milioni, mentre Wichita Falls rimane su valori decisamente inferiori.
Si evidenzia pertanto una crescita particolarmente marcata a Tyler e Bryan-College Station. Occorre tuttavia ricordare che total_sales_value è una stima ottenuta moltiplicando le vendite per il prezzo mediano e non corrisponde al valore effettivo delle transazioni.
L’analisi congiunta permette di osservare come si siano evoluti i mercati delle quattro città tra il 2010 e il 2014 distinta per mesi. (variabili: city, year e month)
summary_city_year_month <- realestate_texas %>%
group_by(city, year, month) %>%
summarise(
n = n(),
media_sales = mean(sales, na.rm = TRUE),
sd_sales = sd(sales, na.rm = TRUE),
media_price = mean(median_price, na.rm = TRUE),
sd_price = sd(median_price, na.rm = TRUE),
media_total_value =
mean(total_sales_value, na.rm = TRUE),
.groups = "drop"
)
summary_city_year_month
## # A tibble: 240 × 9
## city year month n media_sales sd_sales media_price sd_price
## <fct> <dbl> <dbl> <int> <dbl> <dbl> <dbl> <dbl>
## 1 Beaumont 2010 1 1 83 NA 163800 NA
## 2 Beaumont 2010 2 1 108 NA 138200 NA
## 3 Beaumont 2010 3 1 182 NA 122400 NA
## 4 Beaumont 2010 4 1 200 NA 123200 NA
## 5 Beaumont 2010 5 1 202 NA 123100 NA
## 6 Beaumont 2010 6 1 189 NA 122800 NA
## 7 Beaumont 2010 7 1 164 NA 124300 NA
## 8 Beaumont 2010 8 1 174 NA 136800 NA
## 9 Beaumont 2010 9 1 124 NA 121100 NA
## 10 Beaumont 2010 10 1 150 NA 138500 NA
## # ℹ 230 more rows
## # ℹ 1 more variable: media_total_value <dbl>
I risultati evidenziano differenze territoriali e temporali nell’andamento del mercato immobiliare.
Per ciascuna combinazione di città, anno e mese è presente una sola osservazione.
Di conseguenza, le vendite medie e i prezzi medi riportati nella tabella coincidono con i valori registrati per quello specifico mese. Le deviazioni standard risultano invece non disponibili (NA), poiché non è possibile misurare la dispersione dei dati quando si dispone di una sola osservazione per gruppo.
##8.1 Boxplot del prezzo mediano per città
Il boxplot consente di confrontare la distribuzione dei prezzi mediani nelle quattro città, evidenziando differenze nella posizione centrale, nella variabilità e nella presenza di eventuali valori anomali.
grafico_box_price <- ggplot(
realestate_texas,
aes(
x = city,
y = median_price
)
) +
geom_boxplot(
fill = "steelblue",
alpha = 0.7
) +
labs(
title = "Distribuzione del prezzo mediano per città",
x = "Città",
y = "Prezzo mediano"
) +
theme_minimal() +
theme(
axis.text.x =
element_text(angle = 45, hjust = 1)
)
grafico_box_price
Il boxplot confronta la distribuzione del valore totale stimato delle vendite (total_sales_value) nelle quattro città.
grafico_box_value_city <- ggplot(
realestate_texas,
aes(
x = city,
y = total_sales_value
)
) +
geom_boxplot(
fill = "darkorange",
alpha = 0.7
) +
scale_y_continuous(
labels = label_number(
big.mark = ".",
decimal.mark = ","
)
) +
labs(
title = "Distribuzione del valore totale stimato delle vendite",
x = "Città",
y = "Valore totale stimato"
) +
theme_minimal() +
theme(
axis.text.x =
element_text(angle = 45, hjust = 1)
)
grafico_box_value_city
Il boxplot permette di confrontare la distribuzione del valore totale stimato delle vendite nei cinque anni compresi tra il 2010 e il 2014, con l’obiettivo di individuare eventuali cambiamenti nel mercato immobiliare nel corso del tempo.
grafico_box_value_year <- ggplot(
realestate_texas,
aes(
x = factor(year),
y = total_sales_value
)
) +
geom_boxplot(
fill = "seagreen",
alpha = 0.7
) +
labs(
title = "Distribuzione del valore totale stimato per anno",
x = "Anno",
y = "Valore totale stimato"
) +
theme_minimal()
grafico_box_value_year
Il grafico confronta il valore totale stimato delle vendite tra le città, distinguendo le osservazioni relative ai diversi anni mediante colori differenti. Questa rappresentazione consente di esaminare contemporaneamente le differenze territoriali e l’evoluzione temporale del mercato.
grafico_box_city_year <- ggplot(
realestate_texas,
aes(
x = city,
y = total_sales_value,
fill = factor(year)
)
) +
geom_boxplot() +
labs(
title = "Valore totale delle vendite per città e anno",
x = "Città",
y = "Valore totale stimato",
fill = "Anno"
) +
theme_minimal() +
theme(
axis.text.x =
element_text(angle = 45, hjust = 1)
)
grafico_box_city_year
La rappresentazione mediante pannelli separati per anno permette di osservare più chiaramente le differenze tra le città all’interno di ciascun periodo, evitando la sovrapposizione delle informazioni cromatiche presenti nel grafico precedente.
grafico_box_facet_year <- ggplot(
realestate_texas,
aes(
x = city,
y = total_sales_value
)
) +
geom_boxplot(
fill = "mediumpurple",
alpha = 0.7
) +
facet_wrap(~year) +
labs(
title =
"Valore totale delle vendite per città nei diversi anni",
x = "Città",
y = "Valore totale stimato"
) +
theme_minimal() +
theme(
axis.text.x =
element_text(angle = 45, hjust = 1)
)
grafico_box_facet_year
##8.6 Grafico a barre sovrapposte del totale delle vendite per mese e
città
Creiamo una tabella contenente il totale delle vendite per mese e città.
Il grafico mostra il totale delle vendite per ciascun mese, distinguendo le città tramite colori differenti. Poiché il dataset contiene più anni, sommiamo le vendite dei diversi anni per ottenere il totale mensile per città.
sales_month_city <- realestate_texas %>%
group_by(
month,
month_factor,
city
) %>%
summarise(
total_sales =
sum(sales, na.rm = TRUE),
.groups = "drop"
)
sales_month_city
## # A tibble: 48 × 4
## month month_factor city total_sales
## <dbl> <ord> <fct> <dbl>
## 1 1 January Beaumont 608
## 2 1 January Bryan-College Station 591
## 3 1 January Tyler 907
## 4 1 January Wichita Falls 442
## 5 2 February Beaumont 677
## 6 2 February Bryan-College Station 628
## 7 2 February Tyler 1058
## 8 2 February Wichita Falls 454
## 9 3 March Beaumont 855
## 10 3 March Bryan-College Station 949
## # ℹ 38 more rows
grafico_bar_month_city <- ggplot(
sales_month_city,
aes(
x = month_factor,
y = total_sales,
fill = city
)
) +
geom_col(
position = "stack"
) +
labs(
title = "Totale delle vendite per mese e città",
x = "Mese",
y = "Totale vendite",
fill = "Città"
) +
theme_minimal() +
theme(
axis.text.x =
element_text(angle = 45, hjust = 1)
)
grafico_bar_month_city
In questo secondo grafico ogni barra rappresenta il 100% delle vendite del mese. Le diverse sezioni colorate mostrano la quota percentuale di ciascuna città sul totale delle vendite mensili.
grafico_bar_normalized <- ggplot(
sales_month_city,
aes(
x = month_factor,
y = total_sales,
fill = city
)
) +
geom_col(
position = "fill"
) +
scale_y_continuous(
labels = percent
) +
labs(
title = "Composizione percentuale delle vendite per mese",
x = "Mese",
y = "Percentuale",
fill = "Città"
) +
theme_minimal() +
theme(
axis.text.x =
element_text(angle = 45, hjust = 1)
)
grafico_bar_normalized
Il line chart permette di analizzare l’evoluzione temporale delle vendite e di individuare eventuali variazioni o fenomeni stagionali.
sales_time_city <- realestate_texas %>%
group_by(date, city) %>%
summarise(
total_sales =
sum(sales, na.rm = TRUE),
.groups = "drop"
)
grafico_line_sales <- ggplot(
sales_time_city,
aes(
x = date,
y = total_sales,
color = city,
group = city
)
) +
geom_line(linewidth = 1) +
labs(
title = "Andamento delle vendite nel tempo",
x = "Periodo",
y = "Vendite",
color = "Città"
) +
theme_minimal()
grafico_line_sales
PIANO D’AZIONE PER TEXAS REALTY INSIGHTS
Sulla base dei risultati dell’analisi statistica, si forniscono le seguenti raccomandazioni strategiche:
• Tyler: Rappresenta il motore commerciale del Texas (270 vendite/mese e 45,8M$ di volume medio) ed è qui che devono concentrare la forza vendita ad alto volume.
• Bryan-College Station: È il mercato a maggior valore unitario (157.488$ di prezzo mediano). Bisognerebbe orientare il marketing su immobili di fascia alta e servizi premium per massimizzare le provvigioni unitarie.
• L’efficacia degli annunci e il volume di vendita seguono un forte ciclo stagionale con picchi tra Maggio e Luglio (efficacia al 15,1% e 244 vendite medie), toccando i minimi a Gennaio (7,8% di efficacia).
• Raccomandazione: Investire oltre il 60% del budget pubblicitario annuale nella finestra Aprile-Luglio per sfruttare la massima propensione all’acquisto del mercato.
• Con una giacenza media statale di 9,18 mesi (che sale a oltre 11 mesi a Wichita Falls), le agenzie devono applicare revisioni di prezzo dinamiche sugli annunci attivi da oltre 90 giorni per evitare il deperimento dell’offerta