texas = read.csv(“realestate_texas.csv”, sep = “,”, encoding = “utf-8”) str(texas)

attach(texas)

library(dplyr) library(moments) library(ggplot2)

#1) ANALISI DELLE VARIABILI

dim(texas) #dataset con 8 variabili e 240 osservazioni #variabile city table(city) #varaibile categorica nominale equidistribuita tra le 4 modalità

#variabile year table(year) #variabile temporale equidistribuita tra le sue 5 modalità

#varaibile month table(month) #variabile temporale inerente i 12 mesi dell’anno. L’analisi delle frequenze #assolute denota anche qui una equidistribuzione

#varaibile sales summary(sales) #variabile quantitativa discreta inerente al numero delle vendite effettuate

#variabile volume summary(volume) #variabile quantitativa discreta inerente al volume delle vendite effettuate #in milioni di dollari

#variabile median price summary(median_price) #variabile quantitativa discreta che descrive il prezzo mediano delle vendite

#variabile listings summary(listings) #varaibile quantitativa discreta inerente al numero di annunci attivi di #vendita

#variabile months_inventory summary(months_inventory) #varaibile quantitatvi espressa in mesi ed inerente al tempo necessario per #effettiva una vendita una volta pubblicato il relativo annuncio

#2) INDICI DI POSIZIONE, VARIABILITÀ E FORMA #per le variabili categoriche verrà calcolata media,mediana, varianza, dev std, #indice di asimmetria e curtosi. Gli indici verrano riuniti in un datafame, #in cui le colonne saranno i nomi delle variabili del dataset texas, mentre #le righe saranno gli indici calcolati #Per le varibili categoriche invece verrà creata una distribuzione di frequenza

indexes = function(x){ return(c(mean(x), median(x), var(x), sd(x), skewness(x), kurtosis(x)-3)) }

indexes_sales = indexes(sales) indexes_volume = indexes(volume) indexes_median_price = indexes(median_price) indexes_listings = indexes(listings) indexes_months_inventory = indexes(months_inventory)

row_names = c(“mean”, “median”,“variance”, “standard deviation”, “skweness”, “kurtosis”) indexes_data = data.frame(indexes_sales, indexes_volume, indexes_median_price, indexes_listings, indexes_months_inventory, row.names = row_names)

#variabili categoriche #city

N_city = length(city) ni_city = table(city) fi_city = ni_city / N_city

ni_city fi_city

#year N_year = length(year) ni_year = table(year) fi_year = ni_year / N_year

ni_year fi_year

#3) IDENTIFICAZIONE DELLE VARAIBILI CON MAGGIOR ASIMMETRIA E VARABILITÀ #3.1) MAGGIOR ASIMMETRIA

skweness_data = indexes_data[“skweness”,]

#dal dataset, la variabile con maggior asimmetria è volume con il più #alto valore positivo, mentre solo median_price presenta un’asimmetria negativa

#3.2) MAGGIOR VARIABILITÀ #per un confronto tra le variabilità delle variabili applico il coefficiente di #variazione

CV = function(x){ return((sd(x) / mean(x)*100)) }

CV_sales = CV(sales) CV_volume = CV(volume) CV_median_price = CV(median_price) CV_listing = CV(listings) CV_months_inventory = CV(months_inventory)

cv_data = data.frame(CV_sales, CV_volume, CV_median_price, CV_listing, CV_months_inventory, row.names = “CV”) #la variabile volume risutla avere la maggior variabbilità

#4) CREAZIONE DI CLASSI PER UNA VARIABILE QUANTITATIVA #SALES

#verifichiamo i valori minimi e massimi per decidere con quali classi #suddividere le osservazioni della variabile

min(sales) max(sales)

texas\(sales_cl = cut(texas\)sales, breaks = c(50, 100, 150, 200, 250, 300, 350, 400, 450))

#tabella di distribuzione N = length(texas\(sales_cl) ni = table(texas\)sales_cl) fi = ni / N Ni = cumsum(ni) Fi = Ni / N

