library(labstatR)
## labstatR 1.0.13
## Insieme di funzioni di supporto al volume
## 'Laboratorio di Statistica con R'
## Iacus-Masarotto, MacGraw-Hill Italia, 2006.
## Si veda 'library(help="labstatR")' per i comandi disponibili.
## Nota: 'mean.a', 'mean.g' e 'hist.pf' sono state sostituite rispettivamente da 'meana', 'meang' e 'histpf'
library(ggplot2)
## Warning: il pacchetto 'ggplot2' è stato creato con R versione 4.4.3
library(dplyr)
## Warning: il pacchetto 'dplyr' è stato creato con R versione 4.4.3
## 
## 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
dati = read.csv("realestate_texas.csv", sep = ",")
Beaumont <- dati %>%  filter(city == "Beaumont")
Bryan <- dati %>% filter(city == "Bryan-College Station")
Tyler <- dati %>% filter(city == "Tyler")
Wichita <- dati %>% filter(city == "Wichita Falls")
dati %>%
  group_by(year) %>%
  summarize(media = mean(sales), sd = sd(months_inventory))
## # A tibble: 5 × 3
##    year media    sd
##   <int> <dbl> <dbl>
## 1  2010  169.  2.08
## 2  2011  164.  2.07
## 3  2012  186.  1.61
## 4  2013  212.  1.69
## 5  2014  231.  1.75
year_2010 <- dati %>% filter(year == "2010")
year_2011 <- dati %>% filter(year == "2011")
year_2012 <- dati %>% filter(year == "2012")
year_2013 <- dati %>% filter(year == "2013")
year_2014 <- dati %>% filter(year == "2014")
# 1. Analisi delle variabili
#partendo dalla prima variabile che suddivide il dataframe in città si può visualizzare l'andamento di tali città sotto tutti i punti di vista delle successive varibili, identificando quindi quali siano le città che permettono di avere vendite più "semplici" o di "alto valore"
#sotto un punto di vista temporale è possibile valutare invece quali sono i periodi migliori di vendita sotto un punto di vista mensile, qundi prendendo in esame ogni variabile è possibile constatare quanti acquirenti ci sono in tali periodi, quanto mediamente si può vendere per periodo e quanto le inserzioni abbiano efficacia in tale periodo 
#un altra suddivisione tempo che è possibile prendere in esame è come il mercato nel corso degli anni si sta dirigendo, quindi se e dove il mercato aumenta o diminuisce la resa poichè tutte le variabili tempo sono divisibili anche nei quattro macro gruppi delle città
#2. Indici di posizione, variabilità e forma
summary(dati)
##      city                year          month           sales      
##  Length:240         Min.   :2010   Min.   : 1.00   Min.   : 79.0  
##  Class :character   1st Qu.:2011   1st Qu.: 3.75   1st Qu.:127.0  
##  Mode  :character   Median :2012   Median : 6.50   Median :175.5  
##                     Mean   :2012   Mean   : 6.50   Mean   :192.3  
##                     3rd Qu.:2013   3rd Qu.: 9.25   3rd Qu.:247.0  
##                     Max.   :2014   Max.   :12.00   Max.   :423.0  
##      volume        median_price       listings    months_inventory
##  Min.   : 8.166   Min.   : 73800   Min.   : 743   Min.   : 3.400  
##  1st Qu.:17.660   1st Qu.:117300   1st Qu.:1026   1st Qu.: 7.800  
##  Median :27.062   Median :134500   Median :1618   Median : 8.950  
##  Mean   :31.005   Mean   :132665   Mean   :1738   Mean   : 9.193  
##  3rd Qu.:40.893   3rd Qu.:150050   3rd Qu.:2056   3rd Qu.:10.950  
##  Max.   :83.547   Max.   :180000   Max.   :3296   Max.   :14.900
IQR(dati$sales)
## [1] 120
IQR(dati$median_price)
## [1] 32750
IQR(dati$months_inventory)
## [1] 3.15
#Le città hanno avuto un numero di vendite medio negli anni che si aggirava attorno alle 175 vendite mensili, con un mese il cui picco minimo è stato di 79 e quello massimo di 423. I quartili tra il primo è il terzo si trovano a 127 e 247 con un range di 120
#La mediana dei prezzi è di 134500 con un minimo di 73800 e un massimo di 180000. I valori del primo quartile e del terzo quartile sono di 117300 e 150050 con un range di 32750 dollari
#Il numero di mesi medio per le inserzioni è di circa 9 mesi, con un minimo di 3 e un massimo di 15
summary(Beaumont)
##      city                year          month           sales      
##  Length:60          Min.   :2010   Min.   : 1.00   Min.   : 83.0  
##  Class :character   1st Qu.:2011   1st Qu.: 3.75   1st Qu.:150.0  
##  Mode  :character   Median :2012   Median : 6.50   Median :176.5  
##                     Mean   :2012   Mean   : 6.50   Mean   :177.4  
##                     3rd Qu.:2013   3rd Qu.: 9.25   3rd Qu.:202.0  
##                     Max.   :2014   Max.   :12.00   Max.   :273.0  
##      volume       median_price       listings    months_inventory
##  Min.   :13.50   Min.   :106700   Min.   :1500   Min.   : 7.000  
##  1st Qu.:21.95   1st Qu.:123025   1st Qu.:1619   1st Qu.: 8.575  
##  Median :25.62   Median :130750   Median :1676   Median :10.400  
##  Mean   :26.13   Mean   :129988   Mean   :1679   Mean   : 9.970  
##  3rd Qu.:30.16   3rd Qu.:134550   3rd Qu.:1744   3rd Qu.:11.400  
##  Max.   :42.03   Max.   :163800   Max.   :1857   Max.   :12.600
summary(Bryan)
##      city                year          month           sales      
##  Length:60          Min.   :2010   Min.   : 1.00   Min.   : 89.0  
##  Class :character   1st Qu.:2011   1st Qu.: 3.75   1st Qu.:134.8  
##  Mode  :character   Median :2012   Median : 6.50   Median :186.5  
##                     Mean   :2012   Mean   : 6.50   Mean   :206.0  
##                     3rd Qu.:2013   3rd Qu.: 9.25   3rd Qu.:282.5  
##                     Max.   :2014   Max.   :12.00   Max.   :403.0  
##      volume       median_price       listings    months_inventory
##  Min.   :15.15   Min.   :140700   Min.   : 882   Min.   : 3.400  
##  1st Qu.:24.70   1st Qu.:150800   1st Qu.:1268   1st Qu.: 5.150  
##  Median :33.59   Median :155400   Median :1489   Median : 8.100  
##  Mean   :38.19   Mean   :157488   Mean   :1458   Mean   : 7.658  
##  3rd Qu.:48.42   3rd Qu.:161975   3rd Qu.:1618   3rd Qu.: 9.150  
##  Max.   :83.55   Max.   :180000   Max.   :1984   Max.   :11.600
summary(Tyler)
##      city                year          month           sales      
##  Length:60          Min.   :2010   Min.   : 1.00   Min.   :143.0  
##  Class :character   1st Qu.:2011   1st Qu.: 3.75   1st Qu.:227.0  
##  Mode  :character   Median :2012   Median : 6.50   Median :271.0  
##                     Mean   :2012   Mean   : 6.50   Mean   :269.8  
##                     3rd Qu.:2013   3rd Qu.: 9.25   3rd Qu.:313.8  
##                     Max.   :2014   Max.   :12.00   Max.   :423.0  
##      volume       median_price       listings    months_inventory
##  Min.   :21.05   Min.   :120600   Min.   :2272   Min.   : 6.90   
##  1st Qu.:35.75   1st Qu.:133975   1st Qu.:2742   1st Qu.:10.00   
##  Median :45.08   Median :142200   Median :2888   Median :11.45   
##  Mean   :45.77   Mean   :141442   Mean   :2905   Mean   :11.32   
##  3rd Qu.:53.32   3rd Qu.:147675   3rd Qu.:3046   3rd Qu.:12.78   
##  Max.   :80.81   Max.   :161600   Max.   :3296   Max.   :14.90
summary(Wichita)
##      city                year          month           sales      
##  Length:60          Min.   :2010   Min.   : 1.00   Min.   : 79.0  
##  Class :character   1st Qu.:2011   1st Qu.: 3.75   1st Qu.: 97.0  
##  Mode  :character   Median :2012   Median : 6.50   Median :114.5  
##                     Mean   :2012   Mean   : 6.50   Mean   :116.1  
##                     3rd Qu.:2013   3rd Qu.: 9.25   3rd Qu.:130.0  
##                     Max.   :2014   Max.   :12.00   Max.   :167.0  
##      volume        median_price       listings      months_inventory
##  Min.   : 8.166   Min.   : 73800   Min.   : 743.0   Min.   :6.100   
##  1st Qu.:11.441   1st Qu.: 92800   1st Qu.: 857.8   1st Qu.:7.275   
##  Median :13.711   Median :102300   Median : 911.0   Median :7.900   
##  Mean   :13.930   Mean   :101743   Mean   : 909.6   Mean   :7.817   
##  3rd Qu.:16.243   3rd Qu.:109175   3rd Qu.: 961.5   3rd Qu.:8.300   
##  Max.   :20.881   Max.   :135300   Max.   :1052.0   Max.   :9.400
summary(year_2010)
##      city                year          month           sales      
##  Length:48          Min.   :2010   Min.   : 1.00   Min.   : 83.0  
##  Class :character   1st Qu.:2010   1st Qu.: 3.75   1st Qu.:120.8  
##  Mode  :character   Median :2010   Median : 6.50   Median :162.0  
##                     Mean   :2010   Mean   : 6.50   Mean   :168.7  
##                     3rd Qu.:2010   3rd Qu.: 9.25   3rd Qu.:202.0  
##                     Max.   :2010   Max.   :12.00   Max.   :316.0  
##      volume        median_price       listings    months_inventory
##  Min.   : 8.951   Min.   : 86400   Min.   : 904   Min.   : 7.000  
##  1st Qu.:17.660   1st Qu.:120625   1st Qu.:1230   1st Qu.: 8.250  
##  Median :23.684   Median :133050   Median :1630   Median : 9.750  
##  Mean   :25.676   Mean   :130192   Mean   :1826   Mean   : 9.973  
##  3rd Qu.:32.099   3rd Qu.:148700   3rd Qu.:2170   3rd Qu.:11.525  
##  Max.   :49.914   Max.   :165300   Max.   :3296   Max.   :13.800
# 3. Identificazione delle variabili con maggiore variabilità e asimmetria
#utilizzando la formula di calcolo per il coefficiente di variabilità possiamo dire che la più alta variabilità si ha nel numero di vendite al mese, sotto la dicitura "volume" e ci permette di dire che in base all'anno e alla città il numero mensile di venditè è il dato con più variabilità
attach(dati)
sd(sales)
## [1] 79.65111
sd(volume)
## [1] 16.65145
sd(median_price)
## [1] 22662.15
sd(listings)
## [1] 752.7078
sd(months_inventory)
## [1] 2.303669
cv <- function(x)
{return(sd(x)/mean(x)*100)}
cv(sales)
## [1] 41.42203
cv(volume)
## [1] 53.70536
cv(median_price)
## [1] 17.08218
cv(listings)
## [1] 43.30833
cv(months_inventory)
## [1] 25.06031
# 4. Creazione di classi per una variabile quantitativa
dati$sales_cl <- cut(dati$sales, breaks = c(50, 100, 150, 200, 250, 300, 350, 400, 450))
sales_cll <- table(dati$sales_cl)
barplot(sales_cll)

