006 ‐ Supervised Machine Learning Análise de Regressão Simples e Múltipla - NaimeAndere/Study-Area GitHub Wiki

Supervised Machine Learning Análise de Regressão Simples e Múltipla

Modelos é uma simplificação da realidade, que omitem ou distorções da realidade.

Diferentes pesquisadores, a partir de uma mesma base de dados, podem estimar diferentes modelos e consequentemente, obter diferentes valores previstos do fenômeno de estudo.”

DEFINIÇÃO

1- Correlação não implica casualidade

2 - Predição na Interpolação (dentro do intervalo máximo e mínimo)

Você não conhece as ações fora do intervalo máximo e mínimo, sendo assim, o estudo deve ser considerado somente dentro dos intervalos calculados

Conceitos e Descrições

Conceito Descrição Função em Python (usando bibliotecas comuns)
Alfa (α) Nível de significância, a probabilidade de rejeitar a hipótese nula quando ela é verdadeira (erro tipo I). Definido pelo usuário (comum: 0.05 ou 5%)
Beta (β) Probabilidade de não rejeitar a hipótese nula quando ela é falsa (erro tipo II). Calculado através de análises de poder estatístico
R² (Coeficiente de Determinação) Medida da proporção da variação total que é explicada pelo modelo. sklearn.metrics.r2_score
R² Ajustado Versão ajustada do R² que penaliza pela inclusão de variáveis irrelevantes no modelo. Calculado manualmente: 1 - (1-R²)*(n-1)/(n-k-1)
Teste F Teste para comparar modelos estatísticos ajustados a um conjunto de dados para identificar o melhor ajuste. scipy.stats.f_oneway
Teste t Teste para determinar se há uma diferença significativa entre as médias de dois grupos. scipy.stats.ttest_ind (para duas amostras independentes)
Teste t de Student Variante do teste t usada para amostras pequenas, assumindo que a distribuição das amostras é normal. scipy.stats.ttest_rel (para amostras pareadas)
p-valor Probabilidade de observar um resultado extremo se a hipótese nula for verdadeira. Retornado pelos testes estatísticos (ex: ttest_ind)
Intervalo de Confiança Intervalo onde se espera que o parâmetro populacional verdadeiro esteja com uma certa confiança (ex: 95%). statsmodels.stats.weightstats.DescrStatsW.tconfint_mean
#Examplo

import numpy as np
import scipy.stats as stats
from sklearn.metrics import r2_score

# Dados fictícios
x = np.random.rand(100)
y = 2 * x + np.random.rand(100)

# R² e R² Ajustado
r2 = r2_score(x, y)
n = len(x)
k = 1  # número de preditores
r2_adjusted = 1 - (1 - r2) * (n - 1) / (n - k - 1)

# Teste F (ANOVA)
f_stat, p_value_f = stats.f_oneway(x, y)

# Teste t para duas amostras independentes
t_stat, p_value_t = stats.ttest_ind(x, y)

# Intervalo de Confiança (exemplo com statsmodels)
import statsmodels.stats.api as sms
desc = sms.DescrStatsW(y)
conf_int = desc.tconfint_mean()

print(f"R²: {r2}")
print(f"R² Ajustado: {r2_adjusted}")
print(f"Teste F: estatística = {f_stat}, p-valor = {p_value_f}")
print(f"Teste t: estatística = {t_stat}, p-valor = {p_value_t}")
print(f"Intervalo de Confiança (95%): {conf_int}")

Variável Preditora

Uma variável preditora, também conhecida como variável independente, é uma variável que é usada para prever ou explicar mudanças em outra variável, chamada de variável resposta ou dependente. Em termos mais simples, uma variável preditora é aquela que você acredita ter um impacto ou uma influência sobre a variável que você está tentando entender ou prever.

Exemplo:

Vamos supor que você está tentando prever o preço de venda de uma casa. As variáveis preditoras podem incluir:

  • Área da casa (em metros quadrados)
  • Número de quartos
  • Número de banheiros
  • Localização
  • Ano de construção

Neste caso, o preço de venda é a variável resposta, e todas as outras variáveis listadas são variáveis preditoras. Elas são chamadas assim porque se acredita que elas podem prever ou explicar variações no preço de venda.

