1. ANALISI DELLE VARIABILI Identifica e descrivi il tipo di variabili statistiche presenti nel dataset. Valuta come gestire le variabili che sottintendono una dimensione tempo e commenta sul tipo di analisi che può essere condotta su ciascuna variabile.

NOME VARIABILE SIGNIFICATO TIPO VARIABILE
city città Variabile qualitativa nominale
year anno di riferimento Variabile quantitativa ordinale da trattare come qualitativa ordinale
month mese di riferimento Variabile qualitativa nominale (ciclica) codificata in numeri
sales numero totale di vendite Variabile quantitativa discreta
volume valore totale delle vendite in milioni di dollari Variabile quantitativa continua
median_price prezzo mediano di vendite in dollari Variabile quantitativa continua
listings numero totale di annunci attivi Variabile quantitativa discreta
months_inventory mesi necessari per vendere tutte le inserzioni correnti e passate Variabile quantitativa continua

Le quantitativa continue sono in scala di rapporti

Per le variabili quantitative si possono condurre tutte le analisi che riguardano gli indici di posizione, dispersione e forma. Per quanto riguarda le variabili qualitative, non si possono condurre le stesse analisi poiché essere richiedono numeri e non modalità, se non quella dell’individuazione della moda che si basa sull’analisi delle frequenze.

Le variabili city, year e month fondamentalmente ricoprono il ruolo equivalente a quello di una variabile ID. Infatti non c’è la possibilità che la frequenza di una città possa essere minore dell’altra e lo stesso vale per le altre due.

2.INDICI DI POSIZIONE, VARIABILITÀ E FORMA Calcola Indici di posizione, variabilità e forma per tutte le variabili per le quali ha senso farlo, per le altre crea una distribuzione di frequenza.

Alla luce della considerazione esposta nella risposta alla RICHIESTA (1), le variabili “city”, “year” e “month” hanno frequenze assolute uguali. La varibile che guida la cadenza delle rilevazione è “month”, perché le rilevazioni sono mensili; ogni città (4 in totale) vede rilevati 12 mesi per ogni anno dal 2010 al 2014; quindi il nome di ogni città verrà ripetuto per 60 righe (12 mesi x 5 anni), di conseguenza persino la moda diventa un indice irrilevante da calcolare, così come l’indice di Gini.

Indici di posizione

Indici di posizione
city year month sales volume median_price listings months_inventory
Length:240 Min. :2010 Min. : 1.00 Min. : 79.0 Min. : 8.166 Min. : 73800 Min. : 743 Min. : 3.400
Class :character 1st Qu.:2011 1st Qu.: 3.75 1st Qu.:127.0 1st Qu.:17.660 1st Qu.:117300 1st Qu.:1026 1st Qu.: 7.800
Mode :character Median :2012 Median : 6.50 Median :175.5 Median :27.062 Median :134500 Median :1618 Median : 8.950
NA Mean :2012 Mean : 6.50 Mean :192.3 Mean :31.005 Mean :132665 Mean :1738 Mean : 9.193
NA 3rd Qu.:2013 3rd Qu.: 9.25 3rd Qu.:247.0 3rd Qu.:40.893 3rd Qu.:150050 3rd Qu.:2056 3rd Qu.:10.950
NA Max. :2014 Max. :12.00 Max. :423.0 Max. :83.547 Max. :180000 Max. :3296 Max. :14.900

Indici di variabilità e forma

# Sviluppo la funzione per il calcolo degli indici
funzione_calcolo_indici <- function(x, nome_var) {
  c(
    Variabile = nome_var,
    Min = min(x),
    Max = max(x),
    IQR = IQR(x),
    Varianza = var(x),
    Deviazione_std = sd(x),
    CV = sd(x) / mean(x),
    Skewness = skewness(x),
    Kurtosis = kurtosis(x)
  )
}

# Seleziono le variabili d'interesse
vars <- dati[c("sales", "volume", "median_price", "listings", "months_inventory")]

# Calcolo indici per ogni variabile ottenendo lista di vettori
results_list <- lapply(names(vars), function(n) funzione_calcolo_indici(vars[[n]], n))

# Converto la lista in tabella
results_tab <- do.call(rbind, results_list)
kable(results_tab,
      caption = "Indici di variabilità e forma",
      digits = 2,
      align = "c",
      format.args = list(nsmall = 2))
