R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot. setwd(“C:\Users\fabio\OneDrive\Desktop\certificati\certificazioni\certificazioni ProfessionAI\Progetti\statistica descrittiva”) dati<-read.csv(“realestate_texas.csv”, sep=“,”)

#1. Analisi delle variabili summary(dati) # Identificazione e descrizione delle variabili # city: variabile categoriale (nominale), rappresenta la città di riferimento # year: variabile numerica discreta, indica l’anno della vendita # month: variabile numerica discreta, indica il mese della vendita # sales: variabile numerica discreta, numero totale di vendite # volume: variabile numerica continua, valore totale delle vendite (in milioni di dollari) # median_price: variabile numerica continua, prezzo mediano degli immobili venduti # listings: variabile numerica discreta, numero totale di annunci attivi # months_inventory: variabile numerica continua, tempo necessario per vendere tutte le inserzioni

Gestione delle variabili temporali

Le variabili ‘year’ e ‘month’ devono essere trattate come una dimensione temporale.

Possiamo convertirle in un’unica variabile data, combinandole in un oggetto Date o creando un indice temporale.

Questo ci permetterà di effettuare analisi di trend nel tempo, come variazioni delle vendite e dei prezzi.

Possibili analisi per ciascuna variabile:

- city: confronto delle metriche tra città diverse

- year e month: analisi delle variazioni temporali (trend di vendite e prezzi)

- sales: distribuzione delle vendite, confronto tra città e periodi

- volume: analisi del valore complessivo del mercato

- median_price: analisi della variazione dei prezzi

- listings: valutazione dell’offerta disponibile sul mercato

- months_inventory: analisi della saturazione del mercato

2. Calcolo di indici di posizione, variabilità e forma per variabili numeriche discrete o continue.

Le statistiche scelte sono:

Per indici di posizione:

- Media: misura il valore medio della distribuzione

Per indici di variabilità:

- Deviazione standard: misura la dispersione attorno alla media

Per indici di forma:

- Asimmetria (skewness): indica se la distribuzione è sbilanciata a destra o sinistra

- Curtosi (kurtosis): indica se i dati sono concentrati attorno alla media o hanno code pesanti.

library(moments) mean_sales <- mean(dati\(sales) sd_sales <- sd(dati\)sales) skew_sales <- skewness(dati\(sales) kurt_sales <- kurtosis(dati\)sales)

mean_volume <- mean(dati\(volume) sd_volume <- sd(dati\)volume) skew_volume <- skewness(dati\(volume) kurt_volume <- kurtosis(dati\)volume)

mean_price <- mean(dati\(median_price) sd_price <- sd(dati\)median_price) skew_price <- skewness(dati\(median_price) kurt_price <- kurtosis(dati\)median_price)

mean_listings <- mean(dati\(listings) sd_listings <- sd(dati\)listings) skew_listings <- skewness(dati\(listings) kurt_listings <- kurtosis(dati\)listings)

mean_months_inventory <- mean(dati\(months_inventory) sd_months_inventory <- sd(dati\)months_inventory) skew_months_inventory <- skewness(dati\(months_inventory) kurt_months_inventory <- kurtosis(dati\)months_inventory)

COMMENTO: L’analisi delle statistiche descrittive mostra i seguenti aspetti rilevanti:

Indici di posizione (Media)

Vendite: In media, ogni città ha circa 192 vendite al mese.

Volume delle vendite: Il valore medio delle vendite mensili in milioni di dollari è 31.

Prezzo mediano: Il prezzo mediano degli immobili venduti è circa 132,665 dollari.

Annunci attivi: Ogni mese ci sono in media 1738 annunci attivi per città.

Inventario: Ci vogliono in media circa 9,2 mesi per vendere tutte le inserzioni disponibili.

Indici di variabilità (Deviazione standard)

Vendite: La dispersione delle vendite è relativamente elevata, indicando differenze significative tra città e mesi.

Prezzo: L’alta deviazione standard dei prezzi suggerisce un’ampia gamma di valori nel dataset, indicando possibili differenze #tra mercati immobiliari cittadini.

Volume: Il volume delle vendite è altamente variabile tra le città.

Annunci: L’elevata dispersione indica una forte variabilità nel numero di annunci disponibili tra le diverse città e periodi.

Indici di forma

Asimmetria

Prezzo mediano: Leggermente sbilanciato verso sinistra, indicando che la maggior parte dei prezzi è più alta della media.

Vendite: Moderata asimmetria positiva, suggerendo che la maggior parte delle città ha un numero di vendite inferiore alla #media, con alcune città con vendite molto alte.

Inventario: Vicino a zero, indicando una distribuzione quasi simmetrica.

Volume: Asimmetria positiva, con alcune città che generano un volume di vendite molto più alto rispetto alla media.

Curtosi

Prezzo: Leggermente superiore a 3, quindi più leptocurtico rispetto alla normale, indicando la presenza di alcune città con #prezzi molto più alti della media.

Vendite: Anche qui si osserva una concentrazione centrale con alcune code più pesanti.

