#setting gella WD
#setwd("~/Desktop/P_AI_Stats")
#getwd()
#list.files()
#import del dataset
data <- read.csv("realestate_texas.csv" )
####punto 1 analisi delle variabili####
str(data)
## '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 ...
colSums(is.na(data))
## city year month sales
## 0 0 0 0
## volume median_price listings months_inventory
## 0 0 0 0
dim(data)
## [1] 240 8
n <- dim(data)[1]
#View(data)
#View(table(data$city))
Sono presenti 8 Variabili, non hanno valori mancanti (NA), tra queste
troviamo: city= [chr], troviamo 4 città del Texas, tutte con la stessa
frequenza (60): questa sola variabile non è sufficiente per effettuare
un’analisi, se considerata insieme ad altre presenti all’interno del
dataset, potrebbe essere importante comprendere se varia il numero
totale di vendite [sales] e il valore [volume] per ciascuna città nel
tempo [years]. questo può essere fatto tramite rappresentazioni
grafiche, ad esempio una linechart
year=[int], dal 2010 al 2014 (variabile che ha una dimensione
temporale): questa sola variabile non è sufficiente per effettuare
un’analisi: possiamo utilizzare un barplot se considerata insieme alla
variabile [sales] per esempio: in modo da mostrare l’andamento negli
anni del numero totale di vendite (discorso analogo con [volume],
[median_price], e le altre variabili numeriche) month=[int] (variabile
che ha una dimensione temporale): discorso analogo a [Years] ma in
questo caso si potrebbe usare direttamente un grafico a linee che mostri
l’andamento nei 12 mesi sales=[int], mostra il numero totale di vendite:
possiamo utilizzare un grafico a barre per mostrare la differenza tra il
numero totale di vendite rispetto al numero di annunci attivi; oppure
possiamo verificare tramite un line chart se esistono dei mesi in cui vi
è una tendenza maggiore nel pubblicare annunci volume=[num], valore
totale delle vendite: possiamo comparare il volume delle vendite negli
anni o nei mesi per le rispettive città median_price=[num] prezzo
mediano di vendita: possiamo effettuare un’analisi per verificare se il
prezzo mediano di vendità è variato negli anni o se questo differisce
tra le rispettive città listings=[int], numero totale di annunci attivi
months_inventory=[num], quantità di tempo necessaria per vendere tutte
le inserzioni correnti, espresso in mesi: possiamo verificare se il
tempo di vendita è cambiato negli anni o mesi, e la differenza nelle
rispettive città
#####punto 2: indici di posizione, variabilità e forma####
summary(data) #la maggior parte delle statistiche può essere effettuata usando semplicemente la funzione summary
## 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
#indici di posizione
#media e mediana delle variabili numeriche
sales <- data$sales
mean_sales=sum(sales)/length(sales)
median_sales=median(sales)
volume <- data$volume
mean_volume=sum(volume)/length(volume)
median_volume=median(volume)
median_price <- data$median_price
mean_median_price=sum(median_price)/length(median_price)
median_median_price=median(median_price)
listings <- data$listings
mean_listings=sum(listings)/length(listings)
median_listings=median(listings)
months_inventory <- data$months_inventory
mean_months_inventory=sum(months_inventory)/length(months_inventory)
median_inventory=median(months_inventory)
#varianza e deviazione standard
variance_sales=var(sales)
dev_std_sales=sqrt(variance_sales)
variance_volume=var(volume)
dev_std_volumes= sqrt(variance_volume)
variance_median_price=var(median_price)
dev_std_median_price= sqrt(variance_median_price)
variance_listings=var(listings)
dev_std_listings= sqrt(variance_listings)
variance_months_inventory=var(months_inventory)
dev_std_months_inventory= sqrt(variance_months_inventory)
#indici di posizione
seq=seq(from=0,to=1,by=0.01)
quantile_sales=quantile(sales)
percentile_sales=quantile(sales,c(seq))
quantile_volume=quantile(volume)
percentile_volume=quantile(volume,c(seq))
quantile_median_price=quantile(median_price)
percentile_median_price=quantile(median_price,c(seq))
quantile_listings=quantile(listings)
percentile_listings=quantile(listings,c(seq))
quantile_months_inventory=quantile(months_inventory)
percentile_months_inventory=quantile(months_inventory,c(seq))
#indici di forma
asimmetria <- function(variabile){
mu <- mean(variabile)
len<-length(variabile)
sigma<-sd(variabile)
m3 <- sum((variabile-mu)^3)/len
fisher_index <- m3/sigma^3
hist(variabile, main = "Distribuzione della variabile", col = "lightblue", border = "white")
abline(v=mu,col="red")
return(fisher_index)
}
asimmetria(sales)
## [1] 0.7136206
#possiamo notare come la variabile sales abbia una distribuzione asimmetrica, nello specifico vi è una maggiore frequenza di valori nella coda sinistra, è possibile notarlo sia graficamente che dal valore dell'indice di fisher: 0.7136206
asimmetria(volume)
## [1] 0.8792182
#possiamo notare come la variabile volume abbia una distribuzione asimmetrica, nello specifico vi è una maggiore frequenza di valori nella coda sinistra, è possibile notarlo sia graficamente che dal valore dell'indice di fisher: 0.8792182
asimmetria(median_price)
## [1] -0.3622768
#possiamo notare come la variabile volume abbia una distribuzione asimmetrica, nello specifico vi è una maggiore frequenza di valori nella coda destra, è possibile notarlo sia graficamente che dal valore dell'indice di fisher: -0.3622768
asimmetria(listings)
## [1] 0.6454431
#possiamo notare come la variabile volume abbia una distribuzione asimmetrica, nello specifico vi è una maggiore frequenza di valori nella coda sinistra, è possibile notarlo sia graficamente che dal valore dell'indice di fisher: 0.6454431
asimmetria(months_inventory)
## [1] 0.04071944
#la variabile moths_inventory ha un valore dell'indice di fisher pari a 0.04071944, confermando quanto vediamo graficamente: non vi è un'asimmetria così marcarta
curtosi <- function(variabile){
mu <- mean(variabile)
len<-length(variabile)
sigma<-sd(variabile)
m4 <- sum((variabile-mu)^4)/len
fisher_index <- m4/sigma^4-3
return(fisher_index)
}
curtosi(sales)
## [1] -0.33552
#il valore dell'indice di fisher relativo alla curtosi è di: -0.33552; questo indica che la distribuzione della variabile sales è più piatta rispetto a una distribuzione normale (meno valori estremi)
curtosi(volume)
## [1] 0.1505673
#il valore dell'indice di fisher relativo alla curtosi è di: 0.1505673; questo indica che la distribuzione della variabile volume è leggermente più appuntita rispetto a una distribuzione normale (tendenzialmente ha più valori estremi, anche se di poco visto il valore dell'indice)
curtosi(median_price)
## [1] -0.6427292
#il valore dell'indice di fisher relativo alla curtosi è di: -0.6427292; questo indica che la distribuzione della variabile median_price è più piatta rispetto a una distribuzione normale (meno valori estremi)
curtosi(listings)
## [1] -0.8101534
#il valore dell'indice di fisher relativo alla curtosi è di: -0.8101534; questo indica che la distribuzione della variabile listings è più piatta rispetto a una distribuzione normale (meno valori estremi)
curtosi(months_inventory)
## [1] -0.1979448
#il valore dell'indice di fisher relativo alla curtosi è di: -0.1979448; questo indica che la distribuzione della variabile months_inventory è più piatta rispetto a una distribuzione normale (meno valori estremi, anche se di poco visto il valore dell'indice)
#distribuzione di frequenza per le variabili city, year e month
distribuzione_frequenza <- function(var,n) {
ni <- table(var)
fi <- table(var)/n
Ni <- cumsum(ni)
Fi <- Ni/n
distr <- cbind(ni,fi,Ni,Fi)
return(distr)
}
city_distr_freq <- distribuzione_frequenza(data$city,n)
year_distr_freq <- distribuzione_frequenza(data$year,n)
month_distr_freq <- distribuzione_frequenza(data$month,n)
#le variabili sono distribuite in modo equo lungo tutte le rispettive classi, nello specifico per la variabile city: 0.25 per ogni classe (60 osservazioni su un totale di 240); year: 0.20 per ogni classe (48 su 240); month: 0.083 per ogni classe (20 su 240)
####punto 3: indentificazione variabili con maggiore variabilità e asimmetria ####
coefficiente_variazione <- function(media,dev){
coef <- dev/media
return(coef)
}
sales_coef_var <- coefficiente_variazione(mean_sales,dev_std_sales)
volume_coef_var <- coefficiente_variazione(mean_volume,dev_std_volumes)
median_price_coef_var <- coefficiente_variazione(mean_median_price,dev_std_median_price)
listings_coef_var <- coefficiente_variazione(mean_listings,dev_std_listings)
months_inventory_coef_var <- coefficiente_variazione(mean_months_inventory,dev_std_months_inventory)
#osservando i valori dei coefficienti di variazione delle rispettive variabili possiamo evidenziare come la variabile [volume] sia quella che ha la variabilità maggiore (volume_coef_var= 0.5370536)
#la variabile con la maggiore asimmetria è [volume], nello specifico ha più valori nella coda sinistra della sua distribuzione. risulta quella più asimmetrica perchè ha il valore assoluto dell'indice di fisher più alto: 0.8792182
#### punto 4: creazione di classi per una variabile quantitativa ####
nomi_classi <- c("<=100k","100-120k","120-140k","140-160kg","160-180k")
breaks <- c(0,100000,120000,140000,160000,180001)
new_median_price <- cut(data$median_price, breaks = breaks, label=nomi_classi, right = FALSE)
count_new_median_price <- table(new_median_price)
new_median_price_distr_freq <- distribuzione_frequenza(new_median_price,n)
n_frequenze_median_price <- new_median_price_distr_freq[,1]
barplot(n_frequenze_median_price,
main="Distribuzione frequenza di Median Price",
xlab = "Prezzo delle case espresso i migliaia di dollari",
ylab = "Frequenze assolute",
col= "lightblue")
gini <- function(var){
ni <- table(var)
fi <- ni/length(var)
fi2 <- fi^2
j <- length(ni)
gini = 1-sum(fi2)
gini.normalizzato = gini/((j-1)/j)
return(gini.normalizzato)
}
gini_median_price <- gini(data$median_price)
table(data$median_price)
##
## 73800 82100 85900 86400 87000 87200 87500 88600 89400 90000 90800
## 1 1 1 1 1 1 1 1 1 2 1
## 91200 91700 92200 93000 94000 95000 96000 96700 97500 99300 99600
## 1 1 1 1 1 1 1 1 2 1 1
## 1e+05 100700 101400 102300 102500 102900 103800 104700 105000 105200 105800
## 2 2 1 3 2 1 1 2 1 2 1
## 106700 108000 108300 109100 109400 110000 111100 112100 113300 113600 114000
## 1 1 1 1 1 2 2 1 1 1 1
## 114300 115700 116000 116500 116700 117500 118200 118800 119200 120000 120600
## 1 1 1 1 1 1 1 2 1 1 1
## 120700 121100 121200 121300 121800 122400 122800 123100 123200 123800 124200
## 1 2 1 1 1 1 1 1 1 1 1
## 124300 126100 126200 127000 128100 128200 128800 129100 129200 129400 129600
## 2 1 1 1 1 1 1 1 1 1 1
## 130000 130700 130800 131200 131400 131500 132100 132400 132500 132800 132900
## 4 2 2 1 1 1 1 1 2 1 1
## 133200 133300 133600 133800 134100 134200 134300 134400 134500 134700 135000
## 2 1 1 1 2 2 1 1 2 1 1
## 135100 135300 135700 136000 136100 136300 136800 137600 138200 138300 138500
## 1 1 2 1 1 1 1 1 1 1 1
## 138900 139200 139400 139600 140000 140500 140600 140700 142000 142200 142400
## 1 1 1 1 2 1 1 1 1 1 2
## 142700 143100 143600 144000 144100 144600 144800 144900 145000 145800 146700
## 1 1 1 1 2 2 2 1 1 1 1
## 146900 147000 147400 147600 147700 147900 148100 148300 148400 148500 148700
## 1 1 1 1 1 1 1 1 1 2 1
## 148900 149100 149300 149400 150000 150200 150700 151000 151200 151500 151700
## 1 1 2 1 1 1 1 1 1 1 1
## 151900 152000 152100 152200 152300 152600 153100 153300 153900 154300 154400
## 1 1 2 1 1 1 2 1 1 1 1
## 155200 155300 155500 155600 155700 156200 156400 156500 156600 157300 158200
## 2 2 1 2 1 1 1 3 1 1 1
## 158800 159300 159400 159700 161000 161200 161400 161600 163700 163800 165200
## 1 1 1 1 2 1 1 1 1 1 1
## 165300 166100 167300 168500 169500 169600 170000 172200 172600 172800 176100
## 1 1 1 1 1 1 1 1 1 1 1
## 177300 180000
## 1 1
gini_sales <- gini(data$sales)
table(data$sales)
##
## 79 80 81 83 89 90 91 92 93 94 95 96 97 98 100 101 102 104 105 107
## 2 1 1 1 3 1 1 1 2 2 1 1 2 1 1 3 2 1 1 1
## 108 109 110 111 112 113 114 115 116 117 119 121 122 123 124 125 127 128 129 130
## 3 1 2 2 1 2 2 2 1 1 2 1 1 2 5 2 2 2 1 3
## 131 132 134 135 137 140 141 143 144 146 147 148 149 150 151 152 155 159 160 162
## 1 2 1 3 1 2 1 3 1 1 1 2 3 4 1 1 2 3 3 2
## 163 164 165 166 167 169 170 171 173 174 175 176 177 180 181 182 186 187 188 189
## 2 2 1 2 1 2 1 1 1 1 1 2 2 1 2 4 3 1 1 2
## 190 193 196 197 198 200 202 204 206 208 209 210 212 213 218 220 224 225 227 232
## 1 2 2 2 2 2 3 1 1 2 1 1 2 1 2 1 1 1 2 1
## 233 234 238 239 241 244 246 250 253 254 255 258 260 262 267 271 272 273 275 278
## 1 1 3 1 1 2 2 1 3 1 1 1 1 2 1 2 1 1 1 1
## 281 282 284 286 287 289 292 293 294 295 296 298 300 302 303 313 316 317 322 323
## 1 3 1 1 1 3 1 1 1 1 1 2 1 1 1 1 1 1 1 1
## 326 328 332 335 341 347 353 357 361 369 371 377 388 402 403 423
## 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1
#entrambe le variabili mostrano una distribuzione fortemente eterogena, evidenziando valori dell'indice di gini prossimi a 1.
#### punto 5: calcolo delle probabilità ####
#Qual è la probabilità che, presa una riga a caso di questo dataset, essa riporti la città “Beaumont”? la probabilità è del 25%
città<- table(data$city)
n_bea<- as.numeric(città["Beaumont"])
prob_bea <- n_bea/n
#E la probabilità che riporti il mese di Luglio? la probabilità è dell'8,33%
mesi <- table(data$month)
n_luglio <- as.numeric(mesi[7])
prob_luglio <- n_luglio/n
#E la probabilità che riporti il mese di dicembre 2012? la probabilità è pari al 3,33%
anno2012_dicembre <- data[data$year == 2012 & data$month==12,]
n_2012_dicembre <- length(anno2012_dicembre)
prob_2012_dicembre <- n_2012_dicembre/n
#### punto 6: nuove variabili ####
#prezzo medio (sales/volume)
#View(data)
data$prezzo_medio <- (data$volume/data$sales)*1000000
summary(data$prezzo_medio)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 97010 132939 156588 154320 173915 213234
#efficacia annunci di vendita (sales/listings)
data$efficacia_annunci <- data$sales/data$listings
summary(data$efficacia_annunci)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.05014 0.08980 0.10963 0.11874 0.13492 0.38713
#### punto 7: analisi condizionata ####
#utilizzo la variabile prezzo medio ottenuta precedentemente
library("dplyr")
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library("ggplot2")
#per città
data_bea <- data %>% filter(city=="Beaumont")
data_wichita <- data %>% filter(city=="Wichita Falls")
data_tyler <- data %>% filter(city=="Tyler")
data_bryan <- data %>% filter(city=="Bryan-College Station")
#calcolo media e deviazione stanrdard, rappresentando i valori in migliaia di dollari
mean_prezzo_m_bea <- mean(data_bea$prezzo_medio)/1000
dev_prezzo_m_bea <- sd(data_bea$prezzo_medio)/1000
mean_prezzo_m_wichita <- mean(data_wichita$prezzo_medio)/1000
dev_prezzo_m_wichita <- sd(data_wichita$prezzo_medio)/1000
mean_prezzo_m_tyler <- mean(data_tyler$prezzo_medio)/1000
dev_prezzo_m_tyler <- sd(data_tyler$prezzo_medio)/1000
mean_prezzo_m_bryan <- mean(data_bryan$prezzo_medio)/1000
dev_prezzo_m_bryan <- sd(data_bryan$prezzo_medio)/1000
df_citta <- data.frame(
citta = c("Beaumont","Wichita Falls","Tyler","Bryan-College Station"),
media_prezzo_medio = c(mean_prezzo_m_bea,mean_prezzo_m_wichita,mean_prezzo_m_tyler,mean_prezzo_m_bryan),
dev_prezzo_medio = c(dev_prezzo_m_bea,dev_prezzo_m_wichita,dev_prezzo_m_tyler,dev_prezzo_m_bryan)
)
ggplot(data=df_citta)+
geom_bar(aes(x=citta,y=media_prezzo_medio),fill="red3",col="black",stat="identity",lwd=0.5)+
labs(x="prezzo medio (mean)",y="città",title="prezzo medio per città (in migliaia)")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplot(data=df_citta)+
geom_bar(aes(x=citta,y=dev_prezzo_medio),fill="blue3",col="black",stat="identity",lwd=0.5)+
labs(x="deviazione standard",y="città",title="dev std del prezzo per città")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
#per anno
data_2010<- data %>% filter(year=="2010")
data_2011<- data %>% filter(year=="2011")
data_2012<- data %>% filter(year=="2012")
data_2013<- data %>% filter(year=="2013")
data_2014<- data %>% filter(year=="2014")
mean_prezzo_m_2010 <- mean(data_2010$prezzo_medio)/1000
dev_prezzo_m_2010<- sd(data_2010$prezzo_medio)/1000
mean_prezzo_m_2011 <- mean(data_2011$prezzo_medio)/1000
dev_prezzo_m_2011<- sd(data_2011$prezzo_medio)/1000
mean_prezzo_m_2012 <- mean(data_2012$prezzo_medio)/1000
dev_prezzo_m_2012<- sd(data_2012$prezzo_medio)/1000
mean_prezzo_m_2013 <- mean(data_2013$prezzo_medio)/1000
dev_prezzo_m_2013 <- sd(data_2013$prezzo_medio)/1000
mean_prezzo_m_2014 <- mean(data_2014$prezzo_medio)/1000
dev_prezzo_m_2014 <- sd(data_2014$prezzo_medio)/1000
df_anno <- data.frame(
anno = c("2010","2011","2012","2013","2014"),
media_prezzo_medio = c(mean_prezzo_m_2010,mean_prezzo_m_2011,mean_prezzo_m_2012,mean_prezzo_m_2013,mean_prezzo_m_2014),
dev_prezzo_medio = c(dev_prezzo_m_2010,dev_prezzo_m_2011,dev_prezzo_m_2012,dev_prezzo_m_2013,dev_prezzo_m_2014)
)
ggplot(data=df_anno)+
geom_bar(aes(x=anno,y=media_prezzo_medio),fill="red3",col="black",stat="identity",lwd=0.5)+
labs(x="prezzo medio",y="anno",title="prezzo medio per anno (in migliaia)")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplot(data=df_anno)+
geom_bar(aes(x=anno,y=dev_prezzo_medio),fill="blue3",col="black",stat="identity",lwd=0.5)+
labs(x="deviazione standard",y="anno",title="dev std del prezzo per anno")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
#per quadrimestre
data_first_quart <- data %>% filter(month==c("1","2","3","4"))
data_second_quart <- data %>% filter(month==c("5","6","7","8"))
data_third_quart <- data %>% filter(month==c("9","10","11","12"))
mean_prezzo_m_first_quart <- mean(data_first_quart$prezzo_medio)/1000
dev_prezzo_m_first_quart <- sd(data_first_quart$prezzo_medio)/1000
mean_prezzo_m_second_quart <- mean(data_second_quart$prezzo_medio)/1000
dev_prezzo_m_second_quart <- sd(data_second_quart$prezzo_medio)/1000
mean_prezzo_m_third_quart <- mean(data_third_quart$prezzo_medio)/1000
dev_prezzo_m_third_quart <- sd(data_third_quart$prezzo_medio)/1000
df_quadrimestre <- data.frame(
quarter = c("first quarter","second quarter","third quarter"),
media_prezzo_medio = c(mean_prezzo_m_first_quart,mean_prezzo_m_second_quart,mean_prezzo_m_third_quart),
dev_prezzo_medio = c(dev_prezzo_m_first_quart,dev_prezzo_m_second_quart,dev_prezzo_m_third_quart)
)
ggplot(data=df_quadrimestre)+
geom_bar(aes(x=quarter,y=media_prezzo_medio),fill="red3",col="black",stat="identity",lwd=0.5)+
labs(x="prezzo medio",y="anno",title="prezzo medio per quadrimestre (in migliaia)")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplot(data=df_quadrimestre)+
geom_bar(aes(x=quarter,y=dev_prezzo_medio),fill="blue3",col="black",stat="identity",lwd=0.5)+
labs(x="deviazione standard",y="anno",title="dev std del prezzo per quadrimestre")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
#### punto 8 ####
#visualizzazioni con ggplot2
ggplot(data=data)+
geom_boxplot(aes(x=city,y=median_price),fill="green",lwd=0.5)+
labs(x="città",y="prezzo mediano in $",title="prezzo mediano tra città (in millioni)")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
"possiamo osservare come il prezzo mediano di Bryan-College Station sia il più alto, mentre Wichitia Falls ha il prezzo mediano più basso tra le città analizzate"
## [1] "possiamo osservare come il prezzo mediano di Bryan-College Station sia il più alto, mentre Wichitia Falls ha il prezzo mediano più basso tra le città analizzate"
ggplot(data=data)+
geom_bar(aes(x=city,y=sales),fill="lightblue3",stat="identity")+
labs(x="città",y="totale vendite",title="totale vendite per città")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
"possiamo evidenziare che Tyler è la città con il numero più alto di vendite (oltre 15k), mentre la città con il numero di vendite più basso è Wichitia Falls"
## [1] "possiamo evidenziare che Tyler è la città con il numero più alto di vendite (oltre 15k), mentre la città con il numero di vendite più basso è Wichitia Falls"
ggplot(data=data)+
geom_bar(aes(x=month,y=sales),fill="lightblue3",stat="identity")+
labs(x="mese",y="totale vendite",title="totale vendite per mese")+
scale_x_continuous(breaks = seq(1,12,1))+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
"l'intervallo temporale tra aprile e agosto è il periodo in cui si registrano il maggior numero di vendite, mentre gennaio e febbraio sono i mesi in cui abbiamo il numero di vendite più basso"
## [1] "l'intervallo temporale tra aprile e agosto è il periodo in cui si registrano il maggior numero di vendite, mentre gennaio e febbraio sono i mesi in cui abbiamo il numero di vendite più basso"
data$date_string <- paste(data$year,data$month,"01",sep="-")
data$date <- as.Date(data$date_string, format = "%Y-%m-%d")
ggplot(data=data)+
geom_line(aes(x=date,y=sales),color="blue")+
labs(x="mese",y="totale vendite",title="totale vendite per mese")+
scale_x_date(date_breaks = "4 month",date_labels = "%Y-%m")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
#### ulteriori osservazioni operative ####
#1:
ggplot(data=data)+
geom_boxplot(aes(x=city,y=sales),fill="green",lwd=0.5)+
labs(x="città",y="vendite",title="numero delle vendite tra le città")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplot(data=data)+
geom_boxplot(aes(x=factor(year),y=sales),fill="green",lwd=0.5)+
labs(x="anni",y="vendite",title="numero delle vendite negli anni")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
"possiamo osservare un trend in crescita del numero di vendite negli anni (dal 2012 al 2014)"
## [1] "possiamo osservare un trend in crescita del numero di vendite negli anni (dal 2012 al 2014)"
#2:
ggplot(data = data)+
geom_bar(aes(x=city,y=sales, fill = factor(month)),
stat = "identity", position = "stack")+
labs(title="totale delle vendite per le città e i mesi",
x = "città",
y = "vendite",
fill="mese")+
theme(legend.position = "bottom")
#3:
ggplot(data = data)+
geom_bar(aes(x=city,y=sales, fill = factor(month)),
stat = "identity", position = "fill")+
labs(title="totale delle vendite per le città e i mesi",
x = "città",
y = "vendite",
fill="mese")+
scale_y_continuous(labels=scales::percent)+
theme(legend.position = "bottom")
ggplot(data = data)+
geom_bar(aes(x=interaction(city,year),y=sales, fill = factor(month)),
stat = "identity", position = "fill")+
labs(title="totale delle vendite per le città e i mesi",
x = "città",
y = "vendite",
fill="mese")+
scale_y_continuous(labels=scales::percent)+
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
theme(legend.position = "bottom")
#4:
ggplot(data=data)+
geom_line(aes(x=date,y=prezzo_medio,color=city))+
labs(x="mese",y="prezzo medio",title="prezzo medio per mese tra le città")+
scale_x_date(date_breaks = "4 month",date_labels = "%Y-%m")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
"il grafico mostra dei valori piuttosto volatili durante tutto il periodo preso in cosiderazione, possiamo evidenziare che le città di Bryan-College e Tyler nel 2014 hanno dei valori del prezzo medio più alti rispetto al 2010; mentre le città di Beaumont e Wichita Falls hanno dei valori più bassi rispetto ai dati iniziali"
## [1] "il grafico mostra dei valori piuttosto volatili durante tutto il periodo preso in cosiderazione, possiamo evidenziare che le città di Bryan-College e Tyler nel 2014 hanno dei valori del prezzo medio più alti rispetto al 2010; mentre le città di Beaumont e Wichita Falls hanno dei valori più bassi rispetto ai dati iniziali"
ggplot(data=data)+
geom_line(aes(x=date,y=efficacia_annunci,color=city))+
labs(x="mese",y="efficacia annunci",title="efficacia annunci per mese tra le città")+
scale_x_date(date_breaks = "4 month",date_labels = "%Y-%m")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
"il grafico evidenzia come sia aumentata l'efficacia degli annunci per la città di Bryan-College durante il periodo analizzato: si è arrivati a un tasso di efficacia vicino al 40% nell'ultimo anno, a differenza delle restanti città che hanno avuto dei risultati abbastanza simili senza mai superare il 20%"
## [1] "il grafico evidenzia come sia aumentata l'efficacia degli annunci per la città di Bryan-College durante il periodo analizzato: si è arrivati a un tasso di efficacia vicino al 40% nell'ultimo anno, a differenza delle restanti città che hanno avuto dei risultati abbastanza simili senza mai superare il 20%"
ggplot(data=data)+
geom_line(aes(x=date,y=median_price,color=city))+
labs(x="mese",y="prezzo mediano",title="prezzo mediano per mese tra le città")+
scale_x_date(date_breaks = "4 month",date_labels = "%Y-%m")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
"il grafico evidenzia come si è distribuito nel periodo 2010-2014 il prezzo mediano tra le città: le città di Bryan-College e Tyler mostrano un aumento del prezzo mediano rispetto ai dati iniziali; la città di Beaumont ha mantenuto valori simili o leggermente inferiori durante il periodo; Wichita Falls è la città che ha mostrato l'andamento più volatile, senza mostrare però una crescita"
## [1] "il grafico evidenzia come si è distribuito nel periodo 2010-2014 il prezzo mediano tra le città: le città di Bryan-College e Tyler mostrano un aumento del prezzo mediano rispetto ai dati iniziali; la città di Beaumont ha mantenuto valori simili o leggermente inferiori durante il periodo; Wichita Falls è la città che ha mostrato l'andamento più volatile, senza mostrare però una crescita"
ggplot(data=data)+
geom_line(aes(x=date,y=sales,color=city))+
labs(x="mese",y="numero vendite",title="numero vendite per mese tra le città")+
scale_x_date(date_breaks = "4 month",date_labels = "%Y-%m")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
"il grafico del numero di vendite tra le città mostra che le città di Tyler, Bryan-College e Beaumont sono quelle che hanno aumentato il loro numero di vendite nel tempo, mentre Wichita Falls le ha addirittura ridotte dopo un aumento iniziale"
## [1] "il grafico del numero di vendite tra le città mostra che le città di Tyler, Bryan-College e Beaumont sono quelle che hanno aumentato il loro numero di vendite nel tempo, mentre Wichita Falls le ha addirittura ridotte dopo un aumento iniziale"