Indici di variabilità e forma
Variabile Min Max IQR Varianza Deviazione_std CV Skewness Kurtosis
sales 79 423 120 6344.29951185495 79.6511111777793 0.414220296482492 0.718104024884959 2.68682359092851
volume 8.166 83.547 23.2335 277.270692404027 16.6514471564494 0.537053586805415 0.884742026325995 3.17698699708974
median_price 73800 180000 32750 513572983.089261 22662.148686505 0.170821825732064 -0.364552878177372 2.37703817924446
listings 743 3296 1029.5 566568.966091353 752.707756098841 0.433083275909432 0.649498226273971 2.20820996666741
months_inventory 3.4 14.9 3.15 5.30688912133891 2.30366862229334 0.250603059264982 0.040975265871081 2.82555245836151
# Creazione di un vettore delle variabili continue per i grafici
continuous_vars <- c("volume", "median_price", "months_inventory")

#Imposto la finestra grafica di presentazione dei grafici
par(mfrow=c(1,3))

#Ciclo per la creazione dei grafici
for (var in continuous_vars) {
  x <- dati[[var]]
  plot(density(x), 
       main = paste("Densità di", var), 
       xlab = var)
  
  
  # Asse di simmetria
  abline(v = mean(x), col = "red")
  
}

Nota: Come detto, l’indice di GINI non ha senso che venga calcolato per le variabili “year”, “month” e “city”, ma neanche per le variabili su cui abbiamo condotto l’analisi per l’individuazione dei vari indici. Questo non si calcola poiché non essendo variabili qualitative, i relativi valori nel dataset non sono le modalità di cui conteggiare la frequenza da utilizzare nella formula per calcolarlo, ma i valori quantitativi veri e propri assunti dalla variabile.

3.IDENTIFICAZIONE DELLE VARIABILI CON MAGGIORE VARIABILITA’ E ASIMMETRIA Qual è la variabile con variabilità più elevata? Come ci sei arrivato? E quale quella più asimmetrica?

La variabile con variabilità più elevata è volume. L’ho individuata confrontando i coefficienti di variazione. Quello di volume è: 53,7(%). Questo indica che la variabile volume presenta una deviazione standard che è quasi il 54% della media. Quella più asimmetrica è la variabile volume e l’ho individuata considerando l’indice di asimmetria, che per tale variabile è uguale a 0,88. È un’asimmetria positiva, per la quale quindi sono maggiormente presenti valori bassi della variabile e per la quale quindi media > mediana > moda

4.CREAZIONE DI CLASSI PER UNA VARIABILE QUANTITATIVA Creazione classi

dati$sales_cl <- cut(sales,
                     breaks = c(70,130,190,250,310,370,430))

Creazione distribuzione di frequenza

ni <- table(dati$sales_cl)
fi <- table(dati$sales_cl)/N
Ni <- cumsum(ni)
Fi <- Ni/N
kable(cbind(ni,fi,Ni,Fi),
      caption = "Distribuzione di frequenze",
      digits = 2,
      align = "c",
      format.args = list(nsmall = 2))
Distribuzione di frequenze
ni fi Ni Fi
(70,130] 67.00 0.28 67.00 0.28
(130,190] 72.00 0.30 139.00 0.58
(190,250] 42.00 0.17 181.00 0.75
(250,310] 36.00 0.15 217.00 0.90
(310,370] 17.00 0.07 234.00 0.98
(370,430] 6.00 0.03 240.00 1.00

Creazione grafico

ggplot(data=dati)+
  geom_bar(aes(x=sales_cl),
           stat = "count",
           col = "red",
           fill = "green")+
  labs(title = "Distribuzione delle classi di vendita",
       x = "N° vendite in classi",
       y = "Frequenze assolute")+
  scale_y_continuous(breaks = seq(0,75,25))

Calcolo Indice di Gini

gini.index <- function(x){
  ni = table(x)
  fi = ni/length(x)
  fi2 = fi^2
  J = length(table(x))
  
  gini = 1 - sum(fi2)
  gini.normalizzato = gini/((J-1)/J)
  
  return(gini.normalizzato)
}

kable(table(dati$sales_cl),
      caption = "Distribuzione di frequenze per classi",
      digits = 2,
      align = "c",
      format.args = list(nsmall = 2))