Volume: Maggiore di 3, suggerendo la presenza di città con valori di vendita molto alti.

#Distribuzione di frequenza per variabili categoriali. library(dplyr)

distribuzione_citta <- dati %>% count(city) print(distribuzione_citta)

distribuzione_anno <- dati %>% count(year) print(distribuzione_anno)

distribuzione_mese <- dati %>% count(month) print(distribuzione_mese)

#Commento # Le distribuzioni mostrano che il dataset è bilanciato: ogni città ha lo stesso numero di osservazioni (60), # ogni anno ha un numero costante di osservazioni (48) e ogni mese ha 20 osservazioni.

3. Identificazione delle variabili con maggiore variabilità e asimmetria

- La variabile con la più alta variabilità (deviazione standard più alta):listings.

- La variabile con la distribuzione più asimmetrica (valore di skewness più alto): volume.

4. Creazione di classi per una variabile quantitativa

Selezioniamo la variabile volume e suddividiamola in classi

breaks <- seq(min(dati\(volume), max(dati\)volume), length.out = 6) dati\(volume_class <- cut(dati\)volume, breaks = breaks, include.lowest = TRUE, labels = c(“Molto Basso”, “Basso”, “Medio”, “Alto”, “Molto Alto”))

Creazione della distribuzione di frequenze

distribuzione_frequenze <- dati %>% count(volume_class) print(distribuzione_frequenze)

Grafico a barre

library(ggplot2) ggplot(distribuzione_frequenze, aes(x = volume_class, y = n, fill = volume_class)) + geom_bar(stat = “identity”) + theme_minimal() + labs(title = “Distribuzione del Volume di Vendite per Classe”, x = “Classi di Volume”, y = “Frequenza”)

Funzione per calcolare l’indice di Gini

