Punto 1: Analisi delle variabili
setwd(“C:/Users/Marce/OneDrive/Desktop/Cartella_R”) #Impostare
cartella di lavoro
dati <- read.csv(“realestate_texas.csv”, sep=“,”) head(dati,5)
Le variabili quantitative continue sono volume, median_price e
months_inventory
(essendo con la virgola), mentre le quantitative discrete sono sales
e listing.
I nome della citta è qualitativa su scala nominale. Month è
qualitativa nominale,
“ciclica” all’interno di anni. Year teoricamente è quantitativa
continua, ma in questo caso meglio trattarla da qualitativa
ordinale.
Le variabili che indentificano il tempo posso essere relazionate con
le atre variabili,
come le vendite, i valori mediani, ecc. in modo tale da poter
generare gli andamenti nel
corso del tempoe di conseguenza fornire degli insight. Possono
essere compinate anche con
la variabile citta in grafci a barre sovrapposte, in modo tale da
avere una rappresentazione
grafica semplice e efficace.
Avendo già parlate delle variabili temporali e di come esse sono
relazionabili alle altre
variabili; per le variabile vendite (sales) e volume si può ricavare
l’andamento temporale
delle numero di vendite e del volume in milioni di dollari riferito
per città–> possibili
analisi includono calcolo degli indici di posizione e varibilità,
nonchè visualizzare la
distribuzione con un grafico per vedere se segue una distribuzione
normale o asimmetrica..
Dall’analisi del volume e del totale valore di vendità, si può
vedere si discosta rispetto al
valore mediano e fare confronti tra i prezzi mediani delle avrie
città in diversi momenti
temporali (mesi o anni9)
Per listing discorso simile a volume e sales.
months_inventory fornisce informazisce su come varia il mercato nel
tempo e quindi confronti
con città e le altre varibili sono possibili, oltre che le
distribuzioni.
Come primo step: summary su sales, volume, median_price, listings e
months_inventory
in modo da avere subito minimo, massimo, primo e terzo quartile,
media e mediana
Poi deviazione standard (non ho messo la varianza, ma è il
quadrato), coefficiente di
variazione (con relativa funzione), e range interquartile. Per
indici di forma si sono
calcolati asimmetria e kurtosi. Sono uscite 3 asimmetrie
positive(sales, volume, listings),
una negativa (median_price) e ua prossima allozero, quindi
distribuizione normale
(months_inventory). Per la kurtosi: 4 platicurtiche e una
leptocurtica (volume).
Infine distribuizione di frequenze assolute reltative sono state
fatte su city, year e months
in questo caso su sales, si sarebbe pototuto fare anche per altre
variabili. Con tutti questi
step si ha un idea abbastanza chiara della situazione dei dati e
della loro distribuizione.
Punto 3: Identificazione delle variabili con maggiore variabilità e
asimmetria
sd(sales) sd(volume) sd(median_price) sd(listings)
sd(months_inventory) CV(sales) CV(volume) CV(median_price) CV(listings)
CV(months_inventory)
Per individuare la variabile con piu variabilità si può utilizzare
l’analisi della deviazione
standard unita all’analisi del coefficient di variabilità. si trova
che la la SD piu alta è
median_price, il che indica una maggiore dispersione dei dati. il Cv
piu alto è quello di volume
Per l’asimmetria si puo usare l’indici di asimmetria di fisher, che
riporta la variabili volume
come la piu asimmetrica, positiva in questo caso.
Punto 4. Creazione di classi per una variabile quantitativa
sales_CL <- cut(dati$sales, breaks= c(79,150, 220,290,380, 423))
N<- dim(dati)[1] ni <- table(sales_CL)
fi <- ni/N
Ni <- cumsum(ni)
Fi <- Ni/N
distr_freq<- as.data.frame(cbind(ni,fi,Ni,Fi))
barplot(distr_freq$ni, main = “Distribuizione delle classi di
vendite”, xlab = “Classi di vendite”, ylab = “Frequenze assolute”, ylim
= c(0,100), col = “green”, names.arg = rownames(distr_freq))
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) }
gini.index(sales_CL)
Punto 5. Calcolo delle probabilità
f_city <- table(dati$city) probabilità1 <- f_city/N p_Beaumont
<- probabilità1[“Beaumont”]
f_month <-table(dati$month) probabilità2 <- f_month/N p_Luglio
<- probabilità2[“7”]
f_year <-table(dati$year) probabilità3 <- f_year/N p_2012 <-
probabilità3[“2012”]
P_dicembre2012 <- p_2012/12
Punto6. Creazione di nuove variabili
dati\(mean_price <-
dati\)volume/dati$sales
conversion_rate<- dati\(sales/dati\)listings norm_time <-
1/dati\(months_inventory
dati\)efficacia_annunci <- conversion_rate*norm_time
Primo comando, ho aggiunto la colonna del prezzo mezzo, facendo
valore totale vendite diviso
numero vendite, cioè la media, risultato espresso in milioni di
dollari, corenete con il prezzo
mediano. Per il secondo punto ho ragionato creando due variabili,
ovvero il rate di conversione
definito come il rapporto delle vendite sugli annunci attivi e sul
tempo normalizzato, calcolato
come il reciproco del tempo (in mesi) degli annunci per vendere le
inserzioni. Infine ho aggiunto
la colonna dell’efficacia calcolata come il prodotto tra i due.
valori alti indicano buona
efficacia, in quanto si ha ato rate e alto il reciproco dei mesi,
valori bassi indicno bassa
efficacia.
Punto 7. Analisi condizionata
install.packages(“dplyr”) library(dplyr)
analisi_condizionata1<-dati %>% group_by(city,year) %>%
summarise( media=mean(sales), dev.st=sd(sales) )
ggplot(data=analisi_condizionata1)+ (aes(x = year, y = media, color =
city)) + geom_line() + geom_point() + facet_wrap(~city) + # Crea un
grafico separato per ogni città labs(title = “Media delle Vendite per
Anno e Città”, x = “Anno”, y = “Media Vendite”, color = “Città”) +
theme_bw()
analisi_condizionata2<-dati %>% group_by(city,month) %>%
summarise( media=mean(sales), dev.st=sd(sales) )
ggplot(data=analisi_condizionata2)+ (aes(x = month, y = media, color
= city)) + geom_line() + geom_point() + facet_wrap(~city) + # Crea un
grafico separato per ogni città labs(title = “Media delle Vendite per
mese e Città”, x = “Mese”, y = “Media Vendite”, color = “Città”) +
theme_bw()
Ho generato le due analisi condizionate con le variabili anno e
città e mese e citta
rispetto alle vendite usando il pacchetto dplyr. Non ho fatto un
summary in quanto
non ne capisco il senso a questo punto. con due ggplot ho creato deu
grafici a linee
punti , creando dei grafici ad hoc per città. Diverse prove per
trovare le combinazioni
che mi soddisfacevano,
Punto 8. Creazione di visualizzazioni con ggplot2
per i grafici personalizzati, basta vedere quelli sopra.
install.packages(“ggplot2”) library(ggplot2)
boxplot(median_price~city)
ggplot(data=dati)+ geom_bar(aes(x=month, y=sales, fill=city),
position = “fill”,
stat = “summary”, fun=“mean”, col =“black”)+
labs(title= “Distribuizione delle vendite per mese e città”, x =
“Mesi”,
y = “Vendite”)+
scale_y_continuous(breaks = seq(0,450,5))+ theme_classic()
dati\(date <-
as.Date(paste(dati\)year, dati$month, “01”, sep = “-”))
ggplot(data=dati, aes(x = date, y = sales)) + geom_line() +
facet_wrap(~city) + scale_x_date(date_breaks = “1 year”, date_labels =
“%Y”) + labs( title = “Andamento nel tempo”, x = “Tempo”, y = “Vendite”
) + theme_minimal()
Punto9. Conclusioni
Sicuramente si può dire che gli anni 2013 e 2014 sono stati anni con
piu vendite e che i mesi
migliori risultano essere Maggio, Giugno e Luglio. Per quanto
riguarda le città, la cittadine
Tyler risulta essere quella dove si vendono piu immobili, mentre
Wichita Falls dove se ne
vendono meno
analisi_condizionata3<-dati %>% group_by(city,listings) %>%
summarise( media=mean(sales), dev.st=sd(sales) )
ggplot(data=analisi_condizionata3)+ (aes(x = listings, y = media,
color = city)) + geom_line() + geom_point() + facet_wrap(~city) +
labs(title = “Media delle Vendite per Città, basato sul numero delle
inserzioni”, x = “Numero Inserzioni”, y = “Media Vendite”, color =
“Città”) + theme_bw()
Con questa analisi condizionata, si vede come la media delle vendite
delle città varia in
base al numero di annunci attivi, Per Tyler si hanno tanti annunci e
tante vendite, per
Wichita Falls, pochi annunci e poche vendite, situazioni intermedie
per Beaumont e
Bryan College Station. Per quest’ ultima il numero di annunci è
relatiamente basso, ma
con un buon quantitativo di vendite, quindi il rapporto
annunci/vendite è il migliore.
boxplot(median_price~city)
Dal boxplot del prezzo mediano si vede come Bryan College Station ha
il prezzo mediano
piu alto. DAll’altra parte Wichita Falls riporta il prezzo mediano
piu basso.
BCS riporta anche riquadro centrale piu ampio, il che significa che
ha il IQR piu ampio
rispetto alle altre città.Sono presenti degli outliers per Beaumont
e Wichina Falls.
Beaumont e Tyler hanno prezzi mediani simili. Tuttavia, il riquadro
di Beaumont è più corto
di quello di Tyler, indicando una minore variabilità nel 50%
centrale dei prezzi di vendita
delle case.
boxplot(volume~city)
Da questo boxplot si nota come il valore totale delle vendite per
BCS Bryan-Colleil il più alto,
mentre WF il piu basso.BCS rivela anche la maggiore variabilità di
valore totale delle vendite
Si nota come il baffo superiore di BCS è considerevolmente più lungo
di quello inferiore,
il che indica un’asimmetria positiva. Ciò suggerisce che, sebbene la
mediana sia più alta,
ci sono anche periodi con volumi di vendita totali eccezionalmente
elevati che spingono
ulteriormente l’estremità superiore della distribuzione. Sono
presenti delgi outliner in Tyler.
boxplot(volume~year)
In questo altro boxplot si nota un andamento crescente del volume
delle vendite all’aumentare
degli ann, con il valore mediano che gradualmente sale, cosi come la
variabilità, indicando
un aumento del mercato immobiare col tempo.
ggplot(data=dati)+ geom_col(aes(x=month, y=sales, fill=city),
position = “fill”,
col =“black”)+
labs(title= “Distribuizione delle vendite per mese e città”, x =
“Mesi”,
y = “Vendite”)+
scale_y_continuous(breaks = seq(0,450,25))+ theme_classic()
Il grafico normalizzato conferma tutte le osservazioni fatte prima
sulle città e sui periodi
migliori e peggiori per le vendite.