Distribuzione di frequenze per classi
Var1 Freq
(70,130] 67.00
(130,190] 72.00
(190,250] 42.00
(250,310] 36.00
(310,370] 17.00
(370,430] 6.00
kable(gini.index(dati$sales_cl)
)
x
0.9279583

Il risulato è quasi 1 (0,93) e quindi c’è quasi la massima eterogeneità

##5.CALCOLO DELLE PROBABILITA’ Qual è la probabilità che presa una riga a caso di questo dataset essa riporti la città “Beaumont”? La probabilità che presa una riga a caso riporti la città “Beaumont” è del 25% (= 60/240).

E la probabilità che riporti il mese di Luglio? La probabilità del mese di luglio è dell’8,3% (= 20/240: ogni città è considerata per 5 anni –> esistono 5 righe con luglio per ogni città –> 5 righe con luglio x 4 città = 20 righe con luglio).

E la probabilità che riporti il mese di dicembre 2012? La probabilità che una riga riporti il mese di dicembre 2012 è 4/240 = 1,7% (il 2012 è presente 4 volte, uno per città)

6.CREAZIONE DI NUOVE VARIABILI Esiste una colonna col prezzo mediano, creane una che indica invece il prezzo medio, utilizzando le altre variabili che hai a disposizione.

Creazione colonna prezzo-medio

dati$mean_price <- volume*(1000000)/sales

Boxplot con distribuzione prezzi medi x città

ggplot(data=dati)+
  geom_boxplot(aes(x=city,
                   y=mean_price),
               color = "red",
               fill = "blue")+
  labs(x="Citta",
       y="prezzo medio",
       title="Distribuzione prezzi medi per città")

Prezzo medio per città
city media_prezzi_medi
Beaumont 146640.41
Bryan-College Station 183534.29
Tyler 167676.76
Wichita Falls 119430.00

Grafico dei prezzi medi per città

ggplot(data=dati_media_prz_mediXcitta) +
  geom_bar(aes(x=city, y=media_prezzi_medi),
           stat="identity",
           col = "red",
           fill = "blue") +
  labs(title = "Prezzo medio per città",
       x = "Città",
       y = "Prezzi")+
  scale_y_continuous(breaks = seq(0,250000,50000))

Il prezzo medio più alto è quello di BC Station. Quello più basso di Wichita Falls

Prova a creare un’altra colonna che dia un’idea di “efficacia” degli annunci di vendita. Riesci a fare qualche considerazione? Per dare un’idea dell’efficacia degli annunci di vendita ho pensato di calcolare l’attuale ritmo di vendita dividendo il numero di annunci attivi (listings) per il numero di mesi necessari a smaltire smaltire le inserzioni all’attuale ritmo di vendita (months_inventory). Il risultato sarà rappresentato dalle inserzioni smaltite mensilmente che quindi mi darà una velocità di vendita. Se v=s/t, allora s=listings e t=months inventory.

dati$current_sales_speed <- listings/months_inventory

Un modo per provare a fare qualche considerazione come richiesto, considerando il valore informativo minimo del dato per singola riga, mi è sembrato quello di calcolare una media del ritmo di vendita condizionata alla città, in modo da poter comprendere quale sia la città con la maggior velocità media di smaltimento di inserzioni.

Velocità media smaltimento annunci per città
city media_velocità_vendite
Beaumont 172.06
Bryan-College Station 199.58
Tyler 260.98
Wichita Falls 116.74

Quello che emerge è che Wichita Falls è la città con il ritmo medio di vendita più basso, mentre Tyler è la città con il maggior numero di inserzioni smaltite mensilmente.

7.ANALISI CONDIZIONATA Usa il pacchetto dplyr o il linguaggio base di R per effettuare analisi statistiche condizionate per città, anno e mese. Genera dei summary (media, deviazione standard) e rappresenta graficamente i risultati

Cerco media e dev. st. per le variabili di sales e listings condizionando a city, year e month

# Creo un vettore con le variabili rispetto alle quali sto condizionando
variabili <- c("city", "year", "month")

