# 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")
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.
#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 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"))
| 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:
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.
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.
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.
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.
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 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"))
| Variabile | Asimmetria |
|---|---|
| Sales | 0.72 |
| Volume | 0.88 |
| Median_Price | -0.36 |
| Listings | 0.65 |
| Months_Inventory | 0.04 |
# 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"))
| Variabile | Curtosi |
|---|---|
| Sales | -0.31 |
| Volume | 0.18 |
| Median_Price | -0.62 |
| Listings | -0.79 |
| Months_Inventory | -0.17 |
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"))
| 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.
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"))
| 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.
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.
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"))
| Evento | Probabilità |
|---|---|
| Città ‘Beaumont’ | 0.2500 |
| Mese di Luglio | 0.0833 |
| Dicembre 2012 | 0.0167 |
La probabilità di selezionare una riga relativa a Beaumont è di 0.25, indicando che il 25% delle osservazioni nel dataset riguardano questa città.
La probabilità di selezionare una riga del mese di Luglio è di 0.08, suggerendo che i dati sono distribuiti uniformemente durante l’anno.
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%).
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)
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.
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.
# 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"))
| 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 |
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à
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")
La città Bryan-College Station presenta un prezzo mediano più alto rispetto alle altre città.
Dal grafico si notano alcuni outlier, indicando vendite con prezzi mediani significativamente diversi dalla media.
La variabilità dei prezzi è maggiore in Bryan-College Station, suggerendo una maggiore diversità nel mercato immobiliare locale.
# 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")
Efficacia media degli annunci per città:
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à.
Presenta una mediana dell’efficacia simile a quella di Beaumont, ma con una variabilità inferiore.
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.
Variabilità dell’Efficacia degli Annunci:
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.
Considerazioni Generali:
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.
# 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"))
| 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 |
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.
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à.
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.
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
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.
# 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"))
| 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 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.
Possibili Cause:
Fattori Climatici: Il clima favorevole nei mesi primaverili ed estivi può incentivare gli acquirenti a cercare nuove case.
Ciclo Scolastico: Le famiglie possono preferire trasferirsi durante le vacanze estive per minimizzare l’impatto sul percorso scolastico dei figli.
Feste e Vacanze: Le attività immobiliari possono rallentare durante le festività invernali, come il Natale e il Capodanno.
Considerazioni per le Strategie di Vendita:
Pianificazione delle Campagne: Le agenzie immobiliari potrebbero intensificare le campagne di marketing nei mesi primaverili per capitalizzare sull’aumento della domanda.
Gestione delle Risorse: Prepararsi a un aumento del carico di lavoro nei mesi estivi e pianificare adeguatamente il personale.
L’analisi condizionata per città, anno e mese ha rivelato importanti tendenze nel mercato immobiliare del Texas:
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.
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.
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à.
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.
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")
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.
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
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.
# 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
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:
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à.
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.
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à.
# 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.
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.
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.
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.
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.
# 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.
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.
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à.
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.
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.