Exemplos em Modelagem Estatística:

  1. Regressão Linear:
    • Variável resposta (dependente): Preço de venda da casa.
    • Variáveis preditoras (independentes): Área da casa, número de quartos, localização, etc.
  2. Classificação:
    • Variável resposta (dependente): Diagnóstico de uma doença (presença ou ausência).
    • Variáveis preditoras (independentes): Idade, nível de colesterol, pressão sanguínea, etc.

Visualização em Python:

Para entender como isso funciona na prática, vamos considerar um exemplo simples de regressão linear em Python usando a biblioteca sklearn:

import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt

Dados fictícios: Área da casa (em metros quadrados) e Preço de venda (em milhares de dólares)

area = np.array([50, 60, 70, 80, 90, 100]).reshape(-1, 1) # Variável preditora preco = np.array([150, 180, 210, 240, 270, 300]) # Variável resposta

Criando o modelo de regressão linear

modelo = LinearRegression() modelo.fit(area, preco)

Fazendo previsões

previsoes = modelo.predict(area)

Plotando os resultados

plt.scatter(area, preco, color='blue', label='Dados reais') plt.plot(area, previsoes, color='red', label='Linha de regressão') plt.xlabel('Área da casa (m²)') plt.ylabel('Preço de venda (milhares de dólares)') plt.title('Regressão Linear') plt.legend() plt.show()

Coeficientes do modelo

print(f"Coeficiente (slope): {modelo.coef_[0]}") print(f"Intercepto (intercept): {modelo.intercept_}")

Neste exemplo, area é a variável preditora e preco é a variável resposta. O modelo de regressão linear tenta encontrar a melhor linha que se ajusta aos dados para prever o preço de venda com base na área da casa.

> **Modelos é uma simplificação da realidade, que omitem ou distorções da realidade.** >

Diferentes pesquisadores, a partir de uma mesma base de dados, podem estimar diferentes modelos e consequentemente, obter diferentes valores previstos do fenômeno de estudo.”