for (v in variabili) {
  cat("\n\n## Risultati condizionati a:", v, "\n\n")
  
# Calcolo media e DS per sales e listings rispetto alle variabili di condizionamento
  df_summary <- dati %>%
    group_by(.data[[v]]) %>%
    summarise(
      vendite_medie = mean(sales),
      variabilita_vendite = sd(sales),
      annunci_medi = mean(listings),
      variabilita_annunci = sd(listings),
      .groups = "drop")

print(kable(df_summary, caption = paste("Media e deviazione standard condizionate a", v)))
  
# Grafico vendite
  g1 <- ggplot(df_summary) +
    geom_bar(aes(x = .data[[v]], y = vendite_medie),
             stat = "identity", fill = "blue", col = "red") +
    geom_errorbar(aes(x = .data[[v]],
                      ymin = vendite_medie - variabilita_vendite,
                      ymax = vendite_medie + variabilita_vendite),
                  width = 0.2) +
    labs(title = paste("N° medio di vendite per", v),
         x = v, y = "Vendite")
    print(g1)
  
# Grafico annunci
  g2 <- ggplot(df_summary) +
    geom_bar(aes(x = .data[[v]], y = annunci_medi),
             stat = "identity", fill = "red", col = "blue") +
    geom_errorbar(aes(x = .data[[v]],
                      ymin = annunci_medi - variabilita_annunci,
                      ymax = annunci_medi + variabilita_annunci),
                  width = 0.2) +
    labs(title = paste("N° medio di annunci per", v),
         x = v, y = "Annunci")
    print(g2)
    }

Risultati condizionati a: city

Media e deviazione standard condizionate a city
city vendite_medie variabilita_vendite annunci_medi variabilita_annunci
Beaumont 177.3833 41.48395 1679.3167 91.13382
Bryan-College Station 205.9667 84.98374 1458.1333 252.52753
Tyler 269.7500 61.96380 2905.0500 226.75458
Wichita Falls 116.0667 22.15192 909.5833 73.75504

Risultati condizionati a: year

Media e deviazione standard condizionate a year
year vendite_medie variabilita_vendite annunci_medi variabilita_annunci
2010 168.6667 60.53708 1826.000 785.0201
2011 164.1250 63.87042 1849.646 780.3777
2012 186.1458 70.90509 1776.812 738.4492
2013 211.9167 83.99641 1677.604 743.5239
2014 230.6042 95.51490 1560.042 706.7086

Risultati condizionati a: month

Media e deviazione standard condizionate a month
month vendite_medie variabilita_vendite annunci_medi variabilita_annunci
1 127.40 43.38372 1647.05 704.6140
2 140.85 51.06783 1692.50 711.2004
3 189.45 59.17812 1756.70 727.3546
4 211.70 65.40489 1825.70 770.4287
5 238.85 83.11582 1823.85 790.2234
6 243.55 94.99832 1833.25 811.6288
7 235.75 96.27421 1821.20 826.7196
8 231.45 79.22883 1786.30 815.8664
9 182.35 72.51807 1748.90 802.6563
10 179.90 74.95395 1710.35 779.1649
11 156.85 55.46670 1652.70 741.2533
12 169.40 60.74658 1557.75 692.5678

I grafici ottenuti dal condizionamento per città suggeriscono una correlazione positiva fra il numero medio di annunci attivi e il numero medio di vendite, con l’unica eccezione costituita da B-C Station. Tyler è la città con maggior n° medio di annunci e maggior n° medio di vendite, mentre Wichita F. quella con i due valori più bassi per entrambe

Nel caso di condizionamento per anno, i grafici mostrano una correlazione negativa perché ai primi due anni di crescita del numero medio di annunci corrisponde una decrescita del numero medio delle vendite, e per i successivi tre anni, al decrescere del numero medio annunci corrisponde una crescita del numero medio di vendite.

Infine, rispetto alla variabile dei mesi questi grafici emerge una correlazione positiva. All’aumento degli annunci corrisponde un aumento delle vendite e ad una loro diminuzione corrisponde una diminuzione delle vendite.

8.CREAZIONE DI VISUALIZZAZIONI CON GGPLOT Utilizza ggplot2 per creare grafici personalizzati. Assicurati di esplorare:

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

ggplot(data = dati) +
  geom_boxplot(aes(x = factor(year),
                   y = median_price,
                   fill = city)) +
  labs(x = "Anno",
       y = "Prezzo mediano",
       title = "Prezzo mediano per città 2010-2014")

