Introdução: O Que é Modelagem Estatística?
Olá, pessoal! Sejam bem-vindos ao mundo da Ciência de Dados! Hoje vamos mergulhar em um dos pilares mais importantes dessa área: a Modelagem Estatística.
De forma simples, modelagem estatística é o processo de usar matemática e estatística para criar um “modelo” (uma representação simplificada) da realidade. Esse modelo nos permite:
- Entender relacionamentos entre diferentes variáveis.
- Prever resultados futuros com base em dados históricos.
- Tomar decisões mais informadas, baseadas em dados e não apenas em intuição.
Pense nisso como tentar prever o preço de uma casa. O preço (nossa variável de interesse) pode ser influenciado por outras variáveis, como tamanho, número de quartos, localização, etc. Um modelo estatístico nos ajuda a quantificar exatamente como cada um desses fatores impacta no preço final.
Nosso Projeto Prático: Um Prevendo Preços de Casas
Para sair da teoria e ir para a prática, vamos construir um modelo de Regressão Linear Múltipla. Esse é um dos modelos estatísticos mais fundamentais e amplamente utilizados. Nosso objetivo será prever o preço de uma casa com base em suas características.
E a parte mais legal: vamos embutir esse modelo em um aplicativo web interativo usando Streamlit. Dessa forma, qualquer pessoa, mesmo sem saber programar, poderá inserir os dados de uma casa e obter uma previsão de preço instantaneamente!
Passo a Passo: Construindo o Modelo e o App Interativo
Vamos dividir em duas partes: primeiro, o código Python para criar e treinar o modelo, e depois, a integração com o Streamlit.
Parte 1: O Ambiente Python e a Criação do Modelo
Antes de tudo, você precisa ter o Python instalado (versão 3.7 ou superior). Recomendo usar um ambiente virtual para gerenciar suas bibliotecas.
1. Instalando as Bibliotecas Necessárias:
Abra o seu terminal (ou Prompt de Comando) e execute os comandos abaixo:
bash
pip install pandas scikit-learn streamlit- pandas: Para manipulação e análise de dados.
- scikit-learn: A biblioteca mais popular de Machine Learning para Python. Ela contém a implementação da Regressão Linear.
- streamlit: O framework que transforma scripts de dados em aplicativos web.
2. O Código do Modelo (Jupyter Notebook ou Script .py):
Vamos criar um script Python, por exemplo, treinar_modelo.py, para treinar e salvar nosso modelo.
python
# treinar_modelo.py
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error
import joblib # Para salvar o modelo treinado
# 1. Criar um Conjunto de Dados Simulado
# Em um projeto real, você leria um arquivo CSV, por exemplo.
data = {
'tamanho': [70, 80, 55, 120, 90, 60, 100, 110, 95, 75],
'quartos': [2, 3, 1, 4, 3, 2, 3, 4, 3, 2],
'idade': [10, 5, 2, 20, 15, 5, 25, 30, 18, 8],
'preco': [300000, 450000, 200000, 750000, 500000, 320000, 620000, 800000, 550000, 380000]
}
df = pd.DataFrame(data)
# 2. Definir Variáveis (Features e Target)
# X: Variáveis independentes (o que usamos para prever)
# y: Variável dependente (o que queremos prever)
X = df[['tamanho', 'quartos', 'idade']]
y = df['preco']
# 3. Dividir os Dados em Treino e Teste
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 4. Criar e Treinar o Modelo
modelo = LinearRegression()
modelo.fit(X_train, y_train)
# 5. Fazer Previsões e Avaliar o Modelo
y_pred = modelo.predict(X_test)
mae = mean_absolute_error(y_test, y_pred)
print(f"Erro Médio Absoluto do Modelo: R${mae:,.2f}")
# 6. Salvar o Modelo Treinado para usar no Streamlit
joblib.dump(modelo, 'modelo_preco_casa.pkl')
print("Modelo salvo com sucesso como 'modelo_preco_casa.pkl'!")
# (Opcional) Mostrar os coeficientes do modelo
print(f"Intercepto (Coef. Linear): {modelo.intercept_:.2f}")
print(f"Coeficientes: {modelo.coef_}")Explicação Rápida do Código:
- Criamos dados de exemplo.
- Separamos os dados entre o que é “entrada” (
X) e o que é “saída” (y). - Dividimos os dados em dois conjuntos: um para treinar o modelo e outro para testar sua eficácia.
- Instanciamos e treinamos o modelo de Regressão Linear.
- Calculamos o Erro Médio Absoluto (MAE), uma métrica simples que nos diz, em média, o quanto nossas previsões erram (em R$).
- Por fim, salvamos o modelo treinado em um arquivo
.pklpara ser carregado posteriormente no app.
Execute este script uma vez para gerar o arquivo modelo_preco_casa.pkl.
python treinar_modelo.pyParte 2: Criando o App Interativo com Streamlit
Agora, a mágica acontece! Vamos criar um novo arquivo, app.py.
python
# app.py
import streamlit as st
import joblib
import pandas as pd
# Configuração da página
st.set_page_config(page_title="Previsor de Preços de Casas", page_icon="🏠")
# Título do App
st.title("🏠 Prevendo o Preço de uma Casa")
st.markdown("""
Use os controles deslizantes abaixo para especificar as características da casa.
Nosso modelo de **Regressão Linear** irá prever o preço automaticamente!
""")
# Carregar o modelo treinado
modelo = joblib.load('modelo_preco_casa.pkl')
# Criando as entradas interativas do usuário (Sidebar)
st.sidebar.header("Especificações da Casa")
tamanho = st.sidebar.slider('**Tamanho (m²)**', min_value=50, max_value=200, value=100)
quartos = st.sidebar.slider('**Número de Quartos**', min_value=1, max_value=5, value=3)
idade = st.sidebar.slider('**Idade da Casa (anos)**', min_value=0, max_value=50, value=10)
# Criar um DataFrame com a entrada do usuário
input_usuario = pd.DataFrame({
'tamanho': [tamanho],
'quartos': [quartos],
'idade': [idade]
})
# Fazer a previsão quando um botão for pressionado
if st.sidebar.button('Prever Preço!'):
# Fazer a previsão usando o modelo carregado
previsao = modelo.predict(input_usuario)
# Exibir a previsão de forma destacada
st.success(f"### 💰 Preço Previsto: R$ {previsao[0]:,.2f}")
# Seção de Informações Extras
st.markdown("---")
st.subheader("ℹ️ Sobre o Modelo")
st.write("""
Este é um modelo de **Regressão Linear Múltipla** treinado com dados simulados.
Ele aprendeu a relação entre **Tamanho, Número de Quartos e Idade** de uma casa e seu **Preço**.
* **Aviso:** Este é um projeto demonstrativo. Os resultados não refletem o mercado imobiliário real.
""")Como Executar o Seu Próprio Aplicativo
Agora que você tem os dois arquivos (modelo_preco_casa.pkl e app.py), é hora de ver a mágica acontecer!
- Salve ambos os arquivos no mesmo diretório (pasta) no seu computador.
- Abra o terminal ou Prompt de Comando e navegue até essa pasta.
- Exemplo:
cd C:\Users\MeuUsuario\Meu_Projeto_Streamlit
- Exemplo:
- Execute o seguinte comando:
bash
streamlit run app.py- Pronto! O Streamlit abrirá automaticamente uma janela no seu navegador padrão com o aplicativo rodando. Agora você pode interagir com os sliders e ver a previsão do preço mudar em tempo real!

Um aplicativo web limpo com o título “Prevendo o Preço de uma Casa”. Na barra lateral esquerda, três controles deslizantes para Tamanho, Quartos e Idade. No centro da página, um grande texto em verde destacando “Preço Previsto.
Conclusão
Espero que este post tenha demonstrado de forma clara e prática o poder da Modelagem Estatística. Começamos com um conceito teórico, implementamos um modelo em Python e, finalmente, democratizamos o acesso a ele através de um aplicativo web interativo.
O Streamlit é uma ferramenta fantástica para cientistas de dados compartilharem seus trabalhos e criarem protótipos rapidamente. As possibilidades são infinitas: dashboards, classificadores, sistemas de recomendação, etc.

