Punto 1: Analisi delle variabili

```{setwd(“C:/Users/Marce/OneDrive/Desktop/Cartella_R”)} 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.


# Punto 2: Indici di posizione, variabilità e forma

```{attach(dati)}
summary(sales) 
summary(volume)
summary(median_price)
summary(listings)
summary(months_inventory)
sd(sales)
sd(volume)
sd(median_price)
sd(listings)
sd(months_inventory)
CV<- function(x){
  return(sd(x)/mean(x)*100)
}
CV(sales)
CV(volume)
CV(median_price)
CV(listings)
CV(months_inventory)
IQR(sales)
IQR(volume)
IQR(median_price)
IQR(listings)
IQR(months_inventory)

install.packages("moments")
library(moments)

skewness(sales)
skewness(volume)
skewness(median_price)
skewness(listings)
skewness(months_inventory)
kurtosis(sales)-3
kurtosis(volume)-3
kurtosis(median_price)-3
kurtosis(listings)-3
kurtosis(months_inventory)-3

N<- dim(dati)[1]

sales_CL <- cut(dati$sales,
                         breaks= c(79,127, 175.5,247,423)) 

table(dati$city, dati$sales_CL)
table(dati$city, dati$sales_CL)/N
table(dati$year, dati$sales_CL)
table(dati$year, dati$sales_CL)/N
table(dati$month, dati$sales_CL)
table(dati$month, dati$sales_CL)/N

# 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

che indica una variabilità maggiore rispetto la media

skewness(sales) skewness(volume) skewness(median_price) skewness(listings) skewness(months_inventory)

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
                     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à

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()

ggplot(data=dati, aes(x = month, y = sales, color = year)) + geom_line(linewidth = 2) + labs( title = “Confronto dell’andamento delle vendite tra periodi”, x = “ANni”, y = “Vendite”, color = “Mesi” ) + scale_x_continuous(breaks = 1:12, labels = month.abb) + theme_minimal()

ggplot(data=dati, aes(x = year, y = sales)) + geom_line(linewidth = 2) + labs( title = “Confronto dell’andamento delle vendite tra periodi”, x = “ANni”, y = “Vendite” ) + theme_minimal()

ggplot(data=dati, aes(x = month, y = sales)) + geom_line(linewidth = 2) + labs( title = “Confronto dell’andamento delle vendite tra periodi”, x = “Mesi”, y = “Vendite” ) + scale_x_continuous(breaks = 1:12, labels = month.abb) + theme_minimal()


# Punto 9. 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.