"Dois dias atrás, Sam Easton recebeu uma carta de entrega especial do presidente do Conselho Local dos Corretores de Imóveis. O Conselho havia recebido reclamações de duas pessoas que venderam suas casas através da Easton Imobiliária no mês passado. O presidente do Conselho informou Sam dessas queixas, dando-lhe a oportunidade de responder.
“As duas pessoas alegaram que a Easton Imobiliária havia vendido suas casas por um preço baixo para acelerar suas vendas. A primeira casa é em Arlington, tem 4 anos, tem 203 m² e foi vendida por 88.500 dólares. A segunda casa é em Fort Worth, tem 9 anos, tem 172 m² e foi vendida por 79.500. Ambas as casas em questão têm três quartos. As duas pessoas acreditam que eles teriam conseguido vender por um valor maior se a Easton Imobiliária tivesse fixado o verdadeiro valor de mercado das casas.”
O seguinte trabalha tem como objetivo apresentar um conjunto de análises estatístiscas que fundamentem a tese de defesa apresentada por Sam Easton ao Conselho Local de Corretores de Imóveis. Para tanto, os seguintes objetivos específicos serão contemplados.
A etapa de análise estátistica foi realizada com base no banco de dados formulado por Pat McCloskey, que fornece uma amostra representativa das vendas de imóveis realizadas na região metropolitana de Dallas-Forth Worth. Os 461 registros de vendas apresentados por esta base de dados apresentam sete informações que, para efeitos de análise, foram tratadas como variáveis estatísticas. São elas: o mês em que a venda foi realizada, o preço praticado, o tamanho do imóvel em metros quadrados, o número de quartos, a idade em anos, a corretora que efetuou a venda, e a localização da residência.
Inicialmente, foi montada uma matriz de correlação, com o objetivo de identificar as correlações bivariadas existentes entre as variáveis em análise. A figura 1 ilustra a matriz de correlação considerando todas as vendas realizadas na região nos últimos quatro meses.
## corrplot 0.84 loaded
Com base nos coeficientes de correlação apresentados pela figura 1, nota-se que o preço dos imóveis está fortemente correlacionado com as variáveis tamanho e localização, sendo esta correlação positiva em relação ao tamanho e negativa em relação a localização. Assim, é válido destacar que os preços das residências apresentam uma tendência de valorição a medida que que seu tamanho aumenta, e de desvalorização a medida que as vendas ocorrem em locais mais distantes do município de Dallas. Este comportamento também pode ser observado através das figuras 2 e 3, que apresentam respectivamente os gráficos boxplot do preço em função do tamanho e da localização. Outra observação relevante diz respeito a idade dos imóveis, que não geram qualquer impacto em seus preços.
## Warning: Unknown or uninitialised column: 'Classe_Tam'.
A Figura 1 ainda indica uma baixa correlação entre o preço das residências e a corretora responsável por efetuar a venda. Inicialmente, esta informação serve como um forte indício de que a Easton Imobiliária não vem subvalorizando suas vendas em relação ao mercado. Analisando os boxplots e os resumos numéricos apresentados no Apêndice I, é possível notar que, em todas as localidades, a mediana dos preços por metro quadrado praticados pela Easton apresenta um valor similar àquele fixado pelas demais empresas do mercado. Esta constatação é outro sinal importante de que, durante o período de crise no mercado imobiliário, a Easton Imobiliaria não praticou a subvalorização de suas vendas em relação às demais corretoras.
Após a realização destas análises, construiu-se um modelo de regressão linear múltipla, a fim de averiguar mais precisamente a relevância de cada uma das variáveis no preço das vendas realizadas na região. Para tanto, foi adotado um nível de significância de 5%, indicando que as varáveis que apresentarem um p-valor superior a 0.05 não afetam na formação do preço de venda das residências. A validade do modelo foi atestada pelos testes de normalidade de Shapiro-Wilk e de homogeneidade de variâncias de Breush-Pagan. Os resultados obtidos são apresentados pelos quadros 1 e 2:
##
## Call:
## lm(formula = Preco ~ Mes + Tamanho + Quartos + Idade + Corretora +
## Localizacao, data = df_imobiliarias)
##
## Residuals:
## Min 1Q Median 3Q Max
## -21039.4 -6735.3 269.9 6600.0 26901.7
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 88957.95 3416.94 26.034 <2e-16 ***
## Mes -4639.82 380.88 -12.182 <2e-16 ***
## Tamanho 596.59 19.41 30.739 <2e-16 ***
## Quartos 1292.25 892.95 1.447 0.1485
## Idade -400.26 204.84 -1.954 0.0513 .
## Corretora -2705.23 1436.95 -1.883 0.0604 .
## Localizacao -19072.44 572.39 -33.321 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9075 on 454 degrees of freedom
## Multiple R-squared: 0.8341, Adjusted R-squared: 0.832
## F-statistic: 380.6 on 6 and 454 DF, p-value: < 2.2e-16
##
## Shapiro-Wilk normality test
##
## data: res
## W = 0.99382, p-value = 0.05744
## Loading required package: carData
## Non-constant Variance Score Test
## Variance formula: ~ fitted.values
## Chisquare = 1.46636, Df = 1, p = 0.22592
Os resultados apresentados pela tabela 1 indicam que três das seis variáveis não apresentam qualquer influência no preço final das vendas realizadas na região (pois apresentam p-valor > 0.05), são elas: idade, quartos e corretora. Desta maneira, é incorreto afirmar que as vendas realizadas pela Easton Imobiliária foram propositalmente desvalorizadas em relação ao mercado, visto que a variável corretora não afeta o preço final das vendas na região. Portanto, é possível concluir que a Easton Imobiliária não tem subvalorizado suas vendas em relação aos seus competidores.
Nesta etapa, deve-se comprovar que as reclamações dos dois clientes a respeito da subvalorização de suas casas são infundadas. A alegação de que os clientes conseguiriam vendas mais lucrativas caso a Easton Imobiliária fixasse o preço de mercado de ambas as residências também deve ser combatida. Os principiais indicadores da não validade destas alegações são apresentados a seguir:
As informações técnicas a respeito dos dois imóveis alvo de reclamações são ilustradas a seguir:
Casa 1:
Casa 2:
Primeiramente, foram construídos dois modelos de regressão linear, a fim de identificar as equações que regem a formação de preços da Easton e de suas concorrentes. Novamente, os teste de Shapiro-Wilk e Breush-Pagan foram utilizados para a validação destes modelos. Os resultados obtidos através destes testes são apresentados no Apêndice II. Adotando novamente um p-valor de 0.05, foi identificado que as variáveis idade e número de quartos não influenciam no preço de venda dos imovéis de nenhuma das corretoras. Os modelos de formação de preços adotadas pela Easton e pelas outras corretoras são apresentadas a seguir pelas equações 1 e 2:
Modelo de Easton
Preço = 97124.21 - 4005.62 x Mês + 607.30 x Tamanho - 2294.25 x Quartos - 1452.45 x Idade - 18041.82 x Localização (1)
Modelo das outras corretores
Preço = 87813.88 - 4706.85 x Mês + 591.83 x Tamanho - 1822.23 x Quartos - 259.90 x Idade - 19215.60 x Localização (2)
Em seguida, os valores de mês, tamanho, localização, quartos e idade foram referentes às casas dos reclamantes foram implementados em ambos os modelos. Adotando 95% de confiança, ficou constatada a existência de uma interseção entre grande parte dos intervalos de confiança dos dois modelos, indicando que os preços fixados pela Easton podem ser considerados iguais àqueles práticados por suas concorrentes. As tabelas 3 e 4 ilustram estas situações para os arredores da região metropolitana e para Fort Woth respectivamente.
##
## Call:
## lm(formula = Preco ~ Mes + Tamanho + Quartos + Idade + Localizacao,
## data = df_outras)
##
## Residuals:
## Min 1Q Median 3Q Max
## -20915.7 -6646.1 272.6 6450.9 27440.2
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 87813.88 3601.20 24.385 <2e-16 ***
## Mes -4706.85 406.24 -11.586 <2e-16 ***
## Tamanho 591.83 20.42 28.977 <2e-16 ***
## Quartos 1822.23 938.37 1.942 0.0528 .
## Idade -259.90 216.78 -1.199 0.2313
## Localizacao -19215.60 602.08 -31.915 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9137 on 409 degrees of freedom
## Multiple R-squared: 0.8332, Adjusted R-squared: 0.8312
## F-statistic: 408.7 on 5 and 409 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = Preco ~ Mes + Tamanho + Quartos + Idade + Localizacao,
## data = df_easton)
##
## Residuals:
## Min 1Q Median 3Q Max
## -15790.1 -5713.5 -261.2 5019.4 15554.5
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 97124.21 11319.69 8.580 1.32e-10 ***
## Mes -4005.62 1067.23 -3.753 0.000555 ***
## Tamanho 607.30 64.03 9.485 8.68e-12 ***
## Quartos -2294.25 3040.90 -0.754 0.454989
## Idade -1452.45 653.14 -2.224 0.031874 *
## Localizacao -18041.82 1843.35 -9.788 3.57e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 8123 on 40 degrees of freedom
## Multiple R-squared: 0.8392, Adjusted R-squared: 0.8191
## F-statistic: 41.74 on 5 and 40 DF, p-value: 7.694e-15
## [1] "Outras Imobiliárias"
## fit lwr upr
## 1 126494.9 123887.9 129101.9
## [1] "Easton"
## fit lwr upr
## 1 129553.7 123382.3 135725.2
## [1] "Outras Imobiliárias"
## fit lwr upr
## 1 126064.2 124023.7 128104.8
## [1] "Easton"
## fit lwr upr
## 1 121507.1 116005.4 127008.9
Como os modelos acima apresentam cinco variáveis, suas representações gráficas não são possíveis em duas dimensões, o que dificulta a vizualização da interseção entre seus intervalos de confiança. Como alternativa para possibilitar a vizualização desta interseção, os registros inicialmente fornecidos por Pat McCloskey foram utilizados para criar quatro subconjuntos de dados separados da seguinte maneira:
Na sequência, foram calculados os preços por metro quadrado para cada subconjunto de dados. Dado que o preço por metro quadrado não apresentou distribuição normal para as vendas de outras corretoras em Fort-Worth (p-valor = 0.0286 < 0.05), fez se necessária uma transformação logarítimica do preço por metro quadrado a fim de normalizar os dados. Os testes de normalidade estão apresentados no apêndice II.
Finalmente, foram gerados os gráficos de distribuição do log(Preço/m²) apresentados pelas figuras 4 e 5, que atestam a sobreposição dos intervalos de confiança.
Com base no modelo de regressão e nos gráficos apresentados anteriormente, pode-se concluir que os preços de venda adotados pela Easton Imobiliária para as residências de características iguais às dos reclamentes, estão de acordo como os valores praticados pelo mercado. Assim, é incorreto afirmar que, caso a Easton Imobiliária fixasse os preços de acordo com o mercado, os clientes conseguiriam uma venda mais vantoja, pois as vendas da Easton já são naturalmente fixadas conforme suas concorrentes. Esta constatação leva a crer que os preços praticados pela Easton para ambas as casas não foram subvalorizados, pois não há razão para que apenas estes dois imóveis tenham sido subvalorizados em relação às demais vendas da corretora.
O segundo método adotado para provar que as casas não foram subvalorizadas, foi a regra de 1,5 vezes a amplitude interquartil(AIQ). Esta abordagem foi implementada para as 415 vendas realizadas pelas concorrentes da Easton Imobiliária nos últimos quatro meses. A equações 3, 4 e 5 ilustram esta regra (Ross, 2019):
Desta maneira, se a residência de algum dos reclamantes apresentar um preço menor ou igual ao limite inferior das vendas praticadas pelas outras corretoras, ela deve ser considerada um outlier, pois este valor seria muito inferior àqueles observados na distribuição. Esta situação caracterizaria a subvaloriação do imóvel, e confirmaria a veracidade das alegações feitas pelos reclamantes.
Partindo deste princípio, foram desenvolvidas três análises como o objetivo de provar que ambas as casas não foram subvalorizadas. São elas:
A escolha por estas variáveis foi feita com base no modelo de regressão linear apresentado na seção 2.2.1, que indica um maior efeito do tamanho, localização e mês na formação do preço de venda. A seguir, são apresentadas a figura 6 e a tabela 5, que ilustram os boxplots e resumos numéricos provenietes da análise univariada de preço/m²
## Warning: Unknown or uninitialised column: 'Preco_m2'.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 582.2 722.1 825.8 824.5 918.1 1146.4
De posse destas informações, foi possível calcular a amplitude interquatil e determinar o limite inferior dos preço/m². É valido salientar que apenas os valores abaixo deste limite podem ser considerados outliers, o que qualificaria a venda como subvalorizada. Os resultados são apresentados a seguir:
## [1] "Amplitude Interquartil:"
## [1] 196
## [1] "Limite inferior:"
## [1] 428.1
## [1] "Comparação:"
## [1] "Casa 1: preço/m² = USD 435.96 > USD 428.1 "
## [1] "Casa 2: preço/m² = USD 462.21 > USD 428.1 "
Como o limite inferior é menor que os preços do metro quadrado sob os quais ambas as casas foram comercializadas, não é possível afirmar que as casas foram subvalorizadas. Assim, a análise univariada do preço por metro quadrado leva à conclusão de que as reclamações dos clientes não são verdadeiras.
Adotando o mesmo procedimento para as demais análises, foram obtidas os boxplots e resumos numéricos apresentados pela figura 7 e pelas tabelas 6 e 7.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 102150 117675 126375 129284 138938 177750
Arredores
## [1] "Amplitude Interquartil:"
## [1] 21263
## [1] "Limite inferior:"
## [1] 85780.5
## [1] "Comparação"
## [1] "Casa 1: preço = USD 88500 > USD 85780.5"
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 99000 115125 124200 129895 145275 184800
Fort Worth
## [1] "Amplitude Interquartil:"
## [1] 30150
## [1] "Limite inferior:"
## [1] 69900
## [1] "Casa 2: preço = USD 79500 > USD 69900 "
Desta maneira, os preços fixados pela Easton foram superiores aos limites mínimos de USD 69900 para a cidade de Fort Worth, e USD 85780.5 para os arredores da região de Dallas-Fort Woth. Assim, a análise bivariada do preço em relação a localização indica que as casas não foram subvalorizadas.
Por fim, foi conduzida a análise bivariada entre o preço praticado pelas outras corretores e o mês da venda. A figura 8 ilustra o gráfico boxplot resultante desta análise, enquanto a tabela 8 apresenta o resumo numérico referente aos preços fixados no mês de junho.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 99000 115350 133350 133454 150450 181500
## [1] "Amplitude Interquartil:"
## [1] 35100
## [1] "Limite inferior:"
## [1] 62700
## [1] "Casa 1: preço = USD 88500 > USD 62700"
## [1] "Casa 2: preço = USD 79500 > USD 62700"
A análise bivariada dos preços por mês também indica que as casas não foram subvalorizadas, uma vez que o preço das casas vendidas no mês de junho apresenta um limite inferior igual USD 62700.
Baseado nas análises anteriores conclui-se que, embora os preços das casas 1 e 2 estejam abaixo dos valores de venda exercídos por outras corretoras, não é possível afirmar que houve subvalorização das casas por parte da Easton. Esta conclusão se baseia no fato de que a discrepância dos valores de venda destas casas e em relação ao mercado não foram elevadas o suficiente para que elas possam consideradas outliers . As figuras 9, 10, 11 e 12 a seguir ilustram esta conclusão através dos gráficos de dispersão para cada uma das análises. Nestes gráficos, os limites inferiores estão indicados por meio da linha azul.
Os resultados apresentados na seção 2 reforçam a ética na atuação da Easton Imobiliária durante as vendas realizadas na região metropolitana de Dallas-Fort Worth. Através do modelo de regressão linear obtido através da base de dados de Pat McCloskey, ficou constatado que a corretora responsável pela realização das vendas não é um fator preponderante na fixação de preços das casas da região. Como consequência, garante-se que os preços praticados pela Easton tendem a ser semelhantes aos de suas concorrentes. Já os gráficos de distribuição normal do log(preço/m²) da apresentam intervalos de confiança coincidentes entre a Easton e o restante do mercado, atestando que o preço médio praticado pela Easton é igual ao de seus concorrentes. Assim é possível concluir que a hipótese de que a Easton Imobiliária vem subvalorizando propositalmente a suas vendas pode ser descartada, o que reforça a postura ética adotada pela corretora em defesa dos interesses de seus clientes.
Com os dados referentes a vendas das outras corretoras da região, foram conduzidas análises bivariadas do preço em relação à localização, e do preço em relação ao mês de venda, bem como uma análise univariada do preço por metro quadrado. Com base nestas análises, ficaram constatados os limites inferiores de 428.1 USD/m², USD 85780.5 para casas localizadas em Arlington, USD 69900 para as casas em Fort-Worth, e USD 62700 para as casas vendidas no mês de junho. Todos estes limites estão abaixo dos valores de venda observados nas casas alvo de reclamções, conforme apresentado na seção 2. Esta observação comprova que os preços de USD 88500 para a casa 1 e USD 79500 para a casa 2 não representam outliers em relação aos preços praticados pelas outras corretoras. Portanto, as alegações de que ambas as casas foram subvalorizadas em relação ao mercado são incorretas.
Ainda com base nos resumos numéricos das análises bivariadas, nota-se que as duas casas sob reclamação tiveram seus preços fixados abaixo dos valores mínimos praticados por outras corretoras nos últimos quatro meses, conforme listado a seguir:
Preços mínimos praticados por outras corretoras
Entretanto, isto não significa que as casas foram subvalorizadas propositalmente pela Easton, pois como visto anteriormente, seus preços não são considerados outliers em relação as vendas das demais corretoras. O baixo preço destas casas pode ser explicado por variáveis que não fizeram das análises conduzidas neste trabalho, como o estado de conservação do imóvel, qualidade do acabemento, a existência de piscina, a presença de falhas estruturais ou funcionais, o bairro onde a residência se localiza, entre outros.
Como exemplo, espera-se que uma residência localizada em um bairro de classe média baixa em Arlington seja mais barata que outra localizada em um bairro nobre. Assim, esta variável ajudaria a explicar o baixo preço aplicado a esta casa em relação aos demais imóveis da cidade.
Portanto, podemos concluir que a Easton imobiliária não subvalorizou o preço das residências dos reclamantes, e que seus preços tem estado alinhados com os do restante do mercado. Assim, as alegações de subvalorização apresentadas pelos clientes da companhia devem ser desconsideradas.
====================================================================
## Warning: Unknown or uninitialised column: 'Preco_m2_quartos'.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 856.8 877.1 893.2 909.2 932.7 994.8
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 761.8 870.1 917.6 922.7 965.5 1146.4
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 649.9 692.2 720.0 729.1 752.1 846.8
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 623.0 703.3 738.0 741.6 776.5 904.0
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 620.5 655.6 685.2 686.3 706.8 775.6
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 582.2 650.6 697.8 697.7 738.6 871.4
#df_outras
#teste de normalidade do modelo1_imobiliarias (Shapiro-Wilk)
res <- rstandard(modelo1_outras)
teste_shapiro <- shapiro.test(res)
shapiro.test(res)
##
## Shapiro-Wilk normality test
##
## data: res
## W = 0.99446, p-value = 0.1394
if (teste_shapiro$p.value > 0.05){
print("Aceitar H0: Distribuição normal")
} else {
print("Aceitar H1:A distribuição não é normal")
}
## [1] "Aceitar H0: Distribuição normal"
#teste de homgeneidade de variancia do modelo1_imobiliarias (Breush-Pagan)
library(car)
teste_breush <- ncvTest(modelo1_outras)
ncvTest(modelo1_outras)
## Non-constant Variance Score Test
## Variance formula: ~ fitted.values
## Chisquare = 3.818531, Df = 1, p = 0.050689
if (teste_breush$p > 0.05){
print("Aceitar H0: Distribuição com homogeneidade de variâncias")
} else {
print("Aceitar H1: Distribuição sem homogeneidade de de variâncias")
}
## [1] "Aceitar H0: Distribuição com homogeneidade de variâncias"
#----------------------------------------------------------------------
#df_easton
#teste de normalidade do modelo1_imobiliarias (Shapiro-Wilk)
res <- rstandard(modelo1_easton)
teste_shapiro <- shapiro.test(res)
shapiro.test(res)
##
## Shapiro-Wilk normality test
##
## data: res
## W = 0.98565, p-value = 0.835
if (teste_shapiro$p.value > 0.05){
print("Aceitar H0: Distribuição normal")
} else {
print("Aceitar H1:A distribuição não é normal")
}
## [1] "Aceitar H0: Distribuição normal"
#teste de homgeneidade de variancia do modelo1_imobiliarias (Breush-Pagan)
library(car)
teste_breush <- ncvTest(modelo1_easton)
ncvTest(modelo1_easton)
## Non-constant Variance Score Test
## Variance formula: ~ fitted.values
## Chisquare = 5.925629, Df = 1, p = 0.014922
if (teste_breush$p > 0.05){
print("Aceitar H0: Distribuição com homogeneidade de variâncias")
} else {
print("Aceitar H1: Distribuição sem homogeneidade de de variâncias")
}
## [1] "Aceitar H1: Distribuição sem homogeneidade de de variâncias"
#----------------------------------------------------------------------
library(corrplot)
df_imobiliarias <- readxl::read_xlsx("C:/Users/rianm/Documents/Rian/Mestrado_UFF/Estatistica/Base_de_dados-master/df_Easton_Imobiliaria2.xlsx")
#Calcula as variáveis preço/m2:
for (venda in 1:nrow(df_imobiliarias)) {
df_imobiliarias$Preco_m2[venda] <- df_imobiliarias$Preco[venda]/df_imobiliarias$Tamanho[venda]
}
#Gera as bases de dados df_easton e df_outras
df_easton <- data.frame(Mes= integer(),
Preco= integer(),
Tamanho= double(),
Quartos= integer(),
Idade= integer(),
Localizacao= integer(),
Corretora= integer(),
stringsAsFactors = FALSE)
df_outras <- data.frame(Mes= integer(),
Preco= integer(),
Tamanho= double(),
Quartos= integer(),
Idade= integer(),
Localizacao= integer(),
Corretora= integer(),
stringsAsFactors = FALSE)
#Preenche as bases de dados df_easton e df_outras
df_easton <- subset(df_imobiliarias, Corretora == 1)
df_outras <- subset(df_imobiliarias, Corretora == 0)
#Organiza as bases de dados por preço, em ordem decrescente
df_easton <- df_easton[order(df_easton$Preco, decreasing = TRUE),]
df_outras <- df_outras[order(df_outras$Preco, decreasing = TRUE),]
#Separa as casas por localizaçao
loc1_easton <- subset(df_easton, Localizacao == 1)
loc2_easton <- subset(df_easton, Localizacao == 2)
loc3_easton <- subset(df_easton, Localizacao == 3)
loc1_outras <- subset(df_outras, Localizacao == 1)
loc2_outras <- subset(df_outras, Localizacao == 2)
loc3_outras <- subset(df_outras, Localizacao == 3)
loc1 <- subset(df_imobiliarias, Localizacao == 1)
loc2 <- subset(df_imobiliarias, Localizacao == 2)
loc3 <- subset(df_imobiliarias, Localizacao == 3)
#Gera os boxplots e remove loc1, loc2, loc3
loc1 <- within(loc1, {
Corretora <- factor(Corretora, labels=c('Outras',
'Easton'))
})
loc2 <- within(loc2, {
Corretora <- factor(Corretora, labels=c('Outras',
'Easton'))
})
loc3 <- within(loc3, {
Corretora <- factor(Corretora, labels=c('Outras',
'Easton'))
})
par(bg="#fffbe2")
boxplot(loc1$Preco_m2 ~ loc1$Corretora, main="Preço por mês vs Corretora\n Município de Dallas",
col=c("#a8382b", "#2ba899"), ylab="Preço por mês (USD/m2)", xlab="Corretora")
summary(loc1_easton$Preco_m2)
summary(loc1_outras$Preco_m2)
par(bg="#fffbe2")
boxplot(loc2$Preco_m2 ~ loc2$Corretora, main="Preço por mês vs Corretora\n Município de Fort Worth",
col=c("#a8382b", "#2ba899"), ylab="Preço por mês (USD/m2)", xlab="Corretora")
summary(loc2_easton$Preco_m2)
summary(loc2_outras$Preco_m2)
par(bg="#fffbe2")
boxplot(loc3$Preco_m2 ~ loc3$Corretora, main="Preço por Mês vs Corretora\n Arredores da Região Metropolitana",
col=c("#a8382b", "#2ba899"), ylab="Preço por Mês (USD/m2)", xlab="Corretora")
summary(loc3_easton$Preco_m2)
summary(loc3_outras$Preco_m2)
remove(loc1, loc2, loc3)
# Gera as matriz correlação de df_easton e df_outras
MC_easton <- cor(df_easton[,c("Preco", "Mes", "Tamanho", "Quartos", "Idade", "Localizacao")])
MC_outras <- cor(df_outras[,c("Preco", "Mes", "Tamanho", "Quartos", "Idade", "Localizacao")])
MC_imobiliarias <- cor(df_imobiliarias[,c("Preco", "Mes", "Tamanho", "Quartos", "Idade", "Localizacao", "Corretora")])
corrplot.mixed(MC_easton, lower.col = "black", upper = "square")
corrplot.mixed(MC_outras, lower.col = "black", upper = "square")
corrplot.mixed(MC_imobiliarias, lower.col = "black", upper = "square")
increm <- ((max(df_outras$Tamanho)-min(df_outras$Tamanho))/4)
C1 <- min(df_outras$Tamanho) + increm
C2 <- C1 + increm
C3 <- C2 + increm
for (casa in 1:nrow(df_imobiliarias)) {
if (df_imobiliarias$Tamanho[casa] <= C1 ) {
df_imobiliarias$Classe_Tam[casa] <- 1
} else if (df_imobiliarias$Tamanho[casa] <= C2) {
df_imobiliarias$Classe_Tam[casa] <- 2
} else if (df_imobiliarias$Tamanho[casa] <= C3) {
df_imobiliarias$Classe_Tam[casa] <- 3
} else {
df_imobiliarias$Classe_Tam[casa] <- 4
}
}
# Gera o boxplot do preço por classe de tamanho
par(bg="#fffbe2")
boxplot(df_imobiliarias$Preco ~ df_imobiliarias$Classe_Tam, main="Preço vs Tamanho", col=c("#a8382b"), ylab="Preço (USD)", xlab="Classes de Tamanho")
# Gera o boxplot do preço por localização
par(bg="#fffbe2")
boxplot(df_imobiliarias$Preco ~ df_imobiliarias$Localizacao, main="Preço vs Localização", col=c("#a8382b"), ylab="Preço (USD)", xlab="Localização")
# Separa as casas vendidas em junho nos arredores de FWH.
df_out_jun_loc3 <- subset(df_outras, Mes == 6 & Localizacao == 3)
df_out_jun_loc2 <- subset(df_outras, Mes == 6 & Localizacao == 2)
df_eas_jun_loc3 <- subset(df_easton, Mes == 6 & Localizacao == 3)
df_eas_jun_loc2 <- subset(df_easton, Mes == 6 & Localizacao == 2)
#Testa a normalidade dos dados
shapiro.test(df_out_jun_loc2$Preco_m2)
shapiro.test(df_eas_jun_loc2$Preco_m2)
shapiro.test(df_out_jun_loc3$Preco_m2)
shapiro.test(df_eas_jun_loc3 $Preco_m2)
# Gera os gráfico de distribuição normal para os arredores no mês de junho
x_preco <- seq(6.3, 6.7, length=10000)
y_out <- dnorm(x_preco, mean=mean(log(df_out_jun_loc3$Preco_m2)), sd=sd(log(df_out_jun_loc3$Preco_m2)))
y_eas <- dnorm(x_preco, mean=mean(log(df_eas_jun_loc3$Preco_m2)), sd=sd(log(df_eas_jun_loc3$Preco_m2)))
plot(x_preco, y_eas, type="l", lwd=1, col="#84220f", xlab = "log(Preço/m²)", ylab = "", main = "Distribuições de Log(Preço/m²) \n nos arredores da região de Dallas-Fort Worth")
lines(x_preco,y_out,col="#34840f")
legend("topleft",
legend = c("Outras", "Easton"),
col=c("#34840f", "#84220f"),
pch = 15,
bty = "n",
pt.cex = 2,
cex = 1.2,
)
segments(6.44, 1.8, 6.562, 1.8,
col = "#84220f", lty = par("lty"), xpd = FALSE)
segments(6.371, 0.9, 6.599, 0.9,
col = "#34840f", lty = par("lty"), xpd = FALSE)
#Médias e desvios padrões para easton e outras em Fort Worth
mean(log(df_out_jun_loc2$Preco_m2))
sd(log(df_out_jun_loc2$Preco_m2))
mean(log(df_eas_jun_loc2$Preco_m2))
sd(log(df_eas_jun_loc2$Preco_m2))
# Gera os gráfico de distribuição normal para Fort Worth no mês de junho
x_preco <- seq(6.3, 6.8, length=10000)
y_out <- dnorm(x_preco, mean=mean(log(df_out_jun_loc2$Preco_m2)), sd=sd(log(df_out_jun_loc2$Preco_m2)))
y_eas <- dnorm(x_preco, mean=mean(log(df_eas_jun_loc2$Preco_m2)), sd=sd(log(df_eas_jun_loc2$Preco_m2)))
plot(x_preco, y_eas, type="l", lwd=1, col="#84220f", xlab = "log(Preço/m²)", ylab = "", main = "Distribuições de Log(Preço/m²) \n nos arredores da região de Dallas-Fort Worth")
lines(x_preco,y_out,col="#34840f")
legend("topleft",
legend = c("Outras", "Easton"),
col=c("#34840f", "#84220f"),
pch = 15,
bty = "n",
pt.cex = 2,
cex = 1.2,
)
segments(6.476, 1.95, 6.608, 1.95,
col = "#84220f", lty = par("lty"), xpd = FALSE)
segments(6.42, 0.9, 6.672, 0.9,
col = "#34840f", lty = par("lty"), xpd = FALSE)
# Faz o modelo de Regressão Linear (Variável dependente = Preço):
##MODELO 1:
modelo1_imobiliarias <- lm(Preco ~ Mes + Tamanho + Quartos + Idade + Corretora + Localizacao, df_imobiliarias)
summary(modelo1_imobiliarias)
modelo1_outras <- lm(Preco ~ Mes + Tamanho + Quartos + Idade + Localizacao, df_outras)
summary(modelo1_outras)
modelo1_easton <- lm(Preco ~ Mes + Tamanho + Quartos + Idade + Localizacao, df_easton)
summary(modelo1_easton)
##MODELO 2:
modelo2_imobiliarias <- lm(log(Preco_m2) ~ Mes + Localizacao, df_imobiliarias)
summary(modelo2_imobiliarias)
modelo2_outras <- lm(log(Preco_m2) ~ Mes + Quartos + Localizacao, df_outras)
summary(modelo2_outras)
#=====================================================================
# Validação do modelo 1 de regressão linear
#=====================================================================
#Obs: para a validação do modelo 1, são aplicados os testes de normalidade, independência e homogeneidade de variâncias sobre os resíduos do modelo.
#H0: É sempre favorável às condições analisadas (normalidade, independencia e homogeneidade)
#H1: É a hipótese alternativa
#------------------------------------------------------------------------
#df_Imobiliárias
#teste de normalidade do modelo1_imobiliarias (Shapiro-Wilk)
res <- rstandard(modelo1_imobiliarias)
teste_shapiro <- shapiro.test(res)
shapiro.test(res)
if (teste_shapiro$p.value > 0.05){
print("Aceitar H0: Distribuição normal")
} else {
print("Aceitar H1:A distribuição não é normal")
}
#teste de independência do modelo1_imobiliarias (Durbin Watson)
library(lmtest)
teste_durbin <- dwtest(modelo1_imobiliarias)
dwtest(modelo1_imobiliarias)
if (teste_durbin$p.value > 0.05){
print("Aceitar H0: Distribuição independente")
} else {
print("Aceitar H1:Distribuição dependente")
}
#teste de homgeneidade de variancia do modelo1_imobiliarias (Breush-Pagan)
library(car)
teste_breush <- ncvTest(modelo1_imobiliarias)
ncvTest(modelo1_imobiliarias)
if (teste_breush$p > 0.05){
print("Aceitar H0: Distribuição com homogeneidade de variâncias")
} else {
print("Aceitar H1: Distribuição sem homogeneidade de de variâncias")
}
#----------------------------------------------------------------------
#df_outras
#teste de normalidade do modelo1_imobiliarias (Shapiro-Wilk)
res <- rstandard(modelo1_outras)
teste_shapiro <- shapiro.test(res)
shapiro.test(res)
if (teste_shapiro$p.value > 0.05){
print("Aceitar H0: Distribuição normal")
} else {
print("Aceitar H1:A distribuição não é normal")
}
#teste de independência do modelo1_imobiliarias (Durbin Watson)
library(lmtest)
teste_durbin <- dwtest(modelo1_outras)
dwtest(modelo1_outras)
if (teste_durbin$p.value > 0.05){
print("Aceitar H0: Distribuição independente")
} else {
print("Aceitar H1:Distribuição dependente")
}
#teste de homgeneidade de variancia do modelo1_imobiliarias (Breush-Pagan)
library(car)
teste_breush <- ncvTest(modelo1_outras)
ncvTest(modelo1_outras)
if (teste_breush$p > 0.05){
print("Aceitar H0: Distribuição com homogeneidade de variâncias")
} else {
print("Aceitar H1: Distribuição sem homogeneidade de de variâncias")
}
#----------------------------------------------------------------------
#df_easton
#teste de normalidade do modelo1_imobiliarias (Shapiro-Wilk)
res <- rstandard(modelo1_easton)
teste_shapiro <- shapiro.test(res)
shapiro.test(res)
if (teste_shapiro$p.value > 0.05){
print("Aceitar H0: Distribuição normal")
} else {
print("Aceitar H1:A distribuição não é normal")
}
#teste de independência do modelo1_imobiliarias (Durbin Watson)
library(lmtest)
teste_durbin <- dwtest(modelo1_easton)
dwtest(modelo1_easton)
if (teste_durbin$p.value > 0.05){
print("Aceitar H0: Distribuição independente")
} else {
print("Aceitar H1:Distribuição dependente")
}
#teste de homgeneidade de variancia do modelo1_imobiliarias (Breush-Pagan)
library(car)
teste_breush <- ncvTest(modelo1_easton)
ncvTest(modelo1_easton)
if (teste_breush$p > 0.05){
print("Aceitar H0: Distribuição com homogeneidade de variâncias")
} else {
print("Aceitar H1: Distribuição sem homogeneidade de de variâncias")
}
casa1 <- data.frame(Mes= 6,
Preco= 88500,
Tamanho= 203,
Quartos= 3,
Idade= 4,
Localizacao= 3,
Corretora= 1,
preco_m2= 88500/203,
preco_m2_quartos = 88500/203/3)
casa2 <- data.frame(Mes= 6,
Preco= 79500,
Tamanho= 172,
Quartos= 3,
Idade= 9,
Localizacao= 2,
Corretora= 1,
preco_m2= 79500/172,
preco_m2_quartos = 79500/172/3)
predict(modelo1_imobiliarias, casa1, interval = "prediction")
predict(modelo1_outras, casa1, interval = "prediction")
predict(modelo1_outras, casa1, interval = "confidence")
predict(modelo1_easton, casa1, interval = "confidence")
predict(modelo1_imobiliarias, casa2, interval = "prediction")
predict(modelo1_outras, casa2, interval = "confidence")
predict(modelo1_easton, casa2, interval = "confidence")
#----------------------------------------------------------------------
#PARTE 2
#Calcula variável preço/m2:
for (venda in 1:nrow(df_imobiliarias)) {
df_imobiliarias$Preco_m2[venda] <- df_imobiliarias$Preco[venda]/df_imobiliarias$Tamanho[venda]
}
#Gera o boxplot e resumo numérico
par(bg="#fffbe2")
boxplot(df_outras$Preco_m2, main="Preço do metro quadradado \nOutras Corretoras", col=c("#a8382b"), ylab="Preço/m² (USD/m²)")
summary(df_outras$Preco_m2)
#Calcula a amplitude interquartil e o limite inferior do preço/m2:
"Amplitude Interquartil:"
AIQ <- 918.1 - 722.1
"Limite inferior:"
LI <-722.1 - 1.5*AIQ
#Gera o boxplot do preço por localização
outras_loc <- within(df_outras, {
Localizacao <- factor(Localizacao, labels=c('Dallas','Fort Worth', 'Arredores'))})
par(bg="#fffbe2")
boxplot(outras_loc$Preco ~ outras_loc$Localizacao, main="Preço x Localização \nOutras Corretoras", col=c("#a8382b"), ylab="Preço (USD)", xlab = "Localização")
summary(df_outras$Preco_m2)
#Gera o resumo numérico dos preços em Arlington
summary(loc3_outras$Preco)
#Calcula a amplitude interquartil e o limite inferior do preço em Arlington:
"Amplitude Interquartil:"
AIQ <- 138938 - 117675
"Limite inferior:"
117675 - 1.5*AIQ
#Gera o resumo numérico dos preços em Fort Worth
summary(loc2_outras$Preco)
#Calcula a amplitude interquartil e o limite inferior do preço em FW:
"Amplitude Interquartil:"
AIQ <- 145275 - 115125
AIQ
"Limite inferior:"
115125 - 1.5*AIQ
#Gera o boxplot do preço por mes
outras_mes<- within(df_outras, {
Mes <- factor(Mes, labels=c('Março','Abril', 'Maio', 'Junho'))})
par(bg="#fffbe2")
boxplot(outras_mes$Preco ~ outras_mes$Mes, main="Preço x Mês \nOutras Corretoras", col=c("#a8382b"), ylab="Preço (USD)", xlab = "Mês")
#Gera o resumo numérico dos preços por mes
df_outras_junho <- subset(df_outras, Mes == 6)
summary(df_outras_junho$Preco)
remove(df_outras_junho)
#Calcula a amplitude interquartil e o limite inferior do preço por mes:
"Amplitude Interquartil:"
AIQ <- 150450 - 115350
AIQ
"Limite inferior:"
115350 - 1.5*AIQ
df_outras_reclamacoes <- df_outras
df_outras_reclamacoes[416,] <- casa1
df_outras_reclamacoes[417,] <- casa2
df_outras_reclamacoes <- within(df_outras_reclamacoes, {
Corretora <- factor(Corretora, labels=c('Outras',
'Easton'))
})
#Gera o gráfico de disperção do preco_m2
par(bg="#fffbe2")
plot(df_outras_reclamacoes$Preco_m2,
main = "Gráfico de dispersão do Preço/m²",
ylab = "Preço/m² (USD/m²)", xlab = "índice",
col=c("#34840f", "#84220f")[df_outras_reclamacoes$Corretora],
pch=c(1, 20)[df_outras_reclamacoes$Corretora])
abline(h = 428.1, col="blue")
legend("bottomleft",
legend = c("outras", "Easton"),
col=c("#34840f", "#84220f"),
pch = c(1, 20),
bty = "n",
pt.cex = 2,
cex = 1.2,
)
#Gera o gráfico de disperção do preco no mes de junho
outras_reclamacoes_mes <- subset(df_outras_reclamacoes, Mes == 6)
par(bg="#fffbe2")
plot(outras_reclamacoes_mes$Preco,
main = "Gráfico de dispersão do Preço no mês de Junho",
ylab = "Preço (USD)", xlab = "índice",
ylim = c(60000, 200000),
col=c("#34840f", "#84220f")[outras_reclamacoes_mes$Corretora],
pch=c(1, 20)[outras_reclamacoes_mes$Corretora])
abline(h = 62700, col="blue")
legend("bottomleft",
legend = c("outras", "Easton"),
col=c("#34840f", "#84220f"),
pch = c(1, 20),
bty = "n",
pt.cex = 2,
cex = 1.2,
)
remove(outras_reclamacoes_mes)
#Gera o gráfico de disperção do preco em Fort Worth
outras_reclamacoes_fw <- subset(df_outras_reclamacoes, Localizacao == 2)
par(bg="#fffbe2")
plot(outras_reclamacoes_fw$Preco,
main = "Gráfico de dispersão do Preço em Fort Worth",
ylab = "Preço (USD)", xlab = "índice",
ylim = c(65000, 200000),
col=c("#34840f", "#84220f")[outras_reclamacoes_fw$Corretora],
pch=c(1, 20)[outras_reclamacoes_fw$Corretora])
abline(h = 69900, col="blue")
legend("bottomleft",
legend = c("outras", "Easton"),
col=c("#34840f", "#84220f", "blue"),
pch = c(1, 20),
bty = "n",
pt.cex = 2,
cex = 1.2,
)
remove(outras_reclamacoes_fw)
#Gera o gráfico de disperção do preco em Arlington
outras_reclamacoes_arl <- subset(df_outras_reclamacoes, Localizacao == 3)
par(bg="#fffbe2")
plot(outras_reclamacoes_arl$Preco,
main = "Gráfico de dispersão do Preço em Arlington",
ylab = "Preço (USD)", xlab = "índice",
ylim = c(80000, 200000),
col=c("#34840f", "#84220f")[outras_reclamacoes_arl$Corretora],
pch=c(1, 20)[outras_reclamacoes_arl$Corretora])
abline(h = 85780.5, col="blue")
legend("bottomleft",
legend = c("outras", "Easton"),
col=c("#34840f", "#84220f", "blue"),
pch = c(1, 20),
bty = "n",
pt.cex = 2,
cex = 1.2,
)
remove(outras_reclamacoes_arl, df_outras_reclamacoes)