Essa atividade foi proposta como avaliação final, par a discilina “Estatística aplicada à Engenharia” ministrada pelo professor Steven Dutt-Ross. A cidade de São Paulo, possui cerca de 12 milhões de habitantes, que se distribuem em prédios e casas ao longo de 1,5 mil quilômetros quadrados, que são divididos em bairros muito diferentes entre si, em termos de perfil, mobilidade e custos. Sabe-se que o custo de vida em São Paulo é um dos maiores do Brasil, comparado a outras capitais,perdendo apenas para algumas cidades do sul, como Florianópolis. Segundo o blog Lofts, São Paulo se apresenta como a maior cidade do Brasil, e a oitava mais populosa do mundo. Como acolhe em seu território uma grande diversidade de empresas, possui uma enorme variedade de atividades, como cinemas, teatros, shoppings, restaurantes, bares, museus, parques, e afin, isso confere a ela uma fama de cidade que nunca dorme.
E é neste contexto que nasce a proposta do presente estudo, elaborar pesquisas que ajudem no custo de vida em São Paulo, pelo menos no quesito moradia.
Para que o estudo se mostrassse amplo, usou-se como base de dados, imóveis disponíveis para venda assim como os disponíveis para locação, com o objetivo de atingir o maior número ppossível de interessados na pesquisa.
O objetivo do presente estudo é avaliar o custo com moradia, medindo a partir de ofertas imobiliárias disponiveis, tanto para aquisição como locação. Para amplicar as informações, a pesquisa envolveu caracteristicas dos referidos imóveis, criando uma base de análise com base nessas diferenças.
A metodologia do presente estudo possui as seguintes etapas: Inicialmente, foi necessário selecionar e carregar a base de dados para o ambiente do RStudio. A fonte selecionada foi a plataforma de dados sugerida pelo professor da disciplina, denominada Kaggle. Kaggle é uma das mais conhecidas plataformas para competições de Data Science. A plataforma foi fundada em 2010 por Anthony Goldbloom, e em 2017 foi adquirida pelo Google (Alphabet).
A base de dados foi devidamente carregada, conforme tabela a seguir.
library(readr)
archive <- read_csv("C:/Users/Cliente/Downloads/archive.zip")
##
## -- Column specification --------------------------------------------------------
## cols(
## Price = col_double(),
## Condo = col_double(),
## Size = col_double(),
## Rooms = col_double(),
## Toilets = col_double(),
## Suites = col_double(),
## Parking = col_double(),
## Elevator = col_double(),
## Furnished = col_double(),
## `Swimming Pool` = col_double(),
## New = col_double(),
## District = col_character(),
## `Negotiation Type` = col_character(),
## `Property Type` = col_character(),
## Latitude = col_double(),
## Longitude = col_double()
## )
View(archive)
str(archive)
## spec_tbl_df [13,640 x 16] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ Price : num [1:13640] 930 1000 1000 1000 1300 1170 1000 900 1000 1000 ...
## $ Condo : num [1:13640] 220 148 100 200 410 0 180 150 0 0 ...
## $ Size : num [1:13640] 47 45 48 48 55 50 52 40 65 100 ...
## $ Rooms : num [1:13640] 2 2 2 2 2 2 1 2 2 2 ...
## $ Toilets : num [1:13640] 2 2 2 2 2 2 2 2 2 2 ...
## $ Suites : num [1:13640] 1 1 1 1 1 1 1 1 1 1 ...
## $ Parking : num [1:13640] 1 1 1 1 1 1 1 1 1 1 ...
## $ Elevator : num [1:13640] 0 0 0 0 1 0 1 0 0 0 ...
## $ Furnished : num [1:13640] 0 0 0 0 0 0 0 0 0 0 ...
## $ Swimming Pool : num [1:13640] 0 0 0 0 0 0 0 0 0 0 ...
## $ New : num [1:13640] 0 0 0 0 0 0 0 0 0 0 ...
## $ District : chr [1:13640] "Artur Alvim/São Paulo" "Artur Alvim/São Paulo" "Artur Alvim/São Paulo" "Artur Alvim/São Paulo" ...
## $ Negotiation Type: chr [1:13640] "rent" "rent" "rent" "rent" ...
## $ Property Type : chr [1:13640] "apartment" "apartment" "apartment" "apartment" ...
## $ Latitude : num [1:13640] -23.5 -23.6 -23.5 -23.5 -23.5 ...
## $ Longitude : num [1:13640] -46.5 -46.5 -46.5 -46.5 -46.5 ...
## - attr(*, "spec")=
## .. cols(
## .. Price = col_double(),
## .. Condo = col_double(),
## .. Size = col_double(),
## .. Rooms = col_double(),
## .. Toilets = col_double(),
## .. Suites = col_double(),
## .. Parking = col_double(),
## .. Elevator = col_double(),
## .. Furnished = col_double(),
## .. `Swimming Pool` = col_double(),
## .. New = col_double(),
## .. District = col_character(),
## .. `Negotiation Type` = col_character(),
## .. `Property Type` = col_character(),
## .. Latitude = col_double(),
## .. Longitude = col_double()
## .. )
Considerando que o trabalho se apresenta com a finalidade de auxilio a moradores e possíveis moradores de uma cidade brasileira, São Paulo, julgou-se útiltraduzir os nomes das variáveis para o idioma nacional, o portugues.
nomes <- c("Preço","Condominio","Tamanho","Quarto", "Banheiro", "Suítes","Estacionamento","Elevador","Finalizada","Piscina",
"Novo","Bairro","TipoNegociacao","TipoPropriedade", "Latitude","Longitude")
names(archive)<-nomes
Observando a Base de Dados, após a tradução.
str(archive)
## spec_tbl_df [13,640 x 16] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ Preço : num [1:13640] 930 1000 1000 1000 1300 1170 1000 900 1000 1000 ...
## $ Condominio : num [1:13640] 220 148 100 200 410 0 180 150 0 0 ...
## $ Tamanho : num [1:13640] 47 45 48 48 55 50 52 40 65 100 ...
## $ Quarto : num [1:13640] 2 2 2 2 2 2 1 2 2 2 ...
## $ Banheiro : num [1:13640] 2 2 2 2 2 2 2 2 2 2 ...
## $ Suítes : num [1:13640] 1 1 1 1 1 1 1 1 1 1 ...
## $ Estacionamento : num [1:13640] 1 1 1 1 1 1 1 1 1 1 ...
## $ Elevador : num [1:13640] 0 0 0 0 1 0 1 0 0 0 ...
## $ Finalizada : num [1:13640] 0 0 0 0 0 0 0 0 0 0 ...
## $ Piscina : num [1:13640] 0 0 0 0 0 0 0 0 0 0 ...
## $ Novo : num [1:13640] 0 0 0 0 0 0 0 0 0 0 ...
## $ Bairro : chr [1:13640] "Artur Alvim/São Paulo" "Artur Alvim/São Paulo" "Artur Alvim/São Paulo" "Artur Alvim/São Paulo" ...
## $ TipoNegociacao : chr [1:13640] "rent" "rent" "rent" "rent" ...
## $ TipoPropriedade: chr [1:13640] "apartment" "apartment" "apartment" "apartment" ...
## $ Latitude : num [1:13640] -23.5 -23.6 -23.5 -23.5 -23.5 ...
## $ Longitude : num [1:13640] -46.5 -46.5 -46.5 -46.5 -46.5 ...
## - attr(*, "spec")=
## .. cols(
## .. Price = col_double(),
## .. Condo = col_double(),
## .. Size = col_double(),
## .. Rooms = col_double(),
## .. Toilets = col_double(),
## .. Suites = col_double(),
## .. Parking = col_double(),
## .. Elevator = col_double(),
## .. Furnished = col_double(),
## .. `Swimming Pool` = col_double(),
## .. New = col_double(),
## .. District = col_character(),
## .. `Negotiation Type` = col_character(),
## .. `Property Type` = col_character(),
## .. Latitude = col_double(),
## .. Longitude = col_double()
## .. )
View(archive)
A base de dados consiste em uma amostra, de cerca de 13.640 apartamentos, localiados na cidade de São Paulo,disponíveis para venda e também para aluguel. Esses dados foram coletados, anonimamente, por uma pequena imobiliária localizada na cidade de Canoas, no Rio Grande do Sul, por motivação imobiliária, e que serve de norteador aos usuários do setor imobiliário, nesta cidade.
Foi considerado neste estudo, o quantitativo de 16 variáveis, sendo representadas por 16 caracteríscas dos imóveis, como por exemplo, o numero de quartos, número de banheiros, valor da despesa com condominio, se possui vaga de garagem, entre outras. Os dados coletados possuem diversas fontes, especialmente sites de classificados imobiliários, anunciados em abril de 2019.
As 16 variáveis são:
As variáveis “elevador”, “piscina” e “novo” estão representadas de forma binaria, com 1 e 0, mas ditaticamente seriam mais úteis ao trabalho, se demonstradas de forma descritiva, ou seja, com as expressões: “tem ou não tem elevador”, se é “novo ou antigo o imóvel”, e se “tem ou não tem piscina”.
dados = data.frame(archive)
dados$Elevador = ifelse(dados$Elevador==1, "Tem", "Não tem")
dados$Novo = ifelse(dados$Novo==1, "Novo", "Antigo")
dados$Piscina = ifelse(dados$Piscina==1, "Tem", "Não tem")
str(dados)
## 'data.frame': 13640 obs. of 16 variables:
## $ Preço : num 930 1000 1000 1000 1300 1170 1000 900 1000 1000 ...
## $ Condominio : num 220 148 100 200 410 0 180 150 0 0 ...
## $ Tamanho : num 47 45 48 48 55 50 52 40 65 100 ...
## $ Quarto : num 2 2 2 2 2 2 1 2 2 2 ...
## $ Banheiro : num 2 2 2 2 2 2 2 2 2 2 ...
## $ Suítes : num 1 1 1 1 1 1 1 1 1 1 ...
## $ Estacionamento : num 1 1 1 1 1 1 1 1 1 1 ...
## $ Elevador : chr "Não tem" "Não tem" "Não tem" "Não tem" ...
## $ Finalizada : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Piscina : chr "Não tem" "Não tem" "Não tem" "Não tem" ...
## $ Novo : chr "Antigo" "Antigo" "Antigo" "Antigo" ...
## $ Bairro : chr "Artur Alvim/São Paulo" "Artur Alvim/São Paulo" "Artur Alvim/São Paulo" "Artur Alvim/São Paulo" ...
## $ TipoNegociacao : chr "rent" "rent" "rent" "rent" ...
## $ TipoPropriedade: chr "apartment" "apartment" "apartment" "apartment" ...
## $ Latitude : num -23.5 -23.6 -23.5 -23.5 -23.5 ...
## $ Longitude : num -46.5 -46.5 -46.5 -46.5 -46.5 ...
Avaliando as proporções, evidencia-se que 52% dos imóveis são para aluguel enquanto 47% são imóveis para a venda. Também avaliamos que o preço mínimo do aluguel é de 480,00, como uma média de 2.000,00, e maior valor de 50.000,00, enquanto o preço médio de venda é 608.624,00, variando entre 42.000,00 e R$ 10.000.000,00 (Sendo esse identificado como um outilier).
Com isso podemos dizer que o desvio padrão dos preços de venda são superiores ao de aluguel.
Tabela_Prop <- prop.table(table(dados$TipoNegociacao))
Tabela_Prop
##
## rent sale
## 0.529912 0.470088
tapply(dados$Preço, dados$TipoNegociacao, summary)
## $rent
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 480 1350 2000 3078 3300 50000
##
## $sale
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 42000 250000 380000 608624 679000 10000000
As análises da base de dados se deram na seguinte ordem:
Primeiro foi construido dois gráficos tipo Boxplot, para o estudo de variáveis quantitativas, voltandas para o custo da moradia: valor do condominio, e tamanho dos imoveis.
Em seguida foi feita uma avaliação da correlação entre a variavel preço, com as outras variáveis quantitativas, com o objetivo de avaliar como a variável preço, se comporta em relação ao numero de quartos do imóvel, banheiro, suites, e entre outras.
Em seguida, foi construida a matriz de correlação, para medir o grau de correlação entre todas as variáveis quantitativas.
E por último, mas não menos importante foi feito o teste de hipóteses, com o mesmo objetivo, avaliar a correlação entre as variáveis, justamente para se ter um diagnóstico dos fatores que contribuiem ou não para o valor gasto pela moradia naquela cidade. Como a análise feita foi em variáveis quantitativas, primeiro realizou-se a verificação da normalidade, atraves de representações gráficas.
boxplot(dados$Tamanho,
main = 'Boxplot 1: Tamanho Total',
col = 'purple')
Analisando o gráfico acima, nota-se que existe a presença de outliers para a variável tamanho dos imóveis, com destaque para dois itens acima do valor máximo em m2. E por isso verifica-se que a variância (ou dispersão) é bem grande.
boxplot(dados$Preço,dados$Condominio,
main = 'Boxplot 2: Variáveis Diretamente Relacionadas ao Custo de Moradia',
col = c('blue','green'),
names = c('Valor(Venda ou Aluguel)', 'Valor do Condominio'))
Analisando o gráfico acima, nota-se que existe a presença de outliers nos valores dos imóveis, o que significa que no quesito aluguel/venda, existem valores muito distantes da mediada, diferente da ditribuição dos dados na variável valor do condominio.
A matriz de correlação demonstra de forma gráfica, e em valores numericos, coeficiente de correlação entre variáveis.
A Correlação é o estudo que tem por finalidade medir a direção (positivas ou negativas) e a intensidade (força) da relação linear entre duas variáveis quantitativas, ou seja, identificar o relacionamento entre elas, com o objetivo de observar se elas se mostram independentes ou variam juntas.
Para definir a intensidade e a direção dessa assossiação, calcula-se o coeficiente de correlação de Pearson (r), seguindo os parâmetros de análise abaixo descritos:
Positiva - se uma aumentar, a outra também aumenta
0,0 < r < 0,2 - baixo ou nenhuma associação
0,2 < r < 0,7 - grau fraco/moderado de associação
r > 0,7 - grau forte de associação
Negativa - se uma aumentar, a outra diminui
-0,2 < r < 0,0 - baixo ou nenhuma associação
-0,7 < r < -0,2 - grau fraco/moderado de associação
r < -0,7 - grau forte de associação
Neste estudo, medimos a correlação entre o preço cobrado pelos imóveis (seja na venda ou no aluguel), combinado com algumas variáveis, como: quantidade de quatos, quantidade de banheiros, suites privativas, tamanho total dos imóveis e quantas vagas de garagem possui. Encontramos uma correlação baixa, dessas variáveis, em relação ao preço.
cor(dados$Preço, dados$Quarto)
## [1] 0.2722671
cor(dados$Preço, dados$Banheiro)
## [1] 0.3418874
cor(dados$Preço, dados$Suítes)
## [1] 0.3132667
cor(dados$Preço, dados$Tamanho)
## [1] 0.3784496
cor(dados$Preço, dados$Estacionamento)
## [1] 0.3379593
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.1.2
## corrplot 0.92 loaded
MC <-cor(dados[,c("Preço","Quarto","Banheiro","Suítes","Estacionamento")])
corrplot.mixed(MC)
A partir da matriz de correlação é possível verificar que as variáveis banheiro e suite possuem bom grau de associação, o que de certa forma é obvio tendo em vista que parte de uma variável, é composta pela outra, porém essa informação não contribui diretamente com o objetivo do estudo, que é o de medir custo de moradia.
Nessa representação gráfica, fica evidente a pouca relação do preço com essas variáveis. Em resumo, o que está influensiando significativamente entre essas variáveis é a questão do imovel possuir vaga de garagem, e suites, pois essas variáveis também são as que mais se relacionam com o preço, em detrimento das demais.
Para atender o objetivo principal do presente estudo, desenvolvemos o teste de hipóteses, coletando da base de dados, somente variáveis do tipo quantitativas, de modo que será necessário a verificação da normalidade dos dados, para identificar o teste mais adequado, ou seja, se há normalidade total, o teste usado seria o de Pearson, já se identificado a normalidade como parcial, usaremos o teste de Spearman.
Para medir se os dados possuem distribuição normal, usaremos as representações gráficas ggplot e histograma.
qqnorm(dados$Preço, col = 'red', pch = 16)
qqline(dados$Preço)
hist(dados$Preço, main = 'Histograma Dos Preços do Imóveis',
xlab = 'Valores')
O gráfico GGPlot apresenta dados muito dispersos, totalemente fora da reta, evidenciando a anormalidade dos valores dos imóvei, como já demonstrado anteriormente com outras métricas. O mesmo vale para o histograma, que apresenta um formato muito distante de um sino, o que seria um indício da falta de normalidade dos dados, logo o teste adequado é o teste de Spearman.
A partir dos resultados obtidos, é possível concluir que o custo de vida na cidade de São Paulo é alto, não seguindo uma normalidade, e por isso com algumas exceções exageradas inclusive, devido suas proporcionalidades em relação a média, mediana e identificação dos outliers.
Os gráficos do tipo Boxplot e a matriz de correlação entre as variáveis, serviram de métricas para embasar o comportamento das variáveis entre si, corroborando com o todo para se chegar a conclusão acima descrita.
De acordo com a métricas de correlação, os imóveis mais caros, são aqueles que possuem estacionamento, o que é de se esperar visto se tratar de uma grande cidade, onde deixar o veículo na rua não é uma opção, e o tamanho dos imóveis, considerando as variáveis quantidade de suites e banheiros.
Plataforma Kaggle, disponível em https://www.kaggle.com/rsiqueiraeliane/analytics-models-pre-o-de-venda-e-aluguel-em-sp/notebook. Acesso em 14/02/2022
Blog Loft, disponível em https://blog.loft.com.br/custo-de-vida-em-sp/?utm_source=google&utm_medium=cpc&utm_campaign=sas_01_br_001_sp_0001_sao-paulo_all_aw_dsa_traffic_all_blog&utm_content=blog-sales&utm_id=11496446590&utm_placement=&utm_ad_id=498236368234&gclid=CjwKCAiA6seQBhAfEiwAvPqu10yM4STiTcBdJZi2yO3639qXJX-hHt4-78xSmZ-h6C8XVPIT6CMBzBoCcQEQAvD_BwE. acesso em 15/02/2022
Dutt-Ross, Steven: Manual de Análise de Dados- Julho/2020. http://livro.metodosquantitativos.com/docs/bookdown.pdf, acesso em 10/02/2022