Fazendo o curso de Mestrado em Machine Learning do IMPA, do Prof. Paulo Orenstein, tive contato com os conceitos matemático por trás da construção dos parâmetros analisados da Regressão Linear Simples.
O intuito desse artigo é resumir o setup matemático aprendido nas aulas 01 e 02 do curso. Com futura continuação a medida que eu avançar no conteúdo 😉
Na regressão linear simples, assumimos que (f(X)) é uma função linear:
O modelo estimado é:
O erro residual é:
1. Hipóteses matemáticas do modelo
A regressão linear simples parte de:
Logo:
Overview
Matematicamente, essas hipóteses dizem que o erro não tem viés, possui variância constante, não é correlacionado entre observações e, para inferência estatística, segue distribuição Normal.
2. Estimação dos coeficientes por mínimos quadrados (OLS)
Queremos encontrar Beta 0 ao quadrado e Beta 1 ao quadrado que minimizam:
Substituindo valor previsto pelo modelo para a observação i:
Derivando em relação a os coeficientes estimados pelo modelo:
Disso surgem as equações normais:
A partir da primeira:
Dividindo por n:
Logo:
Substituindo na segunda equação:
Overview
B^1 mede a inclinação da reta.
B^0 garante que a reta passe pelo ponto médio X barra e Y barra.
Código R
model <- lm(y ~ X)
coef(model)
Código Python
import statsmodels.api as sm
X_model = sm.add_constant(X)
model = sm.OLS(y, X_model).fit()
model.params
3. Predição e resíduos
Com os coeficientes estimados:
O resíduo é:
Substituindo:
Overview
O resíduo mede o erro individual entre o valor observado e o valor previsto pela reta.
Código R
residuals(model)
Código Python
model.resid
4. RSS — Residual Sum of Squares
Partimos dos resíduos:
Elevando ao quadrado e somando:
Logo:
Substituindo Y^:
Overview
O RSS mede o erro total não explicado pelo modelo.
Código R
deviance(model)
Código Python
model.ssr
5. RSE — Residual Standard Error
O RSS soma os erros ao quadrado:
Para transformar isso em uma estimativa da variância residual:
Usamos (n-2) porque estimamos dois parâmetros:
Então:
Logo:
Ou:
Overview
O RSE mede o tamanho típico do erro do modelo na mesma unidade de Y.
Quanto menor, melhor.
Código R
summary(model)$sigma
Código Python
(model.ssr / model.df_resid) ** 0.5
6. TSS — Total Sum of Squares
A média de Y é:
A variação total de Y em relação à média é:
Overview
O TSS mede toda a variabilidade presente em Y antes do modelo.
7. R^2 — Coeficiente de determinação
A variação total é:
O erro não explicado é:
A variação explicada é:
Logo:
Reorganizando:
Overview
R^2 responde quanto da variação dos dados o modelo consegue explicar.
Código R
summary(model)$r.squared
Código Python
model.rsquared
8. Variância do coeficiente B^1
Partimos do estimador:
Sob as hipóteses do modelo:
Como sigma^2 é desconhecido:
Logo:
E:
Overview
Quanto menor a variação de X, maior a incerteza da inclinação estimada.
Código R
summary(model)$coefficients[2, "Std. Error"]
Código Python
model.bse["X"]
9. Variância do intercepto B^0
Sabemos que:
A variância do intercepto é:
Substituindo (sigma^2):
Overview
O intercepto também possui incerteza associada.
Código R
summary(model)$coefficients[1, "Std. Error"]
Código Python
model.bse["const"]
10. Teste t de Student
Queremos testar:
A estatística de teste é:
Forma geral:
Overview
O teste t mede quantos erros padrão o coeficiente está distante de zero.
Quanto maior o módulo de (t), maior a evidência contra (H_0).
Código R
summary(model)$coefficients[, "t value"]
Código Python
model.tvalues
11. p-value
A estatística t segue:
O p-value bilateral é:
Ou:
Overview
O p-value mede a evidência contra a hipótese nula.
Código R
summary(model)$coefficients[, "Pr(>|t|)"]
Código Python
model.pvalues
12. Intervalo de confiança
Para um nível de confiança de 95%:
Para beta 1:
Para beta 0:
Overview
Representa a faixa plausível para o coeficiente verdadeiro.
Código R
confint(model)
Código Python
model.conf_int(alpha=0.05)
13. Resumo matemático final
14. Anotações de Aula Completas
Link anotações completas das aulas 01 e 02 voltadas a Regressão Linear Simples.




























































Top comments (0)