Importo le librerie necessarie

library(ggplot2)

library(dplyr)

library(moments)

Importo il dataset

data <- read.csv(“realestate_texas.csv”)

1. Analisi delle variabili

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

2.Calcolo: indici di posizione (media), di variabilità (deviazione standard), e di forma (skewness e kurtosis) per le variabili quantitative.

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) )

Mostriamo le statistiche calcolate

summary_stats

Calcolo distribuzione di frequenza e frequenza relativa della variabile qualitativa nominale “city”

freq <- table(data[‘city’])

freq_rel <- freq/sum(freq)

freq freq_rel

Abbiamo 60 rilevazioni per ciascuna città su un totale di 240 osservazioni. Ne consegue una frequenza relativa del 25% per località.

3. Variabili con maggiore variabilità e asimmetria

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

La variabile con MAGGIORE VARIABILITA’ è “volume” con 53.70, che risulta essere anche la variabile più asimmetrica con una skewness di 0.88

4. Grafico a barre per variabile quantitativa delle vendite

Suddivisione in classi

breaks_vect <- (min(data$sales) - 1) + 0 : 5 * 69

breaks_vect

sales_cat <- cut(data$sales, breaks = breaks_vect)

sales_cat

Conto le frequenze assolute

freq_assolute <- table(sales_cat)

Calcolo le frequenze relative

freq_relative_percentuale <- 100 * prop.table(freq_assolute)

Creo un dataframe con le frequenze assolute e relative

df_freq <- data.frame(

sales_cat = names(freq_assolute),

n = as.numeric(freq_assolute),

freq_relative_percentuale = as.numeric(freq_relative_percentuale)

)

df_freq

Grafico a barre

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)

Indice di GINI

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)

L’indice di gini ritorna valori molto vicini ad 1, e per “city” addirittura 1 preciso.

Ciò indica una distribuzione equa dei valori delle variabili.

I prezzi delle case non discostano molto tra di loro

Le vendite mese per mese ed anno per anno non discostano di molto tra loro

Le osservazioni delle città sono assolutamente periodiche e quindi presentano un indice pari a 1

5. Calcolo delle probabilità

Probabilità di ‘Beaumont’: La probabilità è del 25%, con 4 città equamente presenti nel dataset.

prob_beaumont <- mean(data$city == “Beaumont”)

prob_beaumont

# 25%

Probabilità di “luglio”: La probabilità è del 8,33%, ossia 1/12 mesi presenti nel dataset.

prob_july <- mean(data$month == 7)

prob_july

# 8,33%

Probabilità di “dicembre 2012”: La probabilità è del 1,66%, ossia 1 su (12 mesi * 5 anni) -> 1/60

prob_dec2012 <- mean(data$month == 12 & data$year == 2012)

prob_dec2012

# 0.016%

6. Creazione di nuove variabili

Creazione di colonna prezzo medio: per ogni osservazione abbiamo totale vendite e quantità vendite, quindi basta fare volume/sales

data$mean_price <- (data$volume*1000000) / data$sales

# Il volume è in milioni head(data)

La differenza tra media mediana è minima, ciò vuol dire che il prezzo medio non differisce particolarmente da osservazione ad osservazione.

Creazione di colonna efficacia degli annunci: calcolabile come rapporto tra vendite e annunci attivi

data$ads_effectiveness <- data$sales / data$listings

summary(data$ads_effectiveness)

Mentre per l’efficacia delle ads si può notare come mediamente circa il 10% degli annunci si trasformi in vendita

7. Analisi condizionata: raggruppamento città per anno e calcolo media e deviazione vendite

grouping_city_year <- data %>%

group_by(city, year) %>%

summarise(mean_sales = mean(sales),

sd_sales = sd(sales)

)

grouping_city_year

Rappresentazione grafico a barre

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()

Attraverso questo grafiche a barre sovrapposte possiamo notare un andamento crescente delle vendite.

La città di Tyler seguit da Bryan e Beaumount risulta essere quella con maggiori quantità di vendite

8. Creazione di visualizzazioni con ggplot2

- Boxplot per confrontare la distribuzione del prezzo mediano tra le città.

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”)

Attraverso questo grafico possiamo visimanete notare come Bryan-College Station sia la città con il prezzo mediano più alto

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

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()

Attraverso questo grafico possiamo notare un aumento generale delle vendite nei mesi primaverli ed estivi, percependo quindi un trend di vendita/acquisto.

- Line chart per confrontare l’andamento delle vendite in periodi storici differenti

Sales Trend

sales_trend <- data %>%

group_by(city, year, month) %>%

summarise(total_sales = sum(sales), .groups = “drop”)

Colonna per la data per l’asse x

sales_trend$date <- as.Date(paste(sales_trend$year, sales_trend$month, “01”, sep = “-”))

Line Chart

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))

Attraverso questo grafico possiamo notare l’andamento crescente nel tempo delle vendite per quasi tutte le città eccetto per wichita che rimane più o meno stagnante.

LINE CHART VARIABILE A SCELTA: Come sta andando il livello generale dei prezzi delle case?

Per rendere la visibilità maggiore scelgo di effettuare un’analisi sui trimestri

Aggrego il volume totale delle vendite e il numero di vendite per città e anno/trimestre

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

)

Creo una colonna per la data per l’asse x (anno e trimestre)

quarterly_price_trend$date <- as.Date(paste(quarterly_price_trend$year, (quarterly_price_trend$quarter * 3 - 2), “01”, sep = “-”))

Creo il grafico a linee per il prezzo medio trimestrale

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))

Da questo grafico estrapoliamo informazioni importanti come:

- un aumento importante dei prezzi delle case a Bryan-College Station ed anche a Tyler

- un prezzo delle case quasi stagnante a Beaumony e Wichita

9. CONCLUSIONE E RIEPILOGO REPORT DI ANALISI: Mercato Immobiliare Texas

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.

Infine, attraverso delle visualizzazioni grafiche sono state palesati dei trend ed analisi:

- 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.

Conclusioni

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.