Considerazioni: - Wichita Falls ha dei prezzi mediani minori con un andamento stabile nel corso del tempo; - Bryan C.S. quella con i prezzi mediani maggiori ed undamento crescente molto evidente nel corso del quinquenio. - In termini di variabilità Bryan CS è quella più stabile, sia il box che la lunghezza dei baffi indicano scarsa variabilità, mentre W.Falls è quella che mediamente esibisce sia i box più grandi che i baffi più lunghi. - Nel complesso, Beaumont, Tyler e Bruan CS mostrano, seppur con alcune diffeenze, lo stesso andamento nel tempo su livelli diversi e con intensità diverse. W. Falls mostra un trend più stabile al livello più inferiore di tutti. Il grafico rispecchia quanto mostrato dal grafico della distribuzione dei prezzi medi per città della richiesta 6.

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

# Creo un vettore con le variabili d'interesse
variabili <- c("month", "city")

for (v in variabili) {
  
  df_summary <- dati %>%
    group_by(.data[[v]]) %>%
    summarise(volume_totale = sum(volume), .groups = "drop")
  
  kable(df_summary, caption = paste("Volume totale per", v))
  
  # Grafico volume totale di vendite
  print(
    ggplot(df_summary) +
      geom_col(aes(x = .data[[v]], y = volume_totale),
               col = "red", fill = "blue") +
      labs(title = paste("Volume (in mln $)", v),
           x = v, y = "Volume totale")
  )
}

Il grafico derivante dal condizionamento ai mesi rispecchia l’andamento del n° medio di vendite della richiesta 7 calcolato precedentemente sempre condizionando rispetto alla stessa variabile , e vede dei picchi nel volume di vendite fra marzo e agosto

La città con il volume totale di vendite maggiore è Tyler; quella con il minor volume di vendite è Wichita F. Anche questo grafico è in continuità con quello del numero medio di vendite della richiesta 7

Line charts per confrontare l’andamento delle vendite in periodi storici differenti

Line chart complessiva

Creazione line chart

ggplot(data = dati_salesXyear)+
  geom_line(aes(x=year, y=yearly_sales), col = "red", lwd = 1)+
  geom_point(aes(x=year, y=yearly_sales), col = "blue")+
  labs(x="Anni",
       y="Vendite",
       title="Vendite annuali totali")+
  geom_text(aes(x=year, y=yearly_sales+250, label=yearly_sales))

Il grafico mostra lo stesso andamento riscontrato nel grafico a barre recante il numero medio di vendite effettuato annualmente, della richiesta 7. Il grafico mostra un decremento dal 2010 al 2011 e un incremento per gli anni successivi

Linea chart disaggregata per città

dati$date <- as.Date(paste(dati$year, dati$month, "01", sep = "-"))

ggplot(data = dati)+
  geom_line(aes(x=date, y=sales, col = city), lwd = 1)+
  geom_point(aes(x=date, y=sales), col = "blue")+
  labs(x="Anni",
       y="Vendite",
       title="Vendite annuali per città")+
  scale_x_date(date_breaks = "1 year", date_labels = "%Y")

Il grafico evidenzia un tred crescente per tutte le città eccetto W.Falls che mostra un’andamento stagnante. Tyler mostra il maggior numero di vendite superando, come evidenziato anche dal precedente grafico a barre dei volumi di vendita, anche BC Station nonostante dei prezzi medi(mediani) inferiori.

##10.OSSERVAZIONI OPERATIVE Utilizza i boxplot per confrontare la distribuzione del prezzo mediano delle case tra le varie città Già richiesto nel 1° punto richiesta della richiesta 8

Utilizza i boxplot o qualche variante per confrontare la distribuzione del valore totale delle vendite tra le varie città ma anche tra i vari anni. Qualche considerazione da fare?

Boxplot valore totale vendite tra città

ggplot(data=dati)+
  geom_boxplot(aes(x=city,
                   y=volume),
               color = "red",
               fill = "blue")+
  labs(x="Citta",
       y="Volume (in mln $)",
       title="Volume di vendita per città")

Il grafico mostra l’asimmetria massima per Bryan C.S.

Per Beaumont e Wichita Falls la posizione è rimasta la stessa rispetto al boxplot dei prezzi mediani, mentre invece per B-C Station e Tyler la posizione si è invertita.

L’andamento di questo boxplot ricalca quello del n° di vendite totali per città (richiesta 8) e del n° medio di vendite per citta (richiesta 7). W.Falls e Beaumont quindi mostrano i volumi di vendita minori fra le 4 città.