gini_index <- function(x) { ni <- table(x) # Frequenze assolute fi <- ni / length(x) # Frequenze relative fi2 <- fi^2 # Quadrato delle frequenze relative J <- length(table(x)) # Numero di classi uniche gini <- 1 - sum(fi2) # Indice di Gini gini_normalizzato <- gini / ((J - 1) / J) # Normalizzazione return(gini_normalizzato) }

Calcolo dell’indice di eterogeneità di Gini

gini_volume <- gini_index(dati$volume) print(gini_volume) # Commento sui risultati: # - Il volume delle vendite è fortemente concentrato nelle classi ‘Molto Basso’ e ‘Basso’. # - L’indice di Gini estremamente alto (0.9999484) indica una forte disuguaglianza nella distribuzione del valore delle vendite.

5. Calcolo della probabilità

Probabilità che una riga casuale del dataset riporti la città “Beaumont”

prob_beaumont <- sum(dati$city == “Beaumont”) / nrow(dati)

Probabilità che una riga casuale riporti il mese di Luglio

prob_luglio <- sum(dati$month == 7) / nrow(dati)

Probabilità che una riga casuale riporti il mese di dicembre 2012

prob_dicembre_2012 <- sum(dati\(year == 2012 & dati\)month == 12) / nrow(dati)

6. Creazione di nuove variabili

Creazione della colonna ‘prezzo_medio’ calcolato come volume totale delle vendite diviso per il numero di vendite

dati\(prezzo_medio <- dati\)volume / dati$sales

Creazione della colonna ‘efficacia_annunci’ come rapporto tra vendite e numero di annunci attivi

dati\(efficacia_annunci <- dati\)sales / dati$listings

Commento sui risultati

- ‘prezzo_medio’ permette di analizzare la variazione dei prezzi medi degli immobili tra città e periodi.

- ‘efficacia_annunci’ indica quanto siano efficaci gli annunci nel generare vendite: valori più alti suggeriscono una maggiore # conversione degli annunci in vendite.

- Se l’efficacia è molto bassa in alcune aree, potrebbe indicare un problema di prezzo, domanda o qualità degli annunci.

7. Analisi condizionata

Analisi delle statistiche per città, anno e mese usando dplyr

Calcolo della media e della deviazione standard per prezzo_medio ed efficacia_annunci per città

statistiche_citta <- dati %>% group_by(city) %>% summarise( media_prezzo = mean(prezzo_medio), sd_prezzo = sd(prezzo_medio), media_efficacia = mean(efficacia_annunci), sd_efficacia = sd(efficacia_annunci) ) print(statistiche_citta)

Calcolo della media e della deviazione standard per anno

statistiche_anno <- dati %>% group_by(year) %>% summarise( media_prezzo = mean(prezzo_medio), sd_prezzo = sd(prezzo_medio), media_efficacia = mean(efficacia_annunci), sd_efficacia = sd(efficacia_annunci) ) print(statistiche_anno)

Calcolo della media e della deviazione standard per mese

statistiche_mese <- dati %>% group_by(month) %>% summarise( media_prezzo = mean(prezzo_medio), sd_prezzo = sd(prezzo_medio), media_efficacia = mean(efficacia_annunci), sd_efficacia = sd(efficacia_annunci) ) print(statistiche_mese)

8. Creazione di visualizzazioni con ggplot2

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

ggplot(dati, aes(x = city, y = median_price, fill = city)) + geom_boxplot() + theme_minimal() + labs(title = “Distribuzione del Prezzo Mediano per Città”, x = “Città”, y = “Prezzo Mediano”)

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

ggplot(dati, aes(x = as.factor(month), y = sales, fill = city)) + geom_bar(stat = “identity”, position = “dodge”) + theme_minimal() + labs(title = “Totale delle Vendite per Mese e Città”, x = “Mese”, y = “Vendite”)

Line charts per confrontare l’andamento delle vendite nel tempo

ggplot(dati, aes(x = as.Date(paste(year, month, “01”, sep = “-”)), y = sales, color = city)) + geom_line() + theme_minimal() + labs(title = “Andamento delle Vendite nel Tempo”, x = “Data”, y = “Vendite”)

Boxplot: Distribuzione del Prezzo Mediano per Città

Differenze di prezzo: Bryan-College Station e Tyler hanno prezzi mediani più alti rispetto a Beaumont e Wichita Falls.

Variabilità: Bryan-College Station e Tyler mostrano una maggiore dispersione, con outlier che segnalano vendite a prezzi molto # alti.

Mercato più economico: Wichita Falls ha il prezzo mediano più basso e una distribuzione più concentrata, indicando un mercato più accessibile ma meno dinamico.

Grafico a Barre: Totale delle Vendite per Mese e Città

Stagionalità del mercato: Le vendite sono più alte da Aprile a Luglio, con un picco a Giugno.

Fluttuazioni tra città: Tyler e Bryan-College Station hanno il numero più alto di vendite, mentre Wichita Falls registra il più # basso.

Minimo in inverno: Nei mesi di gennaio, novembre e dicembre le vendite calano, probabilmente a causa della minore domanda stagionale.

Line Chart: Andamento delle Vendite nel Tempo

Crescita generale: Nonostante le fluttuazioni stagionali, si osserva un trend positivo nelle città principali.

Differenze tra città: Tyler e Bryan-College Station mostrano volumi di vendita più elevati, mentre Wichita Falls resta #costantemente al di sotto.

Ciclo stagionale: Il mercato segue un andamento annuale con picchi e cali regolari, confermando la stagionalità delle vendite.

Boxplot per confrontare la distribuzione del valore totale delle vendite tra le varie città

ggplot(dati, aes(x = city, y = volume, fill = city)) + geom_boxplot() + theme_minimal() + labs(title = “Distribuzione del Valore Totale delle Vendite per Città”, x = “Città”, y = “Valore Totale delle Vendite (milioni di dollari)”)

Boxplot per confrontare la distribuzione del valore totale delle vendite tra gli anni

ggplot(dati, aes(x = as.factor(year), y = volume, fill = as.factor(year))) + geom_boxplot() + theme_minimal() + labs(title = “Distribuzione del Valore Totale delle Vendite per Anno”, x = “Anno”, y = “Valore Totale delle Vendite (milioni di dollari)”)

Grafico a barre normalizzato per confrontare le vendite nei vari mesi tra città

ggplot(dati, aes(x = as.factor(month), y = sales, fill = city)) + geom_bar(stat = “identity”, position = “fill”) + theme_minimal() + labs(title = “Distribuzione Percentuale delle Vendite per Mese e Città”, x = “Mese”, y = “Percentuale Vendite”)

Distribuzione del Valore Totale delle Vendite per Città:

Tyler e Bryan-College Station hanno il valore totale delle vendite più alto,

mentre Wichita Falls ha il valore più basso. Inoltre, si nota una maggiore variabilità nelle città con volumi più elevati.

Distribuzione del Valore Totale delle Vendite per Anno:

Si osserva un incremento del valore totale delle vendite dal 2010 al 2014,

con una crescente dispersione dei dati negli anni più recenti, suggerendo una maggiore dinamicità del mercato.

Distribuzione Percentuale delle Vendite per Mese e Città:

Le quote di vendita per ciascuna città rimangono relativamente costanti durante l’anno,

con una lieve crescita di Bryan-College Station nei mesi estivi.

CONCLUSIONI FINALI

# L’analisi evidenzia un incremento costante del valore totale delle vendite tra il 2010 e il 2014, # suggerendo una crescita sostenuta del mercato immobiliare. Le città di Tyler e Bryan-College Station # si distinguono per un volume di vendite significativamente più elevato rispetto a Beaumont e Wichita Falls, # con una maggiore variabilità nelle prime due città, indice di una dinamica di mercato più attiva. # La distribuzione delle vendite nel corso dell’anno segue un chiaro schema stagionale, con un incremento # delle transazioni nei mesi primaverili ed estivi, culminando tra Aprile e Luglio, e un calo nei mesi invernali. # La ripartizione percentuale delle vendite tra le città rimane relativamente stabile, ad eccezione di # un lieve aumento della quota di mercato di Bryan-College Station nei mesi estivi, il che potrebbe # indicare una maggiore attrattività della città in determinati periodi dell’anno.