# 5. Calcolo della probabilità
60/240
## [1] 0.25
#probabilità di una città = 25%
20/240
## [1] 0.08333333
#probabilità di un mese = 8,33%
4/240
## [1] 0.01666667
#probabilità di un determinato mese di un determinato anno = 1,66 %

# 6. Creazione di nuove variabili
dati$mean_price <- (dati$volume*1000000)/dati$sales
dati$efficency <- (dati$listings/dati$months_inventory)

# 7. Analisi condizionata
dati_city <- dati %>%
  group_by(city) %>%
  summarize(mean(sales), mean(median_price), sd(sales), sd(median_price))
summary(Beaumont)
##      city                year          month           sales      
##  Length:60          Min.   :2010   Min.   : 1.00   Min.   : 83.0  
##  Class :character   1st Qu.:2011   1st Qu.: 3.75   1st Qu.:150.0  
##  Mode  :character   Median :2012   Median : 6.50   Median :176.5  
##                     Mean   :2012   Mean   : 6.50   Mean   :177.4  
##                     3rd Qu.:2013   3rd Qu.: 9.25   3rd Qu.:202.0  
##                     Max.   :2014   Max.   :12.00   Max.   :273.0  
##      volume       median_price       listings    months_inventory
##  Min.   :13.50   Min.   :106700   Min.   :1500   Min.   : 7.000  
##  1st Qu.:21.95   1st Qu.:123025   1st Qu.:1619   1st Qu.: 8.575  
##  Median :25.62   Median :130750   Median :1676   Median :10.400  
##  Mean   :26.13   Mean   :129988   Mean   :1679   Mean   : 9.970  
##  3rd Qu.:30.16   3rd Qu.:134550   3rd Qu.:1744   3rd Qu.:11.400  
##  Max.   :42.03   Max.   :163800   Max.   :1857   Max.   :12.600
# 8. Creazione di visualizzazioni con ggplot2
ggplot(data = dati) +
  geom_boxplot(aes(x = city, y = median_price), fill = "green")+
  labs(title = "Prezzi mediani per città") +
  theme_bw()

ggplot(data = dati) +
  geom_col(aes(x= month, y = sales), fill = "navy") +
  labs(title = "Vendite per mese") +
  theme_bw()

ggplot(data = dati) +
  geom_col(aes(x = city, y = sales), fill = "darkred") +
  labs(title = "Vendite per città")+
  theme_bw()

# 9. Conclusioni
# In conclusione pssiamo identificare come i mesi estivi siano quelli durante i quali ci sia un numero più elevato di vendite, con il picco massimo nel mese di agosto.
# Per quanto riguarda le città, Bryan-College Station è la città con il valore degli immobili mediamente più alto, mentre Tyler è la città dove avvengono più compravendite.
# La città che risulta meno redditizia risulta Wichita.