[Estudo - ANÁLISE DE REGRESSÃO SIMPLES E MÚLTIPLA](https://www.notion.so/Estudo-AN-LISE-DE-REGRESS-O-SIMPLES-E-M-LTIPLA-b15c8f8d1eb84bbcbe3ab54331355959?pvs=21)

Exemplo 4 - REGRESSÃO NÃO LINEAR E TRANSFORMAÇÃO DE BOX-COX

Exemplo 5 - REGRESSÃO NÃO LINEAR MÚLTIPLA

[Exemplo 6 - DIAGNÓSTICO DE MULTICOLINEARIDADE EM MODELOS DE REGRESSÃO](https://www.notion.so/Exemplo-6-DIAGN-STICO-DE-MULTICOLINEARIDADE-EM-MODELOS-DE-REGRESS-O-5495ce3565cf413ca7ae83f221f8fb2f?pvs=21)

Exemplo 7 - DIAGNÓSTICO DE HETEROCEDASTICIDADE EM MODELOS DE REGRESSÃO

[Exemplo 8 - REGRESSÃO NÃO LINEAR MÚLTIPLA COM DUMMIES ](https://www.notion.so/Exemplo-8-REGRESS-O-N-O-LINEAR-M-LTIPLA-COM-DUMMIES-9d12cca15dbf48129164e1aa9c23c36b?pvs=21)

DEFINIÇÃO

1- Correlação não implica casualidade

2 - Predição na Interpolação (dentro do intervalo máximo e mínimo)

Você não conhece as ações fora do intervalo máximo e mínimo, sendo assim, o estudo deve ser considerado somente dentro dos intervalos calculados

Conceitos e Descrições

Conceito Descrição Função em Python (usando bibliotecas comuns)
Alfa (α) Nível de significância, a probabilidade de rejeitar a hipótese nula quando ela é verdadeira (erro tipo I). Definido pelo usuário (comum: 0.05 ou 5%)
Beta (β) Probabilidade de não rejeitar a hipótese nula quando ela é falsa (erro tipo II). Calculado através de análises de poder estatístico
R² (Coeficiente de Determinação) Medida da proporção da variação total que é explicada pelo modelo. sklearn.metrics.r2_score
R² Ajustado Versão ajustada do R² que penaliza pela inclusão de variáveis irrelevantes no modelo. Calculado manualmente: 1 - (1-R²)*(n-1)/(n-k-1)
Teste F Teste para comparar modelos estatísticos ajustados a um conjunto de dados para identificar o melhor ajuste. scipy.stats.f_oneway
Teste t Teste para determinar se há uma diferença significativa entre as médias de dois grupos. scipy.stats.ttest_ind (para duas amostras independentes)
Teste t de Student Variante do teste t usada para amostras pequenas, assumindo que a distribuição das amostras é normal. scipy.stats.ttest_rel (para amostras pareadas)
p-valor Probabilidade de observar um resultado extremo se a hipótese nula for verdadeira. Retornado pelos testes estatísticos (ex: ttest_ind)
Intervalo de Confiança Intervalo onde se espera que o parâmetro populacional verdadeiro esteja com uma certa confiança (ex: 95%). statsmodels.stats.weightstats.DescrStatsW.tconfint_mean
#Examplo

import numpy as np
import scipy.stats as stats
from sklearn.metrics import r2_score

# Dados fictícios
x = np.random.rand(100)
y = 2 * x + np.random.rand(100)

# R² e R² Ajustado
r2 = r2_score(x, y)
n = len(x)
k = 1  # número de preditores
r2_adjusted = 1 - (1 - r2) * (n - 1) / (n - k - 1)

# Teste F (ANOVA)
f_stat, p_value_f = stats.f_oneway(x, y)

# Teste t para duas amostras independentes
t_stat, p_value_t = stats.ttest_ind(x, y)

# Intervalo de Confiança (exemplo com statsmodels)
import statsmodels.stats.api as sms
desc = sms.DescrStatsW(y)
conf_int = desc.tconfint_mean()

print(f"R²: {r2}")
print(f"R² Ajustado: {r2_adjusted}")
print(f"Teste F: estatística = {f_stat}, p-valor = {p_value_f}")
print(f"Teste t: estatística = {t_stat}, p-valor = {p_value_t}")
print(f"Intervalo de Confiança (95%): {conf_int}")

Variável Preditora

Uma variável preditora, também conhecida como variável independente, é uma variável que é usada para prever ou explicar mudanças em outra variável, chamada de variável resposta ou dependente. Em termos mais simples, uma variável preditora é aquela que você acredita ter um impacto ou uma influência sobre a variável que você está tentando entender ou prever.

Exemplo:

Vamos supor que você está tentando prever o preço de venda de uma casa. As variáveis preditoras podem incluir:

  • Área da casa (em metros quadrados)
  • Número de quartos
  • Número de banheiros
  • Localização
  • Ano de construção

Neste caso, o preço de venda é a variável resposta, e todas as outras variáveis listadas são variáveis preditoras. Elas são chamadas assim porque se acredita que elas podem prever ou explicar variações no preço de venda.

Exemplos em Modelagem Estatística:

  1. Regressão Linear:
    • Variável resposta (dependente): Preço de venda da casa.
    • Variáveis preditoras (independentes): Área da casa, número de quartos, localização, etc.
  2. Classificação:
    • Variável resposta (dependente): Diagnóstico de uma doença (presença ou ausência).
    • Variáveis preditoras (independentes): Idade, nível de colesterol, pressão sanguínea, etc.

Visualização em Python:

Para entender como isso funciona na prática, vamos considerar um exemplo simples de regressão linear em Python usando a biblioteca sklearn:

import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt

# Dados fictícios: Área da casa (em metros quadrados) e Preço de venda (em milhares de dólares)
area = np.array([50, 60, 70, 80, 90, 100]).reshape(-1, 1)  # Variável preditora
preco = np.array([150, 180, 210, 240, 270, 300])  # Variável resposta

# Criando o modelo de regressão linear
modelo = LinearRegression()
modelo.fit(area, preco)

# Fazendo previsões
previsoes = modelo.predict(area)

# Plotando os resultados
plt.scatter(area, preco, color='blue', label='Dados reais')
plt.plot(area, previsoes, color='red', label='Linha de regressão')
plt.xlabel('Área da casa (m²)')
plt.ylabel('Preço de venda (milhares de dólares)')
plt.title('Regressão Linear')
plt.legend()
plt.show()

# Coeficientes do modelo
print(f"Coeficiente (slope): {modelo.coef_[0]}")
print(f"Intercepto (intercept): {modelo.intercept_}")

Neste exemplo, area é a variável preditora e preco é a variável resposta. O modelo de regressão linear tenta encontrar a melhor linha que se ajusta aos dados para prever o preço de venda com base na área da casa.

⚠️ **GitHub.com Fallback** ⚠️