setwd("C:/Users/Ale/OneDrive/Desktop")
dati <- read.csv("realestate_texas.csv")
str(dati)
## 'data.frame': 240 obs. of 8 variables:
## $ city : chr "Beaumont" "Beaumont" "Beaumont" "Beaumont" ...
## $ year : int 2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 ...
## $ month : int 1 2 3 4 5 6 7 8 9 10 ...
## $ sales : int 83 108 182 200 202 189 164 174 124 150 ...
## $ volume : num 14.2 17.7 28.7 26.8 28.8 ...
## $ median_price : num 163800 138200 122400 123200 123100 ...
## $ listings : int 1533 1586 1689 1708 1771 1803 1857 1830 1829 1779 ...
## $ months_inventory: num 9.5 10 10.6 10.6 10.9 11.1 11.7 11.6 11.7 11.5 ...
colnames(dati)
## [1] "city" "year" "month" "sales"
## [5] "volume" "median_price" "listings" "months_inventory"
attach(dati)
#Le variabili statistiche del dataset sono: city, year, month, #sales, volume, median_price,listings, months_inventory
#city: variabile qualitativa nominale #year: variabile qualitativa ordinale #month: variabile qualitativa nominale #sales: variabile quantitativa discreta #volume: variabile quantitativa continua #median_price: variabile quantitativa continua #listings: variabile quantitativa discreta #months_inventory: variabile quantitativa continua
#Variabili temporali: year, month, months-inventory #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à #year: serie storica delle vendite per anno #mounth: serie storica delle vendite per ogni mese dell’anno #sales: totale vendite effettuate #volume: volume relativo agli immobili venduti #median_price: analisi dei prezzi del mercato immobiliare #listing: valutazione del rapporto annunci/vendite #months_inventory: tempo necessario per vendere tutte le inserzioni correnti in mesi
#lunghezza dataset:
#frequenze delle variabili qualitative:
for (i in 1:3){
print(names(dati[i]))
print(paste("frequenza assoluta:",table(table(dati[,i])),
"frequenza relativa:",round(table(dati[,i])/N,2),
"frequenza assoluta cumulata:",cumsum(table(dati[,i])),
"frequenza relativa cumulata:",round(cumsum(table(dati[,i])/N),2)))
}
## [1] "city"
## [1] "frequenza assoluta: 4 frequenza relativa: 0.25 frequenza assoluta cumulata: 60 frequenza relativa cumulata: 0.25"
## [2] "frequenza assoluta: 4 frequenza relativa: 0.25 frequenza assoluta cumulata: 120 frequenza relativa cumulata: 0.5"
## [3] "frequenza assoluta: 4 frequenza relativa: 0.25 frequenza assoluta cumulata: 180 frequenza relativa cumulata: 0.75"
## [4] "frequenza assoluta: 4 frequenza relativa: 0.25 frequenza assoluta cumulata: 240 frequenza relativa cumulata: 1"
## [1] "year"
## [1] "frequenza assoluta: 5 frequenza relativa: 0.2 frequenza assoluta cumulata: 48 frequenza relativa cumulata: 0.2"
## [2] "frequenza assoluta: 5 frequenza relativa: 0.2 frequenza assoluta cumulata: 96 frequenza relativa cumulata: 0.4"
## [3] "frequenza assoluta: 5 frequenza relativa: 0.2 frequenza assoluta cumulata: 144 frequenza relativa cumulata: 0.6"
## [4] "frequenza assoluta: 5 frequenza relativa: 0.2 frequenza assoluta cumulata: 192 frequenza relativa cumulata: 0.8"
## [5] "frequenza assoluta: 5 frequenza relativa: 0.2 frequenza assoluta cumulata: 240 frequenza relativa cumulata: 1"
## [1] "month"
## [1] "frequenza assoluta: 12 frequenza relativa: 0.08 frequenza assoluta cumulata: 20 frequenza relativa cumulata: 0.08"
## [2] "frequenza assoluta: 12 frequenza relativa: 0.08 frequenza assoluta cumulata: 40 frequenza relativa cumulata: 0.17"
## [3] "frequenza assoluta: 12 frequenza relativa: 0.08 frequenza assoluta cumulata: 60 frequenza relativa cumulata: 0.25"
## [4] "frequenza assoluta: 12 frequenza relativa: 0.08 frequenza assoluta cumulata: 80 frequenza relativa cumulata: 0.33"
## [5] "frequenza assoluta: 12 frequenza relativa: 0.08 frequenza assoluta cumulata: 100 frequenza relativa cumulata: 0.42"
## [6] "frequenza assoluta: 12 frequenza relativa: 0.08 frequenza assoluta cumulata: 120 frequenza relativa cumulata: 0.5"
## [7] "frequenza assoluta: 12 frequenza relativa: 0.08 frequenza assoluta cumulata: 140 frequenza relativa cumulata: 0.58"
## [8] "frequenza assoluta: 12 frequenza relativa: 0.08 frequenza assoluta cumulata: 160 frequenza relativa cumulata: 0.67"
## [9] "frequenza assoluta: 12 frequenza relativa: 0.08 frequenza assoluta cumulata: 180 frequenza relativa cumulata: 0.75"
## [10] "frequenza assoluta: 12 frequenza relativa: 0.08 frequenza assoluta cumulata: 200 frequenza relativa cumulata: 0.83"
## [11] "frequenza assoluta: 12 frequenza relativa: 0.08 frequenza assoluta cumulata: 220 frequenza relativa cumulata: 0.92"
## [12] "frequenza assoluta: 12 frequenza relativa: 0.08 frequenza assoluta cumulata: 240 frequenza relativa cumulata: 1"
#possiamo notare come tutte le variabili qualitative siano multimodali
#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)
}
library("moments")
library("knitr")
summary(dati[4:8])
## sales volume median_price listings
## Min. : 79.0 Min. : 8.166 Min. : 73800 Min. : 743
## 1st Qu.:127.0 1st Qu.:17.660 1st Qu.:117300 1st Qu.:1026
## Median :175.5 Median :27.062 Median :134500 Median :1618
## Mean :192.3 Mean :31.005 Mean :132665 Mean :1738
## 3rd Qu.:247.0 3rd Qu.:40.893 3rd Qu.:150050 3rd Qu.:2056
## Max. :423.0 Max. :83.547 Max. :180000 Max. :3296
## months_inventory
## Min. : 3.400
## 1st Qu.: 7.800
## Median : 8.950
## Mean : 9.193
## 3rd Qu.:10.950
## Max. :14.900
for (i in 4:8) {
print(names(dati[i]))
print(paste("range:",range(dati[i]),
"- IQR:",IQR(dati[,i]),
"- var:",round(var(dati[,i]),2),
"- sd:",round(sd(dati[,i]),2),
"- cv:",round(cv(dati[,i]),2),
"- gini:",round(gini.index(dati[,i]),2),
"- skewness:",round(skewness(dati[,i]),2),
"- kurtosis:",round(kurtosis(dati[,i]),2)))
}
## [1] "sales"
## [1] "range: 344 - IQR: 120 - var: 6344.3 - sd: 79.65 - cv: 41.42 - gini: 1 - skewness: 0.72 - kurtosis: 2.69"
## [1] "volume"
## [1] "range: 75.381 - IQR: 23.2335 - var: 277.27 - sd: 16.65 - cv: 53.71 - gini: 1 - skewness: 0.88 - kurtosis: 3.18"
## [1] "median_price"
## [1] "range: 106200 - IQR: 32750 - var: 513572983.09 - sd: 22662.15 - cv: 17.08 - gini: 1 - skewness: -0.36 - kurtosis: 2.38"
## [1] "listings"
## [1] "range: 2553 - IQR: 1029.5 - var: 566568.97 - sd: 752.71 - cv: 43.31 - gini: 1 - skewness: 0.65 - kurtosis: 2.21"
## [1] "months_inventory"
## [1] "range: 11.5 - IQR: 3.15 - var: 5.31 - sd: 2.3 - cv: 25.06 - gini: 0.99 - skewness: 0.04 - kurtosis: 2.83"
#La variabile con variabilità più alta è volume in quanto ha il coefficente di variabilità maggiore
#Volume è anche la variabile più asimmetrica perché l’indice di Fisher di volume è il più lontano da 0
#Suddividiamo in classi la variabile sales. #Dal momento che sales assume il valore minimo di 79 e il valore massimo di 423, #possiamo suddividerla in classi di 50, prendendo come valore minimo 50 e valore massimo 450:
sales_cl<-cut(sales, breaks=c(50,100,150,200,250,300,350,400,450))
freq_ass_sales<-table(sales_cl)
freq_rel_sales<-round(freq_ass_sales/N,2)
freq_ass_cum_sales<-cumsum(freq_ass_sales)
freq_rel_cum_sales<-round(cumsum(freq_rel_sales),2)
distr_freq_sales<-cbind(freq_ass_sales,freq_rel_sales,freq_ass_cum_sales,freq_rel_cum_sales)
#Rappresentiamo le frequenze assolute di sales con un grafico a barre affiancate:
barplot(freq_ass_sales,
main="distribuzione in classi di sales",
xlab="classi di vendite",
ylab="frequenze assolute",
names.arg=rownames(distr_freq_sales),
col="blue")
#Adesso calcoliamo l’indice di eterogeneità di Gini per sales:
round(gini.index(sales_cl),2)
## [1] 0.92
#Come si può notare anche dal grafico, l’eterogeneità della variabile sales è alta, #essendto l’indice di Gini superiore a 0,9
#Sono presenti 4 città, e ognuna compare 60 volte nel dataset,quindi la probabilità #(secondo l’eccezione classica) 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,08
#La probabilità che riporti il mese di dicembre 2012 è 4/240=0,016, perchè compare 4 volte, una per ogni città
#Distribuzione del prezzo mediano tra le città per anno:
library("dplyr")
##
## Caricamento pacchetto: 'dplyr'
## I seguenti oggetti sono mascherati da 'package:stats':
##
## filter, lag
## I seguenti oggetti sono mascherati da 'package:base':
##
## intersect, setdiff, setequal, union
library("ggplot2")
prezzo_mediano <- dati %>%
group_by(year,city) %>%
summarise(median_price = mean(median_price, na.rm = TRUE))
## `summarise()` has grouped output by 'year'. You can override using the
## `.groups` argument.
min(median_price)
## [1] 73800
max(median_price)
## [1] 180000
ggplot(data=prezzo_mediano)+
geom_boxplot(aes(x=city,y=median_price,fill="pink"))+
scale_y_continuous(breaks = seq(50,200,10))+
labs(title="prezzo mediano tra le città", x="città",y="prezzo mediano")
#Distribuzione del prezzo mediano tra le città per mese:
prezzo_mediano <- dati %>%
group_by(month,city) %>%
summarise(median_price = mean(median_price, na.rm = TRUE))
## `summarise()` has grouped output by 'month'. You can override using the
## `.groups` argument.
ggplot(data=prezzo_mediano)+
geom_boxplot(aes(x=city,y=median_price,fill="red"))+
scale_y_continuous(breaks = seq(50,200,10))+
labs(title="prezzo mediano tra le città", x="città",y="prezzo mediano")
#Effettuiamo analisi statistiche condizionate di sales per città, anno e
mese:
summary_sales<-dati %>%
group_by(city, year, month) %>%
summarise(
media = round(mean(sales, na.rm = TRUE),2),
dev_standard = round(sd(sales, na.rm = TRUE),2))
## `summarise()` has grouped output by 'city', 'year'. You can override using the
## `.groups` argument.
kable(summary_sales)
| city | year | month | media | dev_standard |
|---|---|---|---|---|
| Beaumont | 2010 | 1 | 83 | NA |
| Beaumont | 2010 | 2 | 108 | NA |
| Beaumont | 2010 | 3 | 182 | NA |
| Beaumont | 2010 | 4 | 200 | NA |
| Beaumont | 2010 | 5 | 202 | NA |
| Beaumont | 2010 | 6 | 189 | NA |
| Beaumont | 2010 | 7 | 164 | NA |
| Beaumont | 2010 | 8 | 174 | NA |
| Beaumont | 2010 | 9 | 124 | NA |
| Beaumont | 2010 | 10 | 150 | NA |
| Beaumont | 2010 | 11 | 150 | NA |
| Beaumont | 2010 | 12 | 148 | NA |
| Beaumont | 2011 | 1 | 108 | NA |
| Beaumont | 2011 | 2 | 108 | NA |
| Beaumont | 2011 | 3 | 146 | NA |
| Beaumont | 2011 | 4 | 166 | NA |
| Beaumont | 2011 | 5 | 143 | NA |
| Beaumont | 2011 | 6 | 177 | NA |
| Beaumont | 2011 | 7 | 163 | NA |
| Beaumont | 2011 | 8 | 160 | NA |
| Beaumont | 2011 | 9 | 127 | NA |
| Beaumont | 2011 | 10 | 155 | NA |
| Beaumont | 2011 | 11 | 124 | NA |
| Beaumont | 2011 | 12 | 151 | NA |
| Beaumont | 2012 | 1 | 110 | NA |
| Beaumont | 2012 | 2 | 135 | NA |
| Beaumont | 2012 | 3 | 175 | NA |
| Beaumont | 2012 | 4 | 176 | NA |
| Beaumont | 2012 | 5 | 197 | NA |
| Beaumont | 2012 | 6 | 173 | NA |
| Beaumont | 2012 | 7 | 182 | NA |
| Beaumont | 2012 | 8 | 218 | NA |
| Beaumont | 2012 | 9 | 182 | NA |
| Beaumont | 2012 | 10 | 193 | NA |
| Beaumont | 2012 | 11 | 162 | NA |
| Beaumont | 2012 | 12 | 160 | NA |
| Beaumont | 2013 | 1 | 159 | NA |
| Beaumont | 2013 | 2 | 140 | NA |
| Beaumont | 2013 | 3 | 170 | NA |
| Beaumont | 2013 | 4 | 198 | NA |
| Beaumont | 2013 | 5 | 246 | NA |
| Beaumont | 2013 | 6 | 232 | NA |
| Beaumont | 2013 | 7 | 206 | NA |
| Beaumont | 2013 | 8 | 273 | NA |
| Beaumont | 2013 | 9 | 213 | NA |
| Beaumont | 2013 | 10 | 188 | NA |
| Beaumont | 2013 | 11 | 177 | NA |
| Beaumont | 2013 | 12 | 212 | NA |
| Beaumont | 2014 | 1 | 148 | NA |
| Beaumont | 2014 | 2 | 186 | NA |
| Beaumont | 2014 | 3 | 182 | NA |
| Beaumont | 2014 | 4 | 208 | NA |
| Beaumont | 2014 | 5 | 246 | NA |
| Beaumont | 2014 | 6 | 254 | NA |
| Beaumont | 2014 | 7 | 212 | NA |
| Beaumont | 2014 | 8 | 262 | NA |
| Beaumont | 2014 | 9 | 224 | NA |
| Beaumont | 2014 | 10 | 260 | NA |
| Beaumont | 2014 | 11 | 180 | NA |
| Beaumont | 2014 | 12 | 202 | NA |
| Bryan-College Station | 2010 | 1 | 89 | NA |
| Bryan-College Station | 2010 | 2 | 107 | NA |
| Bryan-College Station | 2010 | 3 | 176 | NA |
| Bryan-College Station | 2010 | 4 | 233 | NA |
| Bryan-College Station | 2010 | 5 | 282 | NA |
| Bryan-College Station | 2010 | 6 | 286 | NA |
| Bryan-College Station | 2010 | 7 | 189 | NA |
| Bryan-College Station | 2010 | 8 | 196 | NA |
| Bryan-College Station | 2010 | 9 | 122 | NA |
| Bryan-College Station | 2010 | 10 | 100 | NA |
| Bryan-College Station | 2010 | 11 | 101 | NA |
| Bryan-College Station | 2010 | 12 | 130 | NA |
| Bryan-College Station | 2011 | 1 | 94 | NA |
| Bryan-College Station | 2011 | 2 | 101 | NA |
| Bryan-College Station | 2011 | 3 | 162 | NA |
| Bryan-College Station | 2011 | 4 | 186 | NA |
| Bryan-College Station | 2011 | 5 | 238 | NA |
| Bryan-College Station | 2011 | 6 | 284 | NA |
| Bryan-College Station | 2011 | 7 | 244 | NA |
| Bryan-College Station | 2011 | 8 | 196 | NA |
| Bryan-College Station | 2011 | 9 | 131 | NA |
| Bryan-College Station | 2011 | 10 | 114 | NA |
| Bryan-College Station | 2011 | 11 | 124 | NA |
| Bryan-College Station | 2011 | 12 | 135 | NA |
| Bryan-College Station | 2012 | 1 | 115 | NA |
| Bryan-College Station | 2012 | 2 | 124 | NA |
| Bryan-College Station | 2012 | 3 | 149 | NA |
| Bryan-College Station | 2012 | 4 | 193 | NA |
| Bryan-College Station | 2012 | 5 | 294 | NA |
| Bryan-College Station | 2012 | 6 | 293 | NA |
| Bryan-College Station | 2012 | 7 | 292 | NA |
| Bryan-College Station | 2012 | 8 | 296 | NA |
| Bryan-College Station | 2012 | 9 | 149 | NA |
| Bryan-College Station | 2012 | 10 | 163 | NA |
| Bryan-College Station | 2012 | 11 | 159 | NA |
| Bryan-College Station | 2012 | 12 | 134 | NA |
| Bryan-College Station | 2013 | 1 | 141 | NA |
| Bryan-College Station | 2013 | 2 | 125 | NA |
| Bryan-College Station | 2013 | 3 | 187 | NA |
| Bryan-College Station | 2013 | 4 | 267 | NA |
| Bryan-College Station | 2013 | 5 | 341 | NA |
| Bryan-College Station | 2013 | 6 | 357 | NA |
| Bryan-College Station | 2013 | 7 | 402 | NA |
| Bryan-College Station | 2013 | 8 | 328 | NA |
| Bryan-College Station | 2013 | 9 | 186 | NA |
| Bryan-College Station | 2013 | 10 | 164 | NA |
| Bryan-College Station | 2013 | 11 | 166 | NA |
| Bryan-College Station | 2013 | 12 | 190 | NA |
| Bryan-College Station | 2014 | 1 | 152 | NA |
| Bryan-College Station | 2014 | 2 | 171 | NA |
| Bryan-College Station | 2014 | 3 | 275 | NA |
| Bryan-College Station | 2014 | 4 | 303 | NA |
| Bryan-College Station | 2014 | 5 | 353 | NA |
| Bryan-College Station | 2014 | 6 | 377 | NA |
| Bryan-College Station | 2014 | 7 | 403 | NA |
| Bryan-College Station | 2014 | 8 | 298 | NA |
| Bryan-College Station | 2014 | 9 | 204 | NA |
| Bryan-College Station | 2014 | 10 | 218 | NA |
| Bryan-College Station | 2014 | 11 | 169 | NA |
| Bryan-College Station | 2014 | 12 | 200 | NA |
| Tyler | 2010 | 1 | 160 | NA |
| Tyler | 2010 | 2 | 181 | NA |
| Tyler | 2010 | 3 | 250 | NA |
| Tyler | 2010 | 4 | 316 | NA |
| Tyler | 2010 | 5 | 282 | NA |
| Tyler | 2010 | 6 | 262 | NA |
| Tyler | 2010 | 7 | 255 | NA |
| Tyler | 2010 | 8 | 238 | NA |
| Tyler | 2010 | 9 | 220 | NA |
| Tyler | 2010 | 10 | 202 | NA |
| Tyler | 2010 | 11 | 155 | NA |
| Tyler | 2010 | 12 | 209 | NA |
| Tyler | 2011 | 1 | 143 | NA |
| Tyler | 2011 | 2 | 181 | NA |
| Tyler | 2011 | 3 | 241 | NA |
| Tyler | 2011 | 4 | 253 | NA |
| Tyler | 2011 | 5 | 271 | NA |
| Tyler | 2011 | 6 | 313 | NA |
| Tyler | 2011 | 7 | 278 | NA |
| Tyler | 2011 | 8 | 295 | NA |
| Tyler | 2011 | 9 | 258 | NA |
| Tyler | 2011 | 10 | 227 | NA |
| Tyler | 2011 | 11 | 208 | NA |
| Tyler | 2011 | 12 | 198 | NA |
| Tyler | 2012 | 1 | 169 | NA |
| Tyler | 2012 | 2 | 225 | NA |
| Tyler | 2012 | 3 | 271 | NA |
| Tyler | 2012 | 4 | 253 | NA |
| Tyler | 2012 | 5 | 289 | NA |
| Tyler | 2012 | 6 | 302 | NA |
| Tyler | 2012 | 7 | 322 | NA |
| Tyler | 2012 | 8 | 317 | NA |
| Tyler | 2012 | 9 | 281 | NA |
| Tyler | 2012 | 10 | 289 | NA |
| Tyler | 2012 | 11 | 210 | NA |
| Tyler | 2012 | 12 | 234 | NA |
| Tyler | 2013 | 1 | 197 | NA |
| Tyler | 2013 | 2 | 227 | NA |
| Tyler | 2013 | 3 | 298 | NA |
| Tyler | 2013 | 4 | 289 | NA |
| Tyler | 2013 | 5 | 326 | NA |
| Tyler | 2013 | 6 | 335 | NA |
| Tyler | 2013 | 7 | 369 | NA |
| Tyler | 2013 | 8 | 357 | NA |
| Tyler | 2013 | 9 | 287 | NA |
| Tyler | 2013 | 10 | 272 | NA |
| Tyler | 2013 | 11 | 253 | NA |
| Tyler | 2013 | 12 | 239 | NA |
| Tyler | 2014 | 1 | 238 | NA |
| Tyler | 2014 | 2 | 244 | NA |
| Tyler | 2014 | 3 | 282 | NA |
| Tyler | 2014 | 4 | 323 | NA |
| Tyler | 2014 | 5 | 388 | NA |
| Tyler | 2014 | 6 | 423 | NA |
| Tyler | 2014 | 7 | 371 | NA |
| Tyler | 2014 | 8 | 347 | NA |
| Tyler | 2014 | 9 | 361 | NA |
| Tyler | 2014 | 10 | 369 | NA |
| Tyler | 2014 | 11 | 300 | NA |
| Tyler | 2014 | 12 | 332 | NA |
| Wichita Falls | 2010 | 1 | 89 | NA |
| Wichita Falls | 2010 | 2 | 91 | NA |
| Wichita Falls | 2010 | 3 | 147 | NA |
| Wichita Falls | 2010 | 4 | 167 | NA |
| Wichita Falls | 2010 | 5 | 165 | NA |
| Wichita Falls | 2010 | 6 | 129 | NA |
| Wichita Falls | 2010 | 7 | 104 | NA |
| Wichita Falls | 2010 | 8 | 130 | NA |
| Wichita Falls | 2010 | 9 | 132 | NA |
| Wichita Falls | 2010 | 10 | 113 | NA |
| Wichita Falls | 2010 | 11 | 97 | NA |
| Wichita Falls | 2010 | 12 | 117 | NA |
| Wichita Falls | 2011 | 1 | 80 | NA |
| Wichita Falls | 2011 | 2 | 79 | NA |
| Wichita Falls | 2011 | 3 | 119 | NA |
| Wichita Falls | 2011 | 4 | 111 | NA |
| Wichita Falls | 2011 | 5 | 128 | NA |
| Wichita Falls | 2011 | 6 | 111 | NA |
| Wichita Falls | 2011 | 7 | 127 | NA |
| Wichita Falls | 2011 | 8 | 135 | NA |
| Wichita Falls | 2011 | 9 | 113 | NA |
| Wichita Falls | 2011 | 10 | 98 | NA |
| Wichita Falls | 2011 | 11 | 93 | NA |
| Wichita Falls | 2011 | 12 | 81 | NA |
| Wichita Falls | 2012 | 1 | 105 | NA |
| Wichita Falls | 2012 | 2 | 90 | NA |
| Wichita Falls | 2012 | 3 | 116 | NA |
| Wichita Falls | 2012 | 4 | 125 | NA |
| Wichita Falls | 2012 | 5 | 102 | NA |
| Wichita Falls | 2012 | 6 | 130 | NA |
| Wichita Falls | 2012 | 7 | 132 | NA |
| Wichita Falls | 2012 | 8 | 123 | NA |
| Wichita Falls | 2012 | 9 | 95 | NA |
| Wichita Falls | 2012 | 10 | 97 | NA |
| Wichita Falls | 2012 | 11 | 119 | NA |
| Wichita Falls | 2012 | 12 | 115 | NA |
| Wichita Falls | 2013 | 1 | 79 | NA |
| Wichita Falls | 2013 | 2 | 101 | NA |
| Wichita Falls | 2013 | 3 | 159 | NA |
| Wichita Falls | 2013 | 4 | 124 | NA |
| Wichita Falls | 2013 | 5 | 144 | NA |
| Wichita Falls | 2013 | 6 | 121 | NA |
| Wichita Falls | 2013 | 7 | 150 | NA |
| Wichita Falls | 2013 | 8 | 149 | NA |
| Wichita Falls | 2013 | 9 | 128 | NA |
| Wichita Falls | 2013 | 10 | 114 | NA |
| Wichita Falls | 2013 | 11 | 94 | NA |
| Wichita Falls | 2013 | 12 | 92 | NA |
| Wichita Falls | 2014 | 1 | 89 | NA |
| Wichita Falls | 2014 | 2 | 93 | NA |
| Wichita Falls | 2014 | 3 | 102 | NA |
| Wichita Falls | 2014 | 4 | 143 | NA |
| Wichita Falls | 2014 | 5 | 140 | NA |
| Wichita Falls | 2014 | 6 | 123 | NA |
| Wichita Falls | 2014 | 7 | 150 | NA |
| Wichita Falls | 2014 | 8 | 137 | NA |
| Wichita Falls | 2014 | 9 | 110 | NA |
| Wichita Falls | 2014 | 10 | 112 | NA |
| Wichita Falls | 2014 | 11 | 96 | NA |
| Wichita Falls | 2014 | 12 | 109 | NA |
#e rappresentiamo il risultato graficamente:
ggplot(data=dati)+
geom_boxplot(
aes(
y = sales,
fill = city))+
scale_x_continuous(breaks = seq(2010,2014,1))+
scale_y_continuous(breaks = seq(0,500,50))+
theme_classic()
#Come possiamo vedere dal box-plot sopra, per Beaumont, Tyler e Wichita
Falls la mediana #delle vendite è vicina alla media, mentre per
Bryan_College Station è più vicina al valore minimo. #Inoltre Wichita
Falls ha sia un range che un range interquantile molto piccoli; a
seguire #Beaumont, Tyler ed infine Bryan-College Station. Dunque
nell’ordine queste quattro città #hanno subito una variabilità via via
maggiore della vendita degli immobili.
#Confrontiamo il totale delle vendite per mese e città con un grafico a barre sovrapposte:
ggplot(data=dati)+
geom_bar(
aes(
x = month,
y = sales,
fill = city,
),
stat="identity")+
scale_x_continuous(breaks = seq(1,12,1))+
scale_y_continuous(breaks = seq(0,5000,500))+
theme_classic()
#Possiamo notare che tra gennaio e febbraio il totale delle vendite per
Beaumont, Bryan-College Station # e Wichita Falls è rimasto invariato,
mentre è aumentato per Tyler. Poi si ha un aumento per Beaumont
#Bryan-College Station e Tyler fino ad agosto; poi una diminuizione per
le medesime città fino a novembre #per aumentare di nuovo a dicembre.
Per Whichita Falls il mercato immobiliare oscilla di poco nell’arco
dell’anno #tendendo a stabilizzarsi nei primi e negli ultimi mesi
dell’anno.
#Possiamo anche confrontare l’andamento delle vendite in periodi storici differenti usando una line-chart:
media_vendite_per_mese <- dati %>%
group_by(month) %>%
summarise(media_sales = mean(sales, na.rm = TRUE))
ggplot(data = media_vendite_per_mese)+
geom_line(aes(x=month, y = media_sales), col = "lightblue", lwd= 1)+
geom_point(aes(x=month, y = media_sales), col = "blue", lwd = 3)+
labs(
x= "Mesi",
y = "Media vendite mensili",
title= "Andamento delle vendite in mesi differenti"
)+
geom_text(aes(x=month,
y = media_sales+5,
label= round(media_sales,2)),
lwd = 2)+
theme(
panel.background = element_blank(),
axis.line = element_line(color = "black")
)+
scale_x_continuous(breaks = seq(1,12,1))
## Warning in geom_point(aes(x = month, y = media_sales), col = "blue", lwd = 3):
## Ignoring unknown parameters: `linewidth`
## Warning in geom_text(aes(x = month, y = media_sales + 5, label =
## round(media_sales, : Ignoring unknown parameters: `linewidth`
#E per anno:
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 = 3)+
labs(
x= "anni",
y = "Media vendite annuali",
title= "Andamento delle vendite in anni differenti"
)+
geom_text(aes(x=year,
y = media_sales+5,
label= round(media_sales,2)),
lwd = 2)+
theme(
panel.background = element_blank(),
axis.line = element_line(color = "black")
)+
scale_x_continuous(breaks = seq(2010,2014,1))
## Warning in geom_point(aes(x = year, y = media_sales), col = "blue", lwd = 3):
## Ignoring unknown parameters: `linewidth`
## Warning in geom_text(aes(x = year, y = media_sales + 5, label =
## round(media_sales, : Ignoring unknown parameters: `linewidth`
#Sintesi: Dopo una prima decrescita, il mercato immobiliare del Texas
negli ultimi anni è decollato, #mentre ha avuto un andamento
oscillatorio nel corso dei mesi. #I prezzi medi degli immobili non sono
variati di molto e sono stati abbastanza oscillatori; #mentre sono
diminuiti gli annunci di vendita, quindi è diminuito il rapporto
annunci/vendite. #Un’altra variabile interessante è months-inventory;
vediamo come in ogni caso si #è ridotto il tempo necessario per vendere
le inserzioni, come ci aspettavamo dall’andamento di mercato. #Si
consiglia di continuare ad adottare questa strategia di marketing per
tutte le città meno che per Wichita Falls, #che purtroppo ha subito un
decremento delle vendite; essendo anche la città più economica sarebbe
appropriato fare #un’intensa campagna di marketing.