Per Tyler il minor prezzo mediano rispetto a BC Station è stato più che compensato dal maggior numero di vendite che l’ha portata ad avere un valore mediano di volumi maggiore rispetto a B-C Station.

B-C Station. mostra la maggiore asimmetria e la maggiore variabilità (box dalle dimensioni maggiori e baffi più lunghi)

Boxplot valore totale vendite tra anni

ggplot(data=dati)+
  geom_boxplot(aes(x=factor(year),
                   y=volume,
                   group=year),
               color = "red",
               fill = "blue")+
  labs(x="Year",
       y="Volume (in mln $)",
       title="Volume di vendita per anno")

L’andamento è del grafico è in continuità con quella della line chart complessiva della richiesta 8.

Usa un grafico a barre sovrapposte per confrontare il totale delle vendite nei vari mesi, sempre considerando le città. Prova a commentare ciò che viene fuori. Fornire anche versione con il grafico a barre normalizzato.

Grafico a barre sovrapposte

ggplot(data=dati_vendite_totali_meseXcittà)+
  geom_col(aes(x=month,
               y=vendite_totali_mensile,
               fill=city),
           position="stack",
           color="black") +
  labs(x="Mese",
       y="Vendite",
       title="Vendite mensili per città")+
  scale_y_continuous(breaks = seq(0,5000,1000))+
  scale_x_continuous(breaks = seq(0,12,1))

La barra mensile di ogni singola città è il risultato della somma delle vendite registrate nel medesimo mese considerato per trasversalmente per tutti e 5 gli anni del dataset. Quindi la barra viola per Wichita Falls, ad esempio, per il mese di gennaio, è costituita dalla somma delle vendite di ogni gennaio dal 2010 al 2014.

Quello che emerge dal grafico è che per le città di Tyler e, soprattutto, di B-C Station i mesi centrali dell’anno da marzo ad agosto rappresentano i mesi in cui si effettuano più vendite. Per le altre due città il livello di vendite rimane sempre abbastanza stabile nel corso dell’anno.

Grafico a barre versione normalizzata

ggplot(data=dati_vendite_totali_meseXcittà) +
  geom_col(aes(x=month,
               y=vendite_totali_mensile,
               fill=city),
           position="fill",
           color="black") +
  labs(x="Mese",
       y="Quota di vendite",
       title="Vendite totali mensili normalizzate per città")+
  scale_y_continuous(breaks = seq(0,1,0.1))+
  scale_x_continuous(breaks = seq(0,12,1))

Grafico a barre con inserimento variabile “year”

ggplot(data = dati_vendite_totali_meseXcittà) +
  geom_col(aes(x = month,
               y = vendite_totali_mensile,
               fill = city),
           position = "stack") +
  labs(x = "Mese",
       y = "Vendite",
       title = "Vendite totali mensili per ogni città") +
  scale_y_continuous(breaks = seq(0, 2000, 500)) +
  scale_x_continuous(breaks = seq(0, 12, 1)) +
  facet_wrap(~ city)

In questo grafico è ancora più visibile quanto mostrato nel primo grafico dei tre di questa sezione. Evidenziando che questo trend è meno marcato per Tyler che anche nei mesi successivi ad agosto registra un numero di vendite comunque alti. E’ anche meno marcato per le città meno performanti, ma comunque presente. In particolare è più evidente per Beaumont rispetto a Wichita Falls

Prova a creare un line chart di una variabile a tua scelta per fare confronti commentati fra città e periodi storici

Variabile scelta: sales

Linechart con vendite annuali per ogni città