distr_freq_sales = data.frame(cbind(ni,fi,Ni, Fi))

#la distribuzione ci permette di verificare che di norma nel mese il numero di #vendite effettuate rientrano nella classe 100-150. Inoltre, oltre la metà #delle osservazioni rientrano nella classe successiva. #Solo in rare occasioni si sono riusciti ad eseguire vendite rientranti nelle #classi più alte

ggplot(texas)+ geom_bar(aes(x = texas$sales_cl), stat = “count”, col = “black”, fill = “darkorange”)+ labs(title = “Distribuzione di frequenze assolte di sales_cl”, x = “Classi di sales”, y = “Frequenza assolute”) + theme_light()

#5) CALCOLO DELLE PROBABILITÀ #5.1) Probabilità che una vendita sia effettuata nella città di Beaumont

casi_tot = sum(listings) casi_fav_beaumont = texas %>% group_by(city) %>% filter(city == “Beaumont”) %>% summarise(casi_favorevoli = sum(listings))

prob_Beaumont = casi_fav_beaumont$casi_favorevoli / casi_tot prob_Beaumont

#probabilità che la vendita sia stata effettuata a luglio casi_possibili_jul = sum(sales)

casi_favorevoli_jul = texas %>% group_by(month) %>% filter(month == 7) %>% summarise(sum_sales_july =sum(sales))

prob_sale_july = casi_favorevoli_jul$sum_sales_july / casi_possibili_jul prob_sale_july

#probabilità che una casa sia stata venduta nel mese di dicembre 2012

#casi possibili uguale al punto di sopra pertanto non procedo nuovamente al #calcolo

casi_fav_dec12 = texas %>% group_by(year) %>% filter(year == 2012)%>% filter(month == 12) %>% summarise(sum_sales_dec12 = sum(sales))

prob_sale_dec12 = casi_fav_dec12$sum_sales_dec12 / casi_possibili_jul prob_sale_dec12

#6) CREAZIONE NUOVE VARIABILI #Nuova colonna prezzo medio a partire dalle variaibli disponibili

#prezzo medio ricavato da volume su sales per ogni mese in percentuale

avarage_selling_price = c((volume/sales)*100) texas$avarage_selling_price = avarage_selling_price

#indice di penterazione del mercato con rapprto in % tra sales e #listings

mkt_penetration_rate_index = c((sales / listings)*100) texas$mkt_penetration_rate_index = mkt_penetration_rate_index

#7) ANALISI CONDIZIONATA

cities = texas %>% group_by(city) %>% summarise(mean_sales = mean(sales), dev_std_sales = sd(sales))

ggplot(cities)+ geom_bar(aes(x = city, y = mean_sales), stat = “identity”, col = “black”, fill = “lightblue”)+ labs(title = “Media delle vendite nelle città”, x = “Città”, y =“Media delle vendite”)

ggplot(cities)+ geom_bar(aes(x = city, y = dev_std_sales), stat = “identity”, col = “black”, fill = “blue”)+ labs(title = “Deviazione standard delle vendite nelle città”, x = “Città”, y =“Deviazione standard”)

#la città di Tyler è quella in cui mediamente negli anni sono state eseguite il #maggior numero di vendite, mentre Wichita Falls è la città che ha registrato #il minor numero di vendite. Analizzando la dev_std è possibile veriifcare #come a Wichita Falls le vendite sono state piuttosto cosstanti negli anni in #quanto presenta una dev std più bassa di tutte, mentre la città di Tyler ha #registrato un alto valore di questo indice lasciando presupporre che non vi #sia stata un numero di vendite regolari negli anni. Stesso discorso vale per #Brian-College Station che si classifica seconda in quanto a numero di vendite, #ma presenta la più alta variabilità tra le 4 città.

cities2 = texas %>% group_by(city) %>% summarise(mean_volume = mean(volume), dev_std_volume = sd(volume))

