setwd("C:/Users/Ale/OneDrive/Desktop")
dati <- read.csv("realestate_texas.csv")
str(dati)
dim(dati)
View(dati)
colonne<-colnames(dati)
##Le variabili statistiche del dataset sono: city, year, month, #sales, volume, median_price,listing, months_inventory
#city: variabile qualitativa su scala ordinale #year: variabile qualitativa su scala ordinale #month: variabile qualitativa su scala ordinale #sales: variabile quantitativa discreta su scala di rapporti #volume: variabile quantitativa continua su scala di rapporti #median_price: variabile quantitativa discreta su scala di rapporti #listing: variabile quantitativa discreta su scala di rapporti #months_inventory: variabile quantitativa discreta su scala di rapporti
#Variabili temporali: year, month #possono essere gestite in base alle serie storiche, #ossia in base ai dati che abbiamo a disposizione relativi agli anni e mesi passati
#city: analisi delle vendite per città negli anni precedenti #year: serie storica delle vendite per anno #mounth: serie storica delle vendite per ogni mese dell’anno #sales: totale vendite effettuate per periodo negli anni passati #volume: volume relativo degli immobili venduti #median_price: analisi del mercato immobiliare negli anni #listing: valutazione del rapporto annunci-vendite #months_inventory: tempo necessario per vendere tutte le inserzioni correnti, espresso in mesi
#distribuzione quadrimodale
#lunghezza dataset
N <- dim(dati)[1]
#frequenze:
dati1<-subset(dati,select = c(1:3))
colonne1<-colnames(dati1)
for(col in dati1){
freq_ass<-table(dati1$col)
freq_rel<-freq_ass/N
freq_ass_cum<-cumsum(freq_ass)
freq_rel_cum<-cumsum(freq_rel)
distr_freq<-cbind(freq_ass,freq_rel,freq_ass_cum,freq_rel_cum)
}
#calcoliamo gli indici per le variabili quantitative
range<-function(x){
return(max(x)-min(x))
}
cv<-function(x){
return(sd(x)/mean(x)*100)
}
gini.index <- function(x){
ni = table(x)
fi = ni/length(x)
fi2 = fi^2
J = length(table(x))
gini = 1-sum(fi2)
gini.norm = gini/((J-1)/J)
return(gini.norm)
}
funzioni<-c("max","min","mean","median","quantile","range","IQR","var","sd","gini.index","cv")
for (f in funzioni){
func<-get(f)
risultati_sales<-aggregate(dati$sales ~ dati$year + dati$city, data = dati, FUN = func)
risultati_volume<-aggregate(dati$volume ~ dati$year + dati$city, data = dati, FUN = func)
risultati_median_price<-aggregate(dati$median_price ~ dati$year + dati$city, data = dati, FUN = func)
risultati_listing<-aggregate(dati$listing ~ dati$year + dati$city, data = dati, FUN = func)
risultati_months_inventory<-aggregate(dati$months_inventory ~ dati$year + dati$city, data = dati, FUN = func)
print(paste("Risultati con funzione:", f))
print(risultati_sales)
print(risultati_volume)
print(risultati_median_price)
print(risultati_listing)
print(risultati_months_inventory)
}
#la variabilità delle variabili quantitative può essere confrontata #tramite il coefficente di variabilità
#la variabile con maggiore variabilità è volume
#calcoliamo l’indice di asimmetria di Fisher per tutte le variabili #sales:
install.packages("moments")
library("moments")
indice_asimmetria_sales <- skewness(dati$sales)
indice_asimmetria_volume <- skewness(dati$volume)
indice_asimmetria_median_price <- skewness(dati$median_price)
indice_asimmetria_listing <- skewness(dati$listing)
indice_asimmetria_months_inventory <- skewness(dati$months_inventory)
print(indice_asimmetria_sales)
print(indice_asimmetria_volume)
print(indice_asimmetria_median_price)
print(indice_asimmetria_listing)
print(indice_asimmetria_months_inventory)
#la variabile più asimmetrica è volume, e si tratta di una asimmetria positiva
plot(density(dati$volume))
#sono presenti 4 città, e ognuna compare 60 volte nel dataset,quindi la probabilità #che presa una riga a caso compaia la città di Beaumont è 0.25.
#i mesi sono 12, quindi la probabilità di trovare il mese #di luglio è 1/12=0.083
#la probabilità che riporti il mese di dicembre 2012 è 1/240=0.0041
#prezzo medio immobili:
sum(dati$median_price)/N
#totale vendite per mese e città:
tot_sell=aggregate(dati$median_price,by=list(dati$city,dati$month), FUN = sum)
tot_sell
#possiamo misurare l’efficacia degli annunci di vendita dal rapporto tra gli annunci e le vendite:
dati$sales/dati$listing
install.packages("dplyr")
library("dplyr")
grouped_data <- dati %>%
group_by(city) %>%
citta <- group_keys(grouped_data)
citta=unique(citta)
#analisi statistiche:
analisi_media <- aggregate(dati$sales,by=list(dati$city,dati$year), FUN = mean)
analisi_media
analisi_ds <- aggregate(dati$sales,by=list(dati$city,dati$year), FUN = sd)
media_vendite_per_citta <- aggregate(sales ~ city, dati, mean)
media_vendite_per_citta<-as.vector(media_vendite_per_citta)
pie(x=media_vendite_per_citta$sales,labels=media_vendite_per_citta$city)
ds_vendite_per_citta <- aggregate(sales ~ city, dati, sd)
ds_vendite_per_citta<-as.vector(ds_vendite_per_citta)
pie(x=ds_vendite_per_citta$sales,labels=ds_vendite_per_citta$city)
install.packages("ggplot2")
library("ggplot2")
#distribuzione del prezzo mediano tra le città:
prezzo_mediano <- dati %>%
group_by(year) %>%
summarise(median_price = mean(median_price, na.rm = TRUE))
min(dati$median_price)
max(dati$median_price)
ggplot(data=prezzo_mediano)+
geom_boxplot(aes(x=city,y=median_price))+
scale_y_continuous(breaks = seq(50,200,10))+
labs(title="prezzo mediano tra le città", x="città",y="prezzo mediano")
#totale vendite per mese e città:
media_vendite_per_anno <- dati %>%
group_by(year) %>%
summarise(media_sales = mean(sales, na.rm = TRUE))
ggplot(data=dati)+
geom_bar(
aes(
x = month,
y = sales,
fill = city),
stat ="identity",
position="dodge")+
scale_x_continuous(breaks = seq(1,12,1))+
scale_y_continuous(breaks = seq(0,500,100))+
theme_classic()
#andamento delle vendite in periodi storici differenti:
media_vendite_per_anno <- dati %>%
group_by(year) %>%
summarise(media_sales = mean(sales, na.rm = TRUE))
ggplot(data = media_vendite_per_anno)+
geom_line(aes(x=year, y = media_sales), col = "lightblue", lwd= 1)+
geom_point(aes(x=year, y = media_sales), col = "blue", lwd = 2)+
labs(
x= "Anni",
y = "Media vendite annuali",
title= "Andamento storico delle vendite dal 2010 al 2014"
)+
geom_text(aes(x=year,
y = media_sales+10,
label=round(media_sales,0)))+
scale_x_continuous(breaks = seq(2010,2014,1))
#Sintesi: il mercato immobiliare nel Texas negli ultimi anni è decollato per #Beaumont, Bryan-College Station e Tyler, mentre non si può dire altrettanto per # Wichita Falls. I prezzi medi degli immobili non sono variati di molto; mentre #sono diminuiti gli annunci di vendita, quindi è migliorato il rapporto annunci/vendite. #Un’altra variabile interessante è months inventory; vediamo come in ogni caso si #è ridotto il tempo necessario per vendere le inserzioni.