ggplot(data=datixlineachart)+
  geom_line(aes(x=Anno, y=Beaumont, col="Beaumont"), lwd=1)+
  geom_line(aes(x=Anno, y=Bryan_College_Station, col="Bryan_College_Station"),lwd=1)+
  geom_line(aes(x=Anno, y=Tyler, col="Tyler"), lwd=1)+
  geom_line(aes(x=Anno, y=Wichita_Falls, col="Wichita_Falls"),lwd=1)+
  geom_point(aes(x=Anno, y=Beaumont), col="green4",size=3)+
  geom_point(aes(x=Anno, y=Bryan_College_Station), col="purple",size=3)+
  geom_point(aes(x=Anno, y=Tyler), col="red3",size=3)+
  geom_point(aes(x=Anno, y=Wichita_Falls), col="blue4",size=3)+
  labs(x="Anni",
       y="Vendite",
       title = "Vendite per città")+
  scale_color_manual(
    name = "Città",
    breaks = c("Beaumont", "Bryan_College_Station", "Tyler", "Wichita_Falls"),
    values = c("green4", "purple", "red3", "blue4"),
    labels = c("Beaumont", "Bryan_College_Station", "Tyler", "Wichita_Falls"))+
  geom_text(aes(x=Anno, y=Beaumont-125, label=Beaumont))+
  geom_text(aes(x=Anno, y=Bryan_College_Station+150, label=Bryan_College_Station))+
  geom_text(aes(x=Anno, y=Tyler+150, label=Tyler))+
  geom_text(aes(x=Anno, y=Wichita_Falls+125, label=Wichita_Falls))

Nota: Poiché con il semplice condizionamento non riuscivo ad ottenere un dataset che mi permettesse di organizzare un grafico con la struttura cpresentata (che penso sia quella che richiesta dalla consegna), ho creato un dataframe in maniera “artigianale” così da avere sull’asse X gli anni, sull’asse Y le vendite e una linea per ogni città.

##9.CONCLUSIONI Note: ho posizionato le conclusioni dopo la sezioe “Osservazioni operative”, così da poterle completare dopo aver realizzato tutti i grafici richiesti ed avere una visione complessiva di quello che emerge.

Ritengo che sia possibile analizzare il mercato del Texas sotto due dimensioni, quella temporale (andamento nel corso degli anni con focus sull’andamento nell’anno) e spaziale (confronto fra città):

Dimensione temporale In generale, quello che mostrano le line chart (sia quella complessiva -richiesta 8- che quella disaggregata per città – Osservazioni operative), il grafico dei valori del numero medio di vendite condizionato all’anno (richiesta 7), ed il boxplot del volume totale delle vendite (Osservazioni operative) è una decrescita del giro di affari fra il 2010 e il 2011 (se il dataset è reale, probabilmente come conseguenza della crisi del 2008 che ancora si faceva sentire) con un incremento dal 2012 in poi.

Quello che emerge dai grafici è che i mesi centrali dell’anno da aprile fino ad agosto, sono i mesi in cui il giro d’affari è più intenso, dimostrato dai grafici sul numero di vendite (richiesta 7) e sul volume di vendite (richiesta 8). In particolare, disaggregando per le città (bar plot in Osservazioni operative), si evidenzia che per Tyler e, soprattutto, per B-C Station i mesi centrali dell’anno da marzo ad agosto rappresentano i mesi in cui si effettuano più vendite. Per Tyler nello specifico, anche nei mesi successivi ad agosto si registra un numero di vendite comunque alto.

Quest’andamento è meno marcato per le città meno performanti, ma comunque presente. In particolare, è più evidente per Beaumont rispetto a Wichita Falls.

Dimensione spaziale Tyler è la città che registra: - n° totale di vendite più alto (e quindi anche un n° medio di vendite), - tasso di smaltimento mensile annunci più alto, - un volume di vendite più alto - 2° prezzo mediano (e 2° prezzo medio) dopo BC Station. Tyler sembrerebbe essere una zona più estesa rispetto a tutte le altre guardando al numero medio di annunci attivi, leggermente meno esclusiva di BC Station visto il prezzo mediano più basso. Il quantitativo di vendite, dovuto non solo al maggior numero di annunci ma anche ad un ritmo di vendita maggiore, più che compensa il prezzo mediano (e medio) inferiore rispetto a BC Station.

BC Station mostra - 3° n° medio di annunci attivi, - 2° numero totale di vendite (e 2° numero medio di vendite) - 2° ritmo di smaltimento più alto - prezzo mediano (e medio) più alto di tutti. Questo fa pensare che probabilmente BC Station sia una zona meno estesa per via del 3° valore medio di annunci attivi e più esclusiva per via dei prezzi mediani (e medi) più alti.

WFalls e Beaumont risultano le città meno performanti sotto tutti i punti di vista, con Beaumont che condivide con Tyle e B.C. Station gli stessi andaenti per vendite, volumi e prezzi medi/mediani gli stessi andamenti ma su un livello inferiore.