ggplot(cities2) + geom_bar(aes(x = city, y = mean_volume), stat = “identity”, col = “black”, fill = “green”)+ labs(title = “Volumi medi di vendita espressi in milioni di $”, x = “Città”, y = “Volumi medi di vendita”)

ggplot(cities2) + geom_bar(aes(x = city, y = dev_std_volume), stat = “identity”, col = “black”, fill = “darkgreen”)+ labs(title = “Deviazione std dei volumi vendita espressi in milioni di $”, x = “Città”, y = “Dev Std volumi di vendita”)

#come per la variabile sales anche per volume si presenta una medesima #situazione. È logico pensare ad un’elevata correlazione tra le due variabili

#andamento delle vendite medie durante l’anno nelle singole città

#BEAUMONT years_beaumont = texas %>% group_by(month) %>% filter(city == “Beaumont”) %>% summarise(mean_sales = mean(sales))

#BRYAN-COLLEGE STATION years_Bryan_College_Station = texas %>% group_by(month) %>% filter(city == “Bryan-College Station”) %>% summarise(mean_sales = mean(sales))

#TYLER years_tyler = texas %>% group_by(month) %>% filter(city == “Tyler”) %>% summarise(mean_sales = mean(sales))

#WICHITA FALLS

years_wichita_falls = texas %>% group_by(month) %>% filter(city == “Wichita Falls”) %>% summarise(mean_sales = mean(sales))

ggplot()+ geom_line(data = years_beaumont, aes(x = month, y = mean_sales, col = “Beaumont”))+ geom_line(data = years_Bryan_College_Station, aes(x = month, y = mean_sales, col = “Bryan-College Station”))+ geom_line(data = years_tyler, aes(x = month, y = mean_sales, col = “Tyler”))+ geom_line(data = years_wichita_falls, aes(x = month, y = mean_sales, col = “Wichita Falls”))+ scale_x_continuous(breaks = seq(1,12,1))+ scale_color_manual(name = “Legenda”, breaks = c(“Beaumont”, “Bryan-College Station”, “Tyler”, “Wichita Falls”), values = c(“blue”, “green”, “red”, “orange”), labels = c(“Beaumont”, “Bryan-College Station”, “Tyler”, “Wichita Falls”)) + labs(title = “Andamento medio del numero di vendite nei mesi”, x =“Mesi”, y =“Numero totale delle vendite”) + theme_get()

#valore delle vendite negli anni years = texas %>% group_by(year)

ggplot(years, aes(x = year, y= sales, fill = city))+ geom_bar(stat = “identity”, position = “dodge”)+ labs(title = “Confronto vendite negli anni tra le città”, x = “Anni”, y = “Totale vendite”)

ggplot(years, aes(x = year, y= volume, fill = city))+ geom_bar(stat = “identity”, position = “dodge”)+ labs(title = “Confronto volumi di vendite in milioni di $ negli anni tra le città”, x = “Anni”, y = “Totale volumi di vendita”)

#8) CREAZIONE DI VISUALIZZAZIONI CON GGPLOT2

#Boxplot prezzo mediano ggplot(texas)+ geom_boxplot(aes(x = city, y = median_price))+ labs(title = “Confronto del prezzo mediano tra città”, x =“Città”, y = “Prezzo mediano”)

beaumont = texas %>% group_by(year) %>% filter(city == “Beaumont”) %>% summarise(mean_sales = mean(sales), tot_sales = sum(sales), mean_volume = mean(volume), tot_volume = sum(volume))

bcs = texas %>% group_by(year) %>% filter(city == “Bryan-College Station”) %>% summarise(mean_sales = mean(sales), tot_sales = sum(sales), mean_volume = mean(volume), tot_volume = sum(volume))

tyler = texas %>% group_by(year) %>% filter(city == “Tyler”) %>% summarise(mean_sales = mean(sales), tot_sales = sum(sales), mean_volume = mean(volume), tot_volume = sum(volume))

