library(ggplot2)
library(dplyr)
library(moments)
data <- read.csv(“realestate_texas.csv”)
str(data)
# La variabile “city” è una variabile di tipo QUALITATIVO NOMINALE che evidenzia la città in analisi
# La variabile “year” è una variabile QUALITATIVA ORDINALE che evidenzia l’anno in analisi
# La variabile “month” è una variabile QUALITATIVA ORDINALE che evidenzia il mese in analisi
# La variabile “sales” è una variabile QUANTITATIVA DISCRETA che evidenzia il numero totale di vendite
# La variabile “volume” è una variabile QUANTITATIVA CONTINUA che evidenzia il valore totale delle vendite
# La variabile “median_price” è una variabile QUANTITATIVA CONTINUA che evidenzia il prezzo mediano di vendita
# La variabile “listings” è una variabile QUANTITATIVA DISCRETA che evidenzia il numero totale di annunci attivi
# La variabile “months_inventory” è una variabile QUANTITATIVA che evidenzia la quantità di mesi necessaria per vendere le inserzioni correnti
summary_stats <- data.frame(
Media = sapply(data[c(“sales”, “volume”, “median_price”, “listings”, “months_inventory”)], mean),
Deviazione_Standard = sapply(data[c(“sales”, “volume”, “median_price”, “listings”, “months_inventory”)], sd),
Skewness = sapply(data[c(“sales”, “volume”, “median_price”, “listings”, “months_inventory”)], skewness),
Kurtosis = sapply(data[c(“sales”, “volume”, “median_price”, “listings”, “months_inventory”)], kurtosis) )
summary_stats
freq <- table(data[‘city’])
freq_rel <- freq/sum(freq)
freq freq_rel
CV = function(x){
return(sd(x)/mean(x)*100)
}
Coefficiente_Variazione = sapply(data[c(“sales”, “volume”, “median_price”, “listings”, “months_inventory”)], CV)
Asimmetria <- sapply(data[c(“sales”, “volume”, “median_price”, “listings”, “months_inventory”)], skewness)
Coefficiente_Variazione
Asimmetria
breaks_vect <- (min(data$sales) - 1) + 0 : 5 * 69
breaks_vect
sales_cat <- cut(data$sales, breaks = breaks_vect)
sales_cat
freq_assolute <- table(sales_cat)
freq_relative_percentuale <- 100 * prop.table(freq_assolute)
df_freq <- data.frame(
sales_cat = names(freq_assolute),
n = as.numeric(freq_assolute),
freq_relative_percentuale = as.numeric(freq_relative_percentuale)
)
df_freq
ggplot(df_freq, aes(x = sales_cat, y = n)) +
geom_bar(stat = “identity”, fill = “blue”, color = “black”, alpha = 0.3) +
geom_text(aes(label = paste0(round(freq_relative_percentuale, 1), “%”)), vjust = -0.5, size = 5) +
labs(x = “Numero totale di vendite in classi”, y = “Frequenze assolute”) +
theme_minimal(base_size = 10)
gini <- function(x) {
ni = table(x)
fi = ni/length(x)
fi2 = fi^2
J = length(table(x))
gini = 1-sum(fi2)
gini.normalizzato = gini/((J-1)/J)
return(gini.normalizzato)
}
gini(data$sales)
gini(data$median_price)
gini(data$city)
prob_beaumont <- mean(data$city == “Beaumont”)
prob_beaumont
# 25%
prob_july <- mean(data$month == 7)
prob_july
# 8,33%
prob_dec2012 <- mean(data$month == 12 & data$year == 2012)
prob_dec2012
# 0.016%
data$mean_price <- (data$volume*1000000) / data$sales
# Il volume è in milioni head(data)
data$ads_effectiveness <- data$sales / data$listings
summary(data$ads_effectiveness)
grouping_city_year <- data %>%
group_by(city, year) %>%
summarise(mean_sales = mean(sales),
sd_sales = sd(sales)
)
grouping_city_year
ggplot(grouping_city_year, aes(x = year, y = mean_sales, fill = city)) +
geom_bar(stat = “identity”) +
labs(title = “Vendite Medie per Città e Anno”, x = “Anno”, y = “Media Vendite”) +
theme_minimal()
ggplot(data, aes(x = city, y = median_price, fill = city)) +
geom_boxplot(outlier.colour = “red”, alpha = 0.5) +
labs(title = “Distribuzione del Prezzo Mediano tra le Città”, x = “Città”, y = “Prezzo Mediano”) +
theme_minimal() +
theme(legend.position = “none”)
total_sales_by_month_city <- data %>%
group_by(month, city) %>%
summarise(total_sales = sum(sales))
ggplot(total_sales_by_month_city, aes(x = factor(month), y = total_sales, fill = city)) +
geom_bar(stat = “identity”, position = position_dodge()) +
labs(title = “Totale Vendite per Mese e Città”, x = “Mese”, y = “Totale Vendite”) +
theme_minimal()
sales_trend <- data %>%
group_by(city, year, month) %>%
summarise(total_sales = sum(sales), .groups = “drop”)
sales_trend$date <- as.Date(paste(sales_trend$year, sales_trend$month, “01”, sep = “-”))
ggplot(sales_trend, aes(x = date, y = total_sales, color = city, group = city)) +
geom_line(size = 1) +
geom_point() +
labs(title = “Andamento delle Vendite per Città”, x = “Data”, y = “Vendite Totali”, color = “Città”, caption = “Dati aggregati per città, anno e mese”) +
scale_x_date(date_labels = “%Y-%m”, date_breaks = “1 month”) +
theme_minimal() +
theme(legend.position = “bottom”, axis.text.x = element_text(angle = 45, hjust = 1, size=7))
quarterly_price_trend <- data %>%
group_by(city, year, quarter = ceiling(month / 3)) %>%
summarise(
total_volume = sum(volume),
total_sales = sum(sales),
mean_price = total_volume / total_sales
)
quarterly_price_trend$date <- as.Date(paste(quarterly_price_trend$year, (quarterly_price_trend$quarter * 3 - 2), “01”, sep = “-”))
ggplot(quarterly_price_trend, aes(x = date, y = mean_price*10^6, color = city, group = city)) +
geom_line(size = 1) +
geom_point() +
labs(title = “Andamento del Prezzo Medio di Vendita delle Case per Città (Trimestrale)”, x = “Data”, y = “Prezzo Mediano di Vendita”, color = “Città”, caption = “Dati aggregati per città e trimestre”) +
scale_x_date(date_labels = “%Y - Q”, date_breaks = “3 months”) +
theme_minimal(base_size = 14) +
theme(legend.position = “bottom”, axis.text.x = element_text(angle = 45, hjust = 1, size = 10))
L’obiettivo di questa analisi è studiare il mercato immobiliare di quattro città del Texas (Beaumont, Bryan-College Station, Tyler e Wichita Falls) attraverso dati storici su vendite, prezzi medi e volume totale delle vendite.
Tra le analisi effettuate risalta che la variabile Volume delle vendite mostra la maggiore variabilità con un coefficiente di variazione del 53.70%. Questo significa che il valore delle vendite varia significativamente tra le osservazioni. Inoltre la variabile Volume ha anche la maggiore asimmetria, con una skewness di 0.88, suggerendo una leggera tendenza verso valori estremi più alti.
Per quanto riguarda la distribuzione delle città, si è visto che ogni città ha 60 rilevazioni (25% del totale di 240 osservazioni), indicando una distribuzione uniforme delle osservazioni nel dataset.
Sono stati inoltre calcolati:
Inoltre, è stata calcolata l’efficacia deli annunci in relazione alle vendite.
È stata creata una nuova variabile chiamata ads_effectiveness, calcolando il rapporto tra vendite e annunci attivi. Il risultato medio indica che circa il 10% degli annunci si trasforma in vendite, un indicatore dell’efficacia complessiva delle inserzioni immobiliari.
Inoltre, utilizzando un grafico a barre per città e anno, si è osservato che:
- Tyler è la città con il maggior numero di vendite annuali, seguita da Bryan-College Station e Beaumont.
- Il trend generale delle vendite è in aumento in tutte le città analizzate, con alcune fluttuazioni stagionali.
- Attraverso un boxplot per la variabile median_price si è evidenziato che Bryan-College Station ha i prezzi mediani di vendita più alti, indicando un mercato più costoso rispetto alle altre città.
- Attraverso un grafico a barre si è evidenziato un aumento delle vendite nei mesi primaverili ed estivi, suggerendo una tendenza stagionale per l’acquisto di case in questi periodi.
- Attraverso un Line chart per l’andamento delle vendite storiche si è analizzato l’andamento delle vendite mese per mese che ha mostrato che le città di Tyler e Bryan hanno visto un aumento costante delle vendite nel tempo, mentre Wichita ha mantenuto un andamento più stabile.
- Un’ulteriore analisi trimestrale ha evidenziato un aumento dei prezzi delle case a Bryan-College Station e Tyler, mentre i prezzi a Beaumont e Wichita Falls sono rimasti stagnanti.
L’analisi del mercato immobiliare del Texas fornisce diversi spunti interessanti:
- Variabilità dei volumi: Il volume delle vendite varia in modo significativo tra le osservazioni, soprattutto nei periodi di alta stagionalità.
- Aumento dei prezzi: Le città di Bryan-College Station e Tyler mostrano un marcato aumento dei prezzi delle case nel tempo, segnalando una crescita più sostenuta rispetto alle città come Beaumont e Wichita Falls.
- Stagionalità: C’è una tendenza chiara di aumento delle vendite nei mesi primaverili ed estivi, confermata dal grafico delle vendite mensili per città.
Il mercato immobiliare texano è, nel complesso, equilibrato, ma con dinamiche diverse tra le città. Le città come Bryan-College Station e Tyler presentano maggiori opportunità di crescita, soprattutto in termini di prezzo e volume di vendite.