vsalgs commited on
Commit
4dce935
·
verified ·
1 Parent(s): 33be9bb

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +85 -3
src/streamlit_app.py CHANGED
@@ -530,13 +530,97 @@ if st.session_state.page == 'ANOVA':
530
  - Para análise multivariada, prossiga para Regressão Linear Múltipla.
531
  """)
532
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
533
  else:
534
  if df_anova is None:
535
  st.warning("Aguardando carregamento dos dados ou verifique as URLs.")
536
  elif coluna_preco_anova is None:
537
  st.error(f"Coluna de preço não encontrada. Verifique as colunas: {todas_colunas_anova}")
538
 
539
-
540
  # --- Página REGRESSÃO ---
541
  elif st.session_state.page == 'REGRESSAO':
542
  st.title("🏠 Dashboard de Regressão Imobiliária")
@@ -705,5 +789,3 @@ elif st.session_state.page == 'REGRESSAO':
705
  else:
706
  if not colunas_categoricas_reg and not colunas_continuas_reg:
707
  st.error("Nenhuma coluna adequada identificada para regressão.")
708
-
709
-
 
530
  - Para análise multivariada, prossiga para Regressão Linear Múltipla.
531
  """)
532
 
533
+ # NOVO: Inserir campo para a análise fornecida dentro da seção ANOVA
534
+ st.header("🔎 Análise de Modelo e Recomendações Exemplo")
535
+ st.markdown("""
536
+ Foram escolhidas 6 variáveis, incluindo variáveis contínuas e categóricas:
537
+
538
+ **Contínuas**:
539
+ - **grlivarea**: Área construída (acima do solo) em pés quadrados.
540
+ - **overallqual**: Qualidade geral do imóvel (escala de 1 a 10).
541
+ - **garagecars**: Capacidade da garagem (número de carros).
542
+
543
+ **Categóricas (convertidas em dummies)**:
544
+ - **neighborhood**: Bairro.
545
+ - **area_faixa**: Faixas da área construída.
546
+
547
+ 📊 **Resultados do Modelo (Regressão Linear Múltipla)**:
548
+ - **R² = 0,7535** → O modelo explica aproximadamente 75,35% da variabilidade do preço de venda dos imóveis, o que é considerado muito bom para dados econômicos/sociais.
549
+ - **RMSE = 39.665** → Erro médio quadrático (desvio padrão dos erros).
550
+ - **MAE = 27.558** → Erro médio absoluto — em média, o modelo erra cerca de 27 mil dólares por previsão.
551
+
552
+ 🏗️ **Coeficientes Estimados (Impacto das Variáveis)**:
553
+ - **grlivarea = 52,32** → Cada aumento de 1 pé² na área construída eleva o preço em 52,32 dólares. Ex.: 100 pés² = +5.232 dólares.
554
+ - **overallqual = 28.190** → Cada ponto a mais na qualidade geral do imóvel (1 a 10) aumenta o preço em 28.190 dólares. Impacto muito significativo.
555
+ - **garagecars = 19.700** → Cada vaga adicional na garagem eleva o preço em 19.700 dólares.
556
+
557
+ 📏 **Análise dos Pressupostos**:
558
+ 1. **Linearidade**: ✅
559
+ - O gráfico de resíduos vs valores ajustados não apresentou padrões severos, embora haja leve tendência nas caudas, o que é aceitável.
560
+
561
+ 2. **Normalidade dos resíduos**: ❌
562
+ - Teste de Shapiro-Wilk: p < 0.0001 → Os resíduos não são normais.
563
+ - Contudo, com amostras grandes (> 2000 observações), a normalidade dos resíduos não é um pressuposto crítico para a validade dos coeficientes (teorema central do limite). Impacta mais a construção de intervalos de confiança.
564
+
565
+ 3. **Homocedasticidade**: ❌
566
+ - O teste de Levene nas ANOVAs sugere heterocedasticidade (variância dos resíduos não é constante).
567
+
568
+ 4. **Multicolinearidade**: ✅
569
+ - VIF (Fator de Inflação da Variância) está baixo para as variáveis:
570
+ - grlivarea: 1,56
571
+ - overallqual: 1,85
572
+ - garagecars: 1,64
573
+ - Sem risco de multicolinearidade.
574
+
575
+ 🔥 **Principais Insights**:
576
+ - A variável de maior impacto absoluto é **overallqual** (qualidade geral).
577
+ → Imóveis de melhor acabamento, materiais, design e estado de conservação são fortemente valorizados.
578
+
579
+ - **Garagem** também tem peso elevado: cada vaga adicional vale quase 20 mil dólares.
580
+
581
+ - A **área construída** tem impacto linear relevante: quanto maior o imóvel, maior o preço.
582
+
583
+ - As variáveis de localização (**neighborhood**) e faixa de área (**area_faixa**) também são importantes, mas os coeficientes não foram mostrados diretamente na tabela (porque são muitas dummies). Sabemos, porém, que bairros premium têm preços bem mais altos.
584
+
585
+ 🔄 **Transformações Logarítmicas (Seriam Necessárias?)**:
586
+ - Dado que há:
587
+ - Não normalidade dos resíduos;
588
+ - Heterocedasticidade;
589
+ - ➡️ Seria adequado testar um modelo log-log (`log(preço) ~ log(área) + outras`) para melhorar os pressupostos.
590
+
591
+ - Vantagem do modelo log-log:
592
+ - Os coeficientes passam a ser interpretados como variações percentuais.
593
+ - Ex.: Um coeficiente de 0,15 indica que um aumento de 1% na área resulta em um aumento de 0,15% no preço.
594
+
595
+ **Recomendações**:
596
+ - Foque em imóveis com alta qualidade de construção.
597
+ → A cada ponto a mais na qualidade, você valoriza o imóvel em quase 30 mil dólares.
598
+
599
+ - Invista em melhorar vagas de garagem.
600
+ → Acrescentar uma vaga pode agregar aproximadamente 20 mil dólares ao valor.
601
+
602
+ - Área construída é importante, mas cresce de forma linear.
603
+ → Estratégia: Ampliações moderadas são rentáveis até certo ponto.
604
+
605
+ - Atenção à localização (**Neighborhood**).
606
+ → Embora os coeficientes individuais não estejam visíveis no resumo, é sabido que bairros mais valorizados impactam fortemente o preço. Você deve usar essa informação para selecionar imóveis em regiões de maior demanda.
607
+
608
+ - Para modelagem mais robusta:
609
+ → Recomenda-se testar modelos logarítmicos que podem entregar previsões mais estáveis.
610
+
611
+ - Cuidado com imóveis fora do padrão:
612
+ → O modelo tem maiores erros nos extremos — imóveis muito caros ou muito baratos.
613
+
614
+ 📌 **Decisão com Confiança**:
615
+ - Priorize imóveis bem construídos, em bairros consolidados, com boa metragem e pelo menos 2 vagas de garagem.
616
+ - Foque sua argumentação nesses atributos para justificar o preço do imóvel aos clientes.
617
+ """)
618
  else:
619
  if df_anova is None:
620
  st.warning("Aguardando carregamento dos dados ou verifique as URLs.")
621
  elif coluna_preco_anova is None:
622
  st.error(f"Coluna de preço não encontrada. Verifique as colunas: {todas_colunas_anova}")
623
 
 
624
  # --- Página REGRESSÃO ---
625
  elif st.session_state.page == 'REGRESSAO':
626
  st.title("🏠 Dashboard de Regressão Imobiliária")
 
789
  else:
790
  if not colunas_categoricas_reg and not colunas_continuas_reg:
791
  st.error("Nenhuma coluna adequada identificada para regressão.")