wichita = texas %>% group_by(year) %>% filter(city == “Wichita Falls”) %>% summarise(mean_sales = mean(sales), tot_sales = sum(sales), mean_volume = mean(volume), tot_volume = sum(volume))

#andamento medio delle vendite negli anni divisi per città

ggplot()+ geom_line(data = beaumont, aes(x = year, y = mean_sales, col = “Beaumont”))+ geom_line(data = bcs, aes(x = year, y = mean_sales, col = “Bryan-College Station”))+ geom_line(data = tyler, aes(x = year, y=mean_sales, col = “Tyler”))+ geom_line(data = wichita, aes(x = year, y = mean_sales, col = “Wichita Falls”)) + scale_color_manual(name = “Legenda”, breaks = c(“Beaumont”, “Bryan-College Station”, “Tyler”, “Wichita Falls”), values = c(“blue”, “green”, “red”, “orange”), labels = c(“Beaumont”, “Bryan-College Station”, “Tyler”, “Wichita Falls”)) + labs(title = “Andamento medio del numero di vendite negli anni”, x =“Anni”, y =“Medie delle vendite”) + theme_get()

#vendite totali negli anni nelle diverse città

ggplot()+ geom_line(data = beaumont, aes(x = year, y = tot_sales, col = “Beaumont”))+ geom_line(data = bcs, aes(x = year, y = tot_sales, col = “Bryan-College Station”))+ geom_line(data = tyler, aes(x = year, y=tot_sales, col = “Tyler”))+ geom_line(data = wichita, aes(x = year, y = tot_sales, col = “Wichita Falls”)) + scale_color_manual(name = “Legenda”, breaks = c(“Beaumont”, “Bryan-College Station”, “Tyler”, “Wichita Falls”), values = c(“blue”, “green”, “red”, “orange”), labels = c(“Beaumont”, “Bryan-College Station”, “Tyler”, “Wichita Falls”)) + labs(title = “Numero di vendite totali negli anni”, x =“Anni”, y =“Totale delle vendite”) + theme_get()

#andamento delle medie dei volumi di vendita negli anni

ggplot()+ geom_line(data = beaumont, aes(x = year, y = mean_volume, col = “Beaumont”))+ geom_line(data = bcs, aes(x = year, y = mean_volume, col = “Bryan-College Station”))+ geom_line(data = tyler, aes(x = year, y=mean_volume, col = “Tyler”))+ geom_line(data = wichita, aes(x = year, y = mean_volume, col = “Wichita Falls”)) + scale_color_manual(name = “Legenda”, breaks = c(“Beaumont”, “Bryan-College Station”, “Tyler”, “Wichita Falls”), values = c(“blue”, “green”, “red”, “orange”), labels = c(“Beaumont”, “Bryan-College Station”, “Tyler”, “Wichita Falls”)) + labs(title = “Andamento medio dei volumi di vendita negli anni”, x =“Anni”, y =“Media dei volumi di vendita”) + theme_get()

#CONSIDERAZIONI FINALI #BEUAMONT #la città dopo un iniziale trend negativo, ha ripreso in positivo l’attività #immobiliare sia per quanot concerne il numero di vendite che i suoi volumi.

#TYLER #Tyler si dimostra essere la città con il più alto valore aggiunto del settore. #Infatti non solo registra negli anni il più alto numero di vendite ma anche #i più alti volumi di vendita, dimostrando che in questa città vengono vendute #molti immobilie e ad un alto prezzo.

#BRYAN-COLLEGE STATION #i dati riscontrati sono secondi solo alla città di Tyler, ma il mercato risulta #essere più variegato: infatti essa denota un’alta devioazione standard che #denota la possibilità di acquistare diverse tipoogie di immobili a differenti #prezzi

#WICHITA FALLS #’unica città in cui sia il numero che i volumi di vendita sono rimasti sempre #bassi. Gli immobili hanno scarso appeal e il loro prezzo riuslta essere netta- #mente inferiore rispetto alle altre città.