A Ideia: a Reta de Mínimos Quadrados
A regressão linear ajusta uma reta através de uma nuvem de pontos: y = intercepto + inclinação × x. De todas as retas possíveis, lm() escolhe a que minimiza a soma dos resíduos ao quadrado - sendo um resíduo a distância vertical entre um ponto e a reta. Elevar ao quadrado faz erros grandes pesarem desproporcionalmente, e é por isso que um único outlier extremo pode inclinar o ajuste inteiro.
Onde a correlação te dá um número sem unidades para "o quão fortemente eles se movem juntos", a regressão te dá uma equação - com unidades, uma inclinação que você pode interpretar e a maquinaria para prever.
Leia a fórmula como "modele mpg em função de wt". Os dois coeficientes são a reta ajustada: mpg ≈ 37,3 − 5,3 × peso. A inclinação tem unidades reais - cada 1000 lbs a mais de carro (wt está em unidades de 1000 lbs) custa cerca de 5,3 milhas por galão. O intercepto (37,3 mpg com peso zero) é apenas onde a reta cruza o zero; nenhum carro pesa nada, então não interprete demais.
O Passeio pelo summary()
summary(fit) é a saída que todo curso de estatística pede que você interprete. Rode-a e vá bloco a bloco:
Call - ecoa o modelo que você ajustou. Trivial agora, salvador quando você está malabarizando seis objetos de modelo.
Residuals - o resumo de cinco números das sobras (observado − previsto). Você quer a mediana perto de 0 e uma simetria aproximada entre Min/Max e 1Q/3Q; uma assimetria forte sugere que o modelo de reta está deixando algo de fora.
Coefficients - o coração da saída, uma linha por termo:
- Estimate - o valor ajustado. Para
wt, −5,34: cada 1000 lbs adicionais está associado a cerca de 5,3 mpg a menos. Sempre traduza a inclinação em uma frase com unidades; essa frase é todo o conteúdo prático do modelo. - Std. Error - o quanto a estimativa oscilaria entre amostras repetidas. Estimativas a poucos erros padrão do zero são frágeis.
- t value - Estimate ÷ Std. Error: a quantos erros padrão o coeficiente está do zero (−9,56 aqui).
- Pr(>|t|) - o p-valor para "esse coeficiente poderia realmente ser zero?". Para
wté cerca de 1,3e-10: se o peso realmente não tivesse relação linear com o mpg, uma inclinação tão acentuada praticamente nunca apareceria em uma amostra de 32. P-valor pequeno = evidência de que a associação existe - não prova de que o modelo está correto, e não uma medida de importância (um efeito minúsculo e estimado com precisão também recebe um p-valor minúsculo). - Signif. codes / estrelas - uma abreviação visual para a coluna de p-valores. Conveniente; não acrescenta informação.
Residual standard error: 3.05 on 30 degrees of freedom - o tamanho típico de um erro de previsão, nas unidades da própria resposta: as previsões erram tipicamente em cerca de 3 mpg. Julgue isso contra a escala do mpg (que vai de cerca de 10 a 34).
Multiple R-squared: 0.75 - o peso explica cerca de 75% da variância no mpg. O Adjusted R-squared (0,74) recalcula isso com uma penalidade por preditor, porque a versão bruta só pode aumentar conforme você acrescenta variáveis - até ruído aleatório. Ao comparar modelos com números diferentes de preditores, o ajustado é o honesto. E resista ao reflexo de que "bom modelo = R² alto": um efeito genuinamente útil pode viver em um modelo de R² baixo (desfecho ruidoso, um entre muitos determinantes), enquanto um R² alto pode vir de um sobreajuste ou de uma variável vazada.
F-statistic: 91.4 ... p-value: 1.29e-10 - o teste do modelo inteiro: este modelo bate "simplesmente prever a média para todo mundo"? Com um preditor ele duplica o teste t da inclinação (repare que 9,56² ≈ 91,4); com vários preditores ele vira o teste conjunto de que ao menos um coeficiente é diferente de zero. Sua maquinaria é a mesma decomposição de variância da ANOVA.
Regressão Múltipla: Mantendo os Outros Constantes
Adicione preditores com +:
A interpretação muda de uma forma crucial. Cada Estimate agora é o efeito daquele preditor mantendo os demais constantes: o coeficiente de wt (cerca de −3,9, contra −5,3 antes) é o custo em mpg do peso extra comparando carros com a mesma potência. O −5,3 da regressão simples embutia silenciosamente o fato de que carros mais pesados também tendem a ser mais potentes; a regressão múltipla desembrulha isso. É também por isso que coeficientes se deslocam quando você acrescenta variáveis - se o novo preditor se correlaciona com um antigo, a descrição de cargo do antigo muda. O R-quadrado sobe para cerca de 0,83, e aqui a versão ajustada é a comparação justa contra o modelo de um preditor.
Previsões: predict()
O modelo ajustado é uma função; predict() a avalia. Monte um data frame newdata cujos nomes de coluna coincidam exatamente com os preditores:
Os dois tipos de intervalo respondem a perguntas diferentes, e confundi-los é um erro clássico de prova:
interval = "confidence"- incerteza sobre a média: "para todos os carros que pesam 2500 lbs, onde está o mpg médio?". Estreito, e encolhe conforme os dados crescem.interval = "prediction"- a faixa em que um novo carro individual daquele peso provavelmente cairá. Muito mais largo, porque um carro isolado carrega sua própria dispersão em torno da reta - dispersão que nenhuma quantidade de dados faz desaparecer na média.
Reportar um intervalo de confiança quando a pergunta é sobre uma nova observação superestima dramaticamente sua precisão.
Diagnósticos e a Armadilha da Extrapolação
summary() te diz o que o modelo estima; os gráficos de resíduos dizem se você deve acreditar. Em uma sessão interativa:
par(mfrow = c(2, 2))
plot(fit) # four diagnostic plots
O que procurar: Residuals vs Fitted deve ser uma nuvem sem forma - uma curva significa que a relação não é reta; um funil (dispersão crescendo com os valores ajustados) significa variância não constante, e seus erros padrão estão errados. Os pontos do gráfico Q-Q devem abraçar a reta - caudas pesadas indicam que outliers estão distorcendo o ajuste. Scale-Location é a checagem do funil de novo. Residuals vs Leverage sinaliza pontos influentes - observações que, sozinhas, arrastam os coeficientes (no mtcars, carros exóticos como o Chrysler Imperial costumam aparecer aqui). Um gráfico de dispersão rápido dos dados brutos antes do ajuste pega a maior parte disso cedo.
Por fim, a armadilha que nenhum diagnóstico pega: extrapolação. O modelo aprendeu com carros pesando aproximadamente 1500-5400 lbs. Alimente predict() com um wt de 8 e ele alegremente retornará um mpg negativo - a matemática estende a reta para sempre, mas a evidência para na borda dos dados. Preveja apenas dentro (ou perto) da faixa em que você ajustou.
O Que Você Leva Daqui
fit <- lm(y ~ x, data = df)ajusta a reta de mínimos quadrados;coef(fit)é a equação,summary(fit)o relatório completo.- Leia os Estimates como frases com unidades;
Pr(>|t|)pergunta "isso poderia ser zero?", não "isso importa?". - O erro padrão residual é o erro típico em unidades reais; o R-quadrado ajustado é o número justo para comparar modelos.
- Na regressão múltipla todo coeficiente significa "mantendo os demais constantes" - e os coeficientes se deslocam quando preditores correlacionados entram.
predict(fit, newdata, interval = ...): "confidence" para a média, "prediction" para um novo caso individual - o mais largo.- Verifique
plot(fit)em busca de curvas, funis e pontos influentes; nunca confie em previsões fora da faixa dos dados.
A seguir: quando o desfecho é um sim/não em vez de um número - regressão logística com glm().
Perguntas frequentes
Como rodar uma regressão linear no R?
Com lm() e uma fórmula: fit <- lm(mpg ~ wt, data = mtcars) regride mpg sobre o peso. Depois summary(fit) imprime os coeficientes, seus p-valores, o R-quadrado e a estatística F. Adicione mais preditores com +: lm(mpg ~ wt + hp, data = mtcars).
Como interpretar a saída do summary do lm no R?
No bloco Coefficients, cada Estimate é a mudança esperada na resposta para um aumento de uma unidade naquele preditor (mantendo os demais fixos); Pr(>|t|) testa se aquele coeficiente poderia plausivelmente ser zero. O Multiple R-squared é a fração da variância explicada. A estatística F no rodapé testa o modelo como um todo contra um modelo só com intercepto.
Qual é a diferença entre Multiple e Adjusted R-squared?
O Multiple R-squared é a fração bruta da variância explicada, e ele só pode subir quando você acrescenta preditores - até os inúteis. O Adjusted R-squared cobra uma penalidade por preditor, então só sobe quando uma nova variável merece seu lugar. Compare modelos usando a versão ajustada.
Como prever novos valores a partir de uma regressão no R?
Monte um data frame cujos nomes de coluna coincidam com os preditores e depois chame predict(fit, newdata = ...). Acrescente interval = "confidence" para a incerteza sobre a resposta média, ou interval = "prediction" para a faixa (bem mais larga) em que uma nova observação individual provavelmente cairá.