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
| 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))
| 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))
| 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))
| 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à")
| 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.
| 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)
}
| 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 |
